2016-08-28 56 views
0

我正在使用GTM的增強型電子商務通過推入dataLayer變量來報告事件。在GTM dataLayer推送後提交表格

我有一種情況,我需要推動一個事件,並立即在事件回調中提交一個表單。谷歌在理論上提供了eventCallback機制,這一點,但考慮下面的代碼:

<script> 
dataLayer.push({ 
    'ecommerce': { 
    'currencyCode': 'EUR', 
    'impressions': [ 
    { 
     'name': 'Donut Friday Scented T-Shirt', 
     'id': '67890', 
     'price': '33.75', 
     'brand': 'Google', 
     'category': 'Apparel', 
     'variant': 'Black', 
     'list': 'Search Results', 
     'position': 2 
    }] 
    } 
},{ 
    'eventCallback': function() { 
     document.location = productObj.url; // works 
     document.getElementById('form-id').submit(); // fails (!?!) 
    } 
}); 
</script> 

注:

  1. 有沒有Javascript錯誤
  2. 形式#form-id存在在頁面上(沒有的事錯別字)

底線:我該如何着手導致表單在推後提交?或者這是不可能的?

+0

也許'eventCallback'不起作用,因爲您僅推送原始電子商務數據而沒有任何「事件」? –

+0

和雙重檢查括號。 (我認爲至少有一個}要多) –

回答

0

您爲什麼要使用GTM提交表單(特別是在產品印象之後)的任何特定原因?這可能超出了它的預期用途,聽起來太hacky。

假設網站自己推送,您可以在網頁腳本的dataLayer.push之後立即提交表單,然後使用GTM自己的form submit delay抓住推送,自己組裝產品展示標籤,然後讓表單提交爲預計發射後。這應該做到這一點。