Einführung
Mit Google Tag Manager können Entwickler Konfigurationswerte in ihrer mobilen App ändern. über die Benutzeroberfläche von Google Tag Manager, ohne die Binärdateien der Anwendung neu erstellen und noch einmal einreichen zu müssen App-Marktplätzen erreichen können.
Dies ist nützlich, um Konfigurationswerte oder Flags in Ihrer Anwendung zu verwalten, die Sie möglicherweise benötigen in Zukunft zu ändern, einschließlich:
- Verschiedene UI-Einstellungen und Anzeigestrings
- Größen, Standorte oder Arten von Anzeigen, die in Ihrer App ausgeliefert werden
- Verschiedene Spieleinstellungen
Konfigurationswerte können auch zur Laufzeit mithilfe von Regeln ausgewertet werden. Dadurch werden dynamische Konfigurationen wie:
- Bestimmen der Bannergröße anhand der Bildschirmgröße
- Sprache und Standort zum Konfigurieren von UI-Elementen verwenden
Google Tag Manager ermöglicht auch die dynamische Implementierung von Tracking-Tags und Pixeln in Anwendungen. Entwickler können wichtige Ereignisse in eine Datenschicht übertragen und später entscheiden, Tracking-Tags oder -Pixel ausgelöst werden.
Vorbereitung
Führen Sie die folgenden Schritte aus, bevor Sie mit diesem Startleitfaden beginnen:
- Installieren Sie das Android SDK.
- Laden Sie das Google Play Services SDK herunter.
- Google Tag Manager-Konto erstellen
- Google Tag Manager-Container konfigurieren
Nachdem Sie diese Schritte abgeschlossen haben, erhalten Sie im weiteren Verlauf dieses Leitfadens eine Anleitung, wie Sie Google Tag Manager in Ihrer Android-App konfigurieren und verwenden.
Erste Schritte
In diesem Startleitfaden erfährst du, wie du:
- Google Tag Manager zu einem Projekt hinzufügen
- Tag Manager in Ihrer Anwendung initialisieren
- Konfigurationswerte aus einem Tag Manager-Container abrufen
- Werte und Ereignisse in
dataLayer
übertragen - Container als Vorschau ansehen, Fehler beheben und Container veröffentlichen
In diesem Leitfaden werden Code-Snippets aus dem Cute Animals
verwendet.
Beispielanwendung im
Google Play Services SDK.
Die vollständige Quelle für dieses Projekt ist in <android-sdk-directory>/extras/google/google_play_services/tagmanager/cuteanimals
verfügbar.
1. Google Tag Manager zu Ihrem Projekt hinzufügen
So fügen Sie Ihrem Projekt Google Tag Manager hinzu:
- <ph type="x-smartling-placeholder"></ph> Google Play Services SDK einrichten
- Wenn Sie eine andere IDE als verwenden
Android Studio, fügen Sie dem
AndroidManifest.xml
-Datei:<!-- For TagManager SDK --> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
- Zum Aktivieren von
InstallReferrerReceiver
, um den Google Analytics-Empfänger aufzurufen um die Kampagnendaten festzulegen, fügen SieAndroidManifest.xml
-Datei:<!-- Used for install referrer tracking--> <service android:name="com.google.android.gms.tagmanager.InstallReferrerService" /> <receiver android:name="com.google.android.gms.tagmanager.InstallReferrerReceiver" android:exported="true"> <intent-filter> <action android:name="com.android.vending.INSTALL_REFERRER" /> </intent-filter> </receiver>
2. Standard-Containerdatei zu einem Projekt hinzufügen
Google Tag Manager verwendet bei der ersten Ausführung Ihrer Anwendung einen Standardcontainer. Standardeinstellung wird nicht mehr verwendet, sobald die App einen neuen Container über die Netzwerk.
So laden Sie ein Standard-Containerbinärprogramm herunter und fügen es Ihrer Anwendung hinzu:
- Melden Sie sich auf der Weboberfläche von Google Tag Manager an.
- Wählen Sie die Version des Containers aus, den Sie herunterladen möchten.
- Klicken Sie auf die Schaltfläche Herunterladen, um die Containerbinärdatei abzurufen.
- Fügen Sie Ihrem Projekt die heruntergeladene Containerbinärdatei als Rohressource hinzu.
- Wenn der Unterordner
raw
unter<project-root>/res/
ist nicht vorhanden. Erstellen Sie ihn. - Benennen Sie die Binärdatei des Containers bei Bedarf um. Sie besteht nur aus Kleinbuchstaben, Ziffern und Unterstriche.
- Kopieren Sie die Binärdatei des Containers in den Ordner.
<project-root>/res/raw
- Wenn der Unterordner
Die Verwendung der Binärdatei wird zwar empfohlen, aber wenn Ihr Container keine Regeln oder Tags enthält, können Sie stattdessen eine einfache JSON-Datei verwenden.
3. Google Tag Manager wird initialisiert
So initialisieren Sie Google Tag Manager in Ihrer Anwendung:
- Rufen Sie den Singleton-Wert
TagManager
ab:TagManager tagManager = TagManager.getInstance(this);
- Verwenden Sie den Singleton-Befehl
TagManager
, um eine Anfrage zum Laden eines Containers zu senden. Geben Sie dabei einen Wert für Die Google Tag Manager-Container-ID und Ihr Standardcontainer -Datei. Die Container-ID muss großgeschrieben werden und genau mit der Container-ID im Google-Tag übereinstimmen Weboberfläche des Managers. Der Anruf anloadContainerPreferNonDefault()
wird nicht blockiert und gibt eine <ph type="x-smartling-placeholder"></ph>PendingResult
:PendingResult<ContainerHolder> pending = tagManager.loadContainerPreferNonDefault(CONTAINER_ID, R.raw.defaultcontainer_binary);
- Verwenden Sie
ResultCallback
, um den ParameterContainerHolder
nachdem der Ladevorgang abgeschlossen wurde oder eine Zeitüberschreitung aufgetreten ist:// The onResult method will be called as soon as one of the following happens: // 1. a saved container is loaded // 2. if there is no saved container, a network container is loaded // 3. the 2-second timeout occurs pending.setResultCallback(new ResultCallback<ContainerHolder>() { @Override public void onResult(ContainerHolder containerHolder) { ContainerHolderSingleton.setContainerHolder(containerHolder); Container container = containerHolder.getContainer(); if (!containerHolder.getStatus().isSuccess()) { Log.e("CuteAnimals", "failure loading container"); displayErrorToUser(R.string.load_error); return; } ContainerLoadedCallback.registerCallbacksForContainer(container); containerHolder.setContainerAvailableListener(new ContainerLoadedCallback()); startMainActivity(); } }, TIMEOUT_FOR_CONTAINER_OPEN_MILLISECONDS, TimeUnit.MILLISECONDS);
ContainerHolder-Singleton erstellen
Sie sollten nur eine Instanz von
ContainerHolder
pro Ausführung Ihres . Deshalb wird im obigen Beispiel die DienstprogrammklasseContainerHolderSingleton
verwendet. um den Zugriff auf dieContainerHolder
-Instanz zu verwalten. Hier ist, was dasContainerHolderSingleton
-Klasse sieht so aus:package com.google.android.tagmanager.examples.cuteanimals; import com.google.android.gms.tagmanager.ContainerHolder; /** * Singleton to hold the GTM Container (since it should be only created once * per run of the app). */ public class ContainerHolderSingleton { private static ContainerHolder containerHolder; /** * Utility class; don't instantiate. */ private ContainerHolderSingleton() { } public static ContainerHolder getContainerHolder() { return containerHolder; } public static void setContainerHolder(ContainerHolder c) { containerHolder = c; } }
4. Konfigurationswerte aus dem Container abrufen
Sobald der Container geladen wurde, können Sie Konfigurationswerte mit einer der
Container.get<type>()
-Methoden. Konfigurationswerte werden mithilfe von
Variablen zur Werterfassung in Google Tag Manager. Die folgende Methode
ruft die neueste Farbe ab, die wir für ein UI-Element festgelegt haben, und gibt sie als
eine Ganzzahl:
/** * Returns an integer representing a color. */ private int getColor(String key) { return colorFromColorName(containerHolder.getContainer().getString(key)); }
Mit diesem Code werden zwei Dinge ausgeführt, um den Farbnamen aus dem Container abzurufen:
- Ruft den
Container
aus demContainerHolder
mithilfe von <ph type="x-smartling-placeholder"></ph>ContainerHolder.getContainer()
. - Ruft den Farbwert mithilfe von
<ph type="x-smartling-placeholder"></ph>
Container.getString(key)
, wo Sie Schlüssel und Wert auf der Weboberfläche von Google Tag Manager definiert.
5. Ereignisse und Werte an das dataLayer-Objekt senden
Google Tag Manager stellt auch ein dataLayer
bereit, in das Sie Informationen senden können.
Informationen zu Ihrer App, die in anderen Teilen der App gelesen oder zum Auslösen von Tags verwendet werden können
die Sie auf der
Weboberfläche von Google Tag Manager konfiguriert haben.
Werte per Push an das dataLayer-Objekt senden
dataLayer
bietet eine Persistenzebene, die Sie verwenden können
zum Speichern von Schlüssel/Wert-Paaren, die Sie in anderen Teilen Ihrer Anwendung verwenden möchten, oder
als Eingaben für Google Tag Manager-Tags.
Folgen Sie diesem Muster, um einen Wert an dataLayer
zu senden:
- herunterladen
DataLayer
Singleton:DataLayer dataLayer = TagManager.getInstance(context).getDataLayer();
- Ereignis mit übertragen
DataLayer.push()
:// Put the image_name into the data layer for future use. TagManager.getInstance(this).getDataLayer().push(IMAGE_NAME_KEY, imageName);
Um einen Wert aus dataLayer
abzurufen, verwenden Sie
<ph type="x-smartling-placeholder"></ph>
DataLayer.get(key)
Ereignisse an das dataLayer-Objekt senden
Durch das Senden von Ereignissen an die dataLayer
können Sie Ihren Anwendungscode von
Tags, die als Reaktion auf diese Ereignisse ausgelöst werden können.
Anstatt beispielsweise Google Analytics-Aufrufe für das Bildschirmaufruf-Tracking in Ihrer Anwendung hartzucodieren,
können Sie Bildschirmereignisse an den dataLayer
senden und Ihre Tracking-Tags mithilfe der
die Weboberfläche von Google Tag Manager. So können Sie das Tag flexibel ändern
zusätzliche Tags, die auf Bildschirmereignisse reagieren, ohne den Anwendungscode zu aktualisieren.
Folgen Sie diesem Muster, um ein Ereignis an dataLayer
zu senden:
- herunterladen
DataLayer
Singleton:DataLayer dataLayer = TagManager.getInstance(context).getDataLayer();
- Ereignis mit übertragen
DataLayer.pushEvent()
:dataLayer.pushEvent("openScreen", DataLayer.mapOf("screenName", screenName));
<ph type="x-smartling-placeholder"></ph>
DataLayer.mapOf()
ist eine Dienstmethode, mit der Sie ganz einfach eine Karte von Schlüssel/Wert-Paare, diedataLayer
gleichzeitig aktualisieren, wenn das Ereignis übertragen wird.
6. Vorschau, Fehlerbehebung und Veröffentlichung
Bevor Sie eine Version des Containers veröffentlichen, sollten Sie prüfen, ob er funktioniert wie beabsichtigt. Mit Google Tag Manager können Sie eine Vorschau der Versionen Ihrer Container aufrufen. indem Sie Links und QR-Codes in der Weboberfläche generieren und damit Ihre Anwendung öffnen. Sie können auch einen ausführlichen Logging-Modus aktivieren, um unerwartetes Verhalten zu beheben.
Vorschau wird angezeigt
So rufen Sie die Vorschau einer Version eines Containers auf:
- Die Vorschau
Activity
wird Ihrer DateiAndroidManifest
hinzugefügt:<!-- Add preview activity. --> <activity android:name="com.google.android.gms.tagmanager.PreviewActivity" android:label="@string/app_name" android:noHistory="true"> <!-- optional, removes the previewActivity from the activity stack. --> <intent-filter> <data android:scheme="tagmanager.c.com.google.android.tagmanager.examples.cuteanimals" /> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE"/> </intent-filter> </activity>
Ändern Sie diese Zeile so, dass sie den Paketnamen Ihrer Anwendung enthält:
<data android:scheme="tagmanager.c.com.google.android.tagmanager.examples.cuteanimals" />
- Vorschaulink auf der Weboberfläche von Google Tag Manager generieren
<ph type="x-smartling-placeholder">
- </ph>
- In Google Tag Manager anmelden
- Wählen Sie den Container Version für die Vorschau aus.
- Klicken Sie auf die Schaltfläche Vorschau
- Geben Sie den Paketnamen Ihrer App ein und klicken Sie auf Link zum Starten der Vorschau generieren.
- App über den generierten Link oder QR-Code starten
- Sie können den Vorschaumodus beenden, indem Sie einem Link folgen, der mit der Option Vorschaulink erstellen generiert wurde. in der Weboberfläche angezeigt.
Debugging
Wenn Sie Fehler in Ihrer Containerimplementierung beheben müssen, aktivieren Sie die ausführliche Protokollierung durch den Aufruf von
<ph type="x-smartling-placeholder"></ph>
TagManager.setVerboseLoggingEnabled(true)
:
// Modify the log level of the logger to print out not only // warning and error messages, but also verbose, debug, info messages. tagManager.setVerboseLoggingEnabled(true);
Wird veröffentlicht
Nachdem Sie sich den Container in der Vorschau angesehen und geprüft haben, ob er wie gewünscht funktioniert, können Sie veröffentlichen Sie den Container. Ihr Containerkonfigurationswerte, Tags und Ereignisse sind für Nutzer live, wenn ihre Container aktualisiert. Weitere Informationen zum Aktualisieren von Containern
Erweiterte Konfiguration
In den folgenden Abschnitten werden die erweiterten Konfigurationsoptionen beschrieben, mit denen Sie Ihre Implementierung von Google Tag Manager
Container aktualisieren
Standardmäßig kann Ihr Container alle zwölf Stunden aktualisiert werden. Manuelle Aktualisierung
dem Container, verwenden Sie
ContainerHolder.refresh()
:
ContainerHolderSingleton.getContainerHolder().refresh();
Dies ist ein asynchroner Aufruf, der nicht sofort eine Antwort zurückgibt. Zur Reduzierung des Netzwerkverkehrs kann refresh()
nur alle 15 Minuten aufgerufen werden.
Andernfalls ist es ein Leerlauf.