Serverseitiges Tagging mit App Engine einrichten

In diesem Leitfaden wird Folgendes beschrieben:

  • Stellen Sie einen Tagging-Server in der Google Cloud Platform (GCP) App Engine bereit.
  • Aktualisieren Sie den Tagging-Server, um den Live-Traffic zu verarbeiten.
  • Erhöhen oder verringern Sie die Anzahl der Server, auf denen Ihr Google Tag Manager-Container ausgeführt wird.
  • Nach der Bereitstellung des Servers muss die Version des Tagging-Servers immer auf dem neuesten Stand sein.

Voraussetzungen

  1. Sie benötigen ein GCP-Konto. Falls Sie noch keines haben, erstellen Sie ein neues GCP-Konto.
  2. Sie benötigen ein GCP-Rechnungskonto. Erstellen Sie ein GCP-Rechnungskonto, falls Sie noch keines haben. Dafür ist die Rolle „Rechnungskontoersteller“ erforderlich.
  3. Sie benötigen die Rollen „Projektersteller“ und „Rechnungskontonutzer“. Weitere Informationen zum Hinzufügen von Rollen

1. Server bereitstellen

So erstellen Sie einen neuen Tagging-Server auf einer App Engine-Instanz:

  • Neuen Servercontainer in Tag Manager erstellen
  • Neues Google Cloud-Projekt (GCP) erstellen
  • Neuen App Engine-Tagging-Server bereitstellen
  • URL des neuen Tagging-Servers dem Tag Manager-Servercontainer hinzufügen

Google Tag Manager-Servercontainer erstellen

  1. Öffnen Sie Google Tag Manager.

  2. Klicken Sie in der Kontozeile auf das Dreipunkt-Menü > Container erstellen.

  3. Erstellen Sie einen neuen Servercontainer.

  4. Klicken Sie auf das Optionsfeld „Tagging-Server manuell bereitstellen“. Notieren Sie sich die Containerkonfiguration. Sie benötigen ihn zur Bereitstellung Ihres Servers.

Neues GCP-Projekt erstellen

So erstellen Sie ein neues GCP-Projekt für den Tagging-Server:

  1. Öffnen Sie die Google Cloud Console.

  2. Erstellen Sie ein neues GCP-Projekt.

  3. Benennen Sie Ihr Projekt. Wir empfehlen Ihnen, die Container-ID zu verwenden. Dieser Name wird nur in Google Cloud verwendet.

  4. Notieren Sie sich die GCP-Projekt-ID, da Sie sie zum Erstellen des Tagging-Servers benötigen.

Neuen Tagging-Server bereitstellen

So erstellen Sie den Tagging-Server:

  1. Öffnen Sie Cloud Shell.

  2. Legen Sie das GCP-Projekt in Cloud Shell fest. Ersetzen Sie project ID durch die GCP-Projekt-ID, die Sie zuvor notiert haben:

    gcloud config set project project ID
    
  3. Erstellen Sie den Tagging-Server, indem Sie dem Shell-Skript folgen. Legen Sie den Bereitstellungstyp auf testing fest.

    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"
    

Tagging-Server-URL in Tag Manager hinzufügen

  1. Öffnen Sie Google Tag Manager.

  2. Klicken Sie unter Admin > Containereinstellungen auf URL hinzufügen. Wenn Sie die URL Ihres Servers nicht kennen, führen Sie in Cloud Shell den folgenden Befehl aus:

    gcloud app browse
    

    Ergebnis: Sie haben einen Tagging-Server eingerichtet und mit der Konfiguration testing bereitgestellt. Sie können jetzt serverseitiges Tagging testen.

Erstkonfiguration des Servers (testing)

Die Testkonfiguration eignet sich, um das Produkt kennenzulernen. Dazu werden kleine Mengen an Testtraffic gesendet und die Funktion „Vorschau“ in Tag Manager verwendet. Diese Konfiguration ist eine App Engine-F1-Instanzklasse in der Standardumgebung. In den meisten Fällen fallen keine Kosten an.

2. App Engine in der Produktion verwenden

In der production-Konfiguration kostet jeder Server etwa 40 $pro Monat. Jeder Server ist eine App Engine-Instanz mit 1 vCPU, 0, 5 GB Arbeitsspeicher und 10 GB Laufwerk in der flexiblen Umgebung.

Weitere Informationen zur App Engine-Abrechnung und zur Konfiguration von Abrechnungsbenachrichtigungen finden Sie unter App Engine-Kosten verwalten. Wir empfehlen dringend, eine Abrechnungsbenachrichtigung einzurichten.

Wir empfehlen, mindestens drei Server auszuführen, um das Risiko eines Datenverlusts bei einem Serverausfall zu verringern. Sie können jedoch festlegen, dass Sie weniger (oder mehr) Server ausführen. Wir gehen davon aus, dass beim Autoscaling auf 3–6 Server (Standardeinstellung) 50–200 Anfragen pro Sekunde verarbeitet werden. Die Leistung hängt von der Anzahl der Tags und deren Funktion ab.

So konfigurieren Sie den Tagging-Server:

  1. Öffnen Sie Cloud Shell der Google Cloud Platform.
  2. Legen Sie das Cloud Platform-Projekt in Cloud Shell fest. Ersetzen Sie project ID durch die GCP-Projekt-ID, die Sie zuvor notiert haben:
    gcloud config set project project ID
  3. Wenn Sie den Tagging-Server für eine Produktionsumgebung neu konfigurieren möchten, führen Sie das folgende Einrichtungsskript aus. Führen Sie die folgenden Aufgaben aus:
    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"
    1. Ändern Sie den Bereitstellungstyp in production.
    2. Richten Sie zusätzliche Server für den Produktionstraffic ein. Wir empfehlen mindestens drei Server.

Optional: Logging deaktivieren

Anfrage-Logging

Standardmäßig protokolliert App Engine Informationen zu jeder einzelnen Anfrage (z. B. Anfragepfad, Abfrageparameter usw.), die es erhält. Wenn Ihr Tagging-Server viele Anfragen pro Monat verarbeitet (z.B. mehr als eine Million), können für diese Lognachrichten erhebliche Logging-Gebühren anfallen. Um die Logging-Gebühren zu reduzieren oder zu vermeiden, empfehlen wir, das App Engine-Anfrage-Logging zu deaktivieren.

So deaktivieren Sie das App Engine-Anfrage-Logging:

  1. Öffnen Sie in der Google Cloud Platform den Logs Router. Sie müssen sich in dem Projekt befinden, das Ihrer Container-ID entspricht:
    Screenshot der GCP-Projektauswahl mit einer Tag Manager-Container-ID als Beispiel
  2. Wählen Sie unter Typ: Cloud Logging-Bucket in der Zeile Name _Default das Dreipunkt-Menü aus und klicken Sie dann auf Senke bearbeiten.
  3. Wählen Sie unter Senkenziel den Log-Bucket _Default aus.
  4. Fügen Sie unter Logs für Senke auswählen eine neue Zeile hinzu. Geben Sie in den vorhandenen Einschlussfilter die folgende Regel ein:

    NOT LOG_ID("appengine.googleapis.com/nginx.request") AND NOT
    LOG_ID("appengine.googleapis.com/request_log")
    
  5. Wenn Sie auch das Logging des Load-Balancers deaktivieren möchten, fügen Sie eine neue Zeile hinzu und geben Sie die folgende Regel in den vorhandenen Einschlussfilter ein:

    NOT LOG_ID("requests")
    
  6. Aktualisieren Sie die Senke, um die Änderungen zu übernehmen. Jetzt werden die App Engine-Anfragen vom Logging ausgeschlossen.

  7. Achten Sie darauf, dass in den Logs des Log-Explorers keine neuen Anfragen enthalten sind.

Konsolen-Logging

Der Tagging-Server, die Tagging-Clients oder die Tags in einem Container können Nachrichten in der Konsole protokollieren, für die Logging-Gebühren anfallen können. Sie können unerwünschte Konsolen-Lognachrichten deaktivieren, um die Logging-Gebühren zu reduzieren oder zu eliminieren.

Identifizieren Sie unerwünschte Konsolenprotokolle:

  1. Öffnen Sie in der GCP den Log-Explorer.
  2. Suchen Sie nach unerwünschten Protokollmeldungen, die von Ihren Tags stammen. Beispiel:

    Ein Tag kann folgende Logs senden:

    const logToConsole = require('logToConsole');
    
    logToConsole('Custom message: ' + data.param1);
    logToConsole('An important message to keep around!');
    data.gtmOnSuccess()
    

    Suchen Sie im Feld textPayload nach den entsprechenden Logeinträgen:
    Screenshot des GCP-Log-Explorers mit Beispiellogs

So deaktivieren Sie die Konsolen-Protokollmeldung:

  1. Öffnen Sie in der Google Cloud Platform den Logs Router. Sie müssen sich in dem Projekt befinden, das Ihrer Container-ID entspricht:
    Screenshot der GCP-Projektauswahl mit einer Tag Manager-Container-ID als Beispiel
  2. Wählen Sie unter Typ: Cloud Logging-Bucket in der Zeile Name _Default das Dreipunkt-Menü aus und klicken Sie dann auf Senke bearbeiten.
  3. Wählen Sie unter Senkenziel den Log-Bucket _Default aus.
  4. Fügen Sie unter Logs für Senke auswählen eine neue Zeile hinzu. Geben Sie in den vorhandenen Einschlussfilter die folgende Regel ein:

    NOT textPayload:"Custom message:"
    

    Ersetzen Sie in den Konsolenlogs den Text Custom message: durch einen Teilstring aus dem Konsolenlog, den Sie deaktivieren möchten. Für detailliertere Filter verwenden Sie die Logging-Abfragesprache.

  5. Aktualisieren Sie die Senke, um die Änderungen zu übernehmen. Die entsprechende logToConsole-Nachricht sollte vom Logging ausgeschlossen werden.

  6. Achten Sie darauf, dass keine neuen Konsolenlogmeldungen im Log-Explorer angezeigt werden.

3. Bereitstellung Ihrer benutzerdefinierten Domain zuordnen

Das standardmäßige serverseitige Tagging wird in einer App Engine-Domain gehostet. Wir empfehlen, die Bereitstellung so zu ändern, dass eine Subdomain Ihrer Website verwendet wird.

Weisen Sie die Subdomain Ihrer Website Ihrem Tagging-Server zu.

4. Server-URL zu Google Tag Manager hinzufügen

Da Sie nun einen Server haben, müssen Sie überprüfen, ob Google Tag Manager weiß, dass er Ihren Server verwenden soll.

  1. Öffnen Sie Google Tag Manager.

  2. Klicken Sie auf den Servercontainer, der auf Ihren Tagging-Server verweisen soll.

  3. Öffnen Sie die Einstellungen für den Servercontainer auf dem Tab Admin > Containereinstellungen.

  4. Klicken Sie auf URL hinzufügen und fügen Sie die Server-URL ein.

  5. Klicken Sie auf Speichern und kehren Sie zum Arbeitsbereich zurück.

5. Validierung

Nachdem Sie den Tagging-Server eingerichtet haben, prüfen Sie, ob er wie vorgesehen funktioniert. Klicken Sie im Tag Manager-Arbeitsbereich auf die Schaltfläche Vorschau. Wenn die Vorschauseite geladen wird, ist alles korrekt eingerichtet.

Vorschau für mehrere URLs anzeigen

Wenn Sie mehrere Domains einem einzelnen Tagging-Server zugeordnet haben, muss jede URL den Containereinstellungen hinzugefügt werden.

Wenn Sie mehrere URLs angegeben haben, müssen alle Pfade (der String nach dem Domainnamen) übereinstimmen.

Funktioniert Funktioniert nicht
URL 1: example.com/abc
URL 2: example2.com/abc
URL 1: example.com/abc
URL 2: example2.com/def

Wenn mehrere URLs hinzugefügt wurden, wird neben der Schaltfläche Vorschau ein Symbol angezeigt, über das Sie die URL für die Vorschau auswählen können.

Tagging-Serverversion aktualisieren

Neue Tagging-Serverupdates enthalten Fehlerkorrekturen für Sicherheitslücken und neue Funktionen. Wir empfehlen, den Tagging-Server zumindest für jede Hauptversion zu aktualisieren (z.B. ein Upgrade von Version 1.x.x auf 2.x.x), wenn Sie von Tag Manager über eine Aktualisierung informiert werden.

Wenn Sie den Tagging-Server aktualisieren möchten, müssen Sie das Einrichtungsskript mit denselben Einstellungen, die Sie zuvor verwendet haben, noch einmal ausführen. Die vorhandenen Einstellungen sind standardmäßig festgelegt.

So aktualisieren Sie den Tagging-Server:

  1. Öffnen Sie Cloud Shell der Google Cloud Platform.
  2. Legen Sie das Cloud Platform-Projekt in Cloud Shell fest. Ersetzen Sie project ID durch die GCP-Projekt-ID, die Sie zuvor notiert haben:
    gcloud config set project project ID
  3. Führen Sie das Setup-Skript mit denselben Einstellungen aus, die Sie zuvor verwendet haben. Die vorhandenen Einstellungen sind standardmäßig festgelegt.
    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"

So überprüfst du, ob das Update erfolgreich war:

  1. Klicken Sie in Ihrem Servercontainer auf die Schaltfläche Vorschau, um eine neue Debug-Sitzung zu starten und eine Anfrage auf einem separaten Tab zu senden.
  2. Wählen Sie in der Zusammenfassung den Tab Console aus und achten Sie darauf, dass keine Meldungen angezeigt werden, die Sie zum Aktualisieren des Tagging-Servers auffordern.

In Tag Manager werden unter Umständen Meldungen angezeigt, in denen Sie aufgefordert werden, den Tagging-Server bis zu einen Tag nach einer erfolgreichen Aktualisierung zu aktualisieren. Auf der Vorschauseite wird jedoch eine aktuelle Meldung zur Tagging-Serverversion angezeigt.

Zeitüberschreitungen bei der Produktionsbereitstellung beheben

Wenn Sie das Einrichtungsskript ausführen, um den Tag-Server zu erstellen oder neu zu konfigurieren, kann es zu einer Zeitüberschreitung beim Skript kommen. Dafür kann es mehrere Gründe geben. Die beiden häufigsten sind:

  1. Dienstkonten haben falsche Berechtigungen: Die Compute Engine- und App Engine-Dienstkonten sind für die Bereitstellung und Wartung der Produktionsbereitstellung verantwortlich. Standardmäßig sind sie mit den entsprechenden Berechtigungen vorkonfiguriert. In einigen Fällen können Richtlinien einer Organisation jedoch dazu führen, dass sie falsch sind.

    1. Rufen Sie in der Google Cloud Console in der linken Navigationsleiste die Seite IAM & Verwaltung auf.
    2. Suchen Sie das Compute Engine-Dienstkonto <project_number>-compute@developer.gserviceaccount.com und das App Engine-Dienstkonto <project_name>@appspot.gserviceaccount.com.
    3. Beide Dienstkonten müssen die Rolle Editor haben. Wenn eines der Konten nicht die Rolle Editor hat, aktualisieren Sie die Rolle. Klicken Sie dazu auf das Stiftsymbol rechts neben dem Konto, dann auf das Drop-down-Menü der vorhandenen Rolle, scrollen Sie nach oben und klicken Sie auf Projekt und dann auf Bearbeiter.
  2. Unzureichendes Kontingent: Das Produktions-Deployment verbraucht das Compute Engine-Kontingent. Wenn das Kontingent des Projekts nicht ausreicht, kann es bei der Bereitstellung zu einer Zeitüberschreitung kommen, während versucht wird, Ressourcen bereitzustellen.

    1. Rufen Sie in der Google Cloud Console links in der Navigationsleiste die Seite IAM & Verwaltung auf und klicken Sie dann in der linken Navigationsleiste auf den Tab Kontingente.
    2. Klicken Sie oben auf der Seite auf das Textfeld Tabelle filtern und geben Sie Compute Engine API ein. Klicken Sie auf das einzige Ergebnis.
    3. Prüfen Sie, ob alle Kontingentstatus im Limit liegen oder ein grünes Häkchen haben.
    4. Klicken Sie auf CPUs. Prüfen Sie, ob die aktuelle Nutzung plus die Anzahl der bereitgestellten Instanzen weiterhin unter dem Limit für die Bereitstellungsregion liegen.