In diesem Dokument wird beschrieben, wie Sie die Weiterleitung von Daten an Google Analytics mithilfe des Google Analytics SDK für iOS Version 3 verwalten können.
Überblick
Mit dem Google Analytics SDK for iOS erfasste Daten werden lokal gespeichert, bevor sie in einem separaten Thread an Google Analytics weitergeleitet werden.
Daten müssen bis 4:00 Uhr des folgenden Tages in der jeweiligen lokalen Zeitzone der jeweiligen Ansicht gesendet und empfangen werden. Daten, die später eingehen, werden nicht in Berichten angezeigt. Wenn sich ein Treffer beispielsweise lokal um 23:59 Uhr in der Warteschlange befindet, muss er innerhalb von vier Stunden bis 3:59 Uhr gesendet werden, damit er in Berichten berücksichtigt wird. Ein Treffer, der um 0:00 Uhr in die Warteschlange gestellt wurde, muss hingegen innerhalb von 28 Stunden gesendet werden, d.h. 03:59 Uhr des Folgetags, damit sie in den Berichten erscheinen.
Regelmäßige Disposition
Standardmäßig werden Daten alle zwei Minuten vom Google Analytics SDK for iOS gesendet.
// Set the dispatch interval in seconds. // 2 minutes (120 seconds) is the default value. [GAI sharedInstance].dispatchInterval = 120;
Wenn Sie einen negativen Wert festlegen, wird die regelmäßige Weiterleitung deaktiviert. Wenn Sie Daten an Google Analytics senden möchten, müssen Sie die manuelle Weiterleitung verwenden.
// Disable periodic dispatch by setting dispatch interval to a value less than 1. [GAI sharedInstance].dispatchInterval = 0;
Wenn ein Nutzer den Netzwerkzugriff verliert oder Ihre Anwendung schließt, während noch Treffer gesendet werden müssen, werden diese Treffer im lokalen Speicher beibehalten. Sie werden abgefertigt, wenn Ihre Anwendung das nächste Mal ausgeführt und die Weiterleitung aufgerufen wird.
Manuelle Weiterleitung
So können Sie Treffer manuell senden, z. B. wenn Sie wissen, dass die Gerätefunkschnittstelle bereits zum Senden anderer Daten verwendet wird:
[[GAI sharedInstance] dispatch];
Hintergrund-Weiterleitung
So aktivieren Sie die Hintergrundweiterleitung in iOS-Apps:
- Füge eine Property für
dispatchHandler
hinzu. - Implementiere die Methode
sendHitsInBackground
. -
Überschreiben Sie die Methode
applicationDidEnterBackground
. - Überschreiben Sie die Methode
applicationWillEnterForeground
.
Attribut für dispatchHandler
hinzufügen
Fügen Sie in der Implementierungsdatei (AppDelegate.m
) der Klasse AppDelegate
vor @implementation AppDelegate
das folgende Attribut hinzu:
@interface AppDelegate () @property(nonatomic, copy) void (^dispatchHandler)(GAIDispatchResult result); @end @implementation AppDelegate // ...
Methode sendHitsInBackground
implementieren
Implementieren Sie in der Klasse AppDelegate
die Methode sendHitsInBackground
, damit Treffer gesendet werden, wenn die App in den Hintergrund versetzt wird:
// This method sends any queued hits when the app enters the background. - (void)sendHitsInBackground { __block BOOL taskExpired = NO; __block UIBackgroundTaskIdentifier taskId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{ taskExpired = YES; }]; if (taskId == UIBackgroundTaskInvalid) { return; } __weak AppDelegate *weakSelf = self; self.dispatchHandler = ^(GAIDispatchResult result) { // Send hits until no hits are left, a dispatch error occurs, or // the background task expires. if (result == kGAIDispatchGood && !taskExpired) { [[GAI sharedInstance] dispatchWithCompletionHandler:weakSelf.dispatchHandler]; } else { [[UIApplication sharedApplication] endBackgroundTask:taskId]; } }; [[GAI sharedInstance] dispatchWithCompletionHandler:self.dispatchHandler]; }
Die Methode dispatchWithCompletionHandler
verwendet einen Vervollständigungsblock als Parameter und ruft diesen jedes Mal auf, wenn eine Anfrage mit einem oder mehreren Google Analytics-Beacons ausgeführt wurde.
Es wird ein Ergebnis zurückgegeben, das angibt, ob mehr Daten gesendet werden müssen und/oder ob die letzte Anfrage erfolgreich war. Mit dieser Methode können Sie das Versenden von Beacons effektiv verwalten, wenn die App in den Hintergrund versetzt wird.
Methode applicationDidEnterBackground
überschreiben
Überschreiben Sie die Methode applicationDidEnterBackground
in der Klasse AppDelegate
, um die Methode sendHitsInBackground
aufzurufen, die Treffer sendet, wenn die App in den Hintergrund versetzt wird:
- (void)applicationDidEnterBackground:(UIApplication *)application { [self sendHitsInBackground]; }
Methode applicationWillEnterForeground
überschreiben
Überschreiben Sie die Methode applicationWillEnterForeground
für die Klasse AppDelegate
, um das Weiterleitungsintervall wiederherzustellen. Beispiel:
- (void)applicationWillEnterForeground:(UIApplication *)application { // Restores the dispatch interval because dispatchWithCompletionHandler // has disabled automatic dispatching. [GAI sharedInstance].dispatchInterval = 120; }