ข้อมูลอ้างอิงคลาส TAGManager


ภาพรวม

คลาสที่ใช้การติดตั้ง 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
TAGRefreshModerefreshMode
 โหมดรีเฟรชที่ใช้สำหรับ SDK ของ Google Tag Manager
TAGDataLayer *dataLayer
 เรียกใช้เมธอด push: (TAGDataLayer) เพื่อพุชเหตุการณ์และข้อมูลอื่นๆ
NSTimeIntervaldispatchInterval
 หากค่านี้เป็นบวก ระบบจะส่งข้อมูลการติดตามโดยอัตโนมัติทุกๆ วินาที 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> คือชื่อแอปพลิเคชัน

พารามิเตอร์
URLURL ตัวอย่าง
การคืนสินค้า:
ใช่ หาก URL เป็น URL แสดงตัวอย่าง tagmanager ที่ถูกต้อง

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

การคืนสินค้า:
อินสแตนซ์เดี่ยวของ TAGManager
- (เป็นโมฆะ) การจ่ายงาน

ส่งการจราจรของข้อมูลในเครือข่ายที่รอดำเนินการซึ่งสร้างโดยแท็ก (พิกเซลที่กำหนดเอง บีคอนของการวิเคราะห์ เป็นต้น)

- (โมฆะ) dispatchWithCompletionHandler: (TAGDispatchผลลัพธ์) completionHandler

ส่งการจราจรของข้อมูลในเครือข่ายที่รอดำเนินการอยู่ถัดไปในคิว โดยเรียกใช้ เมื่อต้องการดำเนินการจนเสร็จสมบูรณ์ เมื่อส่งคำขอแล้ว (การแสดง kTAGDispatchGood) หรือเกิดข้อผิดพลาด (การส่งคืน kTAGDispatchError)

หากไม่มีการเชื่อมต่อเครือข่ายหรือไม่มีข้อมูลที่จะส่ง ระบบจะแสดงผล kTAGDispatchNoData

การเรียกใช้วิธีการนี้ที่มี nil validHandler จะเหมือนกับการเรียกใช้การโทร

วิธีการนี้สามารถใช้สำหรับการดึงข้อมูลในเบื้องหลังใน iOS 7.0 ขึ้นไป

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


เอกสารเกี่ยวกับพร็อพเพอร์ตี้

- (id<TAGLogger>) logger [read, write, assign]

ตัวบันทึกที่ใช้สำหรับ 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 วินาที