我正在尝试从谷歌分析 cookie 中捕获数据并让它填充隐藏字段,然后将这些信息发送到我在 Silverpop 中的数据库。我在我的网络表单中插入了 UA 代码,通过谷歌分析,我可以看到网站上有人(我)。但是我已经尝试了几种我在这里找到的 javascript 变体来从 google cookie 中提取活动和来源,并在提交表单时将这些信息发送到我的数据库。任何帮助将不胜感激。谢谢你
问问题
460 次
1 回答
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
)
)
于 2013-11-02T02:06:59.433 回答