Google アナリティクスの Cookie からデータを取得し、隠しフィールドに入力して、その情報を Silverpop のデータベースに送信しようとしています。Web フォームに UA コードを挿入しました。Google アナリティクスを介して、サイト (私) に誰かがいることがわかります。しかし、ここで見つけた JavaScript のいくつかのバリエーションを試して、Google Cookie からキャンペーンとソースを抽出し、フォーム送信時にその情報をデータベースに送信しました。どんな助けでも大歓迎です。ありがとうございました
1 に答える
さて、GA はファースト パーティの Cookie を使用するため、サーバー側のコードを使用して Cookie を解析できることを簡単に説明します。私はそのコードを提供するのに十分なほど Java を知りませんが、情報は__utmz
Cookie に保存され、値は次のようになります。
21733335.1344455611.17.2.utmcsr=camp_source|utmccn=camp_name|utmcmd=camp_medium|utmctr=camp_term|utmcct=camp_content
先頭の数字とドットは、ハッシュと訪問者 ID など、特に気にする必要のないものなので、削除するだけでかまいません。次に、パイプで爆発するだけname=value
で、等号でさらに分割できるペアの配列が得られます。
サーバー側で行う方が効率的で改ざん防止になるため、これについて言及します。フォームで渡すことさえ心配する必要はありません。最初のページ ビュー リクエストで実行できます。
ただし、本当にクライアント側のコードでこれを行いたい場合、または Cookie の解析に関するガイダンスが必要な場合は、JavaScript の例を次に示します。
<script type='text/javascript'>
// function to retrieve the GA campaign values
function getGACampaignCodes() {
var cv = {};
var utmz=document.cookie.match(/ __utmz=([^;]*)/);
if (utmz!=null&&typeof(utmz[1])!='undefined') {
utmz = utmz[1];
utmz = utmz.replace(/^[0-9.]+/,'').split('|');
for (var c=0,l=utmz.length;c<l;c++) {
var cn = utmz[c].split('=');
switch (cn[0]) {
case 'utmcsr' : cv.source=cn[1];
case 'utmccn' : cv.name=cn[1];
case 'utmcmd' : cv.medium=cn[1];
case 'utmctr' : cv.term=cn[1];
case 'utmcct' : cv.content=cn[1];
}
}
}
return cv;
}
// function to populate the hidden fields
function addGAToFormFields() {
var cv = getGACampaignCodes();
var f = document.forms['someForm'];
for (c in cv)
if (cv.hasOwnProperty(c))
f['ga['+c+']'].value = cv[c];
}
// call this when document is ready
addGAToFormFields();
</script>
</body>
</html>
Java バージョンがどのように見えるかはわかりませんが、これは php に投稿された変数の例です。
Array
(
[ga] => Array
(
[source] => camp_source
[name] => camp_name
[medium] => camp_medium
[term] => camp_term
[content] => camp_content
)
)