ภาพรวม
คลาสที่ใช้การติดตั้ง Google Tag Manager (GTM) บนอุปกรณ์เคลื่อนที่
ตัวอย่างการใช้งาน:
TAGContainer *container =
[[TAGManager instance] openContainerById:myContainerId];
NSString *value = [container stringForKey:@"myKey"];TAGDataLayer *dataLayer = [[TAGManager instance] dataLayer]; [dataLayer push:@{@"event": @"openScreen", @"screenName": @"Main Page"}];
คอนเทนเนอร์คือชุดของมาโคร กฎ และแท็ก โดยสร้างขึ้นในแอปพลิเคชัน GTM (http://www.google.com/tagmanager) และได้รับการกำหนดรหัสคอนเทนเนอร์ รหัสคอนเทนเนอร์นี้คือรหัสที่ใช้ภายใน API นี้
คลาส TAGContainer มีวิธีดึงข้อมูลค่ามาโครตามชื่อมาโคร กิจวัตร booleanForKey: (TAGContainer), doubleForKey: (TAGContainer), int64ForKey: (TAGContainer), stringForKey: (TAGContainer) จะแสดงค่าปัจจุบันสำหรับชื่อมาโครการรวบรวมค่า โดยขึ้นอยู่กับกฎที่เชื่อมโยงกับมาโครนั้นในคอนเทนเนอร์
ตัวอย่างเช่น หากคอนเทนเนอร์มีมาโครคอลเล็กชันค่าที่มีคีย์ "speed" ซึ่งมีค่าเป็น 32 และกฎเปิดใช้คือ "ภาษา" คือ "en" และมาโครคอลเล็กชันค่าอีกแบบหนึ่งที่มีคีย์ "ความเร็ว" ซึ่งมีค่าเป็น 45 และกฎเปิดใช้คือ Language ไม่ใช่ "en" และทำการเรียกต่อไปนี้
[container longForKey:@"speed"]
จะแสดงผล 32 หากภาษาปัจจุบันของอุปกรณ์คือภาษาอังกฤษ หรือ 45 หากไม่เป็นเช่นนั้น
ชั้นข้อมูลคือแผนที่ที่มีข้อมูลทั่วไปเกี่ยวกับแอปพลิเคชัน คลาส TAGDataLayer มีวิธีพุชและเรียกข้อมูลจากชั้นข้อมูล การพุชคีย์ event ไปยังชั้นข้อมูลจะทำให้แท็กที่ตรงกับเหตุการณ์นี้เริ่มทำงาน
เวอร์ชันเริ่มต้นของคอนเทนเนอร์จะมาพร้อมกับแอปพลิเคชัน ควรวางพารามิเตอร์เป็นทรัพยากรในแพ็กเกจชื่อ containerId โดยที่ containerId เป็นรหัสคอนเทนเนอร์เดียวกับที่คุณจะใช้ภายใน API นี้ เมื่อคุณเรียกใช้ openContainerById:callback: (TAGManager) คอนเทนเนอร์จะแสดงพร้อมกฎ/แท็ก/มาโครที่รวมกลุ่มไว้เหล่านั้น คุณจะสร้างคอนเทนเนอร์ใน UI และใช้ปุ่มดาวน์โหลดเพื่อดาวน์โหลด
คุณสามารถแก้ไขคอนเทนเนอร์ใน UI และนำเวอร์ชันใหม่ไปใช้จริงได้ ในกรณีนี้ ครั้งถัดไปที่แอปบนอุปกรณ์เคลื่อนที่รีเฟรชคอนเทนเนอร์จากเครือข่าย (ปัจจุบันคือทุก 12 ชั่วโมง) แอปก็จะได้เวอร์ชันใหม่นั้น เมื่อคุณเรียกใช้กิจวัตร get... รายการหนึ่ง ระบบจะคำนวณค่าโดยใช้กฎล่าสุด
คอนเทนเนอร์ที่ดาวน์โหลดจะได้รับการบันทึกไว้ในเครื่อง เมื่อคุณเรียกใช้ openContainerById:callback: (TAGManager) คอนเทนเนอร์จะโหลดคอนเทนเนอร์เริ่มต้นก่อน แล้วจึงโหลดคอนเทนเนอร์ที่บันทึกไว้แบบไม่พร้อมกัน หากไม่พบหรือหากเก่ากว่า 12 ชั่วโมง ระบบจะพยายามเรียกข้อมูลเวอร์ชันใหม่จากเครือข่าย คุณสามารถดูสถานะของโหลดแบบอะซิงโครนัสเหล่านั้นได้โดยการส่ง TAGContainerCallback ไปยัง openContainerById:callback: (TAGManager)
บางครั้งคุณอาจต้องบล็อกจนกว่าจะมีคอนเทนเนอร์ที่ไม่ใช่ค่าเริ่มต้น หรือจนกว่าจะมีคอนเทนเนอร์ใหม่ที่เพิ่งใช้งาน ซึ่งทำได้โดยใช้ Callback ใน openContainerById:callback: (TAGManager) หรือใช้ TAGContainerOpener
เมื่อสร้างคอนเทนเนอร์เสร็จแล้ว ให้เรียกปิด (TAGContainer)
ฟังก์ชันสมาชิกสาธารณะ | |
| (TAGContainer *) | - openContainerById:callback: |
| แสดงผลคอนเทนเนอร์ | |
| (TAGContainer *) | - getContainerById: |
แสดงคอนเทนเนอร์ที่เชื่อมโยงกับ containerId ที่ระบุ แสดงผล nil หากคอนเทนเนอร์ยังไม่เปิดอยู่ | |
| (บูลีน) | - previewWithUrl: |
| แสดงตัวอย่างแอปด้วย URL ที่ป้อน | |
| (โมฆะ) | - มอบหมาย |
| ส่งการจราจรของข้อมูลในเครือข่ายที่รอดำเนินการซึ่งสร้างโดยแท็ก (พิกเซลที่กำหนดเอง บีคอนของการวิเคราะห์ เป็นต้น) | |
| (โมฆะ) | - dispatchWithCompletionHandler: |
| ส่งการจราจรของข้อมูลในเครือข่ายที่รอดำเนินการอยู่ถัดไปในคิว โดยเรียกใช้ เมื่อต้องการดำเนินการจนเสร็จสมบูรณ์ เมื่อส่งคำขอแล้ว (การแสดง kTAGDispatchGood) หรือเกิดข้อผิดพลาด (การส่งคืน kTAGDispatchError) | |
ฟังก์ชันสมาชิกสาธารณะแบบคงที่ | |
| (TAGManager *) | + อินสแตนซ์ |
| รับอินสแตนซ์เดี่ยวของคลาส TAGManager โดยสร้างอินสแตนซ์หากจำเป็น | |
ที่พัก | |
| รหัส< TAGLogger > | ล็อกเกอร์ |
| ตัวบันทึกที่ใช้สำหรับ SDK ของ Google Tag Manager | |
| TAGRefreshMode | refreshMode |
| โหมดรีเฟรชที่ใช้สำหรับ SDK ของ Google Tag Manager | |
| TAGDataLayer * | dataLayer |
| เรียกใช้เมธอด push: (TAGDataLayer) เพื่อพุชเหตุการณ์และข้อมูลอื่นๆ | |
| NSTimeInterval | dispatchInterval |
| หากค่านี้เป็นบวก ระบบจะส่งข้อมูลการติดตามโดยอัตโนมัติทุกๆ วินาที DispatchInterval | |
เอกสารประกอบเกี่ยวกับฟังก์ชันของสมาชิก
| - (TAGContainer *) openContainerById: | (NSString *) | containerId | |
| ติดต่อกลับ: | (รหัส< TAGContainerCallback >) | การติดต่อกลับ | |
แสดงผลคอนเทนเนอร์
โดยปกติแล้ว คอนเทนเนอร์ที่ส่งคืนจะว่างเปล่า แต่การโหลดจะเกิดขึ้นแบบไม่พร้อมกัน ดังนั้นอาจมีการรีเฟรชคอนเทนเนอร์ที่ส่งคืนก่อนที่จะมีการส่งคืน เมื่อมีการส่งคืน หรืออาจไม่รีเฟรชเลยก็ได้ ตัวอย่างเช่น หากไม่มีการเชื่อมต่อเครือข่ายในระหว่างอายุการใช้งานของคอนเทนเนอร์
จะมีการเรียกใช้ Callback เนื่องจากมีเหตุการณ์ต่างๆ เกิดขึ้นกับคอนเทนเนอร์ openContainerById:callback: อย่างน้อยที่สุดจะพยายามโหลดคอนเทนเนอร์เวอร์ชันที่บันทึกไว้ หากไม่มีเวอร์ชันที่บันทึกไว้ หรือเวอร์ชันที่บันทึกไว้ล้าสมัย ระบบจะพยายามโหลดจากเครือข่าย
หากมีการเรียก openContainerById:callback: เป็นครั้งที่ 2 สำหรับ containerId ที่ระบุ ระบบจะแสดงผล nil เว้นแต่คอนเทนเนอร์ที่เปิดอยู่ก่อนหน้านี้ได้ปิดไปแล้ว
- พารามิเตอร์
-
containerId รหัสของคอนเทนเนอร์ที่จะเปิด Callback ออบเจ็กต์ที่ระบบจะเรียกเมธอดต่างๆ ในระหว่างขั้นตอนการโหลด โปรดทราบว่าอาจมีการเรียกเมธอดจากชุดข้อความที่แตกต่างกัน นอกจากนี้ อาจมีการเรียกก่อนที่ openContainerById:callback: จะกลับมา
- การคืนสินค้า:
- คอนเทนเนอร์ที่เปิดอยู่
| - (TAGContainer *) getContainerById: | (NSString *) | containerId |
แสดงคอนเทนเนอร์ที่เชื่อมโยงกับ containerId ที่ระบุ แสดงผล nil หากคอนเทนเนอร์ยังไม่เปิดอยู่
| - (BOOL) previewWithUrl: | (NSURL *) | url |
แสดงตัวอย่างแอปด้วย URL ที่ป้อน
URL ที่ถูกต้องต้องขึ้นต้นด้วยสิ่งต่อไปนี้
tagmanager.c.<app_name>://preview/p?id=
ที่อยู่ <app_name> คือชื่อแอปพลิเคชัน
- พารามิเตอร์
-
URL URL ตัวอย่าง
- การคืนสินค้า:
- ใช่ หาก URL เป็น URL แสดงตัวอย่าง tagmanager ที่ถูกต้อง
| + อินสแตนซ์ (TAGManager *) |
รับอินสแตนซ์เดี่ยวของคลาส TAGManager โดยสร้างอินสแตนซ์หากจำเป็น
- การคืนสินค้า:
- อินสแตนซ์เดี่ยวของ TAGManager
| - (เป็นโมฆะ) การจ่ายงาน |
ส่งการจราจรของข้อมูลในเครือข่ายที่รอดำเนินการซึ่งสร้างโดยแท็ก (พิกเซลที่กำหนดเอง บีคอนของการวิเคราะห์ เป็นต้น)
| - (โมฆะ) dispatchWithCompletionHandler: | (TAGDispatchผลลัพธ์) | completionHandler |
ส่งการจราจรของข้อมูลในเครือข่ายที่รอดำเนินการอยู่ถัดไปในคิว โดยเรียกใช้ เมื่อต้องการดำเนินการจนเสร็จสมบูรณ์ เมื่อส่งคำขอแล้ว (การแสดง kTAGDispatchGood) หรือเกิดข้อผิดพลาด (การส่งคืน kTAGDispatchError)
หากไม่มีการเชื่อมต่อเครือข่ายหรือไม่มีข้อมูลที่จะส่ง ระบบจะแสดงผล kTAGDispatchNoData
การเรียกใช้วิธีการนี้ที่มี nil validHandler จะเหมือนกับการเรียกใช้การโทร
วิธีการนี้สามารถใช้สำหรับการดึงข้อมูลในเบื้องหลังใน iOS 7.0 ขึ้นไป
คุณควรเรียกใช้เมื่อออกจากแอปพลิเคชันเพื่อเริ่มต้นการส่งข้อมูลการติดตามที่ยังไม่ได้ส่ง
เอกสารเกี่ยวกับพร็อพเพอร์ตี้
ตัวบันทึกที่ใช้สำหรับ SDK ของ Google Tag Manager
โดยค่าเริ่มต้น Google Tag Manager จะบันทึกข้อความแสดงข้อผิดพลาด/คําเตือน และไม่สนใจข้อความข้อมูล/การแก้ไขข้อบกพร่อง/รายละเอียด คุณสามารถใช้ตัวบันทึกที่กำหนดเองได้โดยการตั้งค่าพร็อพเพอร์ตี้นี้
- (TAGRefreshMode) refreshMode [read, write, assign] |
โหมดรีเฟรชที่ใช้สำหรับ SDK ของ Google Tag Manager
การตั้งค่านี้เป็น kTAGRefreshModeDefaultContainer ทำให้เมธอดการรีเฟรชใช้เฉพาะคอนเทนเนอร์เริ่มต้นเพื่อจุดประสงค์ในการพัฒนา ค่าเริ่มต้นคือ kTAGRefreshModeStandard
- (TAGDataLayer*) dataLayer [read, assign] |
เรียกใช้เมธอด push: (TAGDataLayer) เพื่อพุชเหตุการณ์และข้อมูลอื่นๆ
- (NSTimeInterval) dispatchInterval [read, write, assign] |
หากค่านี้เป็นบวก ระบบจะส่งข้อมูลการติดตามโดยอัตโนมัติทุกๆ วินาที DispatchInterval
มิเช่นนั้น คุณต้องส่งข้อมูลการติดตามด้วยตนเองโดยโทรหาส่วนประสานงาน
โดยค่าเริ่มต้น ระบบจะตั้งค่าเป็น "120" ซึ่งบ่งชี้ว่าระบบจะส่งข้อมูลการติดตามโดยอัตโนมัติทุกๆ 120 วินาที