คู่มือนี้อธิบายวิธีอัปเกรด Google Analytics SDK สำหรับ iOS เป็นเวอร์ชัน 3
ข้อมูลโดยย่อ: มีอะไรใหม่ใน V3
API ในเวอร์ชัน 3 ได้รับการปรับโครงสร้างใหม่ให้สอดคล้องกันมากขึ้นในแพลตฟอร์มเนทีฟและเว็บ ผู้ใช้เวอร์ชัน 2 ทุกคนควรทราบการเปลี่ยนแปลงต่อไปนี้
- ตอนนี้ระบบจะส่ง Hit โดยใช้เมธอด
send:(NSDictionary *)params
เพียงวิธีเดียว - ระบบได้นำการจัดการเซสชันฝั่งไคลเอ็นต์อัตโนมัติออกแล้ว คุณกำหนดค่าระยะหมดเวลาของเซสชันได้ในอินเทอร์เฟซการจัดการแทน ดูข้อมูลเพิ่มเติม
- ระบบได้แทนที่โหมดแก้ไขข้อบกพร่องด้วย
Logger
แล้ว - ใหม่: มีการเพิ่มแฟล็ก
dryRun
เพื่อป้องกันไม่ให้ข้อมูลที่จัดส่งปรากฏในรายงาน - ใหม่: เพิ่มการรองรับสกุลเงินท้องถิ่นสำหรับ iOS แล้ว
ดูรายการการเปลี่ยนแปลงทั้งหมดได้ที่ Changelog
ก่อนที่คุณจะเริ่ม
ก่อนเริ่มอัปเกรดเป็น v3 คุณต้องมีสิ่งต่อไปนี้
เส้นทางการอัปเกรด
หากต้องการเริ่มต้นใช้งาน ให้เลือกเส้นทางการอัปเกรดเป็นเวอร์ชัน 3 จากการใช้งานปัจจุบัน ดังนี้
v1.x เป็น v3
ขอแนะนำให้ผู้ใช้ Google Analytics iOS SDK เวอร์ชัน 1.x ทำตามคู่มือเริ่มต้นใช้งาน v3 เพื่อเริ่มใช้ v3
v2.x เป็น v3
ผู้ใช้ v2.x ควรทำตามขั้นตอนต่อไปนี้เพื่ออัปเกรดเป็น v3
- แทนที่วิธีอำนวยความสะดวกทั้ง
send<hit-type>
วิธีด้วยเมธอดsend:
ใหม่ ดังนี้// v2 (Old) id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker]; [tracker sendView:@"HomeScreen"];
// v3 id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker]; // Set the screen name on the tracker so that it is used in all hits sent from this screen. [tracker set:kGAIScreenName value:@"Home Screen"]; // Send a screenview. // [tracker send:[[GAIDictionaryBuilder createAppView] build]]; // Previous V3 SDK versions. [tracker send:[[GAIDictionaryBuilder createScreenView] build]]; // SDK Version 3.08 and up.
- เราได้นำการจัดการเซสชันฝั่งไคลเอ็นต์โดยอัตโนมัติออกจากเวอร์ชัน 3 แล้ว คุณตั้งค่าระยะหมดเวลาของเซสชันได้ในอินเทอร์เฟซการจัดการ และค่าเริ่มต้นคือ 30 นาที
คุณยังสามารถเริ่มและหยุดเซสชันด้วยตนเองได้โดยใช้พารามิเตอร์
sessionControl
ดูข้อมูลเพิ่มเติมเกี่ยวกับการจัดการเซสชันในเวอร์ชัน 3 - ผู้ใช้
การติดตามหน้าจออัตโนมัติควรแทนที่การอ้างอิงถึง
GAITrackedViewController.trackedViewName
ด้วยGAITrackedViewController.screenName
:// v2 (Old) #import "GAITrackedViewController.h" @implementation AboutViewController - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; self.trackedViewName = @"About Screen"; } // ... Rest of ViewController implementation.
// v3 #import "GAITrackedViewController.h" @implementation AboutViewController - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; self.screenName = @"About Screen"; } // ... Rest of ViewController implementation.
- เลิกใช้งานโหมดแก้ไขข้อบกพร่องแล้ว โปรดใช้
Logger
แทน// v2 (Old) [GAI sharedInstance].debug = YES;
// v3 [[GAI sharedInstance].logger setLogLevel:kGAILogLevelVerbose];
- นำพร็อพเพอร์ตี้
GAI.useHttp
ออกแล้ว หากต้องการส่ง Hit โดยใช้ HTTP แทน HTTPS เริ่มต้น ให้ตั้งค่าพารามิเตอร์kGAIUseSecure
ในGAITracker
แต่ละรายการแทน// v2 (Old) // AppDelegate.m #import AppDelegate.h #import GAI.h - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { static NSString const *kGaPropertyId = @"UA-XXXX-Y"; id
tracker = [[GAI sharedInstance] trackerWithTrackingId:kGaPropertyId]; // Send hits using HTTP (default=HTTPS). tracker.useHttps = NO; } // v3 // AppDelegate.m #import AppDelegate.h #import GAI.h - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { static NSString const *kGaPropertyId = @"UA-XXXX-Y"; id
tracker = [[GAI sharedInstance] trackerWithTrackingId:kGaPropertyId]; // Send hits using HTTP (default=HTTPS). [tracker set:kGAIUseSecure value:[@NO stringValue]]; } - SDK v3 จะไม่เริ่มเซสชันใหม่โดยอัตโนมัติเมื่อแอปเปิดขึ้นอีกต่อไป หากต้องการคงลักษณะการทำงานนี้จากเวอร์ชัน 2 ไว้ คุณจะต้องใช้ตรรกะการควบคุมเซสชันของคุณเองเมื่อผู้ใช้เริ่มต้นแอป ดังนี้
- SDK จะไม่มีการตั้งค่าการเลือกไม่ใช้ระดับแอปอีกต่อไป และต้องตั้งค่าทุกครั้งที่เปิดแอป (ค่าเริ่มต้นคือ
NO
) ดูข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าการเลือกไม่ใช้ระดับแอปพลิเคชัน
// AppDelegate.m #import AppDelegate.h #import GAI.h - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { static NSString const *kGaPropertyId = @"UA-XXXX-Y"; idtracker = [[GAI sharedInstance] trackerWithTrackingId:kGaPropertyId]; // CAUTION: Setting session control directly on the tracker persists the // value across all subsequent hits, until it is manually set to null. // This should never be done in normal operation. // // [tracker set:kGAISessionControl value:@"start"]; // Instead, send a single hit with session control to start the new session. [tracker send:[[[GAIDictionaryBuilder createEventWithCategory:@"UX" action:@"appstart" label:nil value:nil] set:@"start" forKey:kGAISessionControl] build]];
ข้อมูลอ้างอิง
ส่วนต่อไปนี้ให้ตัวอย่างอ้างอิงวิธีตั้งค่าและส่งข้อมูลโดยใช้ SDK เวอร์ชัน 3
การส่งข้อมูลโดยใช้พจนานุกรมใน v3
ใน V3 ระบบจะส่งข้อมูลโดยใช้เมธอด send:
เดียวซึ่งจะนำ NSDictionary
ของช่องและค่าของ Google Analytics มาใช้เป็นอาร์กิวเมนต์ คลาสยูทิลิตี GAIDictionaryBuilder
มีไว้เพื่อลดความซับซ้อนของกระบวนการสร้าง Hit ดังนี้
id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker]; [tracker set:kGAIScreenName value:@"Home Screen"]; // Previous V3 SDK versions. // [tracker send:[[GAIDictionaryBuilder createAppView] setValue:@"Premium" // Creates a Map of hit type 'AppView' (screenview) and set any additional fields. // forKey:[customDimensionForIndex:1] build]; // Build and return the dictionary to the send method. // SDK Version 3.08 and up. [tracker send:[[GAIDictionaryBuilder createScreenView] setValue:@"Premium" // Creates a Map of hit type 'ScreenView' and set any additional fields. forKey:[customDimensionForIndex:1] build]; // Build and return the dictionary to the send method.
คุณใช้คลาส GAIDictionaryBuilder
เพื่อสร้างประเภท Hit ใดก็ได้ที่รองรับ เช่น เหตุการณ์
id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker]; [tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"ui_action" // Event category (required) action:@"button_press" // Event action (required) label:@"play" // Event label value:nil] build]]; // Event value
ดูข้อมูลเพิ่มเติมเกี่ยวกับการส่งข้อมูลในเวอร์ชัน 3
การตั้งค่าข้อมูลเกี่ยวกับเครื่องมือติดตามใน v3
นอกจากนี้คุณยังตั้งค่าใน GAITracker
ได้โดยตรงโดยใช้เมธอด set:value:forKey
ค่าที่ตั้งไว้จะใช้กับ Hit ทั้งหมดที่ตามมาโดยตรงจาก GAITracker
:
// Values set directly on a tracker apply to all subsequent hits. [tracker set:kGAIScreenName value:@"Home Screen"]; // This screenview hit will include the screen name "Home Screen". // [tracker send:[[GAIDictionaryBuilder createAppView] build]]; // Previous V3 SDK versions. [tracker send:[[GAIDictionaryBuilder createScreenView] build]]; // SDK Version 3.08 and up. // And so will this event hit. [tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"ui_action" action:@"button_press" label:@"play" value:nil] build]];
หากต้องการล้างค่าที่ตั้งไว้ใน GAITracker
ให้ตั้งค่าพร็อพเพอร์ตี้เป็น nil
ดังนี้
// Clear the previously-set screen name value. [tracker set:kGAIScreenName value:nil]; // Now this event hit will not include a screen name value. [tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"ui_action" action:@"button_press" label:@"play" value:nil] build]];