Zmień nazwę obiektu GA

Czasami chcesz dodać do strony tag analytics.js, ale zmienna ga jest już używana do czegoś innego. Aby rozwiązać ten problem, analytics.js udostępnia mechanizm zmiany nazwy globalnego obiektu ga.

Zmień nazwę obiektu globalnego

Tag Google Analytics umożliwia zmianę nazwy globalnego obiektu ga przez zmianę końcowego parametru przekazywanego do funkcji zminifikowanej. Musisz też zaktualizować wszystkie wywołania kolejki poleceń z ga() na dowolną wybraną nazwę.

Jeśli na przykład chcesz zmienić nazwę obiektu ga na analytics, możesz zmodyfikować tag w ten sposób:

<!-- 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 -->

Ręczne zmienianie nazwy obiektu globalnego

Zmiana nazwy obiektu globalnego działa, ponieważ kod analytics.js po wczytaniu wyszukuje ciąg znaków zapisany w zmiennej globalnej o nazwie GoogleAnalyticsObject. Jeśli znajdzie tę zmienną, użyje nazwy ciągu znaków jako nowej nazwy globalnej kolejki poleceń.

Jeśli np. do wczytywania pliku analytics.js używasz metody $.getScript jQuery, możesz zmienić nazwę obiektu globalnego, korzystając z tego kodu:

<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>

Alternatywny tag asynchroniczny

W przeciwieństwie do standardowego tagu Google Analytics alternatywny tag asynchroniczny nie zapewnia domyślnej obsługi zmiany nazwy globalnego obiektu ga.

Korzystając jednak z powyższej metody, możesz zmienić nazwę globalnego obiektu ga i nadal korzystać ze wszystkich zalet wstępnego wczytywania alternatywnego tagu asynchronicznego.

Poniższa zmodyfikowana wersja alternatywnego tagu asynchronicznego ustawia zmienną GoogleAnalyticsObject na analytics i zmienia również nazwę wszystkich wystąpień ga na analytics:

<!-- 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 -->