GTM как отследить шаг оформления заказа, мой случай это довольно особенный

Ранее я знал, что могу отслеживать электронную торговлю через GA, вот так

ga("ec:setAction","checkout", {"step": 1,"option": "don't understand this"});

..

Теперь мне нужно перейти с GA на GTM, поэтому я прочитал DevGuide от Google и попробовал это

function onCheckout() {
  dataLayer.push({
    "event": "checkout",
    "ecommerce": {
      "checkout": {
        "actionField": {"step": 1, "option": "don't understand this"},
        "products": [{
          "name": "Some pXXn BD",
          "id": "x100-2",
          "price": "29.0",
          "brand": "SOD",
          "quantity": 1
       }]
     }
   },
   "eventCallback": function() {
      document.location = "some_next_page.html";
   }
  });
}

Однако я не могу использовать функцию eventCallback, поскольку ссылка кнопки " Далее" на моем сайте представляла собой простой код JavaScript, например

void(0);

Реальный поток страниц контролировался каким-то внешним файлом.js, который я не могу изменить. Поэтому я попробовал другой способ, но не могу заставить его работать. У меня все еще ничего нет при отслеживании заказа...

<script>
dataLayer.push
({
  'event': 'checkout',
  'ecommerce': {'checkout': {'actionField': {'step': 1}}}
});
</script>

ничего в моем отчете об отслеживании заказа

Любые предложения приветствуются ~

2 ответа

Решение

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

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

Таким образом, вы должны выполнить этот код:

<script>
  dataLayer.push({
    'event': 'checkout',
    'ecommerce': {
      'checkout': {
        'actionField': {'step': 1},
        'products': [{
          'name': 'Triblend Android T-Shirt',
          'id': '12345',
          'price': '15.25',
          'brand': 'Google',
          'category': 'Apparel',
          'variant': 'Gray',
          'quantity': 1
       }]
     }
   }
  });
</script>

Затем вы должны установить тег в GTM следующим образом:

С триггером следующим образом:

PS The option Атрибут используется для захвата параметра, который может быть выбран пользователем для определенного шага оформления заказа. Например, на этапе оформления платежа пользователь может выбрать использование наличных или кредитной корзины. Опция checkout предназначена для захвата этого значения.

Просто не используйте eventCallback. Нет необходимости использовать его, если он вам не нужен в вашей логике.

Проверьте это для всех необходимых переменных: https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce

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