【问题标题】:how to output dataLayer macro in custom html tag in Google Tag Manager如何在谷歌标签管理器的自定义html标签中输出dataLayer宏
【发布时间】:2014-12-19 21:10:51
【问题描述】:

我正在尝试根据使用 Google 跟踪代码管理器在我的网页上确定的值输出自定义 HTML,但问题是我无法在 GTM 中让我的“自定义 HTML”标记在我的网页上触发.标记、宏和规则特指 GTM 中的标记、宏和规则。标签是您希望 GTM 输出到您的网页上的东西,规则控制这些标签何时被触发,而宏本质上是可在标签和规则中使用的变量。我相信

`dataLayer.push({'orderid': '5'});`

会将宏 {{orderid}}(在 GTM 中创建)设置为等于 5。使用宏集,我可以在触发规则“if {{orderid}} is equal to 5”中使用它,一旦满足该规则就会触发我的代码。 我已经尝试在我的网页以及浏览器的控制台上进行推送,但它不起作用。自定义 HTML 标记永远不会出现在页面上。我相信我对这一切如何运作有一个根本的误解,但我不知道我不理解哪一部分。

【问题讨论】:

  • 欢迎来到 StackOverflow。尝试非常具体并发布任何相关代码,并提出一个非常具体的问题!
  • 嗨 DLeh。我怎样才能更具体?我要做的是使用 GTM 中的“自定义 HTML”标签输出 html。标签的触发规则是“如果 {{orderid}}} 等于 5”。 {{orderid}} 是我在 GTM 中创建的 dataLayerVariable 宏。我的印象是宏是使用 GTM 的 dataLayer 全局变量设置的。我已经使用“dataLayer.push('orderid': '5') 将 orderid 推送到 dataLayer 并确认数据存在于 dataLayer 中。问题是自定义 html 标记未触发。
  • 我不知道你在问什么。你的问题是什么?你的代码是什么?这是什么语言?我不知道您使用的是什么 macrostags。您可以提供更多信息来帮助其他人帮助您。
  • 您提供的任何其他详细信息,请作为对原始问题的编辑。
  • 您熟悉 Google 跟踪代码管理器吗?除了使用 javascript 的 dataLayer.push({'orderid': '5'}); 之外,没有其他代码。标记、宏和规则特指 GTM 中的标记、宏和规则。标签是您希望 GTM 输出到您的网页上的内容,规则控制何时触发这些标签,而宏本质上是可在标签和规则中使用的变量。我相信dataLayer.push({'orderid': '5'}); 应该将宏 {{orderid}} 设置为 5,这应该满足规则“如果 {{orderid}} 等于 5”,然后应该触发标签。问题是代码没有触发。

标签: macros google-tag-manager


【解决方案1】:

尝试设置一个事件(触发标签触发的 dataLayer 变量的保留宏名称)。

dataLayer.push({
'orderid': '5',
'event' : 'orderid_set'
});

然后在你的规则中有两个条件,分别是 {{orderid}} eq 5 和 {{event}} eq orderid_set。

您总是需要一个事件来触发标签,但在大多数情况下,GTM 会自动填充事件变量(在页面加载、dom 就绪等)或通过事件处理程序标签。如果您想独立于页面加载或点击/提交触发代码,则需要自定义事件。

【讨论】:

  • 天啊!这就像一个魅力!现在为什么 Google 的文档不能指定这一点。非常感谢!
  • 如果在标签管理器代码执行之前设置了 dataLayer 值,您还应该能够使用内置事件 gtm.dom 和 gtm.start,但最佳做法似乎是始终包含事件名称并使用它,as Simo Ahava details here
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-26
  • 1970-01-01
  • 2014-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多