0

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

4

1 回答 1

0

好的,只是把它扔在那里,因为 GA 使用第一方 cookie,你可以使用服务器端代码来解析 cookie。我不太了解java,无法为您提供该代码,但信息存储在__utmzcookie中,值如下所示:

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 回答