Отслеживание событий в Google Analytics с помощью _trackEvent при отправке формы

Я пытаюсь отследить событие, когда пользователь нажимает кнопку отправки в моей форме регистрации.

У меня есть следующий код на моей странице:

Google Analytics - непосредственно перед моим закрытием </head> тег:

<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXXXXX-XX']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>

Отслеживание событий формы:

<input onclick="_gaq.push(['_trackEvent', 'Forms', 'Submit', 'mylist', , false]);" name="submit" id="af-submit-image-873297158" type="image" class="image img-responsive" style="background: none;" alt="Submit Form" src="img/orange_free_instant_access_button.png" tabindex="503">

Каждый раз, когда я загружаю страницу и щелкаю форму, событие регистрируется в разделе событий Google Analytics в реальном времени. Кажется, это работает нормально, однако из более чем 100 известных регистраций в списке за последние 24 часа регистрируется только несколько. (Всего 12, большинство из которых были моими собственными заявками на тестирование).

Я могу только предположить, что событие не отправляется в Google, но насколько я вижу, код выглядит нормально, и я также могу видеть, что событие отправляется через консоль с помощью плагина отладки GA.

Я пытался вызвать событие с помощью вызова jQuery, я пробовал различные события, такие как onmousedown и фактическое событие отправки формы, но ничего. (Я даже откатился с analytics.js на ga.js, создав новый профиль, так как считал, что это проблема с бета-версией.)

Я подозревал, что событие не было запущено вовремя, пока страница не сменила местоположение, но когда я проверял себя, оно срабатывало каждый раз. Я пробовал Chrome, FF и IE10.

В своем стремлении исправить это я прикрепил событие onload к телу страницы, и я вижу, что события записываются для этого даже от живых посетителей. Проблема, кажется, сосредоточена вокруг события формы.

2 ответа

Решение

Хорошо, похоже, пришло время ответить на мой вопрос в интересах других:

Я немного покопался, и это было вызвано тем, что место смены страницы было правильно отслежено. Благодаря посту Джоэла Петерсона я придумал этот фрагмент кода:

jQuery(document).ready(function($){
    $('form').submit(function(event){
        //if analytics object exists
        if(window._gat){
            event.preventDefault();
            optinForm = this;
            _gaq.push(['_set','hitCallback', function(){
                                                optinForm.submit();
                                             }]);
            _gaq.push(['_trackEvent', 'Forms', 'Submit', 'hbsanewtraffic']);
        }
        //if no analytics object, service as normal
    });
});

Он использует функцию обратного вызова, чтобы убедиться, что событие отправляется первым, а затем отправляет мою форму.

Замените _gaq.push(['_trackEvent', 'Forms', 'Submit', 'mylist', false)];

с ниже.

ga ("отправить", "событие", "категория", "действие");

Пример:

ga ("отправить", "событие", "формы", "отправить");

Поместите как значение для атрибута onClick.

Другие вопросы по тегам