Подтвердить что ты не робот

Google analytics - несколько трекеров на одной странице (конфликт файлов cookie)

Я пишу веб-приложение, которое должно быть встроено в другие сайты пользователей (вид виджета). Я использую Google Analytics для отслеживания всех людей, которые посещают все экземпляры моего script на веб-сайтах внедрения. Проблема в том, что я не знаю, как использовать его, чтобы он не мешал учетным записям этих веб-сайтов Google Analytics. Я сохраняю переменную трекера в пространстве имен, поэтому я подумал, что должен это сделать, но я не понял, что GA сохраняет свои настройки в файлах cookie (__utma, __utmz и т.д.), И эти куки используются обоими трекерами, если есть две из них на одной странице... Так например, если я использую _setVar для хранения определенной пользовательской переменной в Google Analytics, и сайт внедрения делает то же самое, мы перезаписываем друг друга значения...

Конечно, было бы проще, если бы Google предоставил возможность изменить имя файлов cookie на пользовательский, но я не могу найти способ сделать это. Я думал об использовании домена cookie или пути для принудительного создания отдельного файла cookie, но это не работает, потому что, если я задаю домен или путь к чему-то другому, отличному от реального домена/пути, то cookie не читается для страницы после перезагрузки...

Кто-нибудь знает способ иметь два трекера на одной странице и заставить их использовать отдельные файлы cookie, чтобы они не перезаписывали друг друга?

Или, если это совершенно невозможно, есть ли еще какая-либо другая служба аналитики с аналогичной функциональностью, такой как GA, в которой это возможно? (он должен иметь расширенные функции, такие как отслеживание событий и кампаний...)

4b9b3361

Ответ 2

Вы можете установить несколько экземпляров кода отслеживания Google Analytics на своих веб-страницах для отправки данных по нескольким свойствам в вашей учетной записи. https://support.google.com/analytics/answer/1032400?hl=en

Или вы можете получить креатив и сделать следующие инструкции Google. https://developers.google.com/analytics/devguides/collection/analyticsjs/advanced#multipletrackers

<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-XXXX-Y', 'auto');
  ga('create', 'UA-XXXX-Y', 'auto', {'name': 'newTracker'});
  ga('send', 'pageview');
  ga('newTracker.send', 'pageview');

</script>

Ответ 3

Не нужно использовать разные имена файлов cookie, так как Google Analytics с радостью работает с несколькими трекерами на одной странице. См. Ответы на вопрос Google Analytics - несколько трекеров для нескольких учетных записей?.

Update

Оказывается, что использование нескольких трекеров - это рабочий метод, но имеет некоторые подводные камни. Один из тех, то есть, вы не можете применять разные сегменты пользователей для каждого из них. Джон Хенсон демонстрирует обходное решение, что принуждает GA использовать разные файлы cookie, возможно, вам стоит его проверить.

Ответ 4

Если у кого-то все еще есть эта проблема и вы хотите легко вставить, моя проблема заключалась в использовании моего собственного отслеживания Google для моего кода, который добавлялся на страницы других людей, которые также могут использовать отслеживание Google. Я проверил это и подтвердил, что он работает, как ожидалось:

var _gaq = _gaq || [];

_gaq.push(['some_unique_name._setAccount', 'UA-xxxxxxxx-1']);
_gaq.push(['some_unique_name._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);
})();

Я также использую события

_gaq.push(['some_unique_name._trackEvent', 'Event Category', 'Event Action', 'Event Label']);

Если кто-то видит проблему, сообщите мне.

Ответ 5

В соответствии с документация, указанная Török, кажется правильным ответом на использование _setCookiePath. Это заставляет каждого трекера использовать совершенно разные файлы cookie.

Пример кода с веб-сайта:

<script type="text/javascript">
    var pageTracker = _gat._getTracker("UA-11111-1″);

    pageTracker._setDomainName(’domain.com’);

    pageTracker._setCookiePath(’/subdirectory/’);
    pageTracker._trackPageview();

    var otherTracker = _gat._getTracker("UA-22222-1″);
    otherTracker._setDomainName(’domain.com’);
    otherTracker._trackPageview();
</script>

Когда вы связываетесь с одним доменом на другой, каждая ссылка, которая отправляется в другой домен, должна выглядеть так:

<a href="pageTracker._linkByPost('otherdomain.com/petStoreCart/legalTerms.php');"

Это добавит значения строковых значений запроса Google Analytics, которые будут использоваться вышеуказанным script, чтобы установить файл cookie (source).

Ответ 6

Похоже, Google рекомендует против этой практики:

Установка нескольких экземпляров кода отслеживания Google Analytics на одной веб-странице не поддерживается. Мы предлагаем удалить все, кроме одного экземпляра, и убедиться, что код с правильным профилем установлен на каждой странице, которую вы хотите отслеживать.

https://support.google.com/analytics/bin/answer.py?hl=en-GB&answer=1032400

Ответ 7

Я использовал эту структуру на сайтах наших сайтов и клиентов, и она работает как прелесть...

<script type="text/javascript"> 
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");    
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js'     type='text/javascript'%3E%3C/script%3E")); 
</script> <script type="text/javascript"> 

try {

//Original tracking
var pageTracker_ORIG = _gat._getTracker("UA-XXXXXXX-1");
pageTracker_ORIG._setDomainName('.sleepinggiantmedia.co.uk');
pageTracker_ORIG._trackPageview();

//New Analytics tag
var pageTracker_SGM = _gat._getTracker("UA-XXXXXXX-1");
pageTracker_SGM._setDomainName('.sleepinggiantmedia.co.uk');
pageTracker_SGM._trackPageview();


} catch(err) {}

Ответ 8

var otherTracker = _gat._getTracker("UA-22222-1″);
otherTracker._setDomainName(’domain.com’);
otherTracker._trackPageview();

Ответ 9

Этот человек имеет ту же проблему в четырехмесячной помощи Google Analytics. Я бы предложил взглянуть на нить. Но регулярно GA не поддерживает несколько трекеров.

Мне нравится Clicky, но это стоит денег.