Z tego przewodnika dowiesz się, jak zaktualizować pakiet SDK Google Analytics na iOS do wersji 3.
W skrócie: co nowego w wersji 3
Przekształcono interfejsy API w wersji 3, aby były bardziej spójne na platformach natywnych i internetowych. Wszyscy użytkownicy wersji 2 powinni zwrócić uwagę na te zmiany:
- Działania są teraz wysyłane za pomocą pojedynczej metody
send:(NSDictionary *)params
. - Automatyczne zarządzanie sesjami po stronie klienta zostało usunięte. Limit czasu sesji można zamiast tego skonfigurować w interfejsie zarządzania. Więcej informacji
- Tryb debugowania został zastąpiony przez zasadę
Logger
- Nowość: dodano flagę
dryRun
, aby zapobiec wyświetlaniu wysyłanych danych w raportach. - Nowość: dodaliśmy obsługę walut lokalnych w iOS.
Pełną listę zmian znajdziesz w historii zmian.
Zanim zaczniesz
Przed rozpoczęciem aktualizacji do wersji v3 potrzebne są:
- Usługa z włączoną Universal Analytics i profil aplikacji
- Pakiet Google Analytics SDK na iOS w wersji 3
Ścieżki uaktualnienia
Aby rozpocząć, wybierz ścieżkę uaktualnienia do wersji 3 z bieżącej implementacji:
Wersje od 1.x do 3
Zalecamy, aby użytkownicy pakietu Google Analytics iOS SDK w wersji 1.x zaczęli korzystać z wersji 3, postępując zgodnie z wprowadzeniem do wersji 3.
Wersje 2.x do 3
Użytkownicy wersji 2.x powinni wykonać następujące czynności, aby przejść na wersję 3:
- Zastąp wszystkie wygodne metody
send<hit-type>
nowąsend:
metodą:// 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.
- Automatyczne zarządzanie sesjami po stronie klienta zostało usunięte w wersji 3. Limit czasu sesji możesz ustawić w interfejsie zarządzania. Domyślny czas to 30 minut.
Sesje można też uruchamiać i zatrzymywać ręcznie za pomocą parametru
sessionControl
. Dowiedz się więcej o zarządzaniu sesjami w wersji 3. - Użytkownicy funkcji
automatycznego śledzenia ekranu powinni zastąpić odniesienia do
GAITrackedViewController.trackedViewName
wartością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.
- Tryb debugowania został wycofany – użyj zamiast niego trybu
Logger
:// v2 (Old) [GAI sharedInstance].debug = YES;
// v3 [[GAI sharedInstance].logger setLogLevel:kGAILogLevelVerbose];
- Usunięto właściwość
GAI.useHttp
. Aby wysyłać działania przez HTTP zamiast domyślnego HTTPS, ustaw parametrkGAIUseSecure
dla każdej wartościGAITracker
:// 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]]; } - Pakiet SDK w wersji 3 nie rozpoczyna już automatycznie nowej sesji po otwarciu aplikacji. Aby zachować takie zachowanie jak w wersji 2, musisz wdrożyć własną logikę kontroli sesji, gdy użytkownik uruchamia aplikację:
- Ustawienie rezygnacji na poziomie aplikacji nie jest już utrzymywane przez pakiet SDK i musi być ustawione przy każdym uruchomieniu aplikacji (wartość domyślna to
NO
). Więcej informacji o ustawianiu rezygnacji na poziomie aplikacji
// 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]];
Dokumentacja
W kolejnych sekcjach znajdziesz przykłady konfigurowania i wysyłania danych za pomocą pakietu SDK V3.
Wysyłanie danych przy użyciu słowników w wersji 3
W wersji 3 dane są wysyłane za pomocą pojedynczej metody send:
, która wykorzystuje jako argument NSDictionary
pola i wartości Google Analytics. Aby uprościć proces tworzenia działań, dostępna jest klasa narzędziowa GAIDictionaryBuilder
:
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.
Klasy GAIDictionaryBuilder
można używać do tworzenia obsługiwanych typów działań, takich jak zdarzenia:
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
Więcej informacji o wysyłaniu danych w wersji 3
Ustawianie danych w trackerze w wersji 3
Wartości można też ustawić bezpośrednio w elemencie GAITracker
za pomocą metody set:value:forKey
.
Wartości ustawione bezpośrednio są stosowane do wszystkich kolejnych działań pochodzących z tego zasobu (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]];
Aby usunąć wartość ustawioną w GAITracker
, ustaw tę właściwość na 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]];