TagManager

ชั้นเรียนสาธารณะ TagManager

ซึ่งเป็นการใช้งาน Google Tag Manager (GTM) บนอุปกรณ์เคลื่อนที่ ตัวอย่างการใช้งาน:

 Container container = TagManager.getInstance(context).openContainer(myContainerId);
 String value = container.getString("myKey");

 DataLayer dataLayer = TagManager.getInstance(context).getDataLayer();
 dataLayer.push(DataLayer.mapOf("event", "openScreen", "screenName", "Main Page"));
คอนเทนเนอร์คือชุดของมาโคร แท็ก และกฎต่างๆ สร้างขึ้นภายใน แอปพลิเคชัน GTM และได้รับรหัสคอนเทนเนอร์ รหัสคอนเทนเนอร์นี้คือรหัสที่ใช้ภายใน API นี้

คลาส Container มีวิธีเรียกข้อมูลค่าที่กำหนดคีย์ กิจวัตร getBoolean(String) getDouble(String) getLong(String), getString(String) แสดงผลค่าปัจจุบัน สำหรับคีย์ของมาโครคอลเล็กชันค่า โดยขึ้นอยู่กับกฎที่เชื่อมโยงกับคอนเทนเนอร์

ตัวอย่างเช่น หากคอนเทนเนอร์มีมาโครคอลเล็กชันค่าซึ่งมีคีย์ speed ค่าคือ 32 และกฎเปิดใช้คือ Language คือ "en" และคอลเล็กชันค่าอื่น ซึ่งมีคีย์ speed ซึ่งมีค่าเป็น 45 และกฎเปิดใช้คือ Language ไม่ใช่ "en" แล้วทำการเรียกต่อไปนี้:

 container.getLong("speed")
จะแสดงผล 32 หากภาษาปัจจุบันของอุปกรณ์คือภาษาอังกฤษ หรือ 45 หากไม่เป็นเช่นนั้น

ชั้นข้อมูลคือแผนที่ที่มีข้อมูลทั่วไปเกี่ยวกับแอปพลิเคชัน คลาส DataLayer มีวิธีพุชและเรียกข้อมูลจากชั้นข้อมูล การพุชคีย์ event ไปยังชั้นข้อมูลจะทำให้แท็กที่ตรงกับเหตุการณ์นี้ เริ่มทำงานได้

เวอร์ชันเริ่มต้นของคอนเทนเนอร์จะมาพร้อมกับแอปพลิเคชัน ควรเป็น วางเป็นชิ้นงานที่มีชื่อ tagmanager/containerId โดยที่ containerId เหมือนกัน รหัสคอนเทนเนอร์ที่คุณจะใช้ภายใน API นี้ เมื่อคุณเรียกใช้ openContainer(String, Container.Callback) คอนเทนเนอร์ จะแสดงผลพร้อมกฎ/มาโครของกลุ่มเหล่านั้น คุณจะสร้างคอนเทนเนอร์ใน UI และใช้ปุ่มดาวน์โหลดเพื่อดาวน์โหลด

คุณสามารถแก้ไขคอนเทนเนอร์ใน UI และนำเวอร์ชันใหม่ไปใช้จริงได้ ในกรณีดังกล่าว ครั้งถัดไป แอปบนอุปกรณ์เคลื่อนที่จะรีเฟรชคอนเทนเนอร์จากเครือข่าย (ปัจจุบันคือทุก 12 ชั่วโมง) ก็จะได้เป็นเวอร์ชันใหม่ เมื่อคุณ เรียกใช้กิจวัตร get... รายการหนึ่ง ระบบจะคำนวณค่าโดยใช้กฎล่าสุด

คอนเทนเนอร์ที่ดาวน์โหลดจะได้รับการบันทึกไว้ในเครื่อง เมื่อโทรหา openContainer(String, Container.Callback) หมายเลขแรกจะ โหลดคอนเทนเนอร์เริ่มต้น แล้วโหลดคอนเทนเนอร์ที่บันทึกไว้ทั้งหมดแบบไม่พร้อมกัน หากไม่มีคือ หรือถ้าเก่ากว่า 12 ชั่วโมง เซิร์ฟเวอร์จะพยายามเรียกรุ่นที่ใหม่กว่าจากเครือข่าย คุณสามารถดูสถานะของโหลดแบบอะซิงโครนัสเหล่านั้นได้โดยการส่ง Container.Callback ไปยัง openContainer(String, Container.Callback)

บางครั้งคุณอาจต้องการบล็อกจนกว่าคอนเทนเนอร์ที่ไม่ใช่ค่าเริ่มต้นจะพร้อมใช้งาน หรือจนกว่า มีคอนเทนเนอร์ล่าสุดที่พร้อมใช้งานแล้ว ContainerOpener เป็นคลาสยูทิลิตีที่ช่วยได้

เมื่อสร้างคอนเทนเนอร์เสร็จแล้ว ให้เรียกใช้ close()

สรุปของชั้นเรียนที่ซ้อนกัน

ที่ปรับปรุงใหม่ TagManager.Logger อินเทอร์เฟซที่เรียบง่ายสำหรับการบันทึกข้อผิดพลาด/คำเตือน/ข้อมูล/การแก้ไขข้อบกพร่อง/การบันทึกรายละเอียด
enum TagManager.RefreshMode โหมดสำหรับรีเฟรชคอนเทนเนอร์

ข้อมูลสรุปของเมธอดสาธารณะ

คอนเทนเนอร์
getContainer(สตริง containerId)
บริบท
DataLayer
คงที่ TagManager
getInstance(บริบท)
บันทึก
TagManager.RefreshMode
คอนเทนเนอร์
openContainer(สตริง containerId, Container.Callback callback)
เป็นโมฆะ
setLogger(Logger Logger)
เป็นโมฆะ

วิธีการสาธารณะ

สาธารณะ คอนเทนเนอร์ getContainer (สตริง containerId)

แสดงผลคอนเทนเนอร์ที่เปิดอยู่ซึ่งเชื่อมโยงกับ containerId แสดงผล null หากคอนเทนเนอร์ยังไม่เปิดอยู่

สาธารณะ บริบท getContext ()

แสดงบริบทที่บันทึกไว้ซึ่งเชื่อมโยงกับออบเจ็กต์นี้

สาธารณะ DataLayer getDataLayer ()

แสดงผลออบเจ็กต์ชั้นข้อมูลที่ Tag Manager ใช้

สาธารณะ คงที่ TagManager getInstance (บริบท)

รับอินสแตนซ์เดี่ยวของคลาส TagManager โดยสร้างอินสแตนซ์หากจำเป็น

สาธารณะ ตัวบันทึก getLogger ()

แสดงผลตัวบันทึกที่ Tag Manager ใช้

สาธารณะ TagManager.RefreshMode getRefreshMode ()

แสดงโหมดรีเฟรชที่ใช้สำหรับคอนเทนเนอร์ทั้งหมด

สาธารณะ คอนเทนเนอร์ openContainer (สตริง containerId, Container.Callback callback)

แสดงผลคอนเทนเนอร์ จะมีการเรียกใช้ Callback เนื่องจากมีสิ่งต่างๆ เกิดขึ้นสำหรับ คอนเทนเนอร์ อย่างน้อยที่สุด openContainer จะพยายามโหลด คอนเทนเนอร์ หากไม่มีเวอร์ชันที่บันทึกไว้ หรือหากเวอร์ชันที่บันทึกไว้เก่าเกินไป ให้ลอง จะถูกโหลดจากเครือข่าย

โดยปกติ คอนเทนเนอร์ที่ส่งคืนจะว่างเปล่า แต่การโหลดจะเกิดขึ้นบน เทรด เพื่อให้ระบบรีเฟรชคอนเทนเนอร์ที่แสดงผลก่อนแสดงอีกครั้ง หลังจากแสดงผล หรือไม่รีเฟรช (ตัวอย่างเช่น ไม่มีการเชื่อมต่อเครือข่ายตลอดอายุการใช้งาน ของคอนเทนเนอร์)

หากคุณโทรหา openContainer เป็นครั้งที่ 2 สำหรับcontainerIdที่ระบุ ข้อยกเว้นจะถูกยกเลิก

พารามิเตอร์
containerId รหัสของคอนเทนเนอร์ที่จะเปิด
Callback ออบเจ็กต์ที่ระบบจะเรียกเมธอดต่างๆ ในระหว่างบางส่วนของการโหลด ขั้นตอนได้ โปรดทราบว่าอาจมีการเรียกเมธอดจากชุดข้อความที่แตกต่างกัน นอกจากนี้ ยัง จะถูกเรียกก่อน openContainer คืน

สาธารณะ เป็นโมฆะ setLogger (ผู้บันทึก บันทึก)

แทนที่ตัวบันทึกที่มีอยู่ที่ Tag Manager ใช้

สาธารณะ เป็นโมฆะ setRefreshMode (TagManager.RefreshMode โหมด)

ตั้งค่าโหมดรีเฟรชที่ใช้สำหรับคอนเทนเนอร์ทั้งหมด