Помощь Вопрос по google tag manager

Jarhead

Постоялец
Регистрация
17 Июн 2011
Сообщения
414
Реакции
169
В корзине попросили после совершения заказа, передавать в google информацию о совершенном заказе, о том что заказ создан у меня уведомляет в Ajax ответе, там я написал функцию:

Код:
                dataLayer.push({
                    'event': 'PayByCard',
                    'ecommerce': {
                            'purchase': {
                                'actionField': {
                                    'id': ''+rd.o_id['order_id']+'',
                                    'revenue': ''+rd.o_id['price'].replace(/[^0-9$.,]/g, '')+'',
                                    'coupon': ''+rd.o_id['coupon']+'',
                                },'products': products
                            }

                    },
                    'eventCallback' : function() {
                        alert('Сейчас Вы будите перенаправлены на страницу оплаты.');
                        id('order_payment').submit();
                    }
                })

По идее, как написано в документации все что внутри eventCallback должно срабатывать после передачи в гугл информации о заказе, у меня там идет редирект на страницу оплаты. Но почему то данные о заказе в гугл не поступают, может кто подскажет чего?
 
id('order_payment').submit(); - это что такое? id('') это что за функция?
 
В консоли-то нет ошибок? Пишется что push делается только после кода Google Tag Manager, не до
 
id('order_payment').submit(); - это что такое? id('') это что за функция?

Да на кнопку формы нажимает, аналогично $('#order_payment').click();
<-------------- добавлено через 79 сек. -------------->
Попробовал вот так:

Код:
if (typeof google_tag_manager === 'object') {
    dataLayer.push({
      'event': 'PayByCard',
      'ecommerce': {
          'purchase': {
            'actionField': {
              'id': ''+rd.o_id['order_id']+'',
              'revenue': ''+rd.o_id['price'].replace(/[^0-9$.,]/g, '')+'',
              'coupon': ''+rd.o_id['coupon']+'',
            },'products': products
          }

      },
      'eventCallback' : function() {
        alert('Сейчас Вы будите перенаправлены на страницу оплаты.');
        setTimeout(function(){
          id('order_payment').submit();
        }, 2000);
       
      }
    })
  }

Т.е. сделал проверку загрузки таг менеджера на странице и сделал таймаут 2 секунды, все равно данные не поступают..
<-------------- добавлено через 1615 сек. -------------->
В консоли-то нет ошибок? Пишется что push делается только после кода Google Tag Manager, не до

Это корзина, tag manager в шапке сайта подключается, когда вызывается мой код, страница уже давно была вся загружена т.к. код вызывается после заполнения всех полей корзины, отправки заказа на сервер и возврата номера заказа и других параметров по Ajax чтобы передать их в google. Ошибок нет, если редиректа не делать то в массиве datalayer видно добавленные туда данные и даже больше, если без редиректа то данные видны в гугл, данных нет только тогда когда после пуша идет редирект.
 
Назад
Сверху