我使用谷歌标签管理器在我的网站上启动标签.变量“;未定义的“;在任何版本的Internet Explorer的自定义代码
I use Google Tag Manager to fire tags on my website.Variables "undefined" in custom code for any version of Internet Explorer
我正在使用谷歌标签管理器在我的网站上激发标签。标记在除Internet Explorer(任何版本)之外的所有浏览器中都能正确启动。实际情况是,在使用Internet Explorer时,GTM宏没有填充到我的自定义Javascript中。但是,如果我刷新页面,它们就会被填充。基于此,我认为问题在于标记在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/287464232.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">
我在使用Google Analytics跟踪电子商务交易时遇到了类似的问题。gtm.dom
事件将在我设置事务详细信息之前触发。我最终做的是在设置数据层之后触发一个自定义事件,而不是使用gtm.dom
事件。
您可以将规则条件更改为{{event}} equals myPageLoad
,然后在页面加载后,您知道所需的一切都准备好了(例如,在jQuery中使用$(document).ready(...)
),调用:
dataLayer.push({ event: 'myPageLoad' });