События push-сообщений уровня данных не отправляются в Google

У меня странная проблема с событиями уровня данных. Я нажимаю объект события

{ 
    'event': 'item',
    'item_name' : 'generic user',
    'item_value' : 'commenced'
}

в слой данных, и я вижу, что он правильно отправлен в Google. Параметры отображаются в вызове analytics.js на вкладке сети примерно так:

https://www.google-analytics.com/collect?...&ec=generic%20user%20%20shop&ea=checkout&el=commenced...

Я предполагаю, что добавление «кассы» и «магазин» каким-то образом определено в диспетчере тегов и не актуально? Затем я нажимаю другой тип объекта события

{ 
    'event': 'item',
    'item_name' : 'generic user',
    'item_description' : 'bermuda shorts',
    'item_size' : 'medium'
}

и снова отправлено правильно.

https://www.google-analytics.com/collect?...&ec=generic%20user%20%20shop&ea=medium&el=bermuda%20shorts...

Когда я затем пытаюсь подтолкнуть другой объект исходного типа

{ 
    'event': 'item',
    'item_name' : 'generic user',
    'item_value' : 'next'
}

вместо отправки нового объекта в Google повторно отправляется предыдущий объект.

https://www.google-analytics.com/collect?...&ec=generic%20user%20%20shop&ea=medium&el=bermuda%20shorts...

Если я не отправлю объект нового типа между ними, я могу отправить столько объектов исходного типа, сколько захочу, и они будут отправлены правильно.

Используя DataSlayer, добавляются правильные события. Если я проверю объект dataLayer, я увижу правильные события в массиве. Глядя в GA на события в реальном времени, события, отправленные analytics.js, отображаются должным образом, но не отправленные события в dataLayer не отображаются.

Кто-нибудь знает, что может происходить?


person Mike    schedule 22.03.2018    source источник
comment
Можете ли вы добавить конфигурацию GTM? У вас должен быть тег отслеживания событий по умолчанию, который срабатывает на элементе. С другой стороны, как вы смотрите на эти хиты? Я советую вам использовать Chrome-расширение GA Debug. Надеюсь, это поможет ...   -  person Marco    schedule 22.03.2018


Ответы (1)


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

Вы можете проверить состояние dataLayer на каждом dataLayer.push, используя предварительный просмотр GTM на вкладке DataLayer. введите описание изображения здесь

Пример:

Первый толчок

{ 
  'event': 'item',
  'item_name' : 'generic user',
  'item_value' : 'commenced'
}

Состояние DataLayer:

{ 
  'event': 'item',
  'item_name' : 'generic user',
  'item_value' : 'commenced'
}

Второй толчок

{ 
  'event': 'item',
  'item_name' : 'generic user',
  'item_description' : 'bermuda shorts',
  'item_size' : 'medium'
}

Состояние DataLayer:

{ 
  'event': 'item', // overwrited
  'item_name' : 'generic user', // overwrited
  'item_description' : 'bermuda shorts', // added
  'item_size' : 'medium', // added
  'item_value' : 'commenced' //still available from first push
}

Третий толчок уровня данных

{ 
  'event': 'item',
  'item_name' : 'generic user',
  'item_value' : 'next'
}

Состояние DataLayer:

{ 
  'event': 'item', // overwrited
  'item_name' : 'generic user', // overwrited
  'item_description' : 'bermuda shorts', // available from previous push
  'item_size' : 'medium', // available from previous push
  'item_value' : 'next' //overwrited
}

Чтобы решить эту проблему, вы должны очистить уровень данных, вставив переменные, которые вы не хотите, как неопределенные.

Пример третьего нажатия

{ 
  'event': 'item',
  'item_name' : 'generic user',
  'item_description' : undefined,
  'item_size' : undefined,
  'item_value' : 'next'
}
person Ayyoub Marroun    schedule 22.03.2018
comment
Спасибо, установка для неиспользуемых значений undefined устраняет проблему. Кажется, что даже несмотря на то, что массив dataLayer содержит каждый объект отдельно, существует отдельное состояние dataLayer, которое объединяет все предыдущие свойства объекта. - person Mike; 23.03.2018