我正在使用Google跟踪代码管理器在我的网站上触发代码 . 除了Internet Explorer(任何版本)之外,所有浏览器中的标记都正确触发 . 发生的事情是,在使用Internet Explorer时,我的自定义Javascript中没有填充GTM宏 . 但是,如果我刷新页面,则会填充它们 . 基于此,我假设问题是标签在DOM完全加载之前触发 . 我在"Rule"中使用 {{event}} equals gtm.dom
. 我也尝试在"Rule"中使用 {{event}} equals gtm.load
,但这也不起作用 . 以下是我如何定义GTM宏,规则和标记 . 更奇怪的是,当我在GTM中以"Preview"模式测试标签时,它每次都有效,没有问题 . 但是一旦我发布它,除非我刷新页面,否则它不再有效 . 我究竟做错了什么?
Macro Name: PDP-ProdID
Macro Type: 自定义JavaScript
Custom Javascript:
function () {
var pdp_prodid = document.getElementsByName('sku')[0].value;
return pdp_prodid;
}
Rule Name: FullSite_Product_Detail_Page - 页脚
Conditions:{{url}} contains gohastings.com/product/
{{event}} equals gtm.dom
Tag Name: Fetchback_Smart_Pixel-Remarketing-PDP
Tag Type: 自定义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>
Firing Rules: FullSite_Product_Detail_Page - 页脚
Site: qa.gohastings.com(但是,我的QA网站上存在一些问题,因此请使用此链接,因为它会直接转到产品详细信息页面 .
http://qa.gohastings.com/product/BOOK/Fifty-Shades-of-Grey-Bk-1/sku/287464232.uts (产品详情页面)
Result of tag on first page load<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">
Result of tag after page reload<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">
1 回答
我在使用Google Analytics跟踪电子商务交易时遇到了类似的问题 . 在设置交易详细信息之前,
gtm.dom
事件将会触发 . 我最终做的是在设置数据层而不是使用gtm.dom
事件后触发自定义事件 .您可以将规则条件更改为
{{event}} equals myPageLoad
,然后在页面加载后您知道所有内容已准备就绪(例如,在jQuery中使用$(document).ready(...)
),请调用: