Переключение на междоменное отслеживание из предыдущей реализации Google Analytics - PullRequest
1 голос
/ 24 июня 2010

Мы внедрили простую реализацию GA и уже некоторое время используем только дополнительные методы - setVar и setSessionTimeout. Есть ли способ, которым мы можем переключиться на междоменную конфигурацию отслеживания GA (где определенные ссылки подключены с помощью метода _link) без потери существующих данных отслеживания в клиентских системах?

Я провел много тестов, и чем больше проблем решено, тем больше проблем возникает. В двух словах:

Перед внедрением, клиент имеет эти куки: __utm (a, b, c, z, v). Первым шагом было изменение кода и добавление методов _setAllowLinker и _setAllowHash, но это вызывало ошибку TypeError. Я обнаружил, что этого можно избежать, удалив файл cookie __utmv перед вызовом методов pageTracker, а затем снова вызвав _setVar.

Новый код на месте, кажется, работает нормально, не выдавая ошибку:

document.cookie = '__utmv=; expires=Tue, 22 Jun 2010 11:57:00 GMT;'+
  ' path=/; domain=XXXXXXX';
var pageTracker=_gat._getTracker(UA-XXXXXXXX);
pageTracker._setAllowLinker(true);
pageTracker._setAllowHash(false);
pageTracker._setSessionTimeout(XXXXX);
pageTracker._setVar(XXXXX);
pageTracker._trackPageview();

Файлы cookie теперь обновляются, чтобы не использовать хеш-значение, поэтому их значения теперь можно использовать для разных доменов, но проблема в том, что значения в файлах cookie __utm были обновлены новыми значениями, что означает, что мы теряем историю пользователей. (и новые посещения взорвутся).

Например, __utma:

  • До - XX-HASHVALUE-XX.1379282990.1277294951.1277294951.1277294951.1
  • После - 1.26318765.1277294984.1277294984.1277294984.1

Если невозможно переключиться на междоменную конфигурацию GA без потери истории пользователей, есть ли способ подделать ее по ссылке, которая перейдет к следующему домену. То есть, создание URL-адреса ссылки из файлов cookie и замена всех префиксов hashvalue на 1?

Спасибо!

1 Ответ

0 голосов
/ 01 июля 2010

К сожалению, похоже, что нет подходящего способа сделать это с помощью API ga.js. Я пошел с этим решением:

var pageTracker = _gat._getTracker("UA-123456-7");
if (getCookie('__utma') && getCookie('__utma').substr(0, 2) == '1.') {
    // hash value safely removed, flick GA API switch
    pageTracker._setAllowHash(false);
}
pageTracker._trackPageview();

if (getCookie('__utmc') != '1') {
    // remove hash values from all GA cookies
    eraseCookieHash();
}

В функции eraseCookieHash каждый файл cookie обновляется вручную, чтобы заменить хеш-значение на 1, используя руководство по http://code.google.com/apis/analytics/docs/concepts/gaConceptsCookies.html для определения значения срока действия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...