Serverseitiges Tagging mit App Engine einrichten

In diesem Leitfaden wird Folgendes beschrieben:

  • Tagging-Server in der Google Cloud Platform (GCP) App Engine bereitstellen.
  • Aktualisieren Sie den Tagging-Server, damit er Live-Traffic verarbeiten kann.
  • Erhöhen oder verringern Sie die Anzahl der Server, auf denen Ihr Google Tag Manager-Container ausgeführt wird.
  • Aktualisieren Sie die Version des Tagging-Servers nach der Bereitstellung.

Vorbereitung

  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, wenn 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
  • Fügen Sie die URL des neuen Tagging-Servers dem Tag Manager-Servercontainer hinzu.

Servercontainer für Google Tag Manager 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 für die Bereitstellung Ihres Servers.

Neues GCP-Projekt erstellen

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

  1. Öffnen Sie die Google Cloud Console.

  2. Erstellen Sie ein neues GCP-Projekt.

  3. Benennen Sie Ihr Projekt. Wir empfehlen, die Container-ID zu verwenden. Dieser Name wird nur innerhalb der GCP 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 einen 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 gemäß dem Shell-Script. Legen Sie den Bereitstellungstyp auf testing fest.

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

Tagging-Server-URL zu Tag Manager hinzufügen

  1. Öffnen Sie Google Tag Manager.

  2. Klicken Sie unter Verwaltung > 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.

Erste Serverkonfiguration (testing)

Die Testkonfiguration eignet sich zur Erkundung des Produkts, indem kleine Mengen an Testtraffic gesendet und die Vorschaufunktion in Tag Manager verwendet wird. Diese Konfiguration ist eine App Engine-F1-Instanzklasse in der Standardumgebung. In den meisten Fällen entstehen Ihnen keine Kosten.

2. App Engine in der Produktion verwenden

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

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

Wir empfehlen mindestens drei Server, um das Risiko von Datenverlusten bei einem Serverausfall zu verringern. Sie können jedoch auch weniger oder mehr Server ausführen. Wir gehen davon aus, dass mit der automatischen Skalierung von 3 bis 6 Servern (Standardeinstellung) 50 bis 200 Anfragen pro Sekunde verarbeitet werden. Die Leistung hängt von der Anzahl der Tags und ihrer Funktion ab.

So konfigurieren Sie Ihren 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 folgende Einrichtungsskript aus, um den Tagging-Server für eine Produktionsumgebung neu zu konfigurieren. 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 ein, um Produktionstraffic zu verarbeiten. 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 sie erhält. Wenn Ihr Tagging-Server viele Anfragen pro Monat verarbeitet (z.B. mehr als eine Million), können für diese Protokollmeldungen erhebliche Protokollierungsgebühren anfallen. Um die Protokollierungsgebühren zu reduzieren oder zu vermeiden, empfehlen wir, die App Engine-Anfrageprotokollierung zu deaktivieren.

So deaktivieren Sie das Anfrage-Logging von App Engine:

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

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

    NOT LOG_ID("requests")
    
  6. Klicken Sie auf Senke aktualisieren, um die Änderungen anzuwenden. Die App Engine-Anfragen werden jetzt vom Logging ausgeschlossen.

  7. Prüfen Sie, ob in den Logs des Log-Explorers keine neuen Anfragen angezeigt werden.

Console-Logging

Der Tagging-Server, die Clients oder die Tags in einem Container können Nachrichten in der Konsole protokollieren, wodurch Protokollierungsgebühren anfallen können. Um Logging-Gebühren zu reduzieren oder zu vermeiden, können Sie unerwünschte Konsolen-Logmeldungen deaktivieren.

Unerwünschte Konsolenprotokolle identifizieren:

  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 Protokolle 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 Protokollmeldungen:
    Screenshot des GCP-Log-Explorers mit Beispiellogs

So deaktivieren Sie die Konsolenprotokollmeldung:

  1. Öffnen Sie auf der Google Cloud-Plattform den Logs Router. Achten Sie darauf, dass Sie sich im Projekt befinden, das mit Ihrer Container-ID übereinstimmt:
    Screenshot der GCP-Projektauswahl mit einer Beispiel-Tag Manager-Container-ID
  2. Wählen Sie für 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 die Senke auswählen eine neue Zeile hinzu. Geben Sie die folgende Regel in den vorhandenen Einschlussfilter ein:

    NOT textPayload:"Custom message:"
    

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

  5. Klicken Sie auf Senke aktualisieren, um die Änderungen anzuwenden. Die übereinstimmende logToConsole-Nachricht sollte vom Logging ausgeschlossen werden.

  6. Prüfen Sie, ob im Log-Explorer keine neuen Konsolenprotokollmeldungen angezeigt werden.

3. Bereitstellung der benutzerdefinierten Domain zuordnen

Die standardmäßige Bereitstellung des serverseitigen Taggings wird auf einer App Engine-Domain gehostet. Wir empfehlen, die Bereitstellung so zu ändern, dass eine Subdomain Ihrer Website verwendet wird.

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

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

Jetzt, da Sie einen Server haben, müssen Sie dafür sorgen, dass Google Tag Manager weiß, dass er Ihren Server verwenden soll.

  1. Öffnen Sie Google Tag Manager.

  2. Klicken Sie auf den Servercontainer, auf den Sie Ihren Tagging-Server verweisen möchten.

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

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

  5. Speichern und zum Arbeitsbereich zurückkehren

5. Validierung

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

Vorschau mehrerer URLs

Wenn Sie einem einzigen Tagging-Server mehrere Domains zugeordnet haben, müssen alle URLs 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 werden, wird neben der Schaltfläche Vorschau ein Symbol angezeigt, mit dem Sie die URL für die Vorschau auswählen können.

Tagging-Serverversion aktualisieren

Die neuen Tagging-Serverupdates enthalten Fehlerkorrekturen für Sicherheitslücken und neue Funktionen. Wir empfehlen, Ihren Tagging-Server mindestens bei jeder neuen Hauptversion zu aktualisieren (z.B. von Version 1.x.x auf Version 2.x.x), wenn Sie in Tag Manager dazu aufgefordert werden.

Wenn Sie Ihren Tagging-Server aktualisieren möchten, führen Sie das Einrichtungsskript noch einmal mit denselben Einstellungen aus, die Sie zuvor verwendet haben. Die vorhandenen Einstellungen werden standardmäßig festgelegt.

So aktualisieren Sie Ihren 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 Einrichtungsskript mit denselben Einstellungen aus, die Sie zuvor verwendet haben. Die vorhandenen Einstellungen werden standardmäßig festgelegt.
    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"

So prüfen Sie, ob die Aktualisierung 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. Sie müssen dort nicht aufgefordert werden, den Tagging-Server zu aktualisieren.

In Tag Manager werden Sie möglicherweise bis zu einen Tag nach der erfolgreichen Aktualisierung des Servers aufgefordert, Ihren Tagging-Server zu aktualisieren. Auf der Vorschauseite wird jedoch eine aktuelle Meldung zur Tagging-Serverversion angezeigt.

Fehlerbehebung bei Zeitüberschreitungen bei Produktionsbereitstellungen

Wenn Sie das Einrichtungsskript ausführen, um den Tagging-Server zu erstellen oder neu zu konfigurieren, kann es zu einer Zeitüberschreitung kommen. Das kann verschiedene Gründe haben. Die beiden gängigsten 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 kann es jedoch vorkommen, dass die Richtlinien einer Organisation 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 rechts neben dem Konto auf das Stiftsymbol, 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: Die Produktionsbereitstellung verbraucht das Compute Engine-Kontingent. Wenn das Kontingent des Projekts nicht ausreicht, kann die Bereitstellung beim Versuch, Ressourcen zu provisionieren, ablaufen.

    1. Klicken Sie in der linken Navigationsleiste der Google Cloud Console auf die Seite IAM & Verwaltung und dann 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 innerhalb des Limits liegen oder ein grünes Häkchen haben.
    4. Suchen Sie nach CPUs und klicken Sie darauf. Prüfen Sie, ob die aktuelle Nutzung und die Anzahl der bereitgestellten Instanzen unter dem Limit für die Bereitstellungsregion liegen.