пятница, 22 марта 2013 г.

Многодоменное отслеживание, iframes

Если ваш сайт работает на нескольких доменах, или если вы хотите отслеживать в одном профиле два отдельных сайта, то вам необходимо настроить код GA для работы с несколькими доменами


Многодоменное отслеживание


Как я уже писал в другом посте, для многодоменного или кроссдоменного отслеживания требуется дополнительная настройка кода Google Analytics.

Можно сформировать код для отслеживания сайта на нескольких доменах. Например, если ваш сайт работает в разных языковых версиях (.ru, .com, .de ...) либо, если вы хотите свести в одну территорию отслеживания сайт и форум (на своем отдельном домене), то вы столкнетесь с необходимостью "склеивать" разнодоменные сессии в одну. Стандартный код здесь не поможет. Нужна вот такая кастомизация:

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-39237786-1']);
_gaq.push(['_setDomainName', 'site.ru']);
_gaq.push(['_setAllowLinker', true]);
_gaq.push(['_trackPageview']);


_setDomainName: Обозначает домен для куки. Если этой строки в коде нет, кука будет брать домен по умолчанию из адресной строки браузера. Эта функция необходима только, когда происходят переходы между доменами и/или субдоменами и существует необходимость склеить разнодоменные сессии в одну.
_SetAllowLinker
: заставляет GA брать данные для кук из линкера, а не обычным способом из адресной строки браузера. С помощью этой команды можно передать куки на другой домен и склеить сессии на разных доменах в одну.

Важно! Применяйте эти функции, когда существует необходимость связать два сайта воедино и отслеживать их как одну территорию в одном профиле Аналитикс.

Далее необходимо оформить ссылки на другой домен: на онклик/онсабмит – мы вызываем, собственно, сам линкер.

Метод _link() на на ссылках между доменами: 


<a href="http://www.moy-blozhik.com/intro.html" onclick="_gaq.push(['_link', 'http://www.moy-blozhik.com/intro.html']); return false;">  Читайте мой бложик</a>

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

Метод _linkByPost():

<form action="http://www.site-korziny.ru/formProcessor.php"
name="f" method="post" onsubmit="_gaq.push(['_linkByPost', this]);">

Используйте этот метод, если вы оформляете переход из формы после нажания на кнопку "Отправить" в покупательскую корзину на другом домене.

Отслеживание айфреймов (iFrames)


В целом, правила отслеживания разнодоменных сайтов также применимы и к айфреймам. iFrames, как правило используются, когда внутри страницы выводится контент, хранящийся на другом домене. Примеров использования айфреймов существует масса. Например, это может быть сайт автострахования, где модуль расчета страховки может работать на своем отдельном сервере, а результаты расчетов представляются на сайте через iframe. Другой возможный пример - мультимедийный контент, который физически находится на другом сервере/домене, а на сайте мы его воспроизводим в плеере, который также выводится через iframe.

И в тех, и в других случаях мы будем иметь дело с кроссдоменным переходом и будем вынуждены настраивать код Analytics с функциями _setDomainName, _setAllowLinker и оформлением линкера _getLinkerUrl() для айфрейма.

Вот такой линкер "склеит" сессию и "протащит" куки между доменами, когда пользователь станет взаимодействовать с контентом внутри айфрейма:
_gaq.push(function() {
  var pageTracker = _gat._getTrackerByName();
  var iframe = document.getElementById('myIFrame');
  iframe.src = pageTracker._getLinkerUrl('http://www.my-example-iframecontent.com/');
});

Где http://www.my-example-iframecontent.com - это адрес контента, доступ к которому пользователь получает через iframe. Внутри айфрейма, а точнее, на сайте, где хранится контент, также должно быть настроен код GA с кроссдоменным отслеживанием.


Справка:

1 комментарий:

  1. Здравствуйте!
    Часто на форумах возникает вопрос по поводу использования точки в функции _setDomainName.
    Т.е. в каких случаях надо писать так: _gaq.push(['_setDomainName', 'site.ru']); а в каких таким образом: _gaq.push(['_setDomainName', '.site.ru']);

    Гугл формирует код без точки, но на многих сайтах стоит код именно с точкой.
    Есть мнение, что если необходимо отслеживать сайт с субдоменом, то можно и без точки. А вот если вдруг надо добавить к ним еще и отслеживание доменов более никого уровня, скажем, третьего, то тут уже лучше использовать точку.

    "If you think you'll need 3rd level subdomain tracking, you should put a leading period in front of mysite.com, like so:

    _gaq.push(['_setDomainName', '.mysite.com']);"

    Может ли присутствие точки повлиять на статистику?

    Спасибо.

    ОтветитьУдалить