Funktionsweise von analytics.js

Fast alles, was Sie für die Messung mit analytics.js benötigen, kann über die ga()-Befehlswarteschlange ausgeführt werden. In diesem Leitfaden wird erläutert, was die Befehlswarteschlange ist, wie sie funktioniert und wie Sie Befehle zum Messen von Nutzerinteraktionen ausführen.

Die ga-Befehlswarteschlange

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

In JavaScript sind Funktionen auch Objekte. Das bedeutet, dass sie Eigenschaften enthalten können. Das Google Analytics-Tag definiert eine q-Eigenschaft im ga-Funktionsobjekt als leeres Array. Bevor die analytics.js-Bibliothek geladen wird, wird durch das 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 sofort den Inhalt von ga.q in der Konsole protokollieren, sehen Sie ein Array mit zwei Elementen, das die beiden Gruppen von Argumenten enthält, die bereits an die ga()-Funktion übergeben wurden:

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.

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

Befehle zur Warteschlange hinzufügen

Alle Aufrufe der ga()-Befehlswarteschlange verwenden eine gemeinsame Signatur. Der erste Parameter, der „Befehl“, 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.

Bei der Methode, auf die sich ein bestimmter Befehl bezieht, kann es sich um eine globale Methode wie create, eine Methode für das ga-Objekt oder um eine Instanzmethode in einem Tracker-Objekt wie send handeln. Wenn die ga()-Befehlswarteschlange einen Befehl erhält, 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.

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 obigen 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 zu ga()-Befehlswarteschlangen finden Sie eine umfassende Liste der optionalen Parameter, die für jeden der Befehle zulässig sind.

Nächste Schritte

Nachdem Sie diesen Leitfaden gelesen haben, sollten Sie wissen, wie Befehle mit analytics.js ausgeführt werden und wie die Befehlswarteschlange funktioniert. In der nächsten Anleitung erfahren Sie, wie Tracker-Objekte erstellt werden.