2016-03-18 6 views
0

Mein Team arbeitet an einer Reihe von Tools und Seiten, die von Google Analytics analysiert werden müssen. Wir haben einen Analytics-Account für unser Team, in dem wir unsere Daten sammeln, die wir schon lange verwenden.Mehrere Google Analytics-Konten auf derselben Website verwenden

Vor kurzem mussten wir unsere Website mit einem anderen Repository unter der Website eines anderen Teams kombinieren. Aus diesem Grund haben unsere Analysen keine Daten mehr an unser Analytics-Konto gesendet. Die Daten werden stattdessen an das Konto des anderen Teams gesendet. Das Framework, das sie verwenden, injiziert bestimmten Code in alle Seiten auf der Website.

Wir möchten stattdessen unsere Ereignisdaten an unser Konto senden und herausfinden, wie wir unser Analyseobjekt ordnungsgemäß von seinen trennen können. Der folgende Code ist ein Beispiel dafür, was wir ändern möchten, um die Kommunikation mit zwei verschiedenen Konten zu ermöglichen. Jede Hilfe wird sehr geschätzt.

(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','ga'); 

ga('create', 'UA-XXXXXXXX-2', 'auto'); 

(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','ga'); 

ga('create', 'UA-YYYYYYYY-2', {'name':'b'}); 


ga('send', 'event', 'TheirAnalytics', 'TheirEvent'); 
ga('send', 'event', 'MyAnalytics', 'MyEvent'); 

Antwort

3

Die beiden vorhandenen Antworten auf dieser Seite verwenden, nicht korrekt sind und funktionieren eigentlich nicht. Sie definitiv nicht müssen das Skript analytics.js zweimal herunterladen, und Sie definitiv nicht wollen zwei command queue Funktionen erstellen.

Was Sie tun möchten, ist zwei tracker objects erstellen, geben Sie mindestens einer von ihnen einen Namen, und senden Sie dann Daten mit beiden.

Hier ist ein Beispiel:

<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','ga'); 

// Creates the first tracker for one of your accounts, 
// and uses the default name. 
ga('create', 'UA-XXXXX-1', 'auto'); 

// Creates the second tracker for the other account, 
// and give it the name "secondary" 
ga('create', 'UA-XXXXX-2', 'auto', 'secondary'); 

// Sends events from both trackers, 
// i.e. one event hit will be sent to each account. 
ga('send', 'event', 'MyAnalytics', 'MyEvent'); 
ga('secondary.send', 'event', 'TheirAnalytics', 'TheirEvent'); 

</script> 

Werfen Sie einen Blick auf die Dokumentation auf working with multiple trackers und using named trackers für weitere Details.

+0

Dies ist die richtige Antwort auf benannte Tracker. – nyuen

+0

Um diese Antwort noch einfacher zu verstehen: Man kann nicht zwei Tracker-Objekte mit dem gleichen Namen erstellen (im OP der Standardname), denn dann würde der zweite Tracker einfach den ersten überschreiben. Das ist der Grund für die Notwendigkeit, mindestens einen Tracker zu benennen, so dass letzterer den ersteren nicht überschreibt (mehr oder weniger ein Analog zur Variablenzuweisung, wenn Sie einer Variablen einen neuen Wert zuweisen, wird der bestehende überschrieben. Sie brauchen eine andere Variable für den neuen Wert). –

-1

Änderung der letzte (window,document,'script','//www.google-analytics.com/analytics.js','ga');-(window,document,'script','//www.google-analytics.com/analytics.js','ga2');

und ga2('send', 'event', 'MyAnalytics', 'MyEvent');

Verwandte Themen