2017-05-08 33 views
0

我正在尋找將Google Analytics事件添加到無法訪問內嵌html的表單,因此我無法將其作爲onClick=""事件直接添加到html。將Google Analytics事件添加到表單提交

所以我的解決方案,一直至今:

$(function() { 
    $(".form_submit input").on("click", function() { 
    dataLayer.push({ 
     "event": "Kontakt", 
     "eventCategory": "Submit", 
     "eventAction": "Kirjuta meile", 
     "eventLabel": "Kirjuta meile" 
    }); 
    }); 
}); 

Althought這似乎並不爲點擊提交按鈕可能工作停止的所有功能,並刷新頁面。

如何在提交之前運行函數,然後提交表單?我已經建議使用preventDefault();,並且之後再次調用$('form').one('submit', ...提交,但由於缺乏技巧而無法實現此功能。

查看網站:http://avrame.com/en(形式是在頁面的底部)

任何建議表示讚賞。

+0

您在使用谷歌標籤管理器?你的代碼似乎暗示了。你能發佈你的關聯標籤和觸發器的截圖嗎? – nyuen

回答

0

工作液結束了使用此回調方法:從

var form = document.getElementsByClassName('.footer__contact form'); 
form.addEventListener('submit', function(event) { 

    event.preventDefault(); 

    setTimeout(submitForm, 1000); 

    var formSubmitted = false; 

    function submitForm() { 
    if (!formSubmitted) { 
     formSubmitted = true; 
     form.submit(); 
    } 
    } 

    ga('send', 'event', 'submit', 'Saada', 'Kirjuta meile', { 
    hitCallback: submitForm 
    }); 
}); 

參考:https://developers.google.com/analytics/devguides/collection/analyticsjs/sending-hits#hitcallback

0

您實際上可以將函數推送到dataLayer,它將在第一個事件之後執行。

我會做

  • 代表提交的手錶事件記錄的水平(見Jquery .on() submit event
  • 截斷第一提交,推動事件,並防止默認行爲
  • 和插入函數內部dataLayer,這再次提交表格,但這次不會中止

該代碼:

window.submitGA = false; 
$(function() { 
    $(document).on('submit','.form_submit',function(event){ 
    if (!window.submitGA) 
    { 
     window.submitGA = true; 
     dataLayer.push({ 
     "event": "Kontakt", 
     "eventCategory": "Submit", 
     "eventAction": "Kirjuta meile", 
     "eventLabel": "Kirjuta meile" 
     }); 
     dataLayer.push(function(){ 
     $('.form_submit').submit(); 
     }); 
     event.preventDefault(); 
    } 
    }); 
}); 
+0

感謝您的迴應。我應用了您的代碼,但遺憾的是沒有事件顯示在GA中。我在代碼中添加了一些console.logs,但這些都沒有通過。 – user3615851

+0

您是否爲'event:Kontakt'設置了通用分析代碼? –

相關問題