1

哪些更優化?「dataLayer.push」或用「dataLayer =」聲明分析電子商務跟蹤GTM

我有一個感謝頁面,我需要將所有交易銷售信息加載到此頁面以通過Google跟蹤代碼管理器將其發佈到Google Analytics。

我是否使用下面的代碼聲明dataLayer並將其發佈在我的GTM代碼之前?

dataLayer = [{ 
    'ecommerce': { 
    'purchase': { 
     'actionField': { 
     'id': '40008', 
     'revenue': '90.00', 
     }, 
     'products': [{ 
     'name': 'Clothes', 
     'price': '9.00', 
     'category': 'Shirt', 
     'quantity': 10.00, 
     }] 
    } 
    } 
}]; 

還是我將數據推入自動創建的dataLayer並將其發佈在我的GTM代碼之後?

dataLayer.push({ 
    'ecommerce': { 
    'purchase': { 
     'actionField': { 
     'id': '40008', 
     'revenue': '90.00', 
     }, 
     'products': [{ 
     'name': 'Clothes', 
     'price': '9.00', 
     'category': 'Shirt', 
     'quantity': 10.00, 
     }] 
    } 
    } 
}); 

有什麼區別?我將通過「DOM準備好」事件將dataLayer中的數據提供給Google。

回答

1

您在GTM標籤上方聲明dataLayer,以獲取需要在頁面加載時立即可用的信息。您可以使用dataLayer.push獲取GTM標籤後添加的信息。

我坦率地認爲它在大多數用例中並沒有太大的差別,但是如果你想確保數據在頁面加載時可用,你應該聲明一個dataLayer。 DOM就緒意味着源代碼中的任何推送事件都已經發生,所以它可能對您沒有任何影響。

+0

你能澄清Dom Ready和Pageview的區別嗎?如果我在加載頁面之前聲明dataLayer,我想使用哪一個? – tkwitten

+0

頁面瀏覽(從GTM的角度來看)只要瀏覽器遇到GTM代碼就會發生(通常GTM直接集成在開始的主體標籤之後),因此這是第一次啓用標籤的機會。 DOM準備工作只有在頁面加載完成後纔會發生完整的結構(同名的DOM),因此在加載過程中很久以後。 Windows加載(當所有連接的資源如圖像和css /腳本文件已加載時)是最後一個。如果您在GTM片段上面聲明dataLayer,那麼您將使用頁面視圖觸發器(使用頁面視圖作爲觸發器類型)。 –