Для отслеживания отправки формы мы используем механизм событий 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/
Спасибо заранее.