Несколько трекеров GA получают переменные друг друга

Мне нужно разделить сбор данных для двух учетных записей GA, назовем их UA-XXXXXXX-1 и UA-XXXXXXX-2. Чтобы реализовать это, я использовал пример кода из https://developers.google.com/analytics/devguides/collection/gajs/ (в разделе "Перенос команд на несколько трекеров также работает"), и вот мой код:

    _gaq.push(['_setAccount', 'UA-XXXXXXX-1']);
    _gaq.push(['_trackPageview']);
    _gaq.push(['_setCustomVar', 1, 'customVar1', 'cv1', 1]);

    _gaq.push(['second._setAccount', 'UA-XXXXXXX-2']);
    _gaq.push(['second._trackPageview']);
    _gaq.push(['second._setCustomVar', 2, 'customVar2', 'cv2', 1]);

Это работает, но у меня есть обе пользовательские переменные в обеих учетных записях. Что мне действительно нужно, так это отслеживать customVar1 только для учетной записи UA-XXXXXXX-1, а customVar2 только для учетной записи UA-XXXXXXX-2. Есть идеи, как это реализовать?

1 ответ

Решение

Прежде всего, _setCustomVar должен прийти раньше _trackPageview,

Теперь к вашей проблеме:

Это происходит потому, что пользовательские переменные уровня пользователя хранятся в файле cookie. Поскольку оба ваших трекера используют один и тот же файл cookie, второй трекер будет отправлен с переменными, установленными на первом трекере.

У вас есть 3 варианта.

1) С универсальной аналитикой

Правильный путь здесь - использовать Universal Analytics. Multi-tracking официально не поддерживается в Classic, потому что он, как вы, наверное, заметили, глючит. И вещи легко сломать.

На универсальном все пользовательские измерения оцениваются на стороне сервера, поэтому эта настройка поддерживается. В файлах cookie для пользовательских размеров не хранятся данные.

Например: если вы настроили измерение1 на UA-XXXXXXX-1 и размер2 на UA-XXXXXXX-2 через интерфейс администратора.

ga('create', 'UA-XXXXXXX-1', 'auto');
ga('send', 'pageview', {
  'dimension1': 'cv1'
});

ga('create', 'UA-XXXXXXX-2', 'auto', {'name': 'newTracker'});
ga('newTracker.send', 'pageview', {
  'dimension2': 'cv2'
});

Больше информации:

2) Сохраняйте классическую аналитику, но используйте пользовательские переменные уровня сеанса

Если вы окончательно не можете перейти на Universal Analytics и хотите продолжать использовать Classic, вы можете обойти эту проблему, просто используя пользовательские переменные уровня сеанса. Чтобы это работало, вам нужно всего лишь изменить область действия пользовательского Var, как показано ниже (от 1 до 2).

В отличие от пользовательских областей применения, резюме сессий не сохраняются в файле cookie. Таким образом, вы обойдете эту проблему. Недостатком является то, что значение будет действительным только для этого сеанса, а не для будущих сеансов от того же пользователя.

_gaq.push(['_setAccount', 'UA-XXXXXXX-1']);
_gaq.push(['_setCustomVar', 1, 'customVar1', 'cv1', 2]);
_gaq.push(['_trackPageview']);


_gaq.push(['second._setAccount', 'UA-XXXXXXX-2']);
_gaq.push(['second._setCustomVar', 2, 'customVar2', 'cv2', 2]);
_gaq.push(['second._trackPageview']);

3) Сохраняйте классические и пользовательские резюме, но используйте разные куки для трекера

Вы можете настроить GA для создания 2 наборов файлов cookie, по одному для каждого трекера, по одному в корневом домене и по одному на поддомене.

Если ваш сайт: http://www.example.net/ настройте ваши трекеры следующим образом:

_gaq.push(['_setAccount', 'UA-XXXXXXX-1']);
_gaq.push(['_setDomainName', 'example.net']);
_gaq.push(['_setCustomVar', 1, 'customVar1', 'cv1', 1]);
_gaq.push(['_trackPageview']);


_gaq.push(['second._setAccount', 'UA-XXXXXXX-2']);
_gaq.push(['second._setDomainName', 'www.example.net']);
_gaq.push(['second._setCustomVar', 2, 'customVar2', 'cv2', 1]);
_gaq.push(['second._trackPageview']);

Это ДОЛЖНО быть сделано на всех страницах вашего сайта. Не только этот. Это гарантирует, что каждый трекер использует свой отдельный набор файлов cookie, и customVars не будут передаваться от одного к другому.

Обратите внимание, что если ваш сайт может быть доступен без www., Например: http://example.net/ это не удастся и обходного пути нет. Вы не можете создать 2 набора файлов cookie с одинаковым именем в одном домене и пути. Ты просто не можешь.

Также, если вы используете _gaq.push(['_setDomainName', 'none']); или же _gaq.push(['_setAllowHash', false]);вышеупомянутая уловка не будет работать, и куки будут конфликтовать. Ваши данные будут странными. Просто не делай этого. Вы были предупреждены.

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

Больше информации:

Другие вопросы по тегам