javascript - 如何更新数据层变量?

标签 javascript google-analytics google-tag-manager google-datalayer

我们最初将包含变量的对象推送到数据层:

dataLayer.push({
    'environment': {
        'userName': 'abc',
        'id': 123,
        'clicks': 0
    }
});

我们现在希望随着用户的每次点击而增加 environment.clicks 的值。 怎么做?当我们通过

推送它时
dataLayer.push({
    'environment': {
        'clicks': 123
    }
});

dataLayer 数组可能会获得 10.000 个条目。如何正确更新变量?

最佳答案

更新数据层变量的方法是在“ native ”GTM 事件发生时或与自定义事件同时发生时推送变量。所以基本上你是对的。

至于您担心 DL 可能会获取许多条目 - 无论如何,数据层在每次点击时都会获得一个新条目(GTM 会自行添加),因此变量的附加条目可能并不重要。

如果您仍然想避免这种情况,您可以更新全局 Javascript 变量并在 GTM 中使用它。 Google 跟踪代码管理器可以访问您网页上的所有变量(您仍然可以获得数据层中的所有点击事件)。

dataLayer 还有一个 set 方法,允许您直接写入 Datalayer,这显然是您正在寻找的。您需要获取 GTM 实例,然后可以设置值:

 var gtm = window.google_tag_manager[{{Container ID}}];
     gtm.dataLayer.set('balloonsPopped', undefined);

详细信息例如在这里 Bounteous article 。您可以在自定义 HTML 标记中使用此功能,以便在点击事件触发您的标记之前更新点击计数。

数据层也会在页面加载时重置。一个单页应用程序要收集每个综合浏览量 10,000 次点击,将需要大量的时间。

这已标记为 Google Analytics。如果您打算跟踪 GA 中的点击次数,请记住 GA session 在 500 次点击后就会过期,因此结果可能不是您所期望的(而且免费版本每月只有 1000 万次点击,点击跟踪很快就会耗尽这个量)。如果您想跟踪 GA 中的点击次数,那么您需要一个事件或其他东西来跟踪点击,因此事件数量基本上就是您正在寻找的指标,或者您可以创建一个自定义指标并将其设置为GA 调用中的“1”(意味着每次调用都会加一)。

关于javascript - 如何更新数据层变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41483557/

相关文章:

javascript - 顺序的 setState 调用在时间上非常接近,只会引发一次渲染

javascript - 谷歌通用分析 : push several sub-events in one impressions event (E-commerce)

javascript - GTM 和 Analytics.js

javascript - firebase 中子项的大小

javascript - Bootstrap-wysihtml5 : content uneditable

javascript - jQuery UI 切换焦点在多个模式对话框上?

wordpress - Wordpress 中的 Google Analytics - 跨域跟踪

javascript - Highcharts:使用 Google Analytics 捕获事件操作以导出图表

android - 将 Google Analytics 与 Robolectric(或 "Trying to use SQLite3 in Robolectric")一起使用时出现 SQLException

google-tag-manager - Zoho:表单:未触发 Google 跟踪代码管理器事件