1

私はこれを使用しました: Generate Google Analytics events (__utm.gif requests) serverside

そしてこれ: http://www.garyrgilbert.com/blog/index.cfm/2008/10/21/Tracking-Digital-Content

cfhttp 文字列を作成して、ユーザーがページにアクセスしたときに Google アナリティクスを呼び出すようにします。私が提供しているページは XML ページであり、javascript と xml を混在させることはできないため、このようにしています。

私の問題は、Google アナリティクスが私のリクエストを無視していることです。通常の HTML サーバーでバケット コードをアクティブ化したので、バケット コードが存在すると認識/認識しますが、xml サーバー ページのいずれかを呼び出して coldfusion サーバーから 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>

何かご意見は?

乾杯

4

4 に答える 4

1

あなたのコードを見ると、コード&amp内の 's を通常の&記号に置き換える必要があると思います。アンパサンドをエスケープするだけで、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>

これにより、コードが少し読みやすくなり、巨大な文字列を連結する必要なく、すべての変数がプロパティ形式で送信されるようになります。

于 2011-08-15T00:01:32.017 に答える
0

このPHPクラスでどのように実行されているかを確認し、ColdFusionコードに適合させることができるかどうかを確認することをお勧めします。設定が必要なのは、いくつかのURlパラメータよりも多いようです。GAに実際のブラウザであると思わせるには、実際のブラウザをより適切にシミュレートする必要がある可能性があります。 http://code.google.com/p/serversidegoogleanalytics/

于 2011-08-15T16:58:07.830 に答える
0

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

自分のGAHTTPを見ると、URL文字列にutmr=-があることがわかります。

ただし、リクエストはリファラーのCGIヘッダーも送信しています:http://12robots.com/

type = "CGI" name = "HTTP_REFERER" value = "#CGI.HTTP_REFERER#"で別のパラメータを追加してみてください

于 2011-08-15T14:32:11.550 に答える
0

確かに cfset var_today = now() は間違っています。GA は、ColdFusion の日付/時刻オブジェクトが何であるかを認識していません

于 2013-06-12T15:17:27.960 に答える