如何强制在第一页加载时设置__utmz cookie

时间:2012-03-02 22:36:48

标签: cookies google-analytics

我正在使用一个很小的功能来跟踪我网站的访问者并将信息转储到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的任何想法?

2 个答案:

答案 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

你确实说过,“很多表单提交都没有”,那么这是否意味着你不时会得到数据?你能把它缩小到浏览器吗?