【问题标题】:How can i get GA client id within jsp or java code我如何在 jsp 或 java 代码中获取 GA 客户端 ID
【发布时间】:2017-08-16 20:26:06
【问题描述】:

我需要将谷歌分析客户端 ID 发送到我们将运行谷歌测量协议 API 的服务器端。

我们通过 GTM 实现了 GA。

根据谷歌的建议,我不应该解析 _ga cookie,因此我尝试通过推荐的方式。如果我将下面的代码粘贴到控制台上,它可以正常工作,但是一旦我将此代码包含在我的 jsp 中,就会给我错误 ga reference is not defined。

trackers = ga.getAll();
 var i, len;
  for (i = 0, len = trackers.length; i < len; i += 1) {
   if (trackers[i].get('trackingId') === "UA-62222232-2") {
    console.log(trackers[i].get('clientId'));
   }
 }

请告诉我获取 ga 客户端 ID 的正确方法是什么?我无法通过 jsp 做到这一点,并考虑在 java 代码中解析 cookie 是否更好。

TIA

【问题讨论】:

  • Java 还是 javascript?
  • Java。最终我需要获取客户端 ID 并将其发送到服务器。

标签: java jsp cookies google-analytics google-tag-manager


【解决方案1】:

如果你把上面的代码放在一个jsp文件中,它在浏览器中就变成了简单的Javascript,所以这就是你需要调试的。

但我实际上建议您忽略 Google 的警告并简单地解析 cookie。即使您通过 Javascript 检索 clientId,您也需要将其传递给服务器,让服务器端代码解析 cookie 可以解决该问题。

如果您真的想要一个万无一失的解决方案,您可以在 Java 代码中创建和维护一个 clientId 并将其传递到 GA 标记中(例如,由于您使用 GTM,因此通过数据层变量)。从那时起,您可以自己控制客户端 ID 的格式,您可以确保不会有任何意外。

【讨论】:

  • 谢谢。是的,解析 cookie 是我最后的手段,但我确实想尝试 GA 提供的解决方案。我认为原因可能是因为我们通过 GTM 使用 GA,因为异步性质 GA 跟踪器在我的 javascript 触发时可能不可用。
  • 您是否在 GTM 中执行此操作?如果你把它放在一个自定义的 HTML 标签中,你可以根据 GA 标签通过标签排序来执行它。或者您可以按照 Simo Ahavas 文章访问跟踪器中自定义任务中的 clientid:simoahava.com/gtm-tips/…
  • 不幸的是,我需要将此值传递给服务器端,因此我需要通过在 jsp 上触发的 javascript 或在 java 代码本身中执行此操作。
  • 大家好。除了解析 cookie 还有其他建议吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-22
  • 2013-03-18
  • 2014-06-02
  • 1970-01-01
  • 2012-11-27
  • 1970-01-01
相关资源
最近更新 更多