Einführung in das serverseitige Tagging

Serverseitiges Tagging ist eine neue Möglichkeit, Google Tag Manager zur Instrumentierung Ihrer Anwendung auf verschiedenen Geräten zu verwenden. Servercontainer verwenden dasselbe Tag-, Trigger- und Variablenmodell, das Sie bereits kennen. Außerdem bieten sie neue Tools, mit denen Sie Nutzeraktivitäten überall erfassen können.

Bei einer typischen Tagging-Konfiguration ohne serverseitiges Tagging werden Messdaten über einen Container auf der Seite an verschiedene Erfassungsserver gesendet. 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, auf der ein Google Tag Manager-Web-Container verwendet wird

Abbildung 1: Diagramm einer Website, die für die Verwendung eines Google Tag Manager-Webcontainers instrumentiert wurde.

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

Diagramm einer Website, die mit einem serverseitigen Tagging-Container instrumentiert wurde

Abbildung 2: Beispiel für eine Tagging-Konfiguration, die einen Servercontainer verwendet.

Der Server wird in Ihrem eigenen Google Cloud Platform-Projekt oder in einer anderen Umgebung Ihrer Wahl ausgeführt. Nur Sie haben Zugriff auf die Daten auf dem Server, bis Sie sie an einen anderen Ort senden. Sie haben die volle Kontrolle darüber, wie diese Daten strukturiert sind und wohin sie vom Server weitergeleitet werden. Tags werden mit der sandboxed JavaScript Technologie erstellt. Über Berechtigungen können Sie sehen, was das Tag tun kann, und mit Richtlinien können Sie Grenzen für den Container festlegen.

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 genau wie in anderen Containertypen: Trigger prüfen jedes Ereignis auf bestimmte Bedingungen und lösen gegebenenfalls Tags aus, die die Ereignisdaten zur Verarbeitung senden.

Dieses Modell wirft zwei wichtige Fragen für Servercontainer auf:

  • 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, die in Servercontainern verwendet wird: ein Client.

Funktionsweise von Clients

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

Das ist eine Menge. Sehen wir uns die einzelnen Teile genauer an. Abbildung 3 zeigt, wie Daten vom Webbrowser des Nutzers und von Ihrem Webserver in den Servercontainer fließen.

Diagramm einer Website, die mit einem serverseitigen Tagging-Container instrumentiert wurde

Abbildung 3: Für jeden Datenstream wird ein anderer Client verwendet.

Clients empfangen Messdaten von einem Gerät. Angenommen, Sie möchten Nutzeraktivitäten an drei Orten erfassen: auf einer Website, in einer Smartphone-App und auf einem Smart-Toaster. Ihre Website verwendet Google Analytics, Ihre Smartphone-App Firebase Analytics und Ihr Toaster ein proprietäres Protokoll namens „ToastMeasure“.

Für die Instrumentierung dieser drei Geräte mit Google Tag Manager wäre normalerweise für jede Plattform ein anderer Container erforderlich. Da der Servercontainer nicht auf dem Gerät ausgeführt wird, kann derselbe Container für die Analytics-Instrumentierung aller drei Geräteplattformen verwendet werden. Es gibt jedoch ein Problem. Diese Geräte kommunizieren nicht alle auf dieselbe Weise. Das Google Analytics-Protokoll ist nicht dasselbe wie das ToastMeasure-Protokoll. Hier kommen Clients ins Spiel.

Anstelle dieser drei Container enthält Ihr Servercontainer drei Clients. Jede Anfrage, die im Container eingeht, wird von jedem Client in der Reihenfolge der Priorität verarbeitet, beginnend mit dem Client mit der höchsten Priorität. Als Erstes prüft jeder Client, ob er diese Art von Anfrage verarbeiten kann. Wenn ja, „beansprucht“ der Client die Anfrage und fährt mit der nächsten Verarbeitungsphase fort. Durch das Beanspruchen der Anfrage wird verhindert, dass nachfolgende Clients ausgeführt werden. Wenn der Client die Anfrage nicht verarbeiten kann, unternimmt er nichts und lässt die anderen Clients entscheiden, ob sie die Anfrage verarbeiten sollen.

Clients wandeln Anfragedaten in ein oder mehrere Ereignisse um. Sobald der ToastMeasure-Client eine Anfrage beansprucht hat, muss er sie in etwas umwandeln, das der Rest des Containers versteht. Das sind Ereignisse.

Ereignisse sind Dinge, die passieren und die Sie erfassen möchten. Das kann alles sein: start_toasting, finish_toasting oder buy_bread. Es gibt einige Empfehlungen zur Struktur der Ereignisse, die ein Client generiert. Die einzige Anforderung ist, dass der Rest des Containers sie versteht.

Clients führen den Container aus. Der Client hat die Anfrage beansprucht und in Ereignisse umgewandelt. Jetzt sind die Tags, Trigger und Variablen an der Reihe. Der Client übergibt jedes Ereignis zur weiteren Verarbeitung an den Rest des Containers.

Clients verpacken die Ergebnisse, um sie an das Gerät zurückzusenden. Nachdem der Container ausgeführt wurde, ist es Zeit, auf den Toaster zu antworten. Die Antwort kann viele Formen annehmen. Vielleicht sagt der Client einfach „OK, fertig“. Vielleicht möchte eines der Tags die Anfrage an einen anderen Erfassungsserver weiterleiten. Oder vielleicht weist eines der Tags die Lichter auf dem Toaster an, die Farbe zu ändern. Was auch immer passieren soll, es ist die Aufgabe des Clients, die Ergebnisse zu verpacken und an den Anfragenden zurückzusenden.

Glücklicherweise übernimmt Tag Manager einen Großteil dieser Aufgaben für Sie. Servercontainer enthalten zwei Clients: Google Analytics und Measurement Protocol. Diese Clients bieten die Tools, die Sie benötigen, um Ihre Anwendung zu instrumentieren, sobald Sie Ihren Container erstellt haben.

Kurzes Beispiel

Sehen wir uns ein kurzes Beispiel an, um zu sehen, wie alles zusammenpasst. In diesem Beispiel erstellen Sie Folgendes:

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

In diesem Beispiel wird davon ausgegangen, dass Sie Ihren 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 einer Änderung. Legen Sie 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.

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

Google Analytics-Client

Ihr Container benötigt einen Client, um das Ereignis zu empfangen, sobald es den Server erreicht. Glücklicherweise ist auf Servercontainern ein Google Analytics-Client vorinstalliert. Dieser Schritt ist also bereits abgeschlossen.

Klickbasierter Trigger

Erstellen Sie als Nächstes einen Trigger, der bei einem 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-Tag

Hängen Sie schließlich ein Google Analytics-Tag an den Trigger an. Wie bei Clients ist in einem Servercontainer ein Google Analytics-Tag enthalten. Erstellen Sie einfach das Tag, konfigurieren Sie die Einstellungen und schon ist Ihr Container eingerichtet. Google Analytics-Clients und Google Analytics-Tags sind so konzipiert, dass sie zusammenarbeiten. Sie müssen also nur ein Google Analytics-Tag erstellen. Die Konfiguration wird automatisch aus den Ereignissen abgerufen, die vom Client ausgehen.

Container in der Vorschau ansehen

Nachdem der Container konfiguriert wurde, klicken Sie auf Vorschau. Rufen Sie Ihre Website in einem anderen Browserfenster auf. Wenn Anfragen und Ereignisse an Ihren Servercontainer gesendet werden, werden sie auf der linken Seite der Vorschauseite aufgeführt.

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

Server für den Produktionsmodus mit First-Party-Bereitstellung konfigurieren

Bevor Sie Produktions-Traffic an Ihren Servercontainer senden, empfehlen wir dringend, den Server auf Ihrer First-Party Domain zu installieren und ihn in den Produktions Modus zu versetzen.