Einführung in das serverseitige Tagging

Serverseitiges Tagging ist eine neue Möglichkeit, mit Google Tag Manager Ihre Anwendung geräteübergreifend zu verwalten. Servercontainer verwenden dasselbe Tag-, Trigger- und Variablenmodell, das Sie gewohnt sind. Außerdem bieten sie neue Tools, mit denen Sie Nutzeraktivitäten überall messen können.

Bei einer typischen Tagging-Konfiguration ohne serverseitiges Tagging wird ein Container auf der Seite verwendet, um Messdaten an verschiedene Erfassungsserver zu senden. Abbildung 1 zeigt ein Beispiel dafür, wie ein Tag Manager-Webcontainer, der in einem Webbrowser ausgeführt wird, Daten an mehrere Server sendet.

Diagramm einer Website, die zur Verwendung eines Google Tag Manager-Webcontainers eingerichtet ist

Abbildung 1: Diagramm einer Website, die für die Verwendung eines Google Tag Manager-Webcontainers eingerichtet ist

Im Gegensatz dazu wird ein Servercontainer nicht im Browser des Nutzers oder auf seinem Smartphone ausgeführt. Stattdessen wird es auf einem Server ausgeführt, den Sie kontrollieren.

Diagramm einer Website, die mithilfe eines serverseitigen Tagging-Containers instrumentiert wird

Abbildung 2: Beispiel für eine Tagging-Konfiguration mit einem Servercontainer

Der Server wird in Ihrem eigenen Google Cloud Platform-Projekt oder in einer anderen Umgebung Ihrer Wahl ausgeführt. Bis Sie sie an eine andere Stelle senden, haben nur Sie Zugriff auf die Daten auf dem Server. Sie haben die volle Kontrolle darüber, wie diese Daten geformt werden und wohin sie vom Server weitergeleitet werden. Tags werden mithilfe der JavaScript-Technologie in einer Sandbox erstellt. Mit Berechtigungen erhalten Sie Einblick in die Funktionen des Tags, und mit Richtlinien können Sie Grenzen um den Container setzen.

Der Server empfängt Webanfragen vom Gerät des Nutzers und wandelt diese Anfragen in Ereignisse um. Jedes Ereignis wird von den Tags, Triggern und Variablen des Containers verarbeitet. Tags, Trigger und Variablen in einem Servercontainer funktionieren genauso wie in anderen Arten von Containern: Trigger untersuchen jedes Ereignis auf bestimmte Bedingungen und lösen gegebenenfalls Tags aus, die die zu verarbeitenden Ereignisdaten senden.

Dieses Modell stellt zwei wichtige Fragen für Servercontainer:

  • Wie gelangen Messdaten vom Gerät des Nutzers zum Servercontainer?
  • Wie werden Messdaten, die an einen Servercontainer gesendet werden, in ein Ereignis umgewandelt?

Die Antwort auf beide Fragen ist eine neue Art von Entität zur Verwendung in Servercontainern: ein Client.

Wie Kunden arbeiten

Clients sind Adapter zwischen der Software, die auf dem Gerät eines Nutzers ausgeführt wird, und Ihrem Servercontainer. Der Client empfängt Messdaten von einem Gerät, wandelt diese Daten in ein oder mehrere Ereignisse um, leitet die Daten weiter, die im Container verarbeitet werden sollen, und packt die Ergebnisse, um sie an den Anfragenden zurückzusenden.

Das ist ganz schön viel! Sehen wir uns die einzelnen Teile genauer an. Abbildung 3 zeigt, wie Daten vom Webbrowser des Nutzers in den Servercontainer fließen und von Ihrem Webserver zum Servercontainer.

Diagramm einer Website, die mithilfe eines serverseitigen Tagging-Containers instrumentiert wird

Abbildung 3: Ein anderer Client verarbeitet jeden Datenstream.

Clients empfangen Messdaten von einem Gerät. Angenommen, Sie möchten die Nutzeraktivität an drei Stellen messen: auf einer Website, in einer Telefon-App und auf einem Smart-Toaster. Auf Ihrer Website wird Google Analytics, in Ihrer Smartphone-App Firebase Analytics verwendet und auf Ihrem Toaster das proprietäre Protokoll „ToastMeasure“.

Die Instrumentierung dieser drei Geräte mit Google Tag Manager würde normalerweise einen anderen Container für jede Plattform erfordern. Da der Servercontainer nicht auf dem Gerät ausgeführt wird, kann derselbe Container die Analyseinstrumentierung für alle drei Geräteplattformen verarbeiten. Es gibt jedoch ein Problem. Nicht alle Geräte kommunizieren auf die gleiche Weise. Das Google Analytics-Protokoll ist nicht mit dem ToastMeasure-Protokoll identisch. Hier kommen Kunden ins Spiel.

Anstelle dieser drei Container hat Ihr Servercontainer drei Clients. Jede Anfrage, die in den Container eingeht, wird von jedem Client in der Reihenfolge der Priorität verarbeitet, der Client mit der höchsten Priorität zuerst. Zuerst entscheidet jeder Client, ob er weiß, wie er diese Art von Anfrage verarbeiten kann. Falls ja, "beansprucht" der Client die Anfrage und fährt mit der nächsten Verarbeitungsphase fort. Das Beanspruchen der Anfrage verhindert, dass nachfolgende Clients ausgeführt werden. Wenn der Client die Anfrage nicht verarbeiten kann, geschieht nichts und überlässt den anderen Clients entscheiden, ob sie die Anfrage verarbeiten möchten oder nicht.

Clients wandeln Anfragedaten in ein oder mehrere Ereignisse um. Sobald der ToastMeasure-Client eine Anfrage beansprucht hat, muss er die Anfrage so umwandeln, dass sie für den Rest des Containers verstanden wird. Dieses Ereignis ist eine Reihe von Ereignissen.

Ereignisse sind Ereignisse, die Sie erfassen möchten. Sie können beliebige Werte haben: start_toasting, finish_toasting oder buy_bread. Es gibt einige Empfehlungen zur Struktur der von einem Client generierten Ereignisse. Die einzige Voraussetzung ist jedoch, dass der Rest des Containers sie versteht.

Clients führen den Container aus. Der Client hat die Anfrage beansprucht und in Ereignisse umgewandelt. Nun kommen wir zu den Tags, Triggern und Variablen. Der Client übergibt jedes Ereignis zur weiteren Verarbeitung an den Rest des Containers.

Clients packen die Ergebnisse, um sie an das Gerät zurückzusenden. Sobald der Container ausgeführt wurde, muss auf den Toaster reagiert werden. Die Antwort kann viele Formen annehmen. Vielleicht sagt der*die Kund*in nur „OK, fertig“. Vielleicht möchte eines der Tags die Anfrage an einen anderen Erfassungsserver weiterleiten. Oder vielleicht zeigt eines der Tags die Lampen am Toaster an, ihre Farbe zu ändern. Was auch immer passieren soll, es ist die Aufgabe des Clients, die Ergebnisse zu bündeln und an den Anforderer zurückzusenden.

Glücklicherweise übernimmt der Tag Manager einen Großteil dieser Aufgaben für Sie. Servercontainer enthalten drei Clients: Google Analytics 4, Google Analytics: Universal Analytics und Measurement Protocol. Diese Clients bieten die Tools, die Sie benötigen, um mit der Instrumentierung Ihrer Anwendung zu beginnen, sobald Sie den Container erstellt haben.

Ein kurzes Beispiel

Sehen wir uns ein kurzes Beispiel an, um zu sehen, wie die einzelnen Teile zusammenpassen. In diesem Beispiel erstellen Sie Folgendes:

  1. Eine einfache Website, die gtag.js verwendet, um ein click-Ereignis an einen Servercontainer zu senden.
  2. Ein Google Analytics 4-Client, der das Ereignis empfängt
  3. Ein Trigger, der bei einem click-Ereignis ausgelöst wird.
  4. Ein Google Analytics 4-Tag, das die Ereignisdaten zur Verarbeitung an Google Analytics sendet

In diesem Beispiel wird davon ausgegangen, dass Sie den Servercontainer bereits erstellt und bereitgestellt haben.

gtag.js konfigurieren

Konfigurieren Sie zuerst gtag.js, um die Daten an Ihren Servercontainer zu senden. Mit gtag.js funktioniert das Senden von Daten an Ihren Servercontainer genauso wie das Senden von Daten an Google Analytics – mit nur einer Änderung. Legen Sie wie auf der Beispielseite unten die Konfigurationsoption server_container_url so fest, dass sie auf den Servercontainer verweist.

<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=TAG_ID"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'TAG_ID', {
    server_container_url: 'https://analytics.example.com',
  });
</script>

Ersetzen Sie TAG_ID durch Ihre Tag-ID. Ersetzen Sie https://analytics.example.com durch die URL Ihres Servercontainers.

Fügen Sie als Nächstes eine sendEvent()-Funktion hinzu, um die click-Ereignisse zu verarbeiten:

<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=TAG_ID"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'TAG_ID', {
    server_container_url: 'https://analytics.example.com',
  });

  function sendEvent() {
    gtag('event', 'click');
  }
</script>

<button onclick="javascript:sendEvent()">Send Event</button>

Ersetzen Sie TAG_ID durch Ihre Tag-ID. Ersetzen Sie https://analytics.example.com durch die URL Ihres Servercontainers.

Bei dieser Konfiguration senden Event-Handler wie die in diesem Beispiel enthaltene Funktion sendEvent() ein click-Ereignis an Ihren Servercontainer.

Google Analytics 4-Client

Der Container benötigt einen Client, um das Ereignis zu empfangen, sobald es den Server erreicht. Glücklicherweise ist auf Servercontainern ein Google Analytics 4-Client vorinstalliert, sodass Sie diesen Schritt bereits abgeschlossen haben.

Klickbasierter Trigger

Erstellen Sie als Nächstes einen Trigger, der beim click-Ereignis ausgelöst wird. Erstellen Sie einen benutzerdefinierten Trigger, der ausgelöst wird, wenn die integrierte Variable Ereignisname gleich „click“ ist.

Triggerkonfiguration

Google Analytics 4-Tag

Hängen Sie zum Schluss ein GA4-Tag an den Trigger an. Genau wie bei Clients ist in einem Servercontainer ein GA4-Tag enthalten. Erstellen Sie einfach das Tag, konfigurieren Sie die Einstellungen und schon ist der Container eingerichtet. GA4-Clients und GA4-Tags sind aufeinander abgestimmt. Sie müssen also lediglich ein GA4-Tag erstellen. Die Konfiguration des Tags wird dann automatisch aus den vom Client stammenden Ereignissen übernommen.

Container als Vorschau ansehen

Nachdem Sie den Container konfiguriert haben, klicken Sie auf Vorschau. Rufen Sie Ihre Website in einem anderen Browserfenster auf. Wenn Anfragen und Ereignisse an Ihren Servercontainer gesendet werden, werden sie links auf der Vorschauseite angezeigt.

Wenn Sie mit Ihren Änderungen zufrieden sind, veröffentlichen Sie den Servercontainer.

Server für den Produktionsmodus mit eigener Bereitstellung konfigurieren

Bevor Sie Produktionstraffic an Ihren Servercontainer senden, sollten Sie den Server unbedingt in Ihrer Erstanbieterdomain installieren und im Produktionsmodus hochstufen.