Google Analytics(分析)是否将utm_source,utm_medium参数存储在cookie或类似的内容中,我可以使用PHP在我自己的网站上访问? - 或者 - 是否有人可以使用代码示例来识别流量来源,即。 PPC,Natural等。
答案 0 :(得分:3)
是的,Google会将此信息存储在Cookie中;具体来说,__ utmz cookie。
您可以编写一段JavaScript来阅读GA在浏览器中存储的Cookie。此信息存储在__utmz cookie中。例如,如果链接包含所有5个可能的utm变量,则cookie看起来像这样(我已经用值替换了大写的名称,因此SOURCE是utm_source的值:
43838368.1283957505.1.3.utmcsr=SOURCE|utmccn=CAMPAIGN|utmcmd=MEDIUM|utmctr=TERM|utmcct=CONTENT
这是有机谷歌搜索的__utmz cookie:
140029553.1283957328.2.136.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=SEARCH-TERMS-HERE
这就是__utmz cookie直接访问的样子:
17861479.1283957910.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
这就是带有自动标记的付费Google搜索的__utmz Cookie:
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将其发布到服务器,而不是在服务器端读取它,因为你只能在第二个页面视图上执行此操作,因此会丢失跟踪单页面查看用户的能力。这可能是手动JavaScript的烦人任务,因为cookie和AJAX在浏览器中可能不一致,所以我建议使用像jQuery这样的框架。
这是我使用jQuery的方法。我将添加jQuery cookie plugin,并将其发布在这样的_gaq.push(function(){...});
子句中(假设上面的PHP存储在handler.php中)。
$.post('handler.php', '__utmz' : $.cookie("__utmz") );
然后,将$ _COOKIE的两个引用切换到$ _POST,并对它生成的数组执行任何操作。