In diesem Leitfaden wird beschrieben, wie Sie ein Upgrade auf Version 3 des Google Analytics SDK for iOS ausführen.
Live-Anzeige: Neuerungen in V3
Die APIs in V3 wurden refaktoriert, damit sie auf nativen Plattformen und Webplattformen einheitlicher sind. Alle Nutzer der Version 2 sollten diese Änderungen beachten:
- Treffer werden jetzt mit einer einzigen
send:(NSDictionary *)params
-Methode gesendet. - Die automatische clientseitige Sitzungsverwaltung wurde entfernt. Die Zeitüberschreitung für Sitzungen kann stattdessen in der Verwaltungsoberfläche konfiguriert werden. Weitere Informationen
- Der Debug-Modus wurde durch „
Logger
“ ersetzt - Neu: Das Flag
dryRun
wurde hinzugefügt, um zu verhindern, dass weitergeleitete Daten in Berichten angezeigt werden. - Neu: Für iOS wurde die Unterstützung lokaler Währungen hinzugefügt.
Eine vollständige Liste der Änderungen finden Sie im Änderungsprotokoll.
Vorbereitung
Für das Upgrade auf v3 ist Folgendes erforderlich:
- Eine für Universal Analytics aktivierte Property und ein App-Profil
- Das Google Analytics SDK für iOS v3
Upgrade-Pfade
Wählen Sie zuerst einen Upgradepfad zu v3 aus Ihrer aktuellen Implementierung aus:
Version 1.x bis Version 3
Für den Einstieg in Version 3 des Google Analytics iOS SDK (Version 1.x) wird empfohlen, dem Startleitfaden zu Version 3 zu folgen.
Version 2.x bis Version 3
v2.x-Nutzer sollten wie folgt ein Upgrade auf v3 durchführen:
- Ersetzen Sie alle
send<hit-type>
-Convenience-Methoden durch die neuesend:
-Methode:// 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.
- Die automatische, clientseitige Sitzungsverwaltung wurde in Version 3 entfernt. Das Zeitlimit für Sitzungen kann in der Verwaltungsoberfläche festgelegt werden. Die Standardeinstellung beträgt 30 Minuten.
Sitzungen können mit dem Parameter
sessionControl
auch manuell gestartet und beendet werden. Weitere Informationen zur Sitzungsverwaltung in Version 3. - Nutzer des
automatischen Bildschirm-Trackings sollten Verweise auf
GAITrackedViewController.trackedViewName
durchGAITrackedViewController.screenName
ersetzen:// 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.
- Der Debug-Modus wurde eingestellt. Verwenden Sie stattdessen
Logger
:// v2 (Old) [GAI sharedInstance].debug = YES;
// v3 [[GAI sharedInstance].logger setLogLevel:kGAILogLevelVerbose];
- Die Eigenschaft
GAI.useHttp
wurde entfernt. Um Treffer über HTTP anstelle des Standard-HTTPS zu senden, lege stattdessen den ParameterkGAIUseSecure
für jedeGAITracker
fest:// 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]]; } - Das v3 SDK startet nicht mehr automatisch eine neue Sitzung beim Öffnen der App. Wenn Sie dieses Verhalten aus v2 beibehalten möchten, müssen Sie beim Starten der Anwendung durch einen Nutzer eine eigene Sitzungssteuerungslogik implementieren:
- Die Deaktivierungseinstellung auf App-Ebene wird nicht mehr vom SDK beibehalten und muss bei jedem Start der App festgelegt werden (standardmäßig
NO
). Weitere Informationen zum Deaktivieren auf Anwendungsebene.
// 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]];
Referenz
Die folgenden Abschnitte enthalten Referenzbeispiele zum Festlegen und Senden von Daten mit dem V3 SDK.
Daten über Wörterbücher in Version 3 senden
In V3 werden Daten mit einer einzigen send:
-Methode gesendet, die ein NSDictionary
aus Google Analytics-Feldern und -Werten als Argument verwendet. Es wird eine GAIDictionaryBuilder
-Dienstprogrammklasse bereitgestellt, um das Erstellen von Treffern zu vereinfachen:
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.
Mit der Klasse GAIDictionaryBuilder
können beliebige unterstützte Treffertypen erstellt werden, z. B. Ereignisse:
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
Weitere Informationen zum Senden von Daten in Version 3
Daten auf dem Tracker in v3 festlegen
Werte können mithilfe der Methode set:value:forKey
auch direkt in einem GAITracker
festgelegt werden.
Die direkt festgelegten Werte werden auf alle nachfolgenden Treffer aus dieser GAITracker
angewendet:
// 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]];
Wenn du einen Wert löschen möchtest, der für GAITracker
festgelegt wurde, setze das Attribut auf 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]];