Android v4 – Erste Schritte

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:

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:

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:

  1. <ph type="x-smartling-placeholder"></ph> Google Play Services SDK einrichten
  2. 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" />
  3. Zum Aktivieren von InstallReferrerReceiver, um den Google Analytics-Empfänger aufzurufen um die Kampagnendaten festzulegen, fügen Sie AndroidManifest.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:

  1. Melden Sie sich auf der Weboberfläche von Google Tag Manager an.
  2. Wählen Sie die Version des Containers aus, den Sie herunterladen möchten.
  3. Klicken Sie auf die Schaltfläche Herunterladen, um die Containerbinärdatei abzurufen.
  4. Fügen Sie Ihrem Projekt die heruntergeladene Containerbinärdatei als Rohressource hinzu.
    1. Wenn der Unterordner raw unter <project-root>/res/ ist nicht vorhanden. Erstellen Sie ihn.
    2. Benennen Sie die Binärdatei des Containers bei Bedarf um. Sie besteht nur aus Kleinbuchstaben, Ziffern und Unterstriche.
    3. Kopieren Sie die Binärdatei des Containers in den Ordner. <project-root>/res/raw

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:

  1. Rufen Sie den Singleton-Wert TagManager ab:
    TagManager tagManager = TagManager.getInstance(this);
  2. 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 an loadContainerPreferNonDefault() wird nicht blockiert und gibt eine <ph type="x-smartling-placeholder"></ph> PendingResult:
    PendingResult<ContainerHolder> pending =
            tagManager.loadContainerPreferNonDefault(CONTAINER_ID,
            R.raw.defaultcontainer_binary);
  3. Verwenden Sie ResultCallback, um den Parameter ContainerHolder 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 Dienstprogrammklasse ContainerHolderSingleton verwendet. um den Zugriff auf die ContainerHolder-Instanz zu verwalten. Hier ist, was das ContainerHolderSingleton-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:

  1. Ruft den Container aus dem ContainerHolder mithilfe von <ph type="x-smartling-placeholder"></ph> ContainerHolder.getContainer().
  2. 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:

  1. herunterladen DataLayer Singleton:
    DataLayer dataLayer = TagManager.getInstance(context).getDataLayer();
  2. 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:

  1. herunterladen DataLayer Singleton:
    DataLayer dataLayer = TagManager.getInstance(context).getDataLayer();
  2. 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, die dataLayer 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:

  1. Die Vorschau Activity wird Ihrer Datei AndroidManifest 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" />
  2. Vorschaulink auf der Weboberfläche von Google Tag Manager generieren <ph type="x-smartling-placeholder">
      </ph>
    1. In Google Tag Manager anmelden
    2. Wählen Sie den Container Version für die Vorschau aus.
    3. Klicken Sie auf die Schaltfläche Vorschau
    4. Geben Sie den Paketnamen Ihrer App ein und klicken Sie auf Link zum Starten der Vorschau generieren.
  3. App über den generierten Link oder QR-Code starten
  4. 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.