Отслеживание источника трафика - PullRequest
2 голосов
/ 08 сентября 2010

Сохраняет ли Google Analytics параметры utm_source, utm_medium в файле cookie или что-то подобное, к чему я могу получить доступ на своем собственном сайте с помощью PHP? - ИЛИ - есть ли у кого-нибудь пример кода, который я мог бы использовать для идентификации источника трафика, т.е. КПП, Натуральный и т. Д.

1 Ответ

3 голосов
/ 08 сентября 2010

Да, Google хранит эту информацию в файле cookie;в частности, файл cookie __utmz.

Вы можете написать фрагмент JavaScript, чтобы прочитать файлы cookie, которые GA хранит в браузере.Эта информация хранится в файле cookie __utmz.Например, если ссылка содержит все 5 возможных переменных utm, файл cookie будет выглядеть примерно так (я подставил заглавные имена для значений, поэтому SOURCE - это значение для utm_source:

     43838368.1283957505.1.3.utmcsr=SOURCE|utmccn=CAMPAIGN|utmcmd=MEDIUM|utmctr=TERM|utmcct=CONTENT

ThisВот как выглядит файл cookie __utmz для обычного поиска в Google:

140029553.1283957328.2.136.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=SEARCH-TERMS-HERE

Вот так выглядит файл cookie __utmz для прямого посещения:

   17861479.1283957910.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)

Вот как файл cookie __utmzпохоже на платный поиск в Google с автоматической пометкой:

   175516223.1283957996.1.1.utmgclid=CLrr7fyL-KMCFZpN5QoduVOTLA|utmccn=(not%20set)|utmcmd=(not%20set)|utmctr=SEARCH+TERM

PHP не идеален, поскольку вы никогда не сможете прочитать cookie при посещении одной страницы, но вот как может выглядеть код в PHP.

if(isset($_COOKIE['__utmz']))
{
$cookie= $_COOKIE['__utmz'];
$params =  strstr($cookie, 'utm');
$cookiearray = explode("|", $params);
$final = array();
for($i=0; $i<count($cookiearray); $i++)
{
    $temp = explode("=",$cookiearray[$i]);
    $final[$temp[0]] = temp[1];
}
}

Это даст вам массив ($final) с соответствиями ключ-значение для каждого параметра источника трафика.

Возможно, вам было бы лучше разобрать это в JavaScript и опубликовать егона ваш сервер, используя AJAX, а не читая его на стороне сервера, так как вы можете сделать это только при просмотре второй страницы и, таким образом, потеряете возможность отслеживать нас при просмотре одной страницыERS.Это может быть раздражающей задачей с ручным JavaScript, потому что и cookie, и AJAX могут быть несовместимыми в разных браузерах, поэтому я бы порекомендовал такую ​​среду, как jQuery.


Вот подход, который я бы использовал, используя jQuery.Я бы добавил плагин jQuery cookie и разместил его в предложении _gaq.push(function(){...}); следующим образом (при условии, что приведенный выше PHP хранится в handler.php).

$.post('handler.php', '__utmz' : $.cookie("__utmz") );

Затемпереключите две ссылки $ _COOKIE на $ _POST и делайте все, что вы хотите с массивом, который он создает.

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