2013-11-27 33 views
5

我正在使用Google代碼管理器在我的網站上觸發代碼。在Internet Explorer(任何版本)以外的所有瀏覽器中,標籤都能正確觸發。發生的事情是,當使用Internet Explorer時,GTM宏沒有在我的自定義Javascript中填充。但是,如果我刷新頁面,它們將被填充。基於此,我認爲問題是標記在DOM完全加載之前觸發。我在「規則」中使用{{event}} equals gtm.dom。我也嘗試在「規則」中使用{{event}} equals gtm.load,但這也不起作用。這裏是我如何定義GTM宏,規則和標籤。更奇怪的是,當我在GTM的「預覽」模式下測試標籤時,它每次都有效,沒有問題。但是一旦我發佈它,除非我刷新頁面,否則它不再有效。我究竟做錯了什麼?我使用Google跟蹤代碼管理器在我的網站上觸發代碼。任何版本的Internet Explorer自定義代碼中的「未定義」變量

宏名稱: 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再推廣-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(但是,我在我的質量檢查站點上有一些問題,所以請使用此鏈接,因爲它會直接將您帶到產品詳細信息頁面。
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">

回答

3

我有一個類似的問題使用Google Analytics跟蹤電子商務交易。在設置交易詳情之前,gtm.dom事件將會觸發。我最終做的是在設置數據層而不是使用gtm.dom事件後觸發自定義事件。

您可以更改規則條件{{event}} equals myPageLoad,然後在頁面加載後,你知道一切都準備好,你需要(使用jQuery的$(document).ready(...)爲例),撥打:

dataLayer.push({ event: 'myPageLoad' }); 
+0

馬修,謝謝你信息。我會試一試。 –

+0

由於我無法訪問源代碼,而且我的IT部門現在沒有時間進行任何更改,所以我不得不發揮創意。所以,我用我的CMS更新了我網站上的頁腳,將這個腳本作爲最後一件事情。 ''它現在在所有瀏覽器中都能很好地工作。 –

相關問題