Да, 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 и делайте все, что вы хотите с массивом, который он создает.