Я постараюсь быть максимально точным. Прежде всего, это мой 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" для первой комнаты:
и для второй комнаты:
А это количество Quantity в GA:
Почему в 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",
}
}];Я также подумал о том, чтобы просто разделить количество ночей на длину цикла (myVar [i] [numberOfRooms] / myVar.length), но затем в этом последнем случае он назначит количество 1,5, которое Google округляет до 2. , поэтому вариант не подходит.
@AnkDasCo Спасибо за ответ, выше я только что опубликовал обновленную информацию.
Код показывает, что вы подсчитываете общее количество комнат, забронированных за одну транзакцию. Как 3 комнаты и 2 ночи дает нам 6 = всего. Ваш запрос - вы хотите, чтобы количество забронированных номеров увеличилось до 3, даже если это на 2 ночи. Я бы порекомендовал выбрать другой маршрут, использовать variants для его сегментации. Что произойдет, если я забронирую 1-й номер на 3 ночи и 2-й номер на 4 ночи. Что будет отображаться в quantities в соответствии с вашими требованиями?





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