Übersicht
Eine Klasse, bei der es sich um die Implementierung von Google Tag Manager (GTM) für Mobilgeräte handelt.
Verwendungsbeispiel:
TAGContainer *container =
[[TAGManager instance] openContainerById:myContainerId];
NSString *value = [container stringForKey:@"myKey"];TAGDataLayer *dataLayer = [[TAGManager instance] dataLayer]; [dataLayer push:@{@"event": @"openScreen", @"screenName": @"Main Page"}];
Ein Container ist eine Sammlung von Makros, Regeln und Tags. Es wird in der Google Tag Manager-Anwendung (http://www.google.com/tagmanager) erstellt und erhält eine Container-ID. Diese Container-ID wird in dieser API verwendet.
Die Klasse TAGContainer bietet Methoden zum Abrufen von Makrowerten anhand des Makronamens. Die Routinen booleanForKey: (TAGContainer), doubleForKey: (TAGContainer), int64ForKey: (TAGContainer) und stringForKey: (TAGContainer) geben abhängig von den Regeln, die mit diesem Makro im Container verknüpft sind, den aktuellen Wert für den Namen des Werterfassungs-Makros zurück.
Angenommen, Ihr Container enthält ein Werterfassungsmakro mit dem Schlüssel „speed“. deren Wert 32 ist und die Aktivierungsregel ist "Sprache" ist "en"; und ein weiteres Werterfassungsmakro mit dem Schlüssel „speed“, deren Wert 45 ist und die Aktivierungsregel ist, Sprache ist nicht "en" ist, führen Sie den folgenden Aufruf aus:
[container longForKey:@"speed"]
gibt entweder 32 zurück, wenn die aktuelle Sprache des Geräts Englisch ist, andernfalls 45.
Die Datenschicht ist eine Karte mit allgemeinen Informationen zur Anwendung. Die Klasse TAGDataLayer bietet Methoden zum Übertragen von Daten aus der Datenschicht und zum Abrufen von Daten. Wenn Sie einen event-Schlüssel an die Datenschicht senden, werden Tags ausgelöst, die diesem Ereignis entsprechen.
Eine Anfangsversion des Containers ist mit der Anwendung gebündelt. Sie sollte als Ressource im Bundle mit dem Namen containerId platziert werden, wobei containerId dieselbe Container-ID ist, die Sie in dieser API verwenden. Wenn Sie openContainerById:callback: (TAGManager) aufrufen, wird der Container mit diesen gebündelten Regeln/Tags/Makros zurückgegeben. Sie erstellen den Container in der Benutzeroberfläche und laden ihn über die Schaltfläche „Herunterladen“ herunter.
Sie können den Container in der UI ändern und eine neue Version veröffentlichen. In diesem Fall wird die neue Version abgerufen, wenn die mobile App das nächste Mal den Container aus dem Netzwerk aktualisiert (derzeit alle zwölf Stunden). Wenn Sie eine der get...-Routinen aufrufen, wird der Wert anhand der neuesten Regeln berechnet.
Der heruntergeladene Container wird lokal gespeichert. Wenn Sie openContainerById:callback: (TAGManager) aufrufen, wird zuerst der Standardcontainer und anschließend asynchron jeder gespeicherte Container geladen. Wenn keine gefunden wird oder älter als 12 Stunden ist, wird versucht, eine neuere Version aus dem Netzwerk abzurufen. Sie können den Status dieser asynchronen Ladevorgänge ermitteln, indem Sie TAGContainerCallback an openContainerById:callback: (TAGManager) übergeben.
Manchmal müssen Sie den Container blockieren, bis entweder ein nicht standardmäßiger Container oder ein neuerer Container verfügbar ist. Dazu können Sie die Callbacks in openContainerById:callback: (TAGManager) verwenden oder TAGContainerOpener verwenden.
Wenn Sie den Container nicht mehr benötigen, rufen Sie close (TAGContainer) auf.
Funktionen für öffentliche Mitglieder | |
| (TAGContainer *) | – openContainerById:callback: |
| Gibt einen Container zurück. | |
| (TAGContainer *) | – getContainerById: |
Gibt den Container zurück, der mit dem angegebenen containerId verknüpft ist. gibt nil zurück, wenn der Container nicht bereits geöffnet ist. | |
| (BOOL) | – previewWithUrl: |
| Zeigt eine Vorschau der Anwendung über die eingegebene URL an. | |
| (nicht zutreffend) | - Versand |
| Leitet jeglichen ausstehenden Netzwerkverkehr aus, der von Tags (beliebige Pixel, Analyse-Beacons usw.) generiert wurde. | |
| (nicht zutreffend) | – dispatchWithCompletionHandler: |
| Löst den nächsten ausstehenden Netzwerk-Traffic in der Warteschlange aus und ruft completeHandler auf, wenn die Anfrage entweder gesendet wurde (mit Rückgabe von kTAGDispatchGood) oder ein Fehler aufgetreten ist (mit Rückgabe von kTAGDispatchError). | |
Statische öffentliche Mitgliederfunktionen | |
| (TAGManager *) | + Instanz |
| Ruft die Singleton-Instanz der TAGManager-Klasse ab und erstellt sie gegebenenfalls. | |
Eigenschaften | |
| id [ID] TAGLogger > | Protokollierung |
| Der LOG-ger, der für das Google Tag Manager SDK verwendet werden soll. | |
| TAGRefreshMode | refreshMode |
| Der für das Google Tag Manager SDK verwendete Aktualisierungsmodus. | |
| TAGDataLayer * | dataLayer |
| Rufen Sie die Methode push: (TAGDataLayer) auf, um Ereignisse und andere Daten per Push zu übertragen. | |
| NSTimeInterval | dispatchInterval |
| Wenn dieser Wert positiv ist, werden die Verfolgungsinformationen automatisch alle "Dispatch-Intervall"-Sekunden gesendet. | |
Dokumentation zu Mitgliederfunktionen
| – (TAGContainer *) openContainerById: | (NSString *) | containerId | |
| Callback: | (id< TAGContainerCallback >) | Callback | |
Gibt einen Container zurück.
Normalerweise ist der zurückgegebene Container leer. Das Laden erfolgt jedoch asynchron. Der zurückgegebene Container kann also vor oder nach der Rückgabe aktualisiert werden. Es kann auch passieren, dass er nie aktualisiert wird, wenn beispielsweise während der Lebensdauer des Containers keine Netzwerkverbindung besteht.
Der Callback wird aufgerufen, wenn verschiedene Dinge für den Container geschehen. openContainerById:callback: versucht mindestens, eine gespeicherte Version des Containers zu laden. Wenn keine gespeicherte Version vorhanden ist oder die gespeicherte Version veraltet ist, wird versucht, sie aus dem Netzwerk zu laden.
Wenn openContainerById:callback: für eine bestimmte containerId ein zweites Mal aufgerufen wird, wird nil zurückgegeben, es sei denn, der zuvor geöffnete Container wurde bereits geschlossen.
- Parameter:
-
containerId Die ID des zu öffnenden Containers. callback Ein Objekt, dessen verschiedene Methoden während des Ladevorgangs aufgerufen werden. Beachten Sie, dass die Methoden von verschiedenen Threads aus aufgerufen werden können. Außerdem können sie aufgerufen werden, bevor openContainerById:callback: zurückkehrt.
- Gibt zurück:
- Der geöffnete Container.
| – (TAGContainer *) getContainerById: | (NSString *) | containerId |
Gibt den Container zurück, der mit dem angegebenen containerId verknüpft ist. gibt nil zurück, wenn der Container nicht bereits geöffnet ist.
| – (BOOL) previewWithUrl: | (NSURL *) | url |
Zeigt eine Vorschau der Anwendung über die eingegebene URL an.
Die gültige URL muss mit Folgendem beginnen:
tagmanager.c.<app_name>://preview/p?id=
wobei <app_name> ist der Name der Anwendung.
- Parameter:
-
URL Die Vorschau-URL.
- Gibt zurück:
- JA, wenn die URL eine gültige Vorschau-URL für Tag Manager ist.
| + (TAGManager *) Instanz |
Ruft die Singleton-Instanz der TAGManager-Klasse ab und erstellt sie gegebenenfalls.
- Gibt zurück:
- Die Singleton-Instanz von TAGManager.
| - (void) Versand |
Leitet jeglichen ausstehenden Netzwerkverkehr aus, der von Tags (beliebige Pixel, Analyse-Beacons usw.) generiert wurde.
| – (void) dispatchWithCompletionHandler: | (TAGDispatchResult) | completionHandler |
Löst den nächsten ausstehenden Netzwerk-Traffic in der Warteschlange aus und ruft "completeHandler" auf, wenn die Anfrage entweder gesendet wurde (mit Rückgabe von kTAGDispatchGood) oder ein Fehler aufgetreten ist (mit Rückgabe von kTAGDispatchError).
Falls keine Netzwerkverbindung besteht oder keine Daten zum Senden vorhanden sind, wird kTAGDispatchNoData zurückgegeben.
Der Aufruf dieser Methode mit einem nil completeHandler ist dasselbe wie das Aufrufen von Dispatch.
Diese Methode kann in iOS 7.0 oder höher für das Abrufen von Hintergrunddaten verwendet werden.
Es wäre sinnvoll, diese Methode aufzurufen, wenn die Anwendung beendet wird, um die Übermittlung von nicht übermittelten Verfolgungsinformationen einzuleiten.
Property-Dokumentation
- (id<TAGLogger>) Protokollierung [read, write, assign] |
Der LOG-ger, der für das Google Tag Manager SDK verwendet werden soll.
Standardmäßig werden in Google Tag Manager Fehler- und Warnmeldungen protokolliert. Informationen, Fehlerbehebungen und ausführliche Meldungen werden ignoriert. Sie können Ihre eigene benutzerdefinierte Protokollierung verwenden, indem Sie diese Eigenschaft festlegen.
– (TAGRefreshMode) refreshMode [read, write, assign] |
Der für das Google Tag Manager SDK verwendete Aktualisierungsmodus.
Wenn Sie diesen Parameter auf kTAGRefreshModeDefaultContainer festlegen, kann für die Aktualisierungsmethode nur der Standardcontainer zu Entwicklungszwecken verwendet werden. Der Standardwert ist kTAGRefreshModeStandard.
– (TAGDataLayer*) dataLayer [read, assign] |
Rufen Sie die Methode push: (TAGDataLayer) auf, um Ereignisse und andere Daten per Push zu übertragen.
– (NSTimeInterval) dispatchInterval [read, write, assign] |
Wenn dieser Wert positiv ist, werden die Verfolgungsinformationen automatisch alle "Dispatch-Intervall"-Sekunden gesendet.
Andernfalls müssen die Informationen zur Sendungsverfolgung manuell durch den Aufruf der Weiterleitung gesendet werden.
Die Standardeinstellung ist „120“. Das bedeutet, dass automatisch alle 120 Sekunden Trackinginformationen gesendet werden.