我正在尝试从Google Analytics分析Cookie中捕获数据并让它填充隐藏字段,然后将该信息发送到Silverpop中的数据库。我在我的webform上插入了UA代码,通过谷歌分析,我可以看到网站上有人(我)。但是我已经尝试了几种我在这里找到的javascript变种来从谷歌cookie中提取广告系列和来源,并在表单提交时将这些信息发送到我的数据库。任何帮助将不胜感激。谢谢
答案 0 :(得分:0)
好的,只是要把它扔出去,因为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中发布的vars的一个例子:
Array
(
[ga] => Array
(
[source] => camp_source
[name] => camp_name
[medium] => camp_medium
[term] => camp_term
[content] => camp_content
)
)