Google Analytics SDK untuk iOS - Bermigrasi ke v3

Panduan ini menjelaskan cara mengupgrade Google Analytics SDK untuk iOS ke V3.

Sekilas: Yang Baru di V3

API di V3 telah difaktorkan ulang agar lebih konsisten di seluruh platform native dan web. Semua pengguna V2 harus memperhatikan perubahan ini:

  • Kini hit dikirim menggunakan satu metode send:(NSDictionary *)params.
  • Pengelolaan sesi sisi klien Otomatis telah dihapus. Waktu tunggu sesi dapat dikonfigurasi di antarmuka pengelolaan. Pelajari lebih lanjut.
  • Mode debug telah diganti dengan Logger
  • Baru: Flag dryRun telah ditambahkan untuk mencegah data yang dikirim muncul dalam laporan.
  • Baru: Dukungan untuk mata uang lokal telah ditambahkan untuk iOS.

Untuk mengetahui daftar lengkap perubahan, lihat Log perubahan.

Sebelum Memulai

Sebelum memulai upgrade ke v3, Anda memerlukan hal berikut:

Jalur Upgrade

Untuk memulai, pilih jalur upgrade ke v3 dari implementasi Anda saat ini:

v1.x hingga v3

Sebaiknya pengguna Google Analytics iOS SDK v1.x mengikuti Panduan Memulai v3 untuk mulai menggunakan v3.

v2.x hingga v3

Pengguna v2.x harus mengikuti langkah-langkah berikut untuk mengupgrade ke v3:

  1. Ganti semua metode praktis send<hit-type> dengan metode send: baru:
    // 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. Pengelolaan sesi sisi klien otomatis telah dihapus di v3. Periode waktu tunggu sesi dapat disetel di antarmuka pengelolaan dan setelan defaultnya adalah 30 menit. Sesi juga dapat dimulai dan dihentikan secara manual menggunakan parameter sessionControl. Pelajari pengelolaan sesi di v3 lebih lanjut.

  3. Pengguna Pelacakan Layar Otomatis harus mengganti referensi ke GAITrackedViewController.trackedViewName dengan 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. Mode debug tidak digunakan lagi -- gunakan Logger sebagai gantinya:
    // v2 (Old)
    [GAI sharedInstance].debug = YES;
    
    // v3
    [[GAI sharedInstance].logger setLogLevel:kGAILogLevelVerbose];
    
  5. Properti GAI.useHttp telah dihapus -- untuk mengirim hit menggunakan HTTP, bukan HTTPS default, tetapkan parameter kGAIUseSecure di setiap 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 tidak lagi otomatis memulai sesi baru saat aplikasi terbuka. Jika ingin mempertahankan perilaku ini dari v2, Anda harus mengimplementasikan logika kontrol sesi Anda sendiri saat pengguna memulai aplikasi:
  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. Setelan ketidakikutsertaan tingkat aplikasi tidak lagi dipertahankan oleh SDK dan harus ditetapkan setiap kali aplikasi diluncurkan (default-nya adalah NO). Pelajari lebih lanjut cara menetapkan ketidakikutsertaan tingkat aplikasi.

Referensi

Bagian berikut memberikan contoh referensi tentang cara menetapkan dan mengirim data menggunakan SDK V3.

Mengirim Data menggunakan Kamus di v3

Di V3, data dikirim menggunakan satu metode send: yang mengambil NSDictionary kolom dan nilai Google Analytics sebagai argumen. Class utilitas GAIDictionaryBuilder disediakan untuk menyederhanakan proses pembuatan 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.

Class GAIDictionaryBuilder dapat digunakan untuk membuat salah satu jenis hit yang didukung, seperti peristiwa:

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

Pelajari lebih lanjut cara Mengirim Data di v3.

Menetapkan Data di Pelacak di v3

Nilai juga dapat ditetapkan secara langsung pada GAITracker menggunakan metode set:value:forKey. Nilai yang ditetapkan secara langsung akan diterapkan ke semua hit berikutnya dari 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]];

Untuk menghapus nilai yang telah ditetapkan pada GAITracker, tetapkan properti ini ke 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]];

Pelajari lebih lanjut cara Menetapkan Data di v3