приклад аудиту та налаштування ecommerce ga4 для квиткового сервісу

Кейс: аудит та налаштування ecommerce Google Analytics 4 (GA4) для квиткового сервісу

В цій статті ми зафіксуємо аудит модуля ecommerce Google Analytics 4, який ми провели для одного з наших клієнтів. Задача цієї статті – показати приклад та об’єми робіт по аудиту та налаштуванню GA 4 для самописних сервісів та інтернет-магазинів.

Навіщо взагалі відслідковувати додаткові дані в Google Analytics?

Основна задача відслідковування цих даних, це подальше використовування цих даних для аналізу рекламних каналів які фіксуються в Google Analytics. Наприклад для порівняння ефективності рекламних каналів Google Ads та реклами в Інстаграм. Налаштування модуля ecommerce (електронної торгівлі) в Google Analytics 4 дозволяє нам не просто порівнювати ціну ліда в рамках рекламних каналів, а збирати інформацію по дохідності цих каналів з ціллю подальшого порівняння.

Що саме є результатом аудиту і як це виглядає

Аудит конверсій та технічне завдання по налаштуванню модуля ecommerce Google Analytics 4 формується нами у вигляді документа Google.

Сам документ дублюємо нижче:

Вступна інформація
В цьому документі фіксуємо інформацію, яка стосується аналізу поточного стану роботи веб-аналітики. Зокрема, це дані про конверсії. Також фіксуємо технічні завдання з додаткового налаштування веб-аналітики конверсій.


Інформація про проект
Сайт – [сайт проекту]


Технології розробки сайту
Сайт розроблений та працює за допомогою наступних технологій.

Frontend: React.js, Next.js
Backend: FastAPI (Python 3.11)
Database: Postgresql

API type: REST
Cloud: DigitalOcean Apps, Spaces(S3)

Система управлением версий: GitHub
CI/CD: GitHub actions
Unit tests (BE): pytest

Контейнеризация Docker: docker compose

Інструменти веб-аналітики
ID ресурсу системи веб-аналітики Google Analytics 4: 398895458
ID потоку даних веб-аналітики: 1265998177
Ідентифікатор потоку даних: G-FCS3V6HH2L

ID контейнера системи керування програмними тегами Google Tag Manager: GTM-HHLSGH5B


Аналіз коду веб-аналітики


Розміщення кодів систем веб-аналітики

Основний та додатковий фрагменти коду системи керування тегами Google розміщені в цілому коректно. Код містить ряд кастомізацій, додаткових налаштувань. Також на сайті розташовані додаткові коди для системи веб-аналітики Google Analytics 4, а також додатковий код для DataLayer. Також в блоці розміщені ще група програмних тегів, блоків кодів різних систем. Частина з них розташована не зовсім коректно.

Аналіз систем веб-аналітики
Загальний стан Google Tag Manager
Контейнер системи керування програмними тегами Google Tag Manager в цілому налаштований коректно.

Відстеження цільових дій
В системі Google Tag Manager налаштовано відстеження корисних дій користувачів сайту.
Також налаштована передача інформації про ці події в систему Google Analytics 4.

Відстеження конверсій
В системі Google Tag Manager і також в програмному коді сайта виконані певні налаштування для відстеження конверсій, продажів квитків.

Але як буде показано далі в цьому документі відстеження відбувається некоректно.

Тестування конверсій
Приводом для проведення аналізу та доналаштування веб-аналітики було припущення, що в системі Google Analytics 4 коректно фіксуються конверсії, реєстрації покупки квитків, які придбані з онлайн-оплатою відразу після бронювання.

І також фіксуються бронювання квитків з оплатою водієві, але не фіксується сума таких конверсій.

Проведений аналіз показує, що це не відповідає дійсності, фіксація конверсій відбувається з значно більш ширшими помилками.

Тестове придбання квитків
Для тестування фактичної роботи сайту, системи Google Tag Manager та системи Google Analytics 4 ми виконуємо реєстрацію квитків.

Для таких реєстрацій ми вказуємо наступні параметри.
Ім’я: ТЕСТ
Прізвище: ТЕСТОВИЧ
Телефон: номер з повторенням цифр.
Email: [email protected]

Результати тестування сайту
2024-05-21 було проведено серія тестових покупок білетів. При оформленні квитків був обраний з оплатою водію.

Ось посилання на файли декількох придбаних квитків.

Конверсії успішно зафіксовані в системі веб-аналітики.

Але загальна сума всіх конверсій відповідає останній конверсії:

Аналіз статистики конверсій
Аналіз таблиці продажів
Було проведено аналіз поточної версії файлу статистики замовлень.

Його результати представлені в документі – [лінк на файл]

Статистика за квітень та частину травня 2024 року показує, що приблизно оплачують онлайн шил 15-18% покупців за кількістю, що забезпечує лише близько 12-13% загальної вартості проданих білетів.

Відповідно, близько 82-85% покупців віддають перевагу оплаті на місці. Це забезпечує близько 86% відсотків загальної вартості придбаних або заброньованих білетів.
Аналіз звітів Google Analytics 4
Аналіз звітів електронної комерції показує, що дані про продажі не фіксуються коректно.

Ось приклади фрагментів консолідованого звіту – [перелік куплених квитків в процесі тестування].

Але певна інформація все ж таки фіксується:

Порівняння таблиці та звіту
Також ми провели порівняльний аналіз даних таблиці продажу білетів та звіту в системі веб-аналітики.

Був обраний спільний період з 2024-04-01 по 2024-05-21 включно, тобто з 1 квітня по 21 травня 2024 року.

Згідно таблиці кількість продажів за квітень становить загалом 223, з них 35 з оплатою онлайн й ще 188 з оплатою водієві. Сума продажів за квітень становить 636 553 гривень, з них 86 795 гривень – це оплата онлайн, а 549 758 оплата на місці.
Відповідно згідно звіту веб-аналітики загальна кількість продажів становить 237, а загальна сума продажів становить 468 489 гривень.

Аналогічно, за період з 1 по 21 травня загальна кількість продажів згідно таблиці становить 210, з них 37 це продажі з оплатою онлайн, а 173 – з оплатою водієві. Сума продажів за цій період сукупно становить 590 055 гривень, з них 78 709 гривень – це онлайн-оплата, а 511 346 гривень – це запланована оплата водіям.

А згідно згідно веб-аналітиці з 1 по 21 травня загальна кількість продажів 183, а загальна сума продажів становить 143 177 гривень.

Розбіжності досить суттєві. Деталі треба ще з’ясовувати, враховувати різні фактори та перевіряти різні припущення.

Систематизація відстеження конверсій
Загальна інформація
Оскільки проведений аналіз виявив, що відстеження конверсій відбувається з суттєвими помилками, є сенс не просто виявити та локально усунути локальні помилки, але й також провести більш комплексну систематизацію відстеження подій електронної комерції на сайті.


Квитки як товари
В рамках даного проекту окремими товарами доцільно вважати квитки, які відрізняються саме містом відправки та містом призначення.

Це дозволить в майбутньому будувати інформативні звіти по комбінації міст відправки та прибуття.


Квитки як пари товарів
Також трохи специфічним, але також цікавим варіантом може бути фіксація перегляду чи придбання квитка як комбінації з двох товарів – міста відправки та міста прибуття.

В такому разі в майбутньому можна буде формувати та використовувати більш зручні та інформативні звіти з економічної популярності окремих міст.

Категорії товарів
Як категорії верхнього рівня ми можемо фіксувати країну.

Ієрархія категорій товарів
Також потенційно можна розглянути варіант чотирьох рівнів вкладеності каталогу товарів.

Перший рівень – це країна відправки.
Другий – це країна прибуття.
Третій – це місто відправки.
Й четвертий – це місце прибуття.

Така структура також буде дозволяти створювати досить інформативні звіти по містах та країнах.

Бренди
Назву перевізника ми можемо фіксувати в системі веб-аналітики як бренд товару. Це дозволить в майбутньому формувати звіти по різним перевізникам.

Параметри товарів
Іншу інформацію з товарів ми фіксуємо в системі веб-аналітики як параметри придбаного товару.

Зокрема, дуже важливим параметром є дата та час відправки придбаного квитка.
Також параметрами покупки є ім’я пасажира та його номер телефону.

Параметри транзакцій
Як параметри транзакції будуть автоматично фіксуватися дата та час проведення покупки.
Також дуже важливим параметром транзакцій є обраний формат оплати.

Також можна генерувати на рівні двигуна сайту та фіксувати в системі аналітики унікальні номери транзакцій.

Цінність конверсій
Як цінність конверсій на даному етапі налаштування веб-аналітики можна фіксувати сумарну вартість придбаних або заброньованих квитків.

Відповідно, цінність продажу товарів – це та ціна, яка була зафіксована з урахуванням можливих знижок та пільг на певних напрямках перевезення та у певних перевізників.

Відстеження конверсій
Основною подією, відстеження якої треба обов’язково налаштувати, є виконана конверсія, придбання квитка або декількох квитків.

Відстеження переглядів товарів
Крім конверсій, продажів товарів, ми можемо також фіксувати перегляд товарів.

Зокрема, коли користувач обирає в формі місто відправки та місто прибуття – ми можемо фіксувати це як перегляд товарів.

Відстеження додавання товарів в корзину
Натискання на кнопку “Купити” ми можемо фіксувати як додавання в корзину.

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

Відстеження етапів покупки
Ми можемо фіксувати досягнення користувачами окремих етапів оформлення покупок.

Зокрема, є перший етап вказування даних, потім етап вибору параметрів оплати, потім етап оплати за допомогою еквайрингу й нарешті фінальний етап підтвердження покупки та передачи квитка в електронному вигляді.

Відстеження цих етапів дозволить в майбутньому контролювати, що користувачі коректно долають кожен з етапів й успішно доходять до фінальної сторінки отримання електронної версії квитка.

Тестування показує, що певні проблеми з цим є. Але наскільки часто це трапляється у реальних користувачів, може показати лише налаштування відстеження, накопичення й подальший аналіз отриманих даних.

Відстеження відмов
Коефіцієнт реального прибуття на посадку та оплати водієві може бути значно нижчим за одиницю. Також він може суттєво відрізняти для різних міст, для різних каналів просування й також для різних періодів часу.

Для того, щоб контролювати цей параметр, а також для того, щоб видаляти відверто некоректні транзакції, було б добре налаштувати облік відмов.

Це можна реалізувати як повернення товару. Але це потребує налаштувань вже не тільки на сайті, але й також в певній, хай й дуже простій, але CRM-системі обробки замовлень.

По суті це перший крок до виходу на наскрізну аналітику маркетингу та продажів.

Відстеження прибутку
Й другий крок для виходу на наскрізну аналітику – це облік не просто вартості продажів, а саме валового прибутку від конкретних продажів для компанії.

Це дозволить відстежувати та оптимізувати ROI сегментів платного просування в розрізі різних рекламних кампаній, груп, об’яв, аудиторій та інших параметрів.


Технічні завдання підготовки Data Layer
Загальна інформація
В цьому розділі ми фіксуємо технічні завдання, які треба реалізувати на стороні двигуна сайта.

Вони стосуються налаштування спеціальної змінної Data Layer мови програмування JavaScript.

На різних сторінках та при різних умовах треба буде вносити в цю зміну значення різних параметрів. Ці значення треба брати в коді двигуна сайту.

Далі на сторінки параметри, які треба замінити на фактичні значення, позначені в трикутних дужках (<>). Трикутні дужки та внутрішній зміст треба замінити на відповідні фактичні значення.

Увага! Дуже важливо зберігати пари прямокутних подвійних лапок на початку та вкінці значення (“”), якщо це вказано в шаблоні кода та прикладі.

Існуючий код
В певні участки коду сайту раніше були додані певні блоки коди, схожі на представлені нижче.

Вони також були призначені для відслідковування продажів. Але як показано вище в цьому документі, вони містять дуже суттєві обмеження та навіть помилки.

Тому прохання ці блоки кода та місце іх розташування – зафіксувати. Взагалі прохання зберегти поточну версію сайта до внесення будь-яких змін.

Але далі, в процесі додавання представлених нижче кодів, прохання вже існуючий код видалити або дуже обережно оновити його так, щоб він повністю відповідав представленому нижче.

Перегляд квитків за парою міст
Умови розміщення та спрацьовування коду:
Цей код має спрацьовувати при завантаженні сторінки, на якій відображаються наявні або відсутні рейси для вибраної пари міст відправлення та прибуття.
Тобто в процесі завантаження сторінки варіантів рейсів.

Шаблон сторінок:
Адреса цих сторінок починається з [URL сайту] й далі містить назви та коди міст відправки та прибуття.

Код, який треба розмістити та ініціювати виконання:

gtag("event", "view_item", {
currency: "UAH",
value: 10,
items: [
{
item_id: "<Фрагмент адреси сторінки>",
item_name: "<Назва міста відправлення - Назва міста прибуття>",
affiliation: "[назва сервісу]",
index: 0,
item_brand: "",
item_category: "<Країна відправлення>",
item_category2: "<Країна прибуття>",
item_category3: "<Місто відправлення>",
item_category4: "<Місто прибуття>",
price: 10,
quantity: 1
}
]
});

Приклад такої сторінки – [URL сайту]

Приклад відповідного заповнення значень параметрів:


gtag("event", "view_item", {
currency: "UAH",
value: 10,
items: [
{
item_id: "kharkiv-5054966-wroclaw-5052869",
item_name: "Харьків - Вроцлав",
affiliation: "[назва сервісу]",
index: 0,
item_brand: "",
item_category: "Україна",
item_category2: "Польша",
item_category3: "Харьків",
item_category4: "Вроцлав",
price: 10,
quantity: 1
}
]
});

Вибір конкретного квитку

Умови розміщення та спрацьовування коду:
Цей код має спрацьовувати після натискання на кнопку “Обрати квиток” після обрання дати та конкретного рейса на цю дату.

Шаблон сторінок:
Ті ж самі сторінки, що й в попередньому пункті.

Код, який треба ініціювати виконання:

gtag("event", "add_to_cart", {
currency: "UAH",
value: <Вартість обраного квитку>,
items: [
{
item_id: "<Фрагмент адреси сторінки>",
item_name: "<Назва міста відправлення - Назва міста прибуття>",
affiliation: "[назва сервісу]",
index: 0,
item_brand: "<Конкретний перевізник обраного рейсу>",
item_category: "<Країна відправлення>",
item_category2: "<Країна прибуття>",
item_category3: "<Місто відправлення>",
item_category4: "<Місто прибуття>",
item_variant: "<Дата та час відправлення та прибуття в структурованому форматі>",
price: <Вартість обраного квитку>,
quantity: 1
}
]
});

Приклад такої сторінки:
Той же самий, що й в попередньому пункті.

Приклад відповідного заповнення значень параметрів:

gtag("event", "add_to_cart", {
currency: "UAH",
value: 2850,
items: [
{
item_id: "kharkiv-5054966-wroclaw-5052869",
item_name: "Харьків - Вроцлав",
affiliation: "[назва сервісу]",
index: 0,
item_brand: "СТЕЦИК Т.В. ФОП",
item_category: "Україна",
item_category2: "Польша",
item_category3: "Харьків",
item_category4: "Вроцлав",
item_variant: "2024-05-24 21:00 - 2024-05-26 07:35",
price: 2850,
quantity: 1
}
]
});

Початок оформлення квитка

Умови розміщення та спрацьовування коду:
Цей код має спрацьовувати вже саме в процесі відкриття сторінки “Оформлення квитка”.

Шаблон сторінок:
Адреса цих сторінок починається з [URL сайту] й далі містить хеш-код обраного рейсу.

Код, який треба ініціювати виконання:

gtag("event", "view_cart", {
currency: "UAH",
value: <Вартість обраного квитку>,
items: [
{
item_id: "<Фрагмент адреси сторінки>",
item_name: "<Назва міста відправлення - Назва міста прибуття>",
affiliation: "[назва сервісу]",
index: 0,
item_brand: "<Конкретний перевізник обраного рейсу>",
item_category: "<Країна відправлення>",
item_category2: "<Країна прибуття>",
item_category3: "<Місто відправлення>",
item_category4: "<Місто прибуття>",
item_variant: "<Дата та час відправлення та прибуття в структурованому форматі>",
price: <Вартість обраного квитку>,
quantity: 1
}
]
});

Приклад такої сторінки – [URL сайту]

Приклад відповідного заповнення значень параметрів:

gtag("event", "view_cart", {
currency: "UAH",
value: 2850,
items: [
{
item_id: "kharkiv-5054966-wroclaw-5052869",
item_name: "Харьків - Вроцлав",
affiliation: “[назва сервісу]",
index: 0,
item_brand: "СТЕЦИК Т.В. ФОП",
item_category: "Україна",
item_category2: "Польша",
item_category3: "Харьків",
item_category4: "Вроцлав",
item_variant: "2024-05-24 21:00 - 2024-05-26 07:35",
price: 2850,
quantity: 1
}
]
});

Додавання пасажира

Умови розміщення та спрацьовування коду:
Цей код має спрацьовувати на сторінці “Оформлення квитка” після кожного натискання на кнопку “Додати пасажира”.
Увага! Саме після кожного натискання.

Шаблон сторінок:
Та ж сама сторінка, що й в попередньому пункті.

Код, який треба ініціювати виконання:

gtag("event", "add_to_cart", {
currency: "UAH",
value: <Вартість попереднього квитка з урахуванням знижки>,
items: [
{
item_id: "<Фрагмент адреси сторінки>",
item_name: "<Назва міста відправлення - Назва міста прибуття>",
affiliation: "[назва сервісу]",
coupon: "<Назва знижки та детали>",
discount: <Розмір знижки без знаку мінус>,
index: <Номер попереднього квитка, починаючи з одиниці>,
item_brand: "<Конкретний перевізник обраного рейсу>",
item_category: "<Країна відправлення>",
item_category2: "<Країна прибуття>",
item_category3: "<Місто відправлення>",
item_category4: "<Місто прибуття>",
item_variant: "<Дата та час відправлення та прибуття в структурованому форматі>",
price: <Вартість обраного квитку>,
quantity: 1
}
]
});

Приклад такої сторінки:
Той же самий, що й в попередньому пункті.

Приклад відповідного заповнення значень параметрів:

gtag("event", "view_cart", {
currency: "UAH",
value: 1425,
items: [
{
item_id: "kharkiv-5054966-wroclaw-5052869",
item_name: "Харьків - Вроцлав",
affiliation: "[назва сервісу]",
coupon: "За віком: до 6 р. -50% - 2020-02-26",
discount: 1425,
index: 1,
item_brand: "СТЕЦИК Т.В. ФОП",
item_category: "Україна",
item_category2: "Польша",
item_category3: "Харьків",
item_category4: "Вроцлав",
item_variant: "2024-05-24 21:00 - 2024-05-26 07:35 І",
price: 1425,
quantity: 1
}
]
});

Перехід до параметрів оплати

Умови розміщення та спрацьовування коду:
Цей код має спрацьовувати на сторінці “Оформлення квитка” після кожного натискання на кнопку “Далі” саме в разі, коли всі дані заповнені і далі буде перехід на сторінку оформлення параметрів оплати.
Увага! Якщо якісь дані не заповнені, цей код запускати не треба.

Шаблон сторінок:
Та ж сама сторінка, що й в попередньому пункті.

Код, який треба ініціювати виконання:

gtag("event", "begin_checkout", {
currency: "UAH",
value: <Загальна вартість всіх квитків>,
items: [
{
item_id: "<Фрагмент адреси сторінки>",
item_name: "<Назва міста відправлення - Назва міста прибуття>",
affiliation: "[назва сервісу]",
coupon: "<Назва знижки та детали першого квитка, пусто, якщо немає>",
discount: <Розмір знижки без знаку мінус першого квитка, 0, якщо немає>,
index: 0,
item_brand: "<Конкретний перевізник обраного рейсу>",
item_category: "<Країна відправлення>",
item_category2: "<Країна прибуття>",
item_category3: "<Місто відправлення>",
item_category4: "<Місто прибуття>",
item_variant: "<Дата та час відправлення та прибуття в структурованому форматі прізвище та ім’я першого пасажира>",
price: <Вартість першого квитку>,
quantity: 1
},
{
item_id: "<Фрагмент адреси сторінки>",
item_name: "<Назва міста відправлення - Назва міста прибуття>",
affiliation: "[назва сервісу]",
coupon: "<Назва знижки та детали другогоквитка, пусто, якщо немає>",
discount: <Розмір знижки без знаку мінус другого квитка, 0, якщо немає>,
index: 1,
item_brand: "<Конкретний перевізник обраного рейсу>",
item_category: "<Країна відправлення>",
item_category2: "<Країна прибуття>",
item_category3: "<Місто відправлення>",
item_category4: "<Місто прибуття>",
item_variant: "<Дата та час відправлення та прибуття в структурованому форматі прізвище та ім’я другого пасажира>",
  price: <Вартість другого квитку>,
  quantity: 1
},

<….>
]
});

Приклад такої сторінки:
Той же самий, що й в попередньому пункті.

Приклад відповідного заповнення значень параметрів:

gtag("event", "begin_checkout", {
currency: "UAH",
value: 3705,
items: [
{
item_id: "kharkiv-5054966-wroclaw-5052869",
item_name: "Харьків - Вроцлав",
affiliation: "[назва сервісу]",
coupon: "За віком: до 6 р. -50% - 2020-02-26",
discount: 1425,
index: 1,
item_brand: "СТЕЦИК Т.В. ФОП",
item_category: "Україна",
item_category2: "Польша",
item_category3: "Харьків",
item_category4: "Вроцлав",
item_variant: "2024-05-24 21:00 - 2024-05-26 07:35 ТЕСТ ТЕСТОВИЧ",
price: 1425,
quantity: 1
},
{
item_id: "kharkiv-5054966-wroclaw-5052869",
item_name: "Харьків - Вроцлав",
affiliation: "[назва сервісу]",
coupon: "За віком: до 13 р. -20% - 2014-05-17",
discount: 570,
index: 1,
item_brand: "СТЕЦИК Т.В. ФОП",
item_category: "Україна",
item_category2: "Польша",
item_category3: "Харьків",
item_category4: "Вроцлав",
item_variant: "2024-05-24 21:00 - 2024-05-26 07:35 ТЕСТ 2 ТЕСТОВИЧ 2",
price: 2280,
quantity: 1
}
]
});

Вибрана оплата при посадці

Умови розміщення та спрацьовування коду:
Цей код має спрацьовувати на другому етапі “Оформлення квитка”, а саме після натиску на кнопку “Оплата при посадці”.


Увага! Даний код треба виконувати тільки якщо виконані усі перевірки, зокрема ввімкнена галочка “Погоджуюсь з …”

Шаблон сторінок:
Адреса цієї сторінки відповідає шаблону [URL сайту].

Код, який треба ініціювати виконання:


gtag("event", "add_payment_info", {
currency: "UAH",
value: <Загальна вартість всіх квитків>,
payment_type: "Cash (to the bus driver)",
items: [
{
item_id: "<Фрагмент адреси сторінки>",
item_name: "<Назва міста відправлення - Назва міста прибуття>",
affiliation: "[назва сервісу]",
coupon: "<Назва знижки та детали першого квитка, пусто, якщо немає>",
discount: <Розмір знижки без знаку мінус першого квитка, 0, якщо немає>,
index: 0,
item_brand: "<Конкретний перевізник обраного рейсу>",
item_category: "<Країна відправлення>",
item_category2: "<Країна прибуття>",
item_category3: "<Місто відправлення>",
item_category4: "<Місто прибуття>",
item_variant: "<Дата та час відправлення та прибуття в структурованому форматі прізвище та ім’я першого пасажира>",
price: <Вартість першого квитку>,
quantity: 1
},
{
item_id: "<Фрагмент адреси сторінки>",
item_name: "<Назва міста відправлення - Назва міста прибуття>",
affiliation: "[назва сервісу]",
coupon: "<Назва знижки та детали другогоквитка, пусто, якщо немає>",
discount: <Розмір знижки без знаку мінус другого квитка, 0, якщо немає>,
index: 1,
item_brand: "<Конкретний перевізник обраного рейсу>",
item_category: "<Країна відправлення>",
item_category2: "<Країна прибуття>",
item_category3: "<Місто відправлення>",
item_category4: "<Місто прибуття>",
item_variant: "<Дата та час відправлення та прибуття в структурованому форматі прізвище та ім’я другого пасажира>",
  price: <Вартість другого квитку>,
  quantity: 1
},

<….>
]
});

Приклад такої сторінки – [URL сторінки]

Приклад відповідного заповнення значень параметрів:

gtag("event", "add_payment_info", {
currency: "UAH",
value: 3705,
payment_type: "Cash (to the bus driver)",
items: [
{
item_id: "kharkiv-5054966-wroclaw-5052869",
item_name: "Харьків - Вроцлав",
affiliation: "[назва сервісу]",
coupon: "За віком: до 6 р. -50% - 2020-02-26",
discount: 1425,
index: 1,
item_brand: "СТЕЦИК Т.В. ФОП",
item_category: "Україна",
item_category2: "Польша",
item_category3: "Харьків",
item_category4: "Вроцлав",
item_variant: "2024-05-24 21:00 - 2024-05-26 07:35 ТЕСТ ТЕСТОВИЧ",
price: 1425,
quantity: 1
},
{
item_id: "kharkiv-5054966-wroclaw-5052869",
item_name: "Харьків - Вроцлав",
affiliation: "[назва сервісу]",
coupon: "За віком: до 13 р. -20% - 2014-05-17",
discount: 570,
index: 1,
item_brand: "СТЕЦИК Т.В. ФОП",
item_category: "Україна",
item_category2: "Польша",
item_category3: "Харьків",
item_category4: "Вроцлав",
item_variant: "2024-05-24 21:00 - 2024-05-26 07:35 ТЕСТ 2 ТЕСТОВИЧ 2",
price: 2280,
quantity: 1
}
]
});

Вибрана оплата онлайн

Умови розміщення та спрацьовування коду:
Цей код має спрацьовувати на другому етапі “Оформлення квитка”, а саме після натиску на кнопку “Оплата онлайн”.


Увага! Даний код треба виконувати тільки якщо виконані усі перевірки, зокрема ввімкнена галочка “Погоджуюсь з …”

Шаблон сторінок:
Такій самий, як й в попередньому пункті.

Код, який треба ініціювати виконання:

gtag("event", "add_payment_info", {
currency: "UAH",
value: <Загальна вартість всіх квитків>,
payment_type: "Credit Card (online)",
items: [
{
item_id: "<Фрагмент адреси сторінки>",
item_name: "<Назва міста відправлення - Назва міста прибуття>",
affiliation: "[назва сервісу]",
coupon: "<Назва знижки та детали першого квитка, пусто, якщо немає>",
discount: <Розмір знижки без знаку мінус першого квитка, 0, якщо немає>,
index: 0,
item_brand: "<Конкретний перевізник обраного рейсу>",
item_category: "<Країна відправлення>",
item_category2: "<Країна прибуття>",
item_category3: "<Місто відправлення>",
item_category4: "<Місто прибуття>",
item_variant: "<Дата та час відправлення та прибуття в структурованому форматі прізвище та ім’я першого пасажира>",
price: <Вартість першого квитку>,
quantity: 1
},
{
item_id: "<Фрагмент адреси сторінки>",
item_name: "<Назва міста відправлення - Назва міста прибуття>",
affiliation: "[назва сервісу]",
coupon: "<Назва знижки та детали другого квитка, пусто, якщо немає>",
discount: <Розмір знижки без знаку мінус другого квитка, 0, якщо немає>,
index: 1,
item_brand: "<Конкретний перевізник обраного рейсу>",
item_category: "<Країна відправлення>",
item_category2: "<Країна прибуття>",
item_category3: "<Місто відправлення>",
item_category4: "<Місто прибуття>",
item_variant: "<Дата та час відправлення та прибуття в структурованому форматі прізвище та ім’я другого пасажира>",
  price: <Вартість другого квитку>,
  quantity: 1
},

<….>
]
});

Приклад такої сторінки:
Такій самий, як й в попередньому пункті.

Приклад відповідного заповнення значень параметрів:


gtag("event", "add_payment_info", {
currency: "UAH",
value: 3705,
payment_type: "Credit Card (online)",
items: [
{
item_id: "kharkiv-5054966-wroclaw-5052869",
item_name: "Харьків - Вроцлав",
affiliation: "[назва сервісу]",
coupon: "За віком: до 6 р. -50% - 2020-02-26",
discount: 1425,
index: 1,
item_brand: "СТЕЦИК Т.В. ФОП",
item_category: "Україна",
item_category2: "Польша",
item_category3: "Харьків",
item_category4: "Вроцлав",
item_variant: "2024-05-24 21:00 - 2024-05-26 07:35 ТЕСТ ТЕСТОВИЧ",
price: 1425,
quantity: 1
},
{
item_id: "kharkiv-5054966-wroclaw-5052869",
item_name: "Харьків - Вроцлав",
affiliation: "[назва сервісу]",
coupon: "За віком: до 13 р. -20% - 2014-05-17",
discount: 570,
index: 1,
item_brand: "СТЕЦИК Т.В. ФОП",
item_category: "Україна",
item_category2: "Польша",
item_category3: "Харьків",
item_category4: "Вроцлав",
item_variant: "2024-05-24 21:00 - 2024-05-26 07:35 ТЕСТ 2 ТЕСТОВИЧ 2",
price: 2280,
quantity: 1
}
]
});

Квитки продано!

Умови розміщення та спрацьовування коду:
Цей код має спрацьовувати при завантаженні фінальної сторінки “Готово!” з підтвердженням успішного бронювання квитків, а також їх оплати у разі обрання такого варіанта.

Шаблон сторінок:
Адреса цих сторінок починається з [URL сайту] й далі містить код транзакції.

Код, який треба ініціювати виконання:


gtag(“event”, “purchase”, {
transaction_id: “<Код транзації>”,
currency: “UAH”,
value: <Загальна вартість всіх квитків>,
items: [
{
item_id: “<Фрагмент адреси сторінки>”,
item_name: “<Назва міста відправлення – Назва міста прибуття>”,
affiliation: “[назва сервісу]”,
coupon: “<Назва знижки та детали першого квитка, пусто, якщо немає>”,
discount: <Розмір знижки без знаку мінус першого квитка, 0, якщо немає>,
index: 0,
item_brand: “<Конкретний перевізник обраного рейсу>”,
item_category: “<Країна відправлення>”,
item_category2: “<Країна прибуття>”,
item_category3: “<Місто відправлення>”,
item_category4: “<Місто прибуття>”,
item_variant: “<Дата та час відправлення та прибуття в структурованому форматі прізвище та ім’я першого пасажира>”,
price: <Вартість першого квитку>,
quantity: 1
},
{
item_id: “<Фрагмент адреси сторінки>”,
item_name: “<Назва міста відправлення – Назва міста прибуття>”,
affiliation: “[назва сервісу]”,
coupon: “<Назва знижки та детали другого квитка, пусто, якщо немає>”,
discount: <Розмір знижки без знаку мінус другого квитка, 0, якщо немає>,
index: 1,
item_brand: “<Конкретний перевізник обраного рейсу>”,
item_category: “<Країна відправлення>”,
item_category2: “<Країна прибуття>”,
item_category3: “<Місто відправлення>”,
item_category4: “<Місто прибуття>”,
item_variant: “<Дата та час відправлення та прибуття в структурованому форматі прізвище та ім’я другого пасажира>”,

price: <Вартість другого квитку>,
quantity: 1
},

Приклад такої сторінки – [URL сторінки]

<….>
]
});

Приклад відповідного заповнення значень параметрів:


gtag("event", "purchase", {
transaction_id: "45393919-ed9d-4d2a-a965-8211ec789e23",
currency: "UAH",
value: 3705,
items: [
{
item_id: "kharkiv-5054966-wroclaw-5052869",
item_name: "Харьків - Вроцлав",
affiliation: "[назва сервісу]",
coupon: "За віком: до 6 р. -50% - 2020-02-26",
discount: 1425,
index: 1,
item_brand: "СТЕЦИК Т.В. ФОП",
item_category: "Україна",
item_category2: "Польша",
item_category3: "Харьків",
item_category4: "Вроцлав",
item_variant: "2024-05-24 21:00 - 2024-05-26 07:35 ТЕСТ ТЕСТОВИЧ",
price: 1425,
quantity: 1
},
{
item_id: "kharkiv-5054966-wroclaw-5052869",
item_name: "Харьків - Вроцлав",
affiliation: "[назва сервісу]",
coupon: "За віком: до 13 р. -20% - 2014-05-17",
discount: 570,
index: 1,
item_brand: "СТЕЦИК Т.В. ФОП",
item_category: "Україна",
item_category2: "Польша",
item_category3: "Харьків",
item_category4: "Вроцлав",
item_variant: "2024-05-24 21:00 - 2024-05-26 07:35 ТЕСТ 2 ТЕСТОВИЧ 2",
price: 2280,
quantity: 1
}
]
});

P.S. Якщо у вас є питання по цьому технічному завданню та аудиту, можете оставляти заявку на консультацію на сайті нашої агенції – https://spilnoagency.com.ua/