2011-08-12 12 views
1

からそれを打つ私はこれを使用しているユーザーがページに当たったとき、それはGoogleの分析を呼び出すように http://www.garyrgilbert.com/blog/index.cfm/2008/10/21/Tracking-Digital-Contentグーグル・アナリティクスは、ColdFusionサーバーcfhttpの

はcfhttpの文字列を構築します。私が提供しているページはXMLページであり、javascriptとxmlを混ぜることができないので、私はこれを好きです。

私の問題は、Googleアナリティクスが私の要求を無視していることです。バケツコードを通常のhtmlサーバー上で起動しているので、存在すると思っていますが、xmlサーバーページを呼び出してColdFusionサーバーからcfhttpリクエストを行うと、登録されません。

更新:セルギのアドバイスに従い

、私はcfhttpタグは、(私は以前にそれがエラーを引き起こした変数がありませんでした)何をしているかを知るためにダンプを行っている、私は今の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> 

任意の考え?あなたのコードを見てみると

歓声

+3

応答を確認するために 'cfhttp'をダンプしようとしましたか? – Sergii

+0

私はばかです、私は変数がありませんでした。ありがとう、私はアナリティクスがデータを記録していることを知るまでこれを開いたままにしておきます。 – Jarede

+1

HTTPリクエストの表示方法を教えてください。 – Yahel

答えて

1

は、私はあなたが定期的に&シンボルとコード内で&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> 

これは読みだけでなく、必要とせずに、あなたのすべての変数は、プロパティ形式で伝送されますことを確認するためにあなたのコードが少し楽になります巨大な文字列を連結する。

+0

コードを(コードベースと私の質問で)変更しました。アナリティクスのフロントにはまだ喜んでいません。 – Jarede

0

いくつかのパラメータは異なるタイプである必要があります。それらをすべてURLパラメータとして送信しています。たとえば、HTTP_REFERERをtype = "CGI"として送信する必要があります。

自分GA HTTPを見て、私は私のURL文字列に私はutmr =持っていることを確認 -

をしかし要求はまた、リファラーのためのCGIヘッダーに沿って送信されます。http://12robots.com/

たぶん、別のものを追加してみてくださいtype = "CGI" name = "HTTP_REFERER" value = "#CGI.HTTP_REFERER#"

+0

それは私の要求を認識していないように思われませんでした。 – Jarede

0

のパラメータを持つparamこのPHPクラスでどのように処理されているかを見て、ColdFusionコード。それは、設定が必要なUR1のいくつかのパラメータよりも多いようです。 GAがあなたを本当のブラウザだと思うようにするには、実際のブラウザをよりよくシミュレートする必要があります。 http://code.google.com/p/serversidegoogleanalytics/

+0

私もこれを試しました...私がcfhttpから呼び出すことができた唯一の方法は、imgを使ってnoscriptタグを使用することですが、xml出力でこれを行うことはできません。 – Jarede

0

かなり確実なcfset var_today = now()は間違っています。 GAはColdFusionの日付/時刻オブジェクトが何であるか全く分かりません

+0

これは正しいかもしれません。私はこのプロジェクトを離れ、コードベースにアクセスできなくなったので、テストの方法はありません。うまくいけば、これは他の誰かを助けるでしょう。 – Jarede

関連する問題