Google Analytics SDK สำหรับ iOS - การย้ายข้อมูลไปยัง v3

คู่มือนี้อธิบายวิธีอัปเกรด 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

  1. แทนที่วิธีอำนวยความสะดวกทั้ง 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.
    
  2. เราได้นำการจัดการเซสชันฝั่งไคลเอ็นต์โดยอัตโนมัติออกจากเวอร์ชัน 3 แล้ว คุณตั้งค่าระยะหมดเวลาของเซสชันได้ในอินเทอร์เฟซการจัดการ และค่าเริ่มต้นคือ 30 นาที คุณยังสามารถเริ่มและหยุดเซสชันด้วยตนเองได้โดยใช้พารามิเตอร์ sessionControl ดูข้อมูลเพิ่มเติมเกี่ยวกับการจัดการเซสชันในเวอร์ชัน 3

  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.
    
  4. เลิกใช้งานโหมดแก้ไขข้อบกพร่องแล้ว โปรดใช้ Logger แทน
    // v2 (Old)
    [GAI sharedInstance].debug = YES;
    
    // v3
    [[GAI sharedInstance].logger setLogLevel:kGAILogLevelVerbose];
    
  5. นำพร็อพเพอร์ตี้ 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]];
    
    }
    
  6. SDK v3 จะไม่เริ่มเซสชันใหม่โดยอัตโนมัติเมื่อแอปเปิดขึ้นอีกต่อไป หากต้องการคงลักษณะการทำงานนี้จากเวอร์ชัน 2 ไว้ คุณจะต้องใช้ตรรกะการควบคุมเซสชันของคุณเองเมื่อผู้ใช้เริ่มต้นแอป ดังนี้
  7. // 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];
    
        // 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]];
    
    
  8. SDK จะไม่มีการตั้งค่าการเลือกไม่ใช้ระดับแอปอีกต่อไป และต้องตั้งค่าทุกครั้งที่เปิดแอป (ค่าเริ่มต้นคือ NO) ดูข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าการเลือกไม่ใช้ระดับแอปพลิเคชัน

ข้อมูลอ้างอิง

ส่วนต่อไปนี้ให้ตัวอย่างอ้างอิงวิธีตั้งค่าและส่งข้อมูลโดยใช้ 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]];

ดูข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าข้อมูลในเวอร์ชัน 3