1

Я пытаюсь настроить отслеживание свойств нескольких субдоменов, а также отправлять данные в основное свойство.Google Analytics - отслеживание нескольких свойств, включая родительский

На данный момент мы имеем следующие настройки:

domain.com - UA-XXX-1

foo.domain.com - UA-XXX-2

bar.domain.com - UA-XXX-3

Если пользователь посещает домен «foo.domain.com», я хочу, чтобы на страницу просмотра были отправлены данные UA-XXX-1 и UA-XXX-2. Из моего понимания, мне нужно настроить код GA как таковой:

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

ga('create', 'UA-XXX-1', 'auto'); 
ga('send', 'pageview'); 
ga('create', 'UA-XXX-2', 'auto',{'name': 'Foo'}); 
ga('Foo.send', 'pageview'); 
</script> 

Установка этого для всех поддоменов как таковой будет означать, что, если я пойду на UA-XXX-1, я буду видеть смесь данных из все свойства субдомена, которые я установил, и если я войду в отдельные, я увижу данные только для этих конкретных свойств. Легко.

Однако, что я пытаюсь понять, если это правильный метод для использования, когда дело доходит до добавления таких вещей, как отслеживание событий/конверсий?

Если бы я имел связь как таковую:

<a href="teletubbies.com" onclick="ga('send','event','Teletubby','Tinkywinky','Click');">Teletubbies</a> 

Это только послать событие в собственность UA-XXX-1, а не второе свойство UA-XXX-2, который был настроен как хорошо, верный? Означает ли это, что для каждого кода отслеживания мне нужно будет добавить два отдельных кода отслеживания только для отправки отслеживания событий или есть более простое решение?

<a href="teletubbies.com" onclick="ga('send','event','Teletubby','Tinkywinky','Click'); ga('Foo.send', 'event', 'videos', 'predators');">Teletubbies</a> 

ответ

3

Все, что у вас есть, указано правильно. И да, вам нужно будет отправить хиты дважды, чтобы они отображались в двух отдельных свойствах.

Если вам не нравится повторять себя так много, вы можете абстрагировать две команды отправки в одну функцию JavaScript, которая всегда отправляет удары по обоим свойствам.

Например:

function runGACommand() { 
    var mainTrackerArgs = [].slice.call(arguments, 0); 
    var fooTrackerArgs = mainTrackerArgs.slice(0); 

    // Sets the "Foo" name on the second set of arguments. 
    fooTrackerArgs[0] = 'Foo.' + fooTrackerArgs[0]; 

    // Runs the command on both trackers. 
    ga.apply(null, mainTrackerArgs); 
    ga.apply(null, fooTrackerArgs); 
} 

Теперь вы можете упростить обработчики событий, чтобы быть именно это:

<a href="teletubbies.com" onclick="runGACommand('send','event','Teletubby','Tinkywinky','Click');">Teletubbies</a> 

И он будет передавать данные в обоих свойств.

+0

Duh! Не знаю, почему я не думал о чем-то столь простом. Спасибо! –

+0

Когда я запускаю скрипт, я получаю сообщение об ошибке «Некопать» TypeError: arguments.slice не является функцией. Однако, изменив вторую строку на "var mainTrackerArgs = Array.prototype.slice.call (arguments);" сортирует его. –

+0

Ах, да, потому что аргументы на самом деле не массив; это похоже на массив. Обновлено! –