我正在使用一个很小的功能来跟踪我网站的访问者并将信息转储到Salesforce。然而,许多表单提交已经(无)设置了许多值,因为(据我所知),在第二页加载之前不会设置cookie。
我已经对此进行了测试,这似乎是准确的,问题是很多人在第一页上填写表单,而且我没有通过这些提交获得任何信息。
我按如下方式加载GA:
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-29066630-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script');
ga.src = ('https:' == document.location.protocol ? 'https://ssl' :
'http://www') + '.google-analytics.com/ga.js';
ga.setAttribute('async', 'true');
document.documentElement.firstChild.appendChild(ga);
})();
</script>
然后运行php函数来解析__utmz cookie:
function tracking_cookie() { // ver 1.5
$trackarr = split('[|]',$_COOKIE["__utmz"]);
$conversion = $_COOKIE["Conversion"];
for($i=0;$i<count($trackarr);$i++){
$keyvalues=split('[=]',$trackarr[$i]);
$key=substr($keyvalues[0],-6);
switch ($key){
case "utmcsr":
$cookie['SearchEngine'] = $keyvalues[1];break;
case "utmccn":
$cookie['SearchCampaign'] = $keyvalues[1];break;
case "utmcmd":
$cookie['SearchType'] = $keyvalues[1];break;
case "utmcct":
$cookie['AdText'] = $keyvalues[1];break;
case "utmctr":
$cookie['Keyword'] = $keyvalues[1];break;
case "mgclid":
$cookie['isPPC'] = $keyvalues[1];break;
}
}
此后我运行了更多代码。关于如何强制第一次加载cookie的任何想法?
答案 0 :(得分:0)
在第二页加载之前,cookie是不可读的 - 因为它们会在请求中发送。
你可以做的是在初始页面加载(并且在PHP中找不到_utmz cookie)附加另一个JS文件/调用一些JS,它将在页面加载后将ajax命令运行回服务器。
这将作为第二页加载,并且应该有权访问新的cookie(并且用户不会离开页面)
答案 1 :(得分:-1)
您是否看过这个用于Google Analytics的Force.com工具包?从Google获取信息可能更加可靠。在不知道您正在跟踪的其他内容或者如何将其存储在Salesforce中的情况下,很难提供更多详细信息。
https://github.com/mavens/Force.com-Toolkit-for-Google-Analytics
还有一些关于Google网上论坛的讨论 - http://groups.google.com/a/googleproductforums.com/forum/#!category-topic/analytics/discuss-tracking-and-implementation-issues/bVR84di07pQ
你确实说过,“很多表单提交都没有”,那么这是否意味着你不时会得到数据?你能把它缩小到浏览器吗?