TagManager

öffentliche Klasse TagManager

Dies ist die mobile Implementierung von Google Tag Manager (GTM). Verwendungsbeispiel:

 Container container = TagManager.getInstance(context).openContainer(myContainerId);
 String value = container.getString("myKey");

 DataLayer dataLayer = TagManager.getInstance(context).getDataLayer();
 dataLayer.push(DataLayer.mapOf("event", "openScreen", "screenName", "Main Page"));
Ein Container ist eine Sammlung von Makros, Tags und Regeln. Sie wird im GTM-Anwendung und wird mit einer Container-ID zugewiesen. Diese Container-ID wird in dieser API verwendet.

Die Klasse Container bietet Methoden zum Abrufen von Werten aus einem bestimmten Schlüssel. Die Abläufe getBoolean(String), getDouble(String), getLong(String), getString(String) geben den aktuellen Wert Wert für den Schlüssel eines Werterfassungsmakros, abhängig von den Regeln, die dem Container zugeordnet sind.

Wenn Ihr Container beispielsweise ein Werterfassungsmakro mit dem Schlüssel speed enthält, dessen Der Wert ist 32 und die Aktivierungsregel ist Language ist "en". und eine weitere Werterfassung mit dem Schlüssel speed, dessen Wert 45 ist, und die Aktivierungsregel ist Language ist nicht „en“, dann wird der folgende Aufruf ausgeführt:

 container.getLong("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 DataLayer bietet Methoden, um Daten per Push aus der Datenschicht abzurufen und daraus abzurufen. Wenn ein event-Schlüssel an die Datenschicht gesendet wird, werden Tags angezeigt, die mit diesem Ereignis übereinstimmen. zu feuern.

Eine Anfangsversion des Containers ist mit der Anwendung gebündelt. Es sollte als Asset mit dem Namen „tagmanager/containerId“ platziert, wobei containerId identisch ist Container-ID, die Sie in dieser API verwenden. Wenn Sie openContainer(String, Container.Callback) aufrufen, wird der Container mit diesen gebündelten Regeln/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 können Sie das nächste Mal, die mobile App den Container aus dem Netzwerk aktualisiert (derzeit alle 12 Stunden) wird diese neue Version abgerufen. Wenn Sie eine der get... -Routinen aufrufen, wird der Wert anhand der neuesten Regeln berechnet.

Der heruntergeladene Container wird lokal gespeichert. Wenn du openContainer(String, Container.Callback) anrufst, geschieht zuerst den Standardcontainer und lädt dann asynchron jeden gespeicherten Container. Wenn keiner der folgenden Werte ist: gefunden wurde oder älter als 12 Stunden ist, wird versucht, eine neuere Version aus dem Netzwerk abzurufen. Sie können den Status dieser asynchronen Ladevorgänge abrufen, indem Sie einen Container.Callback in openContainer(String, Container.Callback).

Manchmal müssen Sie den Container so lange blockieren, bis entweder ein nicht standardmäßiger Container verfügbar ist Der zuletzt aktualisierte Container ist verfügbar. ContainerOpener ist eine Dienstprogrammklasse, die dabei helfen kann.

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

Zusammenfassung für geschachtelte Klassen

Oberfläche TagManager.Logger Eine einfache Oberfläche für die Protokollierung von Fehlern/Warnungen/Informationen/Fehlerbehebungen/Ausführlichkeiten.
enum TagManager.RefreshMode Modus zum Aktualisieren des Containers.

Public Method Summary

Container
getContainer(String containerId)
Kontext
DataLayer
Statisch TagManager
getInstance(Kontext-Kontext)
Logger
TagManager.RefreshMode
Container
openContainer(String containerId, Container.Callback Callback)
voidm
voidm

Public Methods

<ph type="x-smartling-placeholder"></ph> öffentlich Container getContainer (String containerId)

Gibt den geöffneten Container zurück, der mit containerId verknüpft ist. gibt null zurück, wenn der Container nicht bereits geöffnet ist.

<ph type="x-smartling-placeholder"></ph> öffentlich Kontext getContext ()

Gibt den gespeicherten Kontext zurück, der mit diesem Objekt verknüpft ist.

<ph type="x-smartling-placeholder"></ph> öffentlich DataLayer getDataLayer ()

Gibt das Datenschichtobjekt zurück, das vom Tag Manager verwendet wird

<ph type="x-smartling-placeholder"></ph> öffentlich Statisch TagManager getInstance (Kontextcontext)

Rufen Sie die Singleton-Instanz der Klasse TagManager ab und erstellen Sie sie gegebenenfalls.

<ph type="x-smartling-placeholder"></ph> öffentlich Protokollierung getLogger ()

Gibt den Protokollierungsstatus zurück, der von Tag Manager verwendet wird.

<ph type="x-smartling-placeholder"></ph> öffentlich TagManager.RefreshMode getRefreshMode ()

Gibt den Aktualisierungsmodus zurück, der für alle Container verwendet wird.

<ph type="x-smartling-placeholder"></ph> öffentlich Container openContainer (String containerId, Container.Callback Callback)

Gibt einen Container zurück. Der Callback wird aufgerufen, wenn verschiedene Dinge geschehen Container. OpenContainer versucht mindestens, eine gespeicherte Version des Container. Wenn keine gespeicherte Version vorhanden ist oder die gespeicherte Version veraltet ist, versuchen Sie, über das Netzwerk geladen werden.

Normalerweise ist der zurückgegebene Container leer, aber das Laden erfolgt auf einem separaten sodass der zurückgegebene Container vor der Rückgabe oder nach der Rückgabe aktualisiert werden kann. oder nie aktualisiert werden (wenn z. B. während der Lebensdauer keine Netzwerkverbindung besteht). des Containers).

Wenn Sie openContainer für eine bestimmte containerId ein zweites Mal aufrufen, Ausnahme ausgelöst.

Parameter
containerId ID des zu öffnenden Containers
callback Ein Objekt, dessen verschiedene Methoden während des Ladevorgangs aufgerufen werden. . Die Methoden können von verschiedenen Threads aus aufgerufen werden. Darüber hinaus kann es sein, aufgerufen werden, bevor openContainer zurückgegeben wird.

<ph type="x-smartling-placeholder"></ph> öffentlich voidm setLogger (Protokollierungs- protokoller)

Ersetzt den vorhandenen Protokollierungstyp, der von Tag Manager verwendet wird.

<ph type="x-smartling-placeholder"></ph> öffentlich voidm setRefreshMode (TagManager.RefreshMode mode)

Legt den Aktualisierungsmodus für alle Container fest.