ga-Objekt umbenennen

Sie können Ihrer Seite analytics.js hinzufügen, aber die Variable ga wird bereits für etwas anderes verwendet. Um dies zu vermeiden, bietet analytics.js einen Mechanismus zum Umbenennen des globalen ga-Objekts.

Globales Objekt umbenennen

Mit dem Google Analytics-Tag können Sie das globale ga-Objekt umbenennen, indem Sie den abschließenden Parameter ändern, der an die reduzierte Funktion übergeben wird. Außerdem müssen Sie alle Aufrufe der Befehlswarteschlange von ga() auf einen beliebigen Namen aktualisieren.

Wenn Sie beispielsweise das ga-Objekt in analytics umbenennen möchten, können Sie das Tag so ändern:

<!-- Google Analytics -->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','analytics');

analytics('create', 'UA-XXXXX-Y', 'auto');
analytics('send', 'pageview');
</script>
<!-- End Google Analytics -->

Globales Objekt manuell umbenennen

Das Umbenennen des globalen Objekts funktioniert, weil analytics.js beim Laden nach einem String sucht, der in einer globalen Variablen namens GoogleAnalyticsObject gespeichert ist. Wenn diese Variable gefunden wird, verwendet sie den Stringnamen als neuen Namen für die globale Befehlswarteschlange.

Wenn Sie beispielsweise die Methode $.getScript von jQuery zum Laden von analytics.js verwenden, können Sie das globale Objekt mit dem folgenden Code umbenennen:

<script>
// Instructs analytics.js to use the name `analytics`.
window.GoogleAnalyticsObject = 'analytics';

// Use jQuery to load analytics.js.
$.getScript('//www.google-analytics.com/analytics.js', function() {

  // Creates a tracker and sends a pageview using the renamed command queue.
  analytics('create', 'UA-12345-1', 'auto');
  analytics('send', 'pageview');
});
</script>

Das alternative asynchrone Tag

Im Gegensatz zum standardmäßigen Google Analytics-Tag bietet das alternative asynchrone Tag keine standardmäßige Unterstützung für die Umbenennung des globalen ga-Objekts.

Mit der oben beschriebenen Technik können Sie das globale ga-Objekt jedoch umbenennen und trotzdem von allen Vorteilen des alternativen asynchronen Tags profitieren.

Die folgende geänderte Version des alternativen asynchronen Tags setzt die GoogleAnalyticsObject-Variable auf analytics und benennt auch alle Instanzen von ga in analytics um:

<!-- Google Analytics -->
<script>

// Instructs analytics.js to use the name `analytics`.
window.GoogleAnalyticsObject = 'analytics';

// Creates an initial analytics() function.
// The queued commands will be executed once analytics.js loads.
window.analytics = window.analytics || function() {
  (analytics.q = analytics.q || []).push(arguments)
};

// Sets the time (as an integer) this tag was executed.
// Used for timing hits.
analytics.l = +new Date;

// Creates a default analytics object with automatic cookie domain configuration.
analytics('create', 'UA-12345-1', 'auto');

// Sends a pageview hit from the analytics object just created.
analytics('send', 'pageview');
</script>

<!-- Sets the `async` attribute to load the script asynchronously. -->
<script async src='//www.google-analytics.com/analytics.js'></script>
<!-- End Google Analytics -->