5

我正在使用谷歌标签管理器在我的网站上触发标签。这些标签在除 Internet Explorer(任何版本)之外的所有浏览器中都能正确触发。发生的事情是使用 Internet Explorer 时,我的自定义 Javascript 中没有填充 GTM 宏。但是,如果我刷新页面,它们就会被填充。基于此,我假设问题是标签在 DOM 完全加载之前触发。我{{event}} equals gtm.dom在“规则”中使用。我也尝试{{event}} equals gtm.load在“规则”中使用,但这也不起作用。这是我定义 GTM 宏、规则和标签的方式。更奇怪的是,当我在 GTM 中以“预览”模式测试标签时,它每次都能正常工作,没有问题。但是一旦我发布它,除非我刷新页面,否则它不再起作用。我究竟做错了什么?

宏名称: PDP-ProdID
宏类型:自定义 JavaScript
自定义 Javascript:

function () {
    var pdp_prodid = document.getElementsByName('sku')[0].value;
    return pdp_prodid;
}

规则名称: FullSite_Product_Detail_Page - 页脚
条件:
{{url}} contains gohastings.com/product/
{{event}} equals gtm.dom

标记名称: Fetchback_Smart_Pixel-Remarketing-PDP
标记类型:自定义 HTML 标记
HTML:
<iframe src='{{protocol}}://pixel.fetchback.com/serve/fb/pdj?cat=&name=landing&sid=6288&browse_products={{PDP-ProdID}}' scrolling='no' width='1' height='1' marginheight='0' marginwidth='0' frameborder='0'></iframe>

触发规则: FullSite_Product_Detail_Page - 页脚

站点: qa.gohastings.com(但是,我的 QA 站点存在一些问题,因此请使用此链接,因为它会将您直接带到产品详细信息页面。http :
//qa.gohastings.com/product/BOOK/Fifty -Shades-of-Grey-Bk-1/sku/287​​464232.uts(产品详情页面)

第一个页面加载的标签结果
<iframe width="1" height="1" src="http://pixel.fetchback.com/serve/fb/pdj?cat=&name=landing&sid=6288&browse_products=undefined" frameBorder="0" marginWidth="0" marginHeight="0" scrolling="no">

页面重新加载后的标签结果
<iframe width="1" height="1" src="http://pixel.fetchback.com/serve/fb/pdj?cat=&name=landing&sid=6288&browse_products=287464232" frameBorder="0" marginWidth="0" marginHeight="0" scrolling="no">

4

1 回答 1

3

我在使用 Google Analytics 跟踪电子商务交易时遇到了类似的问题。该gtm.dom事件将在我设置交易详细信息之前触发。我最终做的是在设置数据层而不是使用事件之后触发自定义gtm.dom事件。

您可以将规则条件更改为{{event}} equals myPageLoad,然后在页面加载并且您知道所需的一切准备就绪($(document).ready(...)例如,在 jQuery 中使用)后,调用:

dataLayer.push({ event: 'myPageLoad' });
于 2013-12-06T20:12:41.383 回答