为了跟踪表单的提交,我们使用了Google Analytics(分析)事件机制。问题在于,约有30%的提交内容未显示在Google Analytics(分析)事件报告中。
这是我们的跟踪代码:
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r; i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-834692-1', 'auto');
ga('require', 'GTM-T4KHK5P');
ga('send', 'pageview');
</script>
以下是代码触发事件:
try {
ga('send', 'event', 'quote', 'place', ga_label, 68, {hitCallback: EnableRequestSubmittedDialog, transport: 'beacon'} );
}catch(e){
$("#google-analytics-alert").show();
}
setTimeout(EnableRequestSubmittedDialog, 1500);
使用ajax将数据成功发送到服务器时,将执行以上代码。功能EnableRequestSubmittedDialog仅启用确认消息上的按钮,以便用户可以关闭页面。我还添加了在ajax调用之前触发调试事件的代码,并将google Analytics成功标志传输到服务器,并看到ga('send','event',...)代码始终成功执行,但事件的30%没有出现在Google Analytics(分析)中:
var ga_status = 'Failed.';
try {
if( ga.q ) //Google analytics not loaded for some reason
ga_status = 'Google analytics seems blocked.';
else {
ga('send', 'event', 'button-click', 'get-quote', ga_label, 1, {transport: 'beacon'}); //Post to google analytics each click to debug
ga_status = 'Seems success. label: ' + ga_label + '. transport: beacon';
formData.push({name: 'google-analytics', value: ga_status});
我还发现,当用户多次提交表单时,所有事件或没有事件都会显示在Google Analytics(分析)中。我检查了所有Google Analytics(分析)过滤器,它们对我来说看起来还可以。
正常情况下,Google Analytics(分析)事件的准确性会降低30%吗?还可以做些什么来了解问题所在?
表单URL为:https://www.emachineshop.com/quote/
感谢您。