Funktionsweise von analytics.js

Fast alles, was Sie zur Messung mit analytics.js benötigen, kann mit der ga()-Befehlswarteschlange ausgeführt werden. In diesem Leitfaden wird erläutert, was die Befehlswarteschlange ist, wie sie funktioniert und wie Sie Befehle ausführen, um Nutzerinteraktionen zu messen.

Die ga-Befehlswarteschlange

Das Google Analytics-Tag definiert eine globale ga-Funktion, die als „Befehlswarteschlange“ bezeichnet wird. Sie wird als Befehlswarteschlange bezeichnet, da die empfangenen Befehle nicht sofort ausgeführt werden, sondern sie zu einer Warteschlange hinzugefügt werden. Dadurch verzögert sich die Ausführung, bis die analytics.js-Bibliothek vollständig geladen ist.

In JavaScript sind Funktionen auch Objekte, das heißt, sie können Eigenschaften enthalten. Das Google Analytics-Tag definiert eine q-Eigenschaft des Funktionsobjekts ga als leeres Array. Bevor die analytics.js-Bibliothek geladen wird, wird beim Aufrufen der ga()-Funktion die Liste der Argumente, die an die ga()-Funktion übergeben wurden, an das Ende des q-Arrays angehängt.

Wenn Sie beispielsweise das Google Analytics-Tag ausführen und dann den Inhalt von ga.q sofort in der Konsole protokollieren, sehen Sie ein Array mit zwei Elementen, das die beiden bereits an die Funktion ga() übergebenen Argumentsätze enthält:

console.log(ga.q);

// Outputs the following:
// [
//   ['create', 'UA-XXXXX-Y', 'auto'],
//   ['send', 'pageview']
// ]

Sobald die analytics.js-Bibliothek geladen ist, prüft sie den Inhalt des ga.q-Arrays und führt jeden Befehl der Reihe nach aus. Danach wird die Funktion ga() neu definiert, sodass alle nachfolgenden Aufrufe sofort ausgeführt werden.

Mit diesem Muster können Entwickler die ga()-Befehlswarteschlange verwenden, ohne sich darum kümmern zu müssen, ob die analytics.js-Bibliothek vollständig geladen wurde. Es bietet eine einfache, synchron aussehende Oberfläche, die den Großteil der Komplexität von asynchronem Code abstrahiert.

Befehle zur Warteschlange hinzufügen

Alle Aufrufe der ga()-Befehlswarteschlange haben eine gemeinsame Signatur. Der erste Parameter, „command“, ist ein String, mit dem eine bestimmte analytics.js-Methode identifiziert wird. Alle zusätzlichen Parameter sind die Argumente, die an diese Methode übergeben werden.

Die Methode, auf die sich ein bestimmter Befehl bezieht, kann eine globale Methode wie create, eine Methode für das ga-Objekt oder eine Instanzmethode für ein Tracker-Objekt wie send sein. Wenn die ga()-Befehlswarteschlange einen Befehl empfängt, den sie nicht erkennt, wird er einfach ignoriert. Aufrufe der ga()-Funktion sind dann sehr sicher, da sie fast nie zu einem Fehler führen werden.

Eine umfassende Liste aller Befehle, die über die Befehlswarteschlange ausgeführt werden können, finden Sie in der Referenz zur ga()-Befehlswarteschlange.

Befehlsparameter

Die meisten analytics.js-Befehle und die entsprechenden Methoden akzeptieren Parameter in verschiedenen Formaten. Damit soll die Übergabe häufig verwendeter Felder an bestimmte Methoden vereinfacht werden.

Sehen wir uns als Beispiel die beiden Befehle im Google Analytics-Tag an:

ga('create', 'UA-XXXXX-Y', 'auto');
ga('send', 'pageview');

Im ersten Befehl akzeptiert create die Felder trackingId, cookieDomain und name, die optional als zweiter, dritter und vierter Parameter angegeben werden können. Für den Befehl send kann ein optionaler zweiter hitType-Parameter angegeben werden.

Alle Befehle akzeptieren einen abschließenden fieldsObject-Parameter, mit dem auch beliebige Felder angegeben werden können. Die beiden oben genannten Befehle im Tag könnten beispielsweise wie folgt umgeschrieben werden:

ga('create', {
  trackingId: 'UA-XXXXX-Y',
  cookieDomain: 'auto'
});
ga('send', {
  hitType: 'pageview'
});

In der Referenz zur ga()-Befehlswarteschlange finden Sie eine umfassende Liste der optionalen Parameter, die für die einzelnen Befehle zulässig sind.

Nächste Schritte

Nachdem Sie diese Anleitung gelesen haben, sollten Sie mit der Ausführung von Befehlen mit analytics.js und der Funktionsweise der Befehlswarteschlange vertraut sein. In der nächsten Anleitung wird das Erstellen von Tracker-Objekten behandelt.