Диспетчер тегов Google: "Количество" при покупке в Ecommerce Measurement: странное поведение с циклом for

Я постараюсь быть максимально точным. Прежде всего, это мой dataLayer:

var prods = [];
for (var i = 0; i < myVar.length; i++) {
  prods.push({
    'name': myVar[i][roomRateCode],
    'id': myVar[i][roomCode],
    'price': myVar[i][roomTotal] / myVar[i][numberOfNights],
    'category': myVar[i][rateCode],
    'quantity': myVar[i][numberOfNights],
  });

  window.dataLayer = window.dataLayer || [];
  dataLayer.push({
    'event': 'reservationCompleted',  
    'ecommerce': {
      'currencyCode': myVar[i][currency],
      'purchase': {
        'actionField': {
          'id': myVar[i][reservationNumber],
          'affiliation': myVar[i][hotelName],
          'revenue': myVar[i][totalRevenue],
          'tax': myVar[i][taxes],
          },
        'products': prods
      }
    }
  });
}

Считайте, это гостиница. Поэтому я хочу отслеживать номера, тарифы, количество ночей и т. д. В методе покупки. Вся информация об электронной торговле хранится в объекте javascript (myVar).

Причина, по которой я установил это таким образом, заключается в том, что пользователи могут бронировать несколько комнат в одном процессе бронирования; при этом система сгенерирует столько объектов maVar, сколько забронировано комнат. Итак, в основном, с помощью вышеупомянутого цикла for я сначала подсчитываю, сколько myVar есть на странице, и сохраняю все значения пар в массиве "prods", прежде чем вставлять в dataLayer.

Как видите, я использую команду «Количество» для подсчета количества забронированных ночей. Так что бронь на номер на 2 ночи отправляю 2. Все хорошо, когда дело доходит до бронирования одной комнаты, однако я замечаю кое-что странное, когда дело доходит до бронирования нескольких комнат. Короче говоря, значение Quantity удваивается в консоли Google Analytics, хотя даже при просмотре в режиме предварительного просмотра GTM все выглядит нормально.

Вот тест, который я только что сделал. Бронь на 2 номера по 2 ночи каждый.

Вот несколько скриншотов:

Это событие обжига "bookingCompleted" для первой комнаты: Диспетчер тегов Google: &quot;Количество&quot; при покупке в Ecommerce Measurement: странное поведение с циклом for и для второй комнаты: Диспетчер тегов Google: &quot;Количество&quot; при покупке в Ecommerce Measurement: странное поведение с циклом for А это количество Quantity в GA: Диспетчер тегов Google: &quot;Количество&quot; при покупке в Ecommerce Measurement: странное поведение с циклом for Почему в GA у меня количество = 4, а не 2?

--------------------[ОБНОВИТЬ]--------------------------

Сделал тест на бронирование 2х комнат на 3 ночи. Результаты на самом деле такие же, поэтому в GA отображается 6 ночей, а не 3. Вот объект myVar, мне пришлось немного подделать его, чтобы скрыть конфиденциальные данные.

var myVar = [{
  "numberOfRooms": 1,
  "rooms": {
    "arrivalDate": "2018-10-24",
    "departureDate": "2018-10-27",
    "category": "WW/My Hotel/MyHotelCode",
    "chainCode": "WW",
    "childAges": null,
    "hotelCode": "HADXBBON",
    "hotelName": "My Hotel",
    "hotelStars": 5,
    "hotelCurrency": "AED",
    "leadDays": "63",
    "numberOfNights": 3,
    "numberOfAdults": 1,
    "numberOfChildren": 0,
    "rateDescription": "Flexible Rate",
    "rateCode": "DR",
    "rateCurrency": "AED",
    "ratePerNight": "835.44",
    "rateType": "Flexible Rate",
    "reservationNumber": "125731076",
    "roomCode": "B1K",
    "roomDescription": "My First Room",
    "roomRateCode": "IB1KDR",
    "roomTotal": "2506.32",
    "totalTaxes": "509.32",
  }
}, {
  "numberOfRooms": 1,
  "rooms": {
    "arrivalDate": "2018-10-24",
    "departureDate": "2018-10-27",
    "category": "WW/My Hotel/MyHotelCode",
    "chainCode": "WW",
    "childAges": null,
    "hotelCode": "HADXBBON",
    "hotelName": "My Hotel",
    "hotelStars": 5,
    "hotelCurrency": "AED",
    "leadDays": "63",
    "numberOfNights": 3,
    "numberOfAdults": 1,
    "numberOfChildren": 0,
    "rateDescription": "Flexible Rate",
    "rateCode": "DR",
    "rateCurrency": "AED",
    "ratePerNight": "835.44",
    "rateType": "Flexible Rate",
    "reservationNumber": "125731077",
    "roomCode": "A2T",
    "roomDescription": "My Second Room",
    "roomRateCode": "IA2TDR",
    "roomTotal": "2965.70",
    "totalTaxes": "593.70",
  }
}];

Диспетчер тегов Google: &quot;Количество&quot; при покупке в Ecommerce Measurement: странное поведение с циклом for

Диспетчер тегов Google: &quot;Количество&quot; при покупке в Ecommerce Measurement: странное поведение с циклом for

Диспетчер тегов Google: &quot;Количество&quot; при покупке в Ecommerce Measurement: странное поведение с циклом for

Я также подумал о том, чтобы просто разделить количество ночей на длину цикла (myVar [i] [numberOfRooms] / myVar.length), но затем в этом последнем случае он назначит количество 1,5, которое Google округляет до 2. , поэтому вариант не подходит.

вы можете поделиться структурой myVar? также можете поделиться, что будет, если вы остановитесь на 3 ночи 2 комнаты?

AnkDasCo 22.08.2018 09:41

@AnkDasCo Спасибо за ответ, выше я только что опубликовал обновленную информацию.

Alessandro Crotti 22.08.2018 16:06

Код показывает, что вы подсчитываете общее количество комнат, забронированных за одну транзакцию. Как 3 комнаты и 2 ночи дает нам 6 = всего. Ваш запрос - вы хотите, чтобы количество забронированных номеров увеличилось до 3, даже если это на 2 ночи. Я бы порекомендовал выбрать другой маршрут, использовать variants для его сегментации. Что произойдет, если я забронирую 1-й номер на 3 ночи и 2-й номер на 4 ночи. Что будет отображаться в quantities в соответствии с вашими требованиями?

AnkDasCo 22.08.2018 16:37
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
164
0

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