【问题标题】:google analytics, hitting it from coldfusion server cfhttp谷歌分析,从coldfusion服务器cfhttp点击它
【发布时间】:2013-06-12 23:17:27
【问题描述】:

我用过这个: Generate Google Analytics events (__utm.gif requests) serverside

还有这个: http://www.garyrgilbert.com/blog/index.cfm/2008/10/21/Tracking-Digital-Content

构建一个 cfhttp 字符串,以便当用户点击一个页面时,它会调用谷歌分析。我这样做是因为我提供的页面是 XML 页面,我不能将 javascript 与 xml 混合使用。

我的问题是谷歌分析忽略了我的请求。我已经在普通的 html 服务器上激活了我的存储桶代码,所以它认为/知道它存在,但是现在当我调用我的任何 xml 服务器页面并从冷融合服务器发出 cfhttp 请求时,它没有被注册。

更新:

按照 Sergii 的建议,我进行了转储以找出 cfhttp 正在做什么(我之前缺少一个导致它出错的变量),我现在得到了 200 的 http 返回,尽管分析不适用对我帐户的请求。

更新2号,包括代码:

    <cfset var_utmac='UA-myUA'> <!--- enter the new urchin code --->
    <cfset var_utmhn='www.myaddress.co.uk'>
    <cfset var_utmn = RandRange(10000000,99999999)>
    <cfset var_cookie = RandRange(10000000,99999999)>
    <cfset var_random = RandRange(1000000000,2147483647)>
    <cfset var_today = now()>
    <cfset var_referer = #cgi.HTTP_REFERER#>
    <cfset var_uservar = 'jevans'>
    <cfset var_utmp= ''>
    <cfset apiname = 'listings.getlistings'>

    <cfhttp method="get" url="http://www.google-analytics.com/__utm.gif">
        <cfhttpparam type="url" name="utmwv" value="1" />
        <cfhttpparam type="url" name="utmn" value="#var_utmn#" />
        <cfhttpparam type="url" name="utmsr" value="-" />
        <cfhttpparam type="url" name="utmsc" value="-" />
        <cfhttpparam type="url" name="utmul" value="-" />
        <cfhttpparam type="url" name="utmje" value="0" />
        <cfhttpparam type="url" name="utmfl" value="-" />
        <cfhttpparam type="url" name="utmdt" value="#apiName#" />
        <cfhttpparam type="url" name="utmhn" value="#var_utmhn#" />
        <cfhttpparam type="url" name="utmr" value="#var_referer#" />
        <cfhttpparam type="url" name="utmp" value="#var_utmp#" />
        <cfhttpparam type="url" name="utmac" value="#var_utmac#" />
        <cfhttpparam type="url" name="utmcc" value="__utma%3D#var_cookie#.#var_random#.#var_today#.#var_today#.#var_today#.2%3B%2B__utmb%3D#var_cookie#%3B%2B__utmc%3D#var_cookie#%3B%2B__utmz%3D#var_cookie#.#var_today#.2.2.utmccn%3D(direct)%7Cutmcsr%3D(direct)%7Cutmcmd%3D(none)%3B%2B__utmv%3D#var_cookie#.#var_uservar#%3B" />
    </cfhttp>

有什么想法吗?

干杯

【问题讨论】:

  • 您是否尝试转储cfhttp 以查看响应?
  • 我是个傻瓜,我错过了一个变量。谢谢,不过我会一直保持打开状态,直到我知道分析正在记录数据。
  • 你能告诉我们HTTP请求是什么样的吗?

标签: coldfusion google-analytics coldfusion-9 cfhttp


【解决方案1】:

查看您的代码,我猜您需要将代码中的&amp;amp 替换为常规的&amp; 符号。您只需要转义 & 符号即可验证 XML 文档等。如果您通过 URL 发送它们,那么它们可能不会被识别为分隔符。

我实际上会这样构造它:

<cfhttp method="get" url="http://www.google-analytics.com/__utm.gif">
    <cfhttpparam type="url" name="utmwv" value="5.1.2" />
    <cfhttpparam type="url" name="utmn" value="#var_utmn#" />
    ... all your other URL variables
<cfhttp>

这将使您的代码更易于阅读,并确保您的所有变量都以属性格式发送,而无需连接一个巨大的字符串。

【讨论】:

  • 我已将代码(在我的代码库和我的问题中)更改为该代码,因为这是一种更好的方法。但在分析方面仍然没有乐趣。
【解决方案2】:

看起来你的几个参数应该是不同的类型。您将它们全部作为 URL 参数发送。例如,应该将 HTTP_REFERER 作为 type="CGI" 发送。

查看我自己的 GA HTTP,我看到我的 URL 字符串中有 utmr=-

但该请求还发送了一个 CGI 标头,用于Referer:http://12robots.com/

也许尝试使用 type="CGI" name="HTTP_REFERER" value="#CGI.HTTP_REFERER#" 添加另一个参数

【讨论】:

    【解决方案3】:

    您可能想看看它是如何在这个 PHP 类中完成的,看看您是否可以将它调整到您的 ColdFusion 代码中。看起来需要设置的可能不止几个 URl 参数。很可能你需要更好地模拟一个真实的浏览器,让 GA 认为你是一个真实的浏览器。 http://code.google.com/p/serversidegoogleanalytics/

    【讨论】:

    • 我也试过这个......我设法从 cfhttp 调用它的唯一方法是通过 noscript 标签,带有一个 img in。但我不能在 xml 输出中这样做。
    【解决方案4】:

    很确定 cfset var_today = now() 是错误的。 GA 不知道 ColdFusion 日期/时间对象是什么

    【讨论】:

    • 这可能是正确的,我已经离开了这个项目,不再可以访问代码库,所以无法测试,希望这对其他人有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    • 1970-01-01
    • 2022-10-13
    • 2016-10-15
    • 1970-01-01
    相关资源
    最近更新 更多