如何更新数据层变量?
How to update a dataLayer variable?
我们最初将包含变量的对象推送到数据层:
dataLayer.push({
'environment': {
'userName': 'abc',
'id': 123,
'clicks': 0
}
});
我们现在希望随着用户的每次点击增加 environment.clicks
的价值。
怎么做?当我们通过
推送它时
dataLayer.push({
'environment': {
'clicks': 123
}
});
dataLayer 数组可能会包含 10.000 条条目。如何正确更新变量?
更新数据层变量的方法是在“本地”GTM 事件发生时或与自定义事件一起推送变量。所以基本上你是对的。
至于您担心 DL 可能会获得许多条目 - dataLayer 在任何情况下每次点击都会获得一个新条目(GTM 自行添加),因此您的变量的额外条目可能无关紧要很多。
如果您仍然想避免这种情况,您可以更新全局 Javascript 变量并在 GTM 中使用它。 Google 跟踪代码管理器可以访问您页面上的所有变量(您仍然会在数据层中获得所有点击事件)。
dataLayer 也有一个 set
方法,允许您直接写入数据层,这显然是您正在寻找的。您需要获取您的 GTM 实例,然后您可以设置值:
var gtm = window.google_tag_manager[{{Container ID}}];
gtm.dataLayer.set('balloonsPopped', undefined);
详情如这里是 Bounteous article。您可以在自定义 HTML 代码中使用它来在点击事件触发您的代码之前更新点击次数。
此外,dataLayer 会在页面加载时重置。一个单页应用程序要收集 10 000 次网页浏览点击次数真是太糟糕了。
这被标记为 Google 分析。如果您计划跟踪 GA 中的点击,请记住 GA 会话在 500 次点击后过期,因此结果可能不是您所期望的(而且免费版本每月只有 1000 万点击,点击跟踪将很快耗尽这个)。如果你想跟踪 GA 中的点击次数,那么你需要一个事件或其他东西来跟踪点击,所以事件的数量基本上就是你正在寻找的指标,或者你可以创建一个自定义指标并将其设置为您的 GA 调用中的“1”(意味着它会在每次调用时递增 1)。
你不能用支架吗?类似于:
var click_value_holder = dataLayer.environment.clicks;
dataLayer.push({
'environment': {
'clicks': (click_value_holder + 1)
}
});
It's important to note that pushing a variable of the same name as an existing variable to the data layer will cause the existing value to be overwritten by the new value
只需推送具有相同变量名和更新值的条目即可。
我们最初将包含变量的对象推送到数据层:
dataLayer.push({
'environment': {
'userName': 'abc',
'id': 123,
'clicks': 0
}
});
我们现在希望随着用户的每次点击增加 environment.clicks
的价值。
怎么做?当我们通过
dataLayer.push({
'environment': {
'clicks': 123
}
});
dataLayer 数组可能会包含 10.000 条条目。如何正确更新变量?
更新数据层变量的方法是在“本地”GTM 事件发生时或与自定义事件一起推送变量。所以基本上你是对的。
至于您担心 DL 可能会获得许多条目 - dataLayer 在任何情况下每次点击都会获得一个新条目(GTM 自行添加),因此您的变量的额外条目可能无关紧要很多。
如果您仍然想避免这种情况,您可以更新全局 Javascript 变量并在 GTM 中使用它。 Google 跟踪代码管理器可以访问您页面上的所有变量(您仍然会在数据层中获得所有点击事件)。
dataLayer 也有一个 set
方法,允许您直接写入数据层,这显然是您正在寻找的。您需要获取您的 GTM 实例,然后您可以设置值:
var gtm = window.google_tag_manager[{{Container ID}}];
gtm.dataLayer.set('balloonsPopped', undefined);
详情如这里是 Bounteous article。您可以在自定义 HTML 代码中使用它来在点击事件触发您的代码之前更新点击次数。
此外,dataLayer 会在页面加载时重置。一个单页应用程序要收集 10 000 次网页浏览点击次数真是太糟糕了。
这被标记为 Google 分析。如果您计划跟踪 GA 中的点击,请记住 GA 会话在 500 次点击后过期,因此结果可能不是您所期望的(而且免费版本每月只有 1000 万点击,点击跟踪将很快耗尽这个)。如果你想跟踪 GA 中的点击次数,那么你需要一个事件或其他东西来跟踪点击,所以事件的数量基本上就是你正在寻找的指标,或者你可以创建一个自定义指标并将其设置为您的 GA 调用中的“1”(意味着它会在每次调用时递增 1)。
你不能用支架吗?类似于:
var click_value_holder = dataLayer.environment.clicks;
dataLayer.push({
'environment': {
'clicks': (click_value_holder + 1)
}
});
It's important to note that pushing a variable of the same name as an existing variable to the data layer will cause the existing value to be overwritten by the new value
只需推送具有相同变量名和更新值的条目即可。