在标签管理器事件中设置自定义标签

Setting custom label in tag manager event

我们的页面上有两个 link,想使用 gtm 记录对它们的点击。

<a href="..." data-gtm-event="register">Register now</a>
<a href="..." data-gtm-event="logon">Log on</a>

我们有一个触发器,用于点击与 [data-gtm-event] 的 css 选择器匹配的元素。

最后我们有一个标签集,使用触发器记录 Link event。触发器正在触发,代码正在运行。

但我想有一种方法可以将记录的事件上的标签更改为 RegisterLog on,具体取决于他们单击的 link。过去我们为每个触发器制作了一个触发器,为每个制作了一个标签,但这是不可持续的。

我知道我可以创建自定义 javascript 变量,例如:

function(){
   return "My label";
}

然后使用该自定义变量分配事件标签。我确实看到了它的工作。

有没有办法让它变得动态?

我在网络上找到了 using the dataLayer 的示例,但我不想将 onclick 属性添加到我的 html 元素。

javascript 变量中是否有一种方法可以访问单击的元素并从其数据属性中获取值?

我找到了关于使用宏的页面,但那是旧版本,对吗?

当然可以。如果启用内置 "Click" 变量,其中之一是 "Click Element",它实际上 returns DOM 元素及其所有属性。

因此,在您的自定义 javascript 变量中,您可以引用它并执行

function() {
  return {{Click Element}}.getAttribute('data-gtm-event');
}

(也许您想先检查该属性是否实际存在)。