javascript - 基于 cookie 值的谷歌分析数据

标签 javascript cookies google-analytics embed

我们有一个使用 GA 跟踪来跟踪流量的网站,并且能够将 GA 组件嵌入到我们的 CMS 中。

但是,我们有一个实例,其中它有一个站点,但其中有不同的位置,因此客户可以选择一个位置并仅显示相关数据。这全部由浏览器上的 cookie 值处理 例如。 cookie 名称 = "LocationId" cookie 值 = "墨尔本"

是否有可能在 GA(也嵌入 GA)中显示依赖于网站 cookie 值的数据?

最佳答案

不是默认情况下,而是有一点点编程和配置。

GA中没有数据字段“cookieValue”,所以你必须自己制作。转到属性设置、自定义定义、自定义维度,然后单击“新建自定义维度”。

您需要决定自定义维度的“范围”。由于客户端位置在 session 期间可能不会改变,您可能会选择“ session 范围”,这意味着最后选择的值将应用于 session 中的所有命中。

您的新维度将有一个在界面中使用的名称,以及一个您需要将数据发送到该数据字段的数字索引。如果这是您的第一个自定义维度索引将为 1。

接下来您需要获取 cookie 值。那里有大量用于 javascript 的 cookie getter 函数,可能最简单的是

window.getCookie = function(name) {
  match = document.cookie.match(new RegExp(name + '=([^;]+)'));
  if (match) return match[1];
}

在调用它之前,请确保该函数定义包含在页面中。只有当 cookie 只存储一个值时,它才真正有效。

然后您可以将该值发送到 Google Analytics。自定义维度需要与互动命中(网页浏览、事件、时间等)一起发送。

您可以将它们与每次点击一起发送:

... (code that loads analytics.js)....
ga('create', 'UA-XXXXX-Y', 'auto');
// event will be only applied to the pageview, not the event
ga('send', 'pageview', {
  'dimension1':  getCookie('LocationId');
});
ga('send','event','eventCategory','eventAction');
... (other page code) ...

如果您查看 send 调用,您会发现第三个参数包含在大括号中 - 这称为配置对象,它允许您为命中传递一个或多个配置值;在这种情况下,它用于设置自定义维度的值,该值由“维度”关键字和后跟您要将数据发送到的维度的数字索引寻址。

另一种语法是使用“set”调用。这将发送一次值,并让它与所有后续交互调用一起发送:

... (code that loads analytics.js)....
ga('create', 'UA-XXXXX-Y', 'auto');
ga('set','dimension1', getCookie('LocationId'));
// dimension will be applied to both pageview and event
ga('send', 'pageview');
ga('send','event','eventCategory','eventAction');
... (other page code) ...

但是对于 session 范围的自定义维度,这并不重要,因为每个 session 设置一次值就足够了。

自定义维度不是标准报告的一部分(毕竟它们是自定义的),但您可以选择它们(通过您在配置期间提供的名称)作为次级维度,使用它们进行分割,创建自定义报告或 Google 数据Studio 报告或在 API 集成中使用它们。

关于javascript - 基于 cookie 值的谷歌分析数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44579878/

相关文章:

将 cookie 设置为安全时,Spring Boot 无法登录

javascript - Chrome API 不会在嵌套回调中注入(inject) cookie

curl - 谷歌分析如何提供访问 token

javascript - 如何更改ionic 3中的后退按钮

javascript - 如何防止图表的nodeDataArray更新后所有组件的位置发生变化?

javascript - 函数参数不适用于 .classList.add

javascript - 在计时器中连续访问 cookie 的性能影响

ios - 如何使用 Google Analytics 获取 iOS 版本

python - 使用变量/维度过滤时,使用 Google Core Reporting API 和 bigquery 进行的用户计数不正确且不一致

javascript - 即使事件处理程序也以父元素为目标,也仅以子元素为目标