2015-04-29 24 views
0

我想通過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」參數的「未定義」值。

這些有什麼不對?
非常感謝。

回答

2

在這種情況下,您應該向Google Analytics發送一次匹配,以發送增強型電子商務數據,併發送其他匹配以發送Google Analytics事件數據。

這意味着您應該在您的頁面上觸發3個Google Analytics代碼:一個用於通過「所有頁面」觸發的網頁瀏覽跟蹤(網頁瀏覽類型),一個用於通過「事件等於結帳」增強電子商務跟蹤(事件類型)觸發器和一個用於事件跟蹤(事件類型)的「事件等於eventTest」觸發器。

+0

謝謝@mrbubu。我成功地使用與「所有網頁」綜合瀏覽量相同的Google Analytics代碼發送了電子商務「結帳」匹配。我的意思是基於兩個觸發器的一個標籤。這似乎工作,但第三個觸發器(「eventTest」)似乎不是。我會嘗試在第三個觸發器上重複使用Google Analytics代碼,即使我認爲它很奇怪。 –

+0

如果您基於兩個觸發器在一個頁面上發送綜合瀏覽量,則會獲得兩頁此頁面瀏覽量。您應該更好地使用事件分析標記來跟蹤電子商務和事件。 – mrbubu

+0

好的.thx。因此,在我的情況下,三個不同的觸發器使用三個相同的UA標籤:兩個事件(「checkout」和「eventTest」)和一個綜合瀏覽量。 –

2

GTM如何觀察dataLayer is answered here

在通過Google Analytics代碼模板加載頁面時,會自動評估ecommcerce數據,因此您的交易記錄在案。

對於按鈕中的自定義事件,您需要創建觸發器,輸入「event」,條件「event equals eventTest」,然後創建一個爲事件跟蹤配置的Google Analytics代碼。

谷歌真的搞砸了,當它使用相同的術語完全不同的東西在兩個產品,旨在一起使用。

GTM事件不會跟蹤Google Analytics中的任何內容,它是GTM中的一個「保留」變量名稱,必須存在並填寫到火災標記中。在頁面加載時,DOM就緒,點擊並提交它由GTM自動填充。

但是,GTM事件不會跟蹤Google Analytics的任何內容。爲此,您需要創建一個單獨的Google事件跟蹤代碼,然後由GTM事件觸發(爲了使混淆完成,可能會觸發javascript事件)。

+0

謝謝@Eike,你讓這個工作更清晰一點。無論如何,這並不能解釋爲什麼我的「自動評估」的網頁加載電子商務數據沒有收集在分析面板中。相反,我會嘗試爲按鈕點擊設置一個GTM事件跟蹤標記。是否可以在所有網頁上使用相同的Analytics(分析)代碼觸發,或者我必須將其複製到此事件跟蹤中?非常感謝。 –