Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
google analytics,从coldfusion服务器cfhttp点击它_Coldfusion_Google Analytics_Coldfusion 9_Cfhttp - Fatal编程技术网

google analytics,从coldfusion服务器cfhttp点击它

google analytics,从coldfusion服务器cfhttp点击它,coldfusion,google-analytics,coldfusion-9,cfhttp,Coldfusion,Google Analytics,Coldfusion 9,Cfhttp,我用过这个: 这是: 构建一个cfhttp字符串,以便当用户点击一个页面时,它调用google analytics。我这样做是因为我提供的页面是XML页面,我不能将javascript与XML混合使用 我的问题是google analytics忽略了我的请求。我已经在一个普通的html服务器上激活了我的bucket代码,所以它认为/知道它存在,但是现在当我调用我的任何xml服务器页面并从coldfusion服务器发出cfhttp请求时,它没有被注册 更新: 根据Sergii的建议,我做了一次

我用过这个:

这是:

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

我的问题是google analytics忽略了我的请求。我已经在一个普通的html服务器上激活了我的bucket代码,所以它认为/知道它存在,但是现在当我调用我的任何xml服务器页面并从coldfusion服务器发出cfhttp请求时,它没有被注册

更新:

根据Sergii的建议,我做了一次转储,以了解cfhttp正在做什么(我以前缺少一个导致错误的变量),现在我得到的http返回值为200,尽管analytics没有将请求应用到我的帐户

更新第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>

有什么想法吗


干杯看你的代码,我猜你需要用常规的
&
符号替换代码中的
&
。您只需跳过符号即可验证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>

... 所有其他URL变量

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

查看您的代码,我猜您需要用常规的
&
符号替换代码中的
&
。您只需跳过符号即可验证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>

... 所有其他URL变量

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

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

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

但该请求也会为Referer发送一个CGI头:


也许可以尝试使用type=“CGI”name=“HTTP_REFERER”value=“#CGI.HTTP#u REFERER””

添加另一个参数。看起来您的几个参数应该是不同类型的。您正在将它们全部作为URL参数发送。例如,HTTP_REFERER是否应作为type=“CGI”发送

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

但该请求也会为Referer发送一个CGI头:


也许可以尝试使用type=“CGI”name=“HTTP#u REFERER”value=“#CGI.HTTP#u REFERER””

添加另一个参数,您可能想看看在这个PHP类中是如何实现的,看看是否可以将其调整到ColdFusion代码中。看起来需要设置的URl参数可能不止几个。您可能需要更好地模拟真实的浏览器,使GA认为您是真实的浏览器。

您可能想看看在这个PHP类中是如何实现的,看看是否可以将它调整到您的ColdFusion代码中。看起来需要设置的URl参数可能不止几个。您可能需要更好地模拟真实的浏览器,使GA认为您是真实的浏览器。

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

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

您是否尝试转储
cfhttp
以查看响应?我是个傻瓜,我丢失了一个变量。谢谢,不过在我知道analytics正在记录数据之前,我会一直保持这个状态。你能告诉我们HTTP请求是什么样子吗?你是否尝试转储
cfhttp
以查看响应?我是个傻瓜,我缺少一个变量。谢谢,不过在我知道analytics正在记录数据之前,我会一直保持这个状态。你能告诉我们HTTP请求是什么样子的吗?我已经将代码(在我的代码库和我的问题中)更改为这样,因为这是一种更好的方法。但在分析方面仍然没有什么乐趣。我已经将代码(在我的代码库和我的问题中)改成了这样,因为这是一种更好的方法。但在分析方面仍然没有乐趣。我也尝试过这个。。。我从cfhttp调用它的唯一方法是通过noscript标记,并在其中添加一个img。但我不能在xml输出中这样做。我也尝试过这个。。。我从cfhttp调用它的唯一方法是通过noscript标记,并在其中添加一个img。但我不能在xml输出中这样做。这可能是正确的,我已经离开了这个项目,不再有访问代码库的权限,因此无法进行测试,希望这将帮助其他人。这可能是正确的,我已经离开了这个项目,不再有访问代码库的权限,因此无法进行测试,希望这能帮助其他人。