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:
- Ganti semua metode praktis
send<hit-type>
dengan metodesend:
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.
- 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. - Pengguna
Pelacakan Layar Otomatis harus mengganti referensi ke
GAITrackedViewController.trackedViewName
denganGAITrackedViewController.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.
- Mode debug tidak digunakan lagi -- gunakan
Logger
sebagai gantinya:// v2 (Old) [GAI sharedInstance].debug = YES;
// v3 [[GAI sharedInstance].logger setLogLevel:kGAILogLevelVerbose];
- Properti
GAI.useHttp
telah dihapus -- untuk mengirim hit menggunakan HTTP, bukan HTTPS default, tetapkan parameterkGAIUseSecure
di setiapGAITracker
:// 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 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:
- 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.
// 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]];
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]];