TAGManager-Klassenreferenz


Überblick

Eine Klasse, die die mobile Implementierung von Google Tag Manager (GTM) darstellt.

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. Sie wird in der GTM-Anwendung (http://www.google.com/tagmanager) erstellt und erhält eine Container-ID. Diese Container-ID wird in dieser API verwendet.

Die Klasse TAGContainer stellt Methoden zum Abrufen von Makrowerten anhand des Makronamens bereit. Die Routinen booleanForKey: (TAGContainer), doubleForKey: (TAGContainer), int64ForKey: (TAGContainer), stringForKey: (TAGContainer) geben den aktuellen Wert für den Namen des Werterfassungsmakros zurück, abhängig von den Regeln, die diesem Makro im Container zugeordnet sind.

Beispiel: Wenn Ihr Container ein Werterfassungsmakro mit dem Schlüssel „speed“ mit dem Wert 32 und die Aktivierungsregel „Language“ ist „en“ und ein weiteres Werterfassungsmakro mit dem Schlüssel „speed“ mit dem Wert 45 und die Aktivierungsregel „Language“ nicht „en“ enthält, führen Sie den folgenden Aufruf aus:

     [container longForKey:@"speed"]
 

gibt entweder 32 zurück, wenn die aktuelle Sprache des Geräts Englisch ist, oder 45, wenn dies nicht der Fall ist.

Die Datenschicht ist eine Karte mit allgemeinen Informationen zur App. Die Klasse TAGDataLayer bietet Methoden zum Übertragen und Abrufen von Daten aus der Datenschicht. Wenn ein event-Schlüssel an die Datenschicht gesendet wird, werden Tags ausgelöst, die diesem Ereignis entsprechen.

Eine anfängliche Version 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 werden. 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 verwenden die Schaltfläche „Herunterladen“, um ihn herunterzuladen.

Sie können den Container in der Benutzeroberfläche ändern und eine neue Version veröffentlichen. In diesem Fall erhält die mobile App bei der nächsten Aktualisierung des Containers aus dem Netzwerk (derzeit alle zwölf Stunden) diese neue Version. 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 alle gespeicherten Container asynchron geladen. Wenn keine gefunden wird oder wenn die Software ä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 einen TAGContainerCallback an openContainerById:callback: (TAGManager) übergeben.

Manchmal möchten Sie den Container blockieren, bis entweder ein nicht standardmäßiger Container oder ein aktueller, neuer Container verfügbar ist. Verwenden Sie dazu die Callbacks in openContainerById:callback: (TAGManager) oder verwenden Sie TAGContainerOpener.

Wenn Sie mit einem Container fertig sind, rufen Sie close (TAGContainer) auf.

Öffentliche Mitgliederfunktionen

(TAGContainer *)openContainerById:callback:
 Gibt einen Container zurück.
(TAGContainer *)getContainerById:
 Gibt den Container zurück, der mit dem angegebenen containerId verknüpft ist. Wenn der Container noch nicht geöffnet ist, wird nil zurückgegeben.
(BOOL) previewWithUrl:
 Zeigt eine Vorschau der App mit der Eingabe-URL an.
(void) - Versand
 Sendet den gesamten ausstehenden Netzwerkverkehr, der von Tags generiert wird (beliebige Pixel, Analytics-Beacons usw.).
(void) dispatchWithCompletionHandler:
 Löst den nächsten ausstehenden Netzwerkverkehr in der Warteschlange aus, indem der Abschluss-Handler aufgerufen wird, wenn die Anfrage entweder gesendet wurde (kTAGDispatchGood) oder ein Fehler aufgetreten ist (kTAGDispatchError zurückgegeben).

Statische Funktionen für öffentliche Mitglieder

(TAGManager *)+ Instanz
 Ruft die Singleton-Instanz der TAGManager-Klasse ab und erstellt sie bei Bedarf.

Attribute

id< TAGLogger > logger
 Der Logger, der für das Google Tag Manager SDK verwendet werden soll
TAGRefreshModerefreshMode
 Der Aktualisierungsmodus, der für das Google Tag Manager SDK verwendet wird.
TAGDataLayerdataLayer
 Rufen Sie die Methode push: (TAGDataLayer) auf, um Ereignisse und andere Daten zu übertragen.
NSTimeIntervaldispatchInterval
 Wenn dieser Wert positiv ist, werden Verfolgungsinformationen automatisch alle dispatchInterval 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, aber das Laden erfolgt asynchron. Der zurückgegebene Container kann also vor oder nach der Rückgabe aktualisiert werden. Er kann aber auch nie aktualisiert werden, wenn beispielsweise während der Lebensdauer des Containers keine Netzwerkverbindung besteht.

Ein Callback wird aufgerufen, wenn verschiedene Vorgänge für den Container passieren. 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 einen bestimmten containerId ein zweites Mal aufgerufen wird, wird nil zurückgegeben, sofern der zuvor geöffnete Container noch nicht geschlossen wurde.

Parameter:
containerIdDie ID des zu öffnenden Containers.
callbackEin 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ückgegeben wird.
Gibt zurück:
Der geöffnete Container.
– (TAGContainer *) getContainerById: (NSString *) containerId

Gibt den Container zurück, der mit dem angegebenen containerId verknüpft ist. Wenn der Container noch nicht geöffnet ist, wird nil zurückgegeben.

– (BOOL) previewWithUrl: (NSURL *) URL

Zeigt eine Vorschau der App mit der Eingabe-URL an.

Eine gültige URL muss so beginnen:

 tagmanager.c.<app_name>://preview/p?id=

Dabei ist <app_name> der Name der Anwendung.

Parameter:
URLDie Vorschau-URL
Gibt zurück:
JA, wenn die URL eine gültige Tag Manager-Vorschau-URL ist.

Ruft die Singleton-Instanz der TAGManager-Klasse ab und erstellt sie bei Bedarf.

Gibt zurück:
Die Singleton-Instanz von TAGManager.
- (void) Versand

Sendet den gesamten ausstehenden Netzwerkverkehr, der von Tags generiert wird (beliebige Pixel, Analytics-Beacons usw.).

– (void) dispatchWithCompletionHandler: (TAGDispatchResult) completionHandler

Löst den nächsten ausstehenden Netzwerkverkehr in der Warteschlange aus, indem der Abschluss-Handler aufgerufen wird, wenn die Anfrage entweder gesendet wurde (kTAGDispatchGood) oder ein Fehler aufgetreten ist (kTAGDispatchError zurückgegeben).

Wenn keine Netzwerkverbindung besteht oder keine Daten zum Senden vorhanden sind, wird kTAGDispatchNoData zurückgegeben.

Der Aufruf dieser Methode mit einem Null-Abschluss-Handler entspricht dem Aufruf der Weiterleitung.

Diese Methode kann unter iOS 7.0 oder höher zum Abrufen von Hintergrunddaten verwendet werden.

Es empfiehlt sich, diese Methode beim Beenden der Anwendung aufzurufen, um mit der Übermittlung nicht übermittelter Tracking-Informationen zu beginnen.


Property-Dokumentation

- (id<TAGLogger>) logger [read, write, assign]

Der Logger, der für das Google Tag Manager SDK verwendet werden soll

Standardmäßig protokolliert Google Tag Manager Fehler-/Warnmeldungen und ignoriert Info-, Fehlerbehebungs- und ausführliche Meldungen. Du kannst deine eigene benutzerdefinierte Protokollierung verwenden, indem du diese Eigenschaft festlegst.

– (TAGRefreshMode) refreshMode [read, write, assign]

Der Aktualisierungsmodus, der für das Google Tag Manager SDK verwendet wird.

Wenn Sie diesen Wert auf kTAGRefreshModeDefaultContainer setzen, kann die Aktualisierungsmethode für Entwicklungszwecke nur den Standardcontainer verwenden. Der Standardwert ist kTAGRefreshModeStandard.

- (TAGDataLayer*) dataLayer [read, assign]

Rufen Sie die Methode push: (TAGDataLayer) auf, um Ereignisse und andere Daten zu übertragen.

– (NSTimeInterval) dispatchInterval [read, write, assign]

Wenn dieser Wert positiv ist, werden Verfolgungsinformationen automatisch alle dispatchInterval Sekunden gesendet.

Andernfalls müssen die Informationen zur Sendungsverfolgung manuell durch den Anruf bei der Weiterleitung gesendet werden.

Die Standardeinstellung ist „120“, was bedeutet, dass Tracking-Informationen automatisch alle 120 Sekunden gesendet werden.