我想通過Google跟蹤代碼管理器部署Universal Analytics解決事件觸發問題。
特別是,我試圖在同一頁上發送兩種事件:一個結帳 - 購買事件(增強型電子商務)和一個onclick通用定製一個。
下面我網頁的相關代碼,在onload事件執行的順序:通過標記管理器無法正常工作的Universal Analytics事件
<script>
<!--Initialize dataLayer-->
dataLayer = [{'userId' : ...}];
<!--End dataLayer-->
<!--Tag Manager-->
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':.....})(window,document,'script','dataLayer','GTM-...');
<!--End Tag Manager-->
dataLayer.push({
'event': 'checkout',
'ecommerce': {
'purchase': {
'actionField': {
'id': ...
'revenue': '1.00',
'tax': ...
},
'products': [{
'name': 'Product1',
'price': '1.00',
'category': 'Category 1',
'variant': 'Variant1',
'quantity': 1
}]
}
},
'eventCallback': function() {
console.log("Purchase pushed!");
}
});
</script>
<button onclick="dataLayer.push({'event': 'eventTest'});">CLICK ME</button>
正如你看到的,購買事件是正確的頁面加載推。
由於檢查瀏覽器控制檯中的dataLayer對象,我正確地聲明「正確」,顯示添加的購買子對象。
另外,最後你會發現一個簡單的按鈕,它在onclick處理器上推送另一個通用的「eventTest」。即使這個事件對象被添加到dataLayer「隊列」中。
爲了您的考慮,下面這些是關於Google的頁面加載「200狀態」請求:
- gtm.js?id = GTM -... [www.googletagmanager.com]
- analytics.js [ www.google-analytics.com]
- 收集v = 1 & _V = J35 & A = 211135512 & T =瀏覽量... [www.google-analytics.com]
總之,一切似乎是確定。
顯然,當這些推送完成後,沒有任何虛構請求被觸發,但這是預期的。
我的問題是:什麼時候發送dataLayer「隊列」數據?
事實上,在我的測試中幾天後沒有任何事件數據在Analytics面板中報告。
Analytics標記基於Google跟蹤代碼管理器中的「所有網頁」觸發規則,以及具有高級電子商務功能和數據層選項的「電子商務元素」均處於活動狀態。
是否有任何其他跟蹤代碼管理器的選項或規則,我應該設置爲了使這些事件被收集?這些事件是否應該先前在跟蹤代碼管理器的控制檯中「註冊」?
爲了長久而感到抱歉,非常感謝。
UPDATE:
我設法讓收集的數據的事件,但我面臨發送的事件 「標籤」 的問題。
我的意思是即使在Universal Analytics實時面板中也會定期記錄事件,但是會記錄爲「undefined」。
檢查Analytics的請求是否顯示電子商務對象「addToCart/removeFromCart」dataLayer.push和通用onclick「eventTest」之一的「ec」和「ea」參數的「未定義」值。
這些有什麼不對?
非常感謝。
謝謝@mrbubu。我成功地使用與「所有網頁」綜合瀏覽量相同的Google Analytics代碼發送了電子商務「結帳」匹配。我的意思是基於兩個觸發器的一個標籤。這似乎工作,但第三個觸發器(「eventTest」)似乎不是。我會嘗試在第三個觸發器上重複使用Google Analytics代碼,即使我認爲它很奇怪。 –
如果您基於兩個觸發器在一個頁面上發送綜合瀏覽量,則會獲得兩頁此頁面瀏覽量。您應該更好地使用事件分析標記來跟蹤電子商務和事件。 – mrbubu
好的.thx。因此,在我的情況下,三個不同的觸發器使用三個相同的UA標籤:兩個事件(「checkout」和「eventTest」)和一個綜合瀏覽量。 –