Как отслеживать события AjaxForm?

Здравствуйте!
Можно ли как-то настроить цель в Google Analytics, чтобы отслеживать заказы сделанные с помощью AjaxFrom?
Спасибо!
Владимир
14 июля 2016, 16:56
modx.pro
6 132
0

Комментарии: 9

Игорь Терентьев
15 июля 2016, 01:08
0
docs.modx.pro/components/ajaxform#Событие-af_complete
$(document).on('af_complete', function(res) {
	if (res.success) {
             // показываем сообщение об успехе, по таймауту закрываем модалку
        } else {
             // закрывать ничего не надо, ибо ошибка и юзер должен её исправлять
        }
});
    Владимир
    30 июля 2016, 09:36
    0
    ничего не происходит, событие не отображается в аналитиксе. вставляю этот код после кода формы:
    <script>
    $(document).on('af_complete', function(res) {
    	if (res.success) {
                 ga('send', 'event', 'Форма заказа', 'Нажатие кнопки Заказать');
            } else {
                 // закрывать ничего не надо, ибо ошибка и юзер должен её исправлять
            }
    });
    </script>
    если ставлю этот код:
    onsubmit="ga('send', 'event', 'Форма заказа', 'Нажатие кнопки Заказать')"
    в саму форму, о событие в аналитиксе работает, но даже при простом нажатии на кнопку Заказать, то есть даже при ошибках в форме.
      Игорь Терентьев
      31 июля 2016, 23:17
      0
      Понял в чем ошибка, нужно function(event,res) вот рабочий пример:
      $(document).on('af_complete', function(event,res) {
      	if (res.success) {
      	// показываем сообщение об успехе
              $.fancybox.close();
              $.fancybox.open($('#success-popup'), {
                      autoSize: true,
                      padding: 0,
                      closeBtn: false,
                      helpers: {
                      overlay: {locked: false, closeClick: true}
                      }
                  });
              } else {
                   // закрывать ничего не надо, ибо ошибка и юзер должен её исправлять
              }
      });
        Владимир
        20 августа 2018, 14:48
        0
        привет! появилась задача подобного рода.
        получилось решить с таким кодом:
        <script>
        $(document).on('af_complete', function(event,res) {
        	if (res.success) {
        	    gtag('event', 'OrderCalculation', { 'event_category' : 'Calculation', 'event_action' : 'ClickButton' });
                $.fancybox.close();
                $.fancybox.open($('#success-popup'), {
                        autoSize: true,
                        padding: 0,
                        closeBtn: false,
                        helpers: {
                        overlay: {locked: false, closeClick: true}
                        }
                    });
                } else {
                     
                }
        });
        </script>
        но если нужно добавить цели еще и для яндекс.метрики, вставляю:
        <script>
        $(document).on('af_complete', function(event,res) {
        	if (res.success) {
        	    gtag('event', 'OrderCalculation', { 'event_category' : 'Calculation', 'event_action' : 'ClickButton' });
        	    yaCounter49951813.reachGoal('ClickOrderCalculation');
                $.fancybox.close();
                $.fancybox.open($('#success-popup'), {
                        autoSize: true,
                        padding: 0,
                        closeBtn: false,
                        helpers: {
                        overlay: {locked: false, closeClick: true}
                        }
                    });
                } else {
                     
                }
        });
        </script>
        и данные с формы отправляются, но не показывается зеленое сообщение об успешной отправке и форма зависает.
        где может быть проблема?
          Игорь Терентьев
          20 августа 2018, 15:17
          0
          Ошибок нет в консоли браузера?
            Владимир
            20 августа 2018, 15:27
            0
            да, есть )
              Игорь Терентьев
              20 августа 2018, 15:37
              0
              Этот скрипт нужно подключить после метрики.
                Владимир
                20 августа 2018, 15:40
                0
                да, стоит в футере, метрика в head размещена
                  Владимир
                  20 августа 2018, 15:57
                  0
                  все, нашел ошибку, код метрики обновить нужно было.
                  спасибо! )
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      9