谷歌分析,从Coldfusion服务器cfhttp击中它

我已经使用这个:在服务器端生成Google Analytics事件(__utm.gif请求)

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

构建一个cfhttp字符串,以便当用户点击页面时,它会调用Google Analytics(分析)。 我这样做,因为我服务的页面是XML页面,我不能将JavaScript与XML混合。

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

更新:

根据Sergii的建议,我已经做了一个转储,以查明cfhttp正在做什么(我之前缺少一个导致它出错的变量),我现在得到了200的http返回值,虽然分析不会将请求应用于我的帐户。

更新第二个,包括代码:

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

有什么想法吗?

干杯


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

我实际上会这样构造它:

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

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


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

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

但是请求也是沿着Referer的CGI头发送的:http://12robots.com/

也许尝试添加类型=“CGI”name =“HTTP_REFERER”value =“#CGI.HTTP_REFERER#”的另一个参数


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

链接地址: http://www.djcxy.com/p/5275.html

上一篇: google analytics, hitting it from coldfusion server cfhttp

下一篇: How to redirect all HTTP requests to HTTPS