Інтеграція GTM Analytics
Ви можете підключити будь-який контейнер Google Tag Manager (GTM) до Wink, ввівши його GTM Container ID у порталі Wink. Після підключення ваш контейнер автоматично завантажується для вашої власності і безпосередньо читає події бронювання Wink — охоплюючи повний шлях гостя від пошуку до завершеного бронювання. Поширеним випадком використання є контейнер Sojern для ретаргетингу та реклами, але будь-який контейнер GTM працює однаково.
Що потрібно зробити
Section titled “Що потрібно зробити”-
Отримайте свій GTM Container ID
Отримайте свій GTM Container ID (формат
GTM-XXXXXXX). Якщо він надається партнером, таким як Sojern, попросіть саме GTM Container ID — він відрізняється від pixel або tag ID. -
Введіть його в порталі Wink
Увійдіть у app.wink.travel, виберіть свій акаунт і перейдіть на вкладку Customizations. Вставте свій GTM Container ID у поле GTM та збережіть. Ваша інтеграція тепер активна.
-
(Опційно) Додайте GA4 Measurement ID + API Secret для серверної обробки покупок
Контейнери GTM працюють повністю у браузері гостя, тому завершене бронювання може бути пропущене, якщо гість закриває вкладку під час переадресації оплати. Якщо ваш контейнер завантажує GA4 property і ви хочете надійно фіксувати завершені бронювання, також введіть GA4 Measurement ID та Measurement Protocol API secret у розділі GTM. Wink тоді відправить подію
purchaseдля цієї властивості серверно, як описано в керівництві GA4 Analytics Integration. Залиште ці поля порожніми, якщо вам потрібне лише відстеження у браузері. -
Підтвердіть з вашим провайдером
Якщо ваш контейнер надається партнером, таким як Sojern, повідомте вашому менеджеру акаунту, що інтеграція активна. Вони можуть перевірити зі свого боку, що теги коректно спрацьовують на
wink.travelдля вашої власності і що дані надходять у ваш акаунт.
Що Wink робить зі свого боку
Section titled “Що Wink робить зі свого боку”Для прозорості, ось що Wink налаштовує, щоб ця інтеграція працювала:
- Поле GTM Container ID доступне на вкладці Customizations у вашому порталі Wink. Коли ви вводите Container ID, Wink перевіряє формат (
GTM-XXXXXXX) і безпечно зберігає його для вашої власності. - На кожній сторінці, де активна ваша власність у Wink, ваш контейнер безпосередньо вставляється у сторінку — використовуючи спільний
window.dataLayerWink — тому він завантажується разом із власним контейнером Wink без залежності від додаткових налаштувань. Це відбувається автоматично, без додаткової роботи команди Wink для кожної власності. - Ваш контейнер завантажується асинхронно, тому не впливає на швидкість завантаження сторінки для ваших гостей.
- Власне відстеження Wink і ваш контейнер працюють паралельно, читаючи з одного спільного
dataLayer. Кожна подія бронювання, яку відстежує Wink, одночасно доступна вашому контейнеру. - Коли ваша власність не переглядається — наприклад, коли гість переглядає інший готель у Wink — ваш контейнер не завантажується, тому отримує лише дані, що стосуються вашої власності.
- Якщо ви надали GA4 Measurement ID + API secret (крок 3 вище), подія
purchaseдля завершених бронювань додатково надсилається серверно через GA4 Measurement Protocol, тому продаж фіксується навіть якщо гість не повертається на сторінку підтвердження.
Посилання на DataLayer
Section titled “Посилання на DataLayer”Wink надсилає події, сумісні з GA4, у dataLayer протягом усього шляху гостя. Ваш GTM контейнер читає з того самого спільного dataLayer, тому будь-який тригер або змінна, які ви налаштуєте, мають доступ до всіх описаних нижче властивостей.
Кожна подія відповідає стандартній структурі GA4 Enhanced Ecommerce: рядок верхнього рівня event і об’єкт ecommerce. Перед кожним пушем Wink очищує попередній ecommerce-пейлоад, щоб уникнути застарілих даних у нових тригерах.
Події шляху бронювання
Section titled “Події шляху бронювання”Ці події спрацьовують автоматично, коли гість проходить через воронку бронювання. Налаштуйте свої тригери GTM як Custom Event тригери, що відповідають назвам подій нижче.
| Крок | Подія | Коли спрацьовує |
|---|---|---|
| 1 | view_item_list | Завантажується сітка або список готелів |
| 2 | view_item | Гість переглядає сторінку конкретної власності |
| 3 | add_to_cart | Гість додає номер у кошик |
| 4 | begin_checkout | Завантажується сторінка оформлення / оплати |
| 5 | add_payment_info | Гість обирає спосіб оплати |
| 6 | login | Гість автентифікується через SSO |
| 7 | purchase | Бронювання підтверджено |
| 8 | refund | Бронювання скасовано |
view_item_list
Section titled “view_item_list”Спрацьовує, коли відображається сітка або список готелів.
{ "event": "view_item_list", "ecommerce": { "item_list_id": "featured_hotels", "item_list_name": "Featured Hotels", "items": [ ] }}view_item
Section titled “view_item”Спрацьовує, коли гість переглядає конкретну власність.
{ "event": "view_item", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}add_to_cart
Section titled “add_to_cart”Спрацьовує, коли гість додає номер у кошик.
{ "event": "add_to_cart", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}begin_checkout
Section titled “begin_checkout”Спрацьовує, коли завантажується сторінка оформлення / оплати.
{ "event": "begin_checkout", "ecommerce": { "currency": "USD", "value": 299.00, "coupon": "SUMMER10", "items": [ ] }}coupon присутній лише коли застосовано код знижки.
add_payment_info
Section titled “add_payment_info”Спрацьовує, коли гість обирає або підтверджує спосіб оплати.
{ "event": "add_payment_info", "ecommerce": { "currency": "USD", "value": 299.00, "coupon": "SUMMER10", "payment_type": "STRIPE", "items": [ ] }}payment_type заповнюється типом платіжного провайдера. coupon присутній лише коли застосовано код знижки.
Спрацьовує, коли гість автентифікується через єдиний вхід (SSO).
{ "event": "login", "ecommerce": { "method": "IAM" }}purchase
Section titled “purchase”Спрацьовує, коли бронювання підтверджено.
{ "event": "purchase", "ecommerce": { "currency": "USD", "transaction_id": "bc-a1b2c3d4", "value": 299.00, "coupon": "SUMMER10", "shipping": 0.00, "tax": 0.00, "items": [ { "item_id": "rr-xyz789", "item_name": "Deluxe Ocean Suite", "item_brand": "Grand Resort", "item_category": "GUEST_ROOM", "price": 299.00, "quantity": 1, "property_id": "prop-abc123", "property_name": "Grand Resort Maldives", "property_brand": "Grand Collection", "property_chain": "Luxury Hotels International", "city_name": "Malé", "country_code": "MV", "start_date": "2026-06-01", "end_date": "2026-06-05", "num_adults": 2, "num_children": 0, "cancellation_policy": "Refundable", "rate_plan_id": "rp-summer2026", "room_rate_id": "rr-xyz789", "room_rate_name": "Summer Escape — Bed & Breakfast", "num_perks": 2, "room_location": "Overwater", "room_view": "Ocean", "room_classification": "Suite" } ] }}transaction_id — унікальний ідентифікатор контракту бронювання. coupon, shipping і tax присутні лише за наявності.
refund
Section titled “refund”Спрацьовує, коли бронювання скасовано.
{ "event": "refund", "ecommerce": { "currency": "USD", "transaction_id": "bc-a1b2c3d4", "value": 299.00, "coupon": "SUMMER10", "shipping": 0.00, "tax": 0.00, "items": [ ] }}transaction_id співпадає з подією purchase для того ж бронювання. coupon, shipping і tax присутні лише за наявності.
Властивості елементів
Section titled “Властивості елементів”Всі події, що містять масив items, мають однакову схему елемента. Кожна властивість є необов’язковою, якщо не позначена як обов’язкова.
Стандартні поля GA4
Section titled “Стандартні поля GA4”Ці поля розпізнаються GA4 і відображаються у стандартних звітах ecommerce без додаткових налаштувань.
| Властивість | Тип | Обов’язкове | Опис |
|---|---|---|---|
item_id | string | Так | Унікальний ідентифікатор номера або продукту |
item_name | string | — | Назва номера або продукту |
affiliation | string | — | Назва афіліата або продавця |
coupon | string | — | Застосований купон |
currency | string | — | Код валюти ISO 4217 (наприклад, USD) |
creative_name | string | — | Назва креативу в промоакції |
creative_slot | string | — | Позиція слоту промоакції |
discount | number | — | Сума знижки |
index | number | — | Позиція у списку (починається з 1) |
item_brand | string | — | Назва готелю або бренду |
item_category | string | — | Тип продукту — наприклад, GUEST_ROOM, ACTIVITY, ATTRACTION, MEETING_ROOM, RESTAURANT, SPA |
item_list_id | string | — | Ідентифікатор списку, до якого належить елемент |
item_list_name | string | — | Відображувана назва списку |
location_id | string | — | Геокоординати власності |
price | number | — | Ціна за одиницю |
promotion_id | string | — | Ідентифікатор промоакції |
promotion_name | string | — | Відображувана назва промоакції |
quantity | number | — | Кількість (за замовчуванням 1) |
Користувацькі параметри на рівні елемента
Section titled “Користувацькі параметри на рівні елемента”Ці параметри несуть контекст бронювання Wink. GA4 не відображає їх у звітах автоматично — потрібно зареєструвати кожен як користувацький вимір на рівні елемента у вашій GA4 властивості, щоб він з’явився у звітах або дослідженнях. Інструкції див. у розділі Користувацькі виміри в GA4 нижче.
| Властивість | Тип | Опис |
|---|---|---|
property_id | string | Ідентифікатор власності Wink |
property_name | string | Відображувана назва власності |
property_brand | string | Бренд, до якого належить власність |
property_chain | string | Готельна мережа, до якої належить власність |
property_url_name | string | URL-дружній слаг власності |
city_name | string | Місто, де розташована власність |
country_code | string | Код країни ISO 3166-1 alpha-2 |
start_date | string | Дата заїзду у форматі YYYY-MM-DD |
end_date | string | Дата виїзду у форматі YYYY-MM-DD |
num_adults | number | Кількість дорослих у бронюванні |
num_children | number | Кількість дітей у бронюванні |
cancellation_policy | string | Один із: Refundable, Non-Refundable, Refundable-With-Restrictions, Non-Refundable-With-Restrictions |
rate_plan_id | string | Ідентифікатор тарифного плану |
room_rate_id | string | Ідентифікатор конкретного тарифу номера |
room_rate_name | string | Відображувана назва тарифу номера |
num_perks | number | Кількість бонусів, включених у тариф |
room_location | string | Опис розташування номера (наприклад, Overwater, Garden) |
room_view | string | Опис виду з номера (наприклад, Ocean, City) |
room_classification | string | Класифікація або категорія номера (наприклад, Suite, Standard) |
bed_type | string | Конфігурація ліжка в номері (наприклад, King, Twin) |
Користувацькі виміри в GA4
Section titled “Користувацькі виміри в GA4”GA4 ігнорує користувацькі параметри елемента у звітах, доки ви явно не зареєструєте їх як користувацькі виміри на рівні елемента. Реєструвати потрібно лише ті параметри, які ви плануєте використовувати у звітах — не обов’язково всі 20.
-
Відкрийте Custom Definitions
У GA4 перейдіть у Admin (піктограма шестерні внизу зліва) → виберіть вашу власність → Data display → Custom definitions.
-
Створіть новий користувацький вимір
Натисніть Create custom dimensions.
-
Заповніть деталі виміру
- Dimension name — зрозуміла назва, що відображатиметься у звітах GA4 (див. таблицю нижче)
- Scope — оберіть Item
- Event parameter — точна назва параметра, як у dataLayer (див. таблицю нижче)
- Description — необов’язково, але рекомендовано
-
Збережіть і повторіть
Натисніть Save, потім повторіть для кожного параметра, який хочете відстежувати.
Використовуйте таблицю нижче як довідник при створенні користувацьких вимірів. Значення Event parameter має точно співпадати — GA4 чутливий до регістру.
| Назва виміру | Event parameter | Тип |
|---|---|---|
| Property ID | property_id | Текст |
| Property name | property_name | Текст |
| Property brand | property_brand | Текст |
| Property chain | property_chain | Текст |
| Property URL name | property_url_name | Текст |
| City name | city_name | Текст |
| Country code | country_code | Текст |
| Check-in date | start_date | Текст |
| Check-out date | end_date | Текст |
| Number of adults | num_adults | Число |
| Number of children | num_children | Число |
| Cancellation policy | cancellation_policy | Текст |
| Rate plan ID | rate_plan_id | Текст |
| Room rate ID | room_rate_id | Текст |
| Room rate name | room_rate_name | Текст |
| Number of perks | num_perks | Число |
| Room location | room_location | Текст |
| Room view | room_view | Текст |
| Room classification | room_classification | Текст |
| Bed type | bed_type | Текст |
Додаткові доступні події
Section titled “Додаткові доступні події”Наступні події доступні у dataLayer Wink, але не є частиною стандартної воронки бронювання. Вони можуть спрацьовувати внаслідок інших взаємодій на платформі.
add_to_wishlist
Section titled “add_to_wishlist”{ "event": "add_to_wishlist", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}remove_from_cart
Section titled “remove_from_cart”{ "event": "remove_from_cart", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}select_item
Section titled “select_item”{ "event": "select_item", "ecommerce": { "item_list_id": "featured_hotels", "item_list_name": "Featured Hotels", "items": [ ] }}view_cart
Section titled “view_cart”{ "event": "view_cart"}Ця подія не містить пейлоаду ecommerce.
view_promotion
Section titled “view_promotion”{ "event": "view_promotion", "ecommerce": { "creative_name": "Summer Banner", "creative_slot": "hero", "promotion_id": "promo_001", "promotion_name": "Summer Sale", "items": [ ] }}select_promotion
Section titled “select_promotion”{ "event": "select_promotion", "ecommerce": { "creative_name": "Summer Banner", "creative_slot": "hero", "promotion_id": "promo_001", "promotion_name": "Summer Sale", "items": [ ] }}search
Section titled “search”{ "event": "search", "ecommerce": { "search_term": "beachfront resort" }}select_content
Section titled “select_content”{ "event": "select_content", "ecommerce": { "content_type": "hotel", "content_id": "prop_12345" }}{ "event": "share", "ecommerce": { "method": "copy_link", "content_type": "hotel", "item_id": "prop_12345" }}sign_up
Section titled “sign_up”{ "event": "sign_up", "ecommerce": { "method": "email" }}generate_lead
Section titled “generate_lead”{ "event": "generate_lead", "ecommerce": { "currency": "USD", "value": 0.00 }}join_group
Section titled “join_group”{ "event": "join_group", "ecommerce": { "group_id": "group_abc" }}earn_virtual_currency
Section titled “earn_virtual_currency”{ "event": "earn_virtual_currency", "ecommerce": { "virtual_currency_name": "WinkPoints", "value": 100 }}spend_virtual_currency
Section titled “spend_virtual_currency”{ "event": "spend_virtual_currency", "ecommerce": { "virtual_currency_name": "WinkPoints", "value": 50, "item_name": "Room Upgrade" }}level_start
Section titled “level_start”{ "event": "level_start", "ecommerce": { "level_name": "Gold" }}level_end
Section titled “level_end”{ "event": "level_end", "ecommerce": { "level_name": "Gold", "success": true }}level_up
Section titled “level_up”{ "event": "level_up", "ecommerce": { "level": 2, "character": "traveler" }}post_score
Section titled “post_score”{ "event": "post_score", "ecommerce": { "score": 980, "level": 2, "character": "traveler" }}unlock_achievement
Section titled “unlock_achievement”{ "event": "unlock_achievement", "ecommerce": { "achievement_id": "first_booking" }}tutorial_begin
Section titled “tutorial_begin”{ "event": "tutorial_begin", "ecommerce": {}}tutorial_complete
Section titled “tutorial_complete”{ "event": "tutorial_complete", "ecommerce": {}}virtualPageView
Section titled “virtualPageView”Це користувацька подія Wink — не входить до стандартного набору подій GA4. Вона пушиться при кожній навігації сторінкою і містить контекст пристрою та сесії. Не містить об’єкта ecommerce.
{ "event": "virtualPageView", "device": "Desktop", "deviceAgent": "Mozilla/5.0 ...", "os": "MacOS", "path": "/hotels/grand-resort", "title": "Grand Resort — Wink", "userId": "user_abc123", "startDate": "2026-06-01", "endDate": "2026-06-05", "guests": "2", "rooms": "1"}| Властивість | Опис |
|---|---|
device | Виявлений тип пристрою — Desktop, Android, iPhone, iPad або подібний |
deviceAgent | Сировий рядок user agent |
os | Виявлена операційна система — Windows, MacOS, Linux, UNIX |
path | Поточний шлях сторінки |
title | Поточна назва сторінки |
userId | Ідентифікатор автентифікованого користувача (відсутній, якщо не увійшли) |
startDate | Дата заїзду з поточної сесії пошуку |
endDate | Дата виїзду з поточної сесії пошуку |
guests | Кількість гостей з поточної сесії пошуку |
rooms | Кількість номерів з поточної сесії пошуку |
