Serverseitiges Tagging mit App Engine einrichten

In diesem Leitfaden wird Folgendes beschrieben:

  • Tagging-Server in der Google Cloud Platform (GCP) App Engine bereitstellen
  • Tagging-Server aktualisieren, um Livetraffic zu verarbeiten
  • Anzahl der Server erhöhen oder verringern, auf denen Ihr Google Tag Manager-Container ausgeführt wird
  • Tagging-Serverversion nach der Bereitstellung des Servers auf dem neuesten Stand halten

Vorbereitung

  1. Sie benötigen ein GCP-Konto. Falls Sie noch keines haben, können Sie ein neues GCP-Konto erstellen.
  2. Sie benötigen ein GCP-Rechnungskonto. Falls Sie noch keines haben, können Sie ein GCP-Rechnungskonto erstellen (dazu ist die Rolle „Rechnungskonto-Ersteller“ erforderlich).
  3. Sie benötigen die Rollen „Project Creator“ und „Billing Account User“. 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 zum 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 sie, um Ihren Server bereitzustellen.

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 in der GCP verwendet.

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

Neuen Tagging-Server bereitstellen

So erstellen Sie Ihren Tagging-Server:

  1. Öffnen Sie die Cloud Shell.

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

    gcloud config set project project ID
    
  3. Erstellen Sie Ihren Tagging-Server anhand des Shell-Skripts. 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 den folgenden Befehl in der Cloud Shell aus:

    gcloud app browse
    

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

Erste Serverkonfiguration (testing)

Die Testkonfiguration eignet sich, um das Produkt kennenzulernen. Dazu können Sie kleine Mengen an Testtraffic senden und die Vorschaufunktion in Tag Manager verwenden. Diese Konfiguration ist eine App Engine Instanz der Klasse F1 in der Standard Umgebung. 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 (USD). Jeder Server ist eine App Engine-Instanz mit 1 vCPU, 0, 5 GB Arbeitsspeicher und 10 GB Festplattenspeicher in der flexiblen Umgebung.

Unter Kosten für App Engine verwalten erfahren Sie mehr zur Abrechnung von App Engine und zum Konfigurieren von Abrechnungsbenachrichtigungen. Wir empfehlen dringend, eine Abrechnungsbenachrichtigung einzurichten.

Wir empfehlen, mindestens drei Server auszuführen, um das Risiko von Datenverlusten bei einem Serverausfall zu verringern. Sie können aber auch weniger oder mehr Server ausführen. Wir gehen davon aus, dass die automatische Skalierung von 3 bis 6 Servern (Standard) 50 bis 200 Anfragen pro Sekunde verarbeiten kann. 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 der Cloud Shell fest. Ersetzen Sie project ID durch die GCP-Projekt-ID, die Sie sich zuvor notiert haben:
    gcloud config set project project ID
  3. Führen Sie das Setupskript unten 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 Produktions-Traffic zu verarbeiten. Wir empfehlen mindestens drei Server.

Optional: Logging deaktivieren

Anfrageprotokollierung

Standardmäßig protokolliert App Engine Informationen zu jeder einzelnen Anfrage (z.B. Anfragepfad, Abfrageparameter), die sie erhält. Wenn Ihr Tagging Server viele Anfragen pro Monat verarbeitet (z.B. mehr als 1 Million), können für diese Logmeldungen erhebliche Protokollierungskosten anfallen. Um die Protokollierungskosten zu senken oder zu vermeiden, empfehlen wir, die App Engine-Anfrageprotokollierung zu deaktivieren.

So deaktivieren Sie die App Engine-Anfrageprotokollierung:

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

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

    NOT LOG_ID("requests")
    
  6. Klicken Sie auf Senke aktualisieren , um die Änderungen zu übernehmen. Jetzt werden die App Engine-Anfragen nicht mehr protokolliert.

  7. Prüfen Sie, ob im Log-Explorer keine neuen Anfragen angezeigt werden.

Konsolenprotokollierung

Der Tagging-Server, Clients oder Tags in einem Container können Nachrichten in der Konsole protokollieren, was zu Protokollierungskosten führen kann. Um die Protokollierungskosten zu senken oder zu vermeiden, können Sie unerwünschte Konsolenlogmeldungen deaktivieren.

So ermitteln Sie unerwünschte Konsolenlogs:

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

    Ein Tag kann die folgenden 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 Logmeldungen:
    Screenshot des GCP Logs Explorer mit Beispiellogs.

So deaktivieren Sie eine Konsolenlogmeldung:

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

    NOT textPayload:"Custom message:"
    

    Ersetzen Sie für Ihre Konsolenlogs den Custom message: Text durch eine Teilzeichenfolge aus dem Konsolenlog, das Sie deaktivieren möchten. Für komplexere Filter können Sie die Logging-Abfragesprache verwenden.

  5. Klicken Sie auf Senke aktualisieren , um die Änderungen zu übernehmen. Die entsprechende logToConsole-Meldung sollte nicht protokolliert werden.

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

3. Bereitstellung Ihrer benutzerdefinierten Domain zuordnen

Die standardmäßige serverseitige Tagging-Bereitstellung 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

Nachdem Sie einen Server eingerichtet haben, müssen Sie dafür sorgen, dass Google Tag Manager ihn verwendet.

  1. Öffnen Sie Google Tag Manager.

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

  3. Öffnen Sie die Einstellungen des Servercontainers auf dem Tab Verwaltung > Containereinstellungen.

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

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

5. Validierung

Nachdem Sie Ihren Tagging-Server eingerichtet haben, prüfen Sie, ob er wie vorgesehen funktioniert.

UI-Überprüfung

Klicken Sie in Ihrem Tag Manager-Arbeitsbereich auf die Schaltfläche Vorschau. Wenn die Vorschauseite geladen wird, ist alles richtig eingerichtet.

API-Überprüfung

Sie können auch mit der API prüfen, ob der Server auf Systemdiagnosen reagiert:

  1. Kopieren Sie die Servercontainer-URL unter Verwaltung > Containereinstellungen.
  2. Öffnen Sie im Browser einen neuen Tab.
  3. Fügen Sie die URL ein und hängen Sie /healthy an den Pfad an. Beispiel: https://www.example.com/metrics/healthy
  4. Wenn Ihr Dienst funktioniert, sollte auf der Seite der Text ok angezeigt werden.

Wenn Anfragen für ein bestimmtes Produkt fehlen, prüfen Sie, ob ein Ereignis ausgelöst wird. Mit dem Befehl config wird das Produkt initialisiert. Daten werden aber in der Regel nur übertragen, wenn ein event aufgerufen wird.

Weitere Informationen zu Best Practices für die Überprüfung des serverseitigen Taggings finden Sie unter Benutzerdefinierte Domain konfigurieren.

Vorschau mehrerer URLs

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

Wenn Sie mehrere URLs angegeben haben, müssen alle Pfade (die Zeichenfolge 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, mit dem Sie die URL für die Vorschau auswählen können.

Tagging-Serverversion aktualisieren

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

Wenn Sie Ihren Tagging-Server aktualisieren möchten, führen Sie das Setupskript mit denselben Einstellungen wie zuvor noch einmal aus. Die vorhandenen Einstellungen sind 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 der Cloud Shell fest. Ersetzen Sie project ID durch die GCP-Projekt-ID, die Sie sich zuvor notiert haben:
    gcloud config set project project ID
  3. Führen Sie das Setupskript mit denselben Einstellungen wie zuvor aus. Die vorhandenen Einstellungen sind standardmäßig festgelegt.
    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"

So prüfen Sie, ob das Update erfolgreich war:

  1. Klicken Sie in Ihrem Servercontainer auf die Schaltfläche Vorschau, um eine neue Debugging-Sitzung zu starten und eine Anfrage auf einem separaten Tab zu senden.
  2. Wählen Sie in der Zusammenfassung den Tab Konsole aus und prüfen Sie, ob keine Meldungen angezeigt werden, in denen Sie aufgefordert werden, den Tagging-Server zu aktualisieren.

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

Zeitüberschreitungen bei der Produktionsbereitstellung beheben

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

  1. Falsche Berechtigungen für Dienstkonten : 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 sie jedoch aufgrund der Richtlinie einer Organisation falsch sein.

    1. Öffnen Sie in der Google Cloud Console in der linken Navigationsleiste die Seite IAM &Verwaltung.
    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 Editorhat, 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 Editor.
  2. Unzureichendes Kontingent : Die Produktionsbereitstellung verbraucht Compute Engine Kontingent. Wenn das Projekt nicht genügend Kontingent hat, kann es bei der Bereitstellung zu einer Zeitüberschreitung kommen, während versucht wird, Ressourcen bereitzustellen.

    1. Öffnen Sie in der Google Cloud Console in der linken Navigationsleiste die Seite IAM &Verwaltung 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. Suchen Sie nach CPUs und klicken Sie darauf. Prüfen Sie, ob die aktuelle Nutzung plus die Anzahl der bereitgestellten Instanzen immer noch unter dem Limit für die Bereitstellungsregion liegt.