„ga.js“ ist eine JavaScript-Bibliothek zum Messen der Interaktion von Nutzern mit Ihrer Website. Dies ist eine Legacy-Bibliothek. Wenn Sie Google Analytics erstmals verwenden, sollten Sie die aktuelle Tracking-Bibliothek analytics.js verwenden.
Tracking-Code – Kurzanleitung
Das Analytics-Snippet ist ein kurzer JavaScript-Code, den du auf deinen Seiten einfügst. Das Google Analytics-Tracking wird durch Einfügen von ga.js
in die Seite aktiviert. Wenn Sie es auf Ihren Seiten verwenden möchten, kopieren Sie das Code-Snippet unten und ersetzen Sie UA-XXXXX-X
durch Ihre Web-Property-ID.
Fügen Sie das Snippet auf der Seite Ihrer Websitevorlage vor dem schließenden </head>
-Tag ein.
Wenn du mehr als nur das grundlegende Seiten-Tracking verwenden musst, findest du in der Tracking-Referenz eine Liste der in der API verfügbaren Methoden und im Nutzungsleitfaden Einzelheiten zur Verwendung der asynchronen Syntax. Eine detaillierte Anleitung zum Einrichten des Trackings finden Sie im Hilfeartikel Tracking einrichten.
<script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script>
Das Snippet oben stellt die Mindestkonfiguration dar, die erforderlich ist, um eine Seite asynchron zu erfassen. Er verwendet _setAccount
, um die Web-Property-ID der Seite festzulegen, und ruft dann _trackPageview
auf, um die Tracking-Daten an die Google Analytics-Server zurückzusenden.
Wichtig: Wenn du deine Seiten vom traditionellen Snippet auf die neueste, asynchrone Version aktualisierst, entferne zuerst das vorhandene Tracking-Snippet. Wir raten davon ab, beide Snippets auf derselben Seite zu verwenden. Eine Migrationsanleitung finden Sie unter Zu asynchron migrieren.
Funktionsweise der asynchronen Syntax
Mit dem Objekt _gaq
wird die asynchrone Syntax ermöglicht.
Sie dient als Warteschlange. Dies ist eine First-In-First-Out-Datenstruktur, mit der API-Aufrufe erfasst werden,bis ga.js
zur Ausführung bereit ist. Verwenden Sie die Methode _gaq.push
, um der Warteschlange etwas hinzuzufügen.
Um einen API-Aufruf in die Warteschlange zu stellen, müssen Sie ihn von der traditionellen JavaScript-Syntax in ein Befehlsarray konvertieren. Befehlsarrays sind einfache JavaScript-Arrays, die einem bestimmten Format entsprechen. Das erste Element in einem Befehlsarray ist der Name der Tracker-Objektmethode, die Sie aufrufen möchten. Er muss ein String sein. Die restlichen Elemente sind die Argumente, die Sie an die Tracker-Objektmethode übergeben möchten. Dies kann ein beliebiger JavaScript-Wert sein.
Mit dem folgenden Code wird _trackPageview()
mit der traditionellen Syntax aufgerufen:
var pageTracker = _gat._getTracker('UA-XXXXX-X'); pageTracker._trackPageview();
Der entsprechende Code in der asynchronen Syntax erfordert zwei Aufrufe von _gaq.push
.
_gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_trackPageview']);
In der asynchronen Syntax wird die Erstellung des Tracker-Objekts impliziert, wir benötigen jedoch noch eine Möglichkeit, die Web-Property-ID für den Tracker festzulegen. Die Methode _setAccount
wurde hinzugefügt, um diese Funktion bereitzustellen. Alle anderen Tracker-Objektmethoden sind für das asynchrone und das herkömmliche Tracking identisch. Nur die Syntax ist anders.
Weitere Informationen zur asynchronen Syntax finden Sie in der Tracking-Referenz für die Methode _gaq.push
.
Tracking mit HTML-Ereignis-Handlern
Die asynchrone Tracking-Syntax sollte auch in DOM-Ereignis-Handlern verwendet werden. Die folgende Schaltfläche generiert beispielsweise ein Ereignis, wenn darauf geklickt wird.
<button onclick="_gaq.push(['_trackEvent', 'button3', 'clicked'])"></button>
Selbst wenn diese Schaltfläche angeklickt wird, bevor der Browser ga.js
vollständig geladen hat, wird das Ereignis erfasst und schließlich ausgeführt. Beim herkömmlichen Tracking kann der Browser in diesem Fall eine Ausnahme auslösen.
Funktionen in die Warteschlange verschieben
Neben Befehlsarrays können Sie Funktionsobjekte auch in die Warteschlange _gaq
verschieben. Die Funktionen können beliebiges JavaScript und Befehlsarrays enthalten und werden in der Reihenfolge ausgeführt, in der sie auf _gaq
übertragen werden. Dieses Verfahren eignet sich zum Aufrufen der Tracking-APIs, die Werte zurückgeben. Mit dem folgenden Code wird beispielsweise eine Verknüpfungs-URL erstellt und die Property href
für eine Verknüpfung mit dem Ergebnis festgelegt.
_gaq.push(function() { var pageTracker = _gat._getTracker('UA-XXXXX-X'); var link = document.getElementById('my-link-id'); link.href = pageTracker._getLinkerUrl('http://example.com/'); });
Im obigen Beispiel wird _gat
zum Erstellen eines Tracker-Objekts verwendet. Da es aber einer lokalen Variablen zugewiesen ist, kann es von Code außerhalb der Funktion nicht verwendet werden. Dies ist zwar akzeptabel, aber Sie können die Methode _gat._createTracker
verwenden, um ein dauerhaftes, global zugängliches Objekt zu erstellen.
Der folgende Code zeigt, wie das funktioniert.
_gaq.push(function() { var pageTracker = _gat._createTracker('UA-XXXXX-X', 'myTracker'); var link = document.getElementById('my-link-id'); link.href = pageTracker._getLinkerUrl('http://example.com/'); }); _gaq.push(['myTracker._trackPageview']);
Im obigen Beispiel wird ein asynchroner Tracker innerhalb der Funktion erstellt und dann später mit dem Namen im Befehlsarray darauf verwiesen.
Auch der gegenteilige Anwendungsfall ist möglich. Wenn Sie beispielsweise ein asynchrones Tracker-Objekt verwenden müssen, das mit einem zuvor per Push übertragenen Befehlsarray erstellt wurde, verwenden Sie die Methode _gat._getTrackerByName
. Der folgende Code veranschaulicht die Funktionsweise.
_gaq.push(['myTracker._setAccount', 'UA-XXXXX-X']); _gaq.push(function() { var pageTracker = _gat._getTrackerByName('myTracker'); var link = document.getElementById('my-link-id'); link.href = pageTracker._getLinkerUrl('http://example.com/'); });
One Push, mehrere Befehle
Anstatt für jeden Aufruf _gaq.push(...)
eingeben zu müssen, können Sie alle Befehle gleichzeitig übertragen. Der folgende Code veranschaulicht diese Technik.
_gaq.push( ['_setAccount', 'UA-XXXXX-X'], ['_setDomainName', 'example.com'], ['_setCustomVar', 1, 'Section', 'Life & Style', 3], ['_trackPageview'] );
Das funktioniert, weil die Methode _gaq.push
die Methode Array.push
imitiert, mit der mehrere Elemente mit einem Aufruf gesendet werden können.
Snippet aufteilen
Wenn du das Analytics-Snippet unten auf der Seite platzieren möchtest, solltest du wissen, dass du nicht das gesamte Snippet unten einfügen musst.
Die meisten Vorteile des asynchronen Ladens können Sie auch weiterhin nutzen, indem Sie das Snippet in zwei Hälften aufteilen. Die erste Hälfte sollte oben auf der Seite stehen, der Rest nach unten. Da der erste Teil des Tracking-Snippets kaum oder gar keinen Einfluss auf das Rendern der Seite hat, kannst du diesen Teil oben belassen und unten den Teil des Snippets einfügen, der ga.js
einfügt.
Eine Seite, bei der die asynchrone Snippet-Aufteilung in zwei Teile erfolgt, könnte so aussehen:
<html> <head> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_trackPageview']); </script> </head> <body> <p>Page Content</p> <script src="some_random_script.js"></script> <p>Page Content</p> <script type="text/javascript"> (function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script> </body> </html>
Beide Codeabschnitte müssen in eigene Skript-Tags eingebettet werden, aber nur die letzten sechs Zeilen des ursprünglichen asynchronen Snippets müssen an das Ende verschoben werden. Alle Linien, die Methoden auf _gaq
übertragen, können oben bleiben.
Häufige Fehler vermeiden
Beachten Sie bei der Verwendung der asynchronen oder traditionellen Syntax Folgendes:
- Bei Namen von Methoden wird zwischen Groß- und Kleinschreibung unterschieden.
Wenn Sie einen Methodennamen ohne korrekte Groß- und Kleinschreibung verwenden, funktionieren die Methodenaufrufe nicht. Beispiele:_gaq.push(['_trackpageview']); // bad _gaq.push(['_trackPageview']); // good
- Verwenden Sie die richtigen Methodennamen.
Wenn das Tracking nicht richtig funktioniert, prüfen Sie, ob Sie den richtigen Namen für die Methode verwenden. Beispiele:_gaq.push(['_setDomain', 'example.com']); // bad _gaq.push(['_setDomainName', 'example.com']); // good
- Nur Strings sollten mit Anführungszeichen übergeben werden. Für alle anderen Typen sollte kein Anführungszeichen verwendet werden.
Jeder Wert, der kein String ist, z. B. ein boolescher Wert, Objektliterale, Funktionen oder Arrays, sollte ohne Anführungszeichen übergeben werden. Verwenden Sie Anführungszeichen nur, wenn Sie etwas übergeben, das als String interpretiert werden soll. Wenn Sie von der herkömmlichen Syntax migrieren, sollte ein Funktionsparameter, der ohne Anführungszeichen übergeben wurde, in der asynchronen Syntax nicht in Anführungszeichen gesetzt bleiben. Beispiele:_gaq.push(['_setAllowLinker', 'false']); // bad _gaq.push(['_setAllowLinker', false]); // good
- Achten Sie darauf, dass der String keine Leerzeichen am Anfang oder Ende enthält.
Beispiele:_gaq.push(['_setAccount', ' UA-65432-1']); // bad _gaq.push(['_setAccount', 'UA-65432-1']); // good
Tracking deaktivieren
In einigen Fällen ist es notwendig, den Google Analytics-Tracking-Code auf einer Seite zu deaktivieren, ohne das Code-Snippet entfernen zu müssen. Das ist beispielsweise sinnvoll, wenn die Datenschutzerklärung deiner Website die Möglichkeit bietet, das Google Analytics-Tracking zu deaktivieren.
Das Tracking-Snippet ga.js
enthält jetzt eine Fenster-Property, mit der bei der Einstellung true
das Tracking-Snippet am Senden von Daten an Google Analytics deaktiviert wird.
Wenn Google Analytics versucht, ein Cookie zu setzen oder Daten an die Google Analytics-Server zurückzusenden, wird überprüft, ob diese Property auf true
gesetzt ist. Ist dies der Fall, hat dies denselben Effekt, als hätte der Besucher das Browser-Plug-in zur Deaktivierung von Google Analytics installiert.
Wenn Sie das Tracking deaktivieren möchten, setzen Sie die folgende Fenstereigenschaft auf „true“:
window['ga-disable-UA-XXXXXX-Y'] = true;
Dabei entspricht der Wert UA-XXXXXX-Y
der Web-Property-ID, für die Sie das Tracking deaktivieren möchten.
Diese Fenstereigenschaft muss festgelegt werden, bevor der Tracking-Code aufgerufen wird. Diese Property muss auf jeder Seite festgelegt werden, auf der Sie das Google Analytics-Tracking deaktivieren möchten. Wenn die Property nicht auf „false“ gesetzt oder nicht konfiguriert ist, funktioniert das Tracking wie gewohnt.
Angenommen, Ihr Google Analytics-Tracking-Code auf einer Seite enthält beispielsweise:
_gaq.push['_setAccount', 'UA-123456-1']
Wenn Sie verhindern möchten, dass mit diesem Tracking-Code Cookies gesetzt oder Daten an Google Analytics zurückgesendet werden, verwenden Sie den folgenden Code, bevor der Tracking-Code aufgerufen wird:
window['ga-disable-UA-123456-1'] = true;
Wenn du mehrere Tracker auf einer Seite mit mehreren Web-Property-IDs verwendest, musst du die entsprechende window['ga-disable-UA-XXXXXX-Y']
-Variable für jede Web-Property auf true
setzen, um das Google Analytics-Tracking auf dieser Seite vollständig zu deaktivieren.
Beispiel
Hier siehst du ein einfaches Beispiel für einen Code, den du verwenden kannst, um Nutzern die Möglichkeit zu bieten, die Funktion zu deaktivieren.
Fügen Sie Ihrer Website zuerst einen neuen HTML-Link hinzu, um die Widerspruchslogik auszuführen:
<a href="javascript:gaOptout()">Click here to opt-out of Google Analytics</a>
Fügen Sie dann das folgende Code-Snippet vor dem Code-Snippet „ga.js“ ein. Ersetze den Wert von gaProperty
von UA-XXXX-Y
durch die Property, die auf deiner Website verwendet wird.
Dies ist derselbe Wert, den Sie an den Befehl _setAccount
übergeben.
<script> // Set to the same value as the web property used on the site var gaProperty = 'UA-XXXX-Y'; // Disable tracking if the opt-out cookie exists. var disableStr = 'ga-disable-' + gaProperty; if (document.cookie.indexOf(disableStr + '=true') > -1) { window[disableStr] = true; } // Opt-out function function gaOptout() { document.cookie = disableStr + '=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/'; window[disableStr] = true; } </script>
Wenn ein Nutzer auf den Opt-out-HTML-Link klickt, wird die benutzerdefinierte Funktion gaOptout
ausgeführt. Dadurch wird lange Zeit ein Cookie gesetzt und die Datenerhebung in analytics.js wird deaktiviert.
Wenn ein Nutzer auf diese Website zurückkehrt, prüft das Skript oben, ob das Opt-out-Cookie gesetzt wurde. Ist das der Fall, wird die analytics.js-Datenerhebung ebenfalls deaktiviert.
SSL erzwingen (HTTPS)
Sie können erzwingen, dass Daten in Google Analytics immer mithilfe von SSL gesendet werden, auch wenn das von unsicheren Seiten stammt (HTTP). Dazu verwenden Sie die Methode _gat._forceSSL
. Hier ein Beispiel:
_gaq.push(['_setAccount', 'UA-12345-1']); _gaq.push(['_gat._forceSSL']); // Send all hits using SSL, even from insecure (HTTP) pages. _gaq.push(['_trackPageview']);