GTM datalayer.push иногда отображается (не установлен) в отчете GA - PullRequest
0 голосов
/ 05 июля 2019

- 2019/07/08 Редактировать: Добавить переменную события, настройку триггера -

  1. Я установил переменную DataLayer с именем {{SP_sale_event}}, чтобы получить «my_event», и установил в версию2.
  2. Триггер - это когда страница переходит на страницу «Оформить заказ», конец потока покупок, страница «Спасибо» AKA.
  3. Установите Универсальный тег GA, установите для Label значение {{SP_sale_event}}.

- Исходное сообщение -

Я установил некоторый слой данных на странице оформления заказа, например:

<script type="text/javascript">
dataLayer.push
({
  'event': 'checkout',
  'ecommerce': {
    'purchase':{
      'actionField':
        {
          'id': "<%=order.ID%>",
          "affiliation": "Online Store",
          "revenue": "<%=order.price%>"
        }
      }
    }
});

$(window).load(function()
{
/**
* checkout data for GTM
*/
window.dataLayer = window.dataLayer || []
dataLayer.push
({
    "transactionId":"<%=order.ID%>",
    "transactionAffiliation":"My Online store",
    "transactionTotal":"<%=order.price%>",
    "transactionTax":"0",
    "transactionShipping":"0",
    "transactionProducts":
    [
    //some code about order detail ...
    ]
});
});
</script>

<script type="text/javascript">
  dataLayer.push({
  'my_event':'Sale event, purchased in <%=order.date%>, price: <%=order.price%>, orderID: <%=order.ID%>, member: <%=(order.isNew)?"New register":"old member"%>』'
  });
</script>

И установил тегна GTM для захвата метки «my_event».

Однако в отчете о событиях GA большая часть событий не сопровождается действительной меткой, а вместо этого (не установлена).

Например, яполучить 23 «my_event» в отчете GA, но есть только 3 события с меткой Событие продажи, купленное в ... , остальные 20 событий собраны в (не заданную) группу.

Так что мои настройки когда-то работали, но в большинстве случаев - нет.

Как мне отследить и исправить это?

1 Ответ

0 голосов
/ 08 июля 2019

Проблема в том, что когда вы помещаете соответствующие данные (my_event) в dataLayer, вы не добавляете к нему фактическое событие, которое может вызвать запуск нужного тега, и отправляете ваши данные.Скорее всего, случится так, что если my_event будет помещен в dataLayer до запуска вашего тега, он будет отправлен.Таким образом, для этого может быть несколько решений, в зависимости от желаемого результата.

Вы можете объединить, например, два ваших вызова dataLayer, особенно, если они связаны, и данные доступны на этом этапе:

dataLayer.push
({
  'event': 'checkout',
  'ecommerce': {
    'purchase':{
      'actionField':
        {
          'id': "<%=order.ID%>",
          "affiliation": "Online Store",
          "revenue": "<%=order.price%>"
        }
      }
    },
  'my_event':'Sale event, purchased in <%=order.date%>, price: <%=order.price%>, orderID: <%=order.ID%>, member: <%=(order.isNew)?"New register":"old member"%>』'
});

Другим решением было бы указать событие с помощью переменной my_event и установить триггер срабатывания в соответствии с этим именем события, например:

dataLayer.push({
  'event':'send_my_event',
  'my_event':'Sale event, purchased in <%=order.date%>, price: <%=order.price%>, orderID: <%=order.ID%>, member: <%=(order.isNew)?"New register":"old member"%>』'
  });

Может также работать, чтобы оставить ваш кодкак есть и отправьте данные о событии Window Loaded, где все остальные сценарии готовы, но это может быть не так надежно, как версии, где вы явно отправляете данные и инициируете событие вместе.

...