Integrare GTM Analytics
Puteți conecta orice container Google Tag Manager (GTM) la Wink introducând ID-ul containerului GTM în portalul Wink. Odată conectat, containerul dvs. se încarcă automat pentru proprietatea dvs. și citește direct evenimentele de rezervare Wink — acoperind întregul parcurs al oaspetelui, de la căutare până la rezervarea finalizată. Un caz comun de utilizare este un container Sojern pentru retargeting și publicitate, dar orice container GTM funcționează la fel.
Ce Trebuie să Faceți
Secțiune intitulată „Ce Trebuie să Faceți”-
Obțineți ID-ul Containerului GTM
Obțineți ID-ul containerului GTM (format
GTM-XXXXXXX). Dacă provine de la un partener precum Sojern, solicitați în mod specific ID-ul containerului GTM — este diferit de un pixel sau ID de tag. -
Introduceți-l în Portalul Wink
Conectați-vă la app.wink.travel, selectați contul dvs. și accesați fila Personalizări. Lipiți ID-ul containerului GTM în câmpul GTM și salvați. Integrarea dvs. este acum activă.
-
(Opțional) Adăugați un ID de Măsurare GA4 + Secret API pentru Achiziții Server-Side
Containerele GTM rulează complet în browserul oaspetelui, deci o rezervare finalizată poate fi ratată dacă oaspetele închide fila în timpul redirecționării la plată. Dacă containerul dvs. încarcă o proprietate GA4 și doriți ca rezervările finalizate să fie înregistrate fiabil, introduceți și ID-ul de măsurare GA4 și secretul API Measurement Protocol în secțiunea GTM. Wink va trimite apoi evenimentul
purchasepentru acea proprietate server-side, exact cum este descris în ghidul GA4 Analytics Integration. Lăsați aceste câmpuri necompletate dacă aveți nevoie doar de urmărire în browser. -
Confirmați cu Furnizorul Dvs.
Dacă containerul dvs. provine de la un partener precum Sojern, anunțați managerul dvs. de cont că integrarea este activă. Ei pot verifica de partea lor dacă tag-urile se declanșează corect pe
wink.travelpentru proprietatea dvs. și dacă datele curg în contul dvs.
Ce Face Wink pe Partea Noastră
Secțiune intitulată „Ce Face Wink pe Partea Noastră”Pentru transparență, iată ce configurează Wink pentru a face această integrare să funcționeze:
- Un câmp pentru ID-ul containerului GTM este disponibil în fila Personalizări din portalul Wink. Când introduceți ID-ul containerului, Wink validează formatul (
GTM-XXXXXXX) și îl stochează în siguranță pentru proprietatea dvs. - Pe fiecare pagină unde proprietatea dvs. este activă pe Wink, containerul dvs. este injectat direct în pagină — împărtășind propriul
window.dataLayeral Wink — astfel încât se încarcă alături de containerul Wink fără dependență de alte configurări suplimentare. Acest lucru se întâmplă automat, fără muncă suplimentară per proprietate din partea echipei Wink. - Containerul dvs. se încarcă asincron, deci nu afectează performanța încărcării paginii pentru oaspeții dvs.
- Urmărirea Wink și containerul dvs. rulează în paralel, citind din același
dataLayerpartajat. Fiecare eveniment de rezervare urmărit de Wink este disponibil simultan pentru containerul dvs. - Când proprietatea dvs. nu este vizualizată — de exemplu, când un oaspete navighează pe pagina unui alt hotel pe Wink — containerul dvs. nu este încărcat, deci primește doar date relevante pentru proprietatea dvs.
- Dacă ați furnizat un ID de măsurare GA4 + secret API (pasul 3 de mai sus), evenimentul
purchasepentru rezervările finalizate este trimis suplimentar server-side prin GA4 Measurement Protocol, astfel încât o vânzare este înregistrată chiar dacă oaspetele nu revine la pagina de confirmare.
Referință DataLayer
Secțiune intitulată „Referință DataLayer”Wink împinge evenimente compatibile GA4 în dataLayer pe tot parcursul experienței oaspetelui. Containerul dvs. GTM citește din același dataLayer partajat, deci orice declanșator sau variabilă configurată are acces la toate proprietățile descrise mai jos.
Fiecare eveniment urmează structura standard GA4 Enhanced Ecommerce: un șir event la nivel superior și un obiect ecommerce. Înainte de fiecare push, Wink golește încărcătura ecommerce anterioară pentru a preveni pătrunderea datelor vechi în declanșatoarele noi.
Evenimente din Parcursul de Rezervare
Secțiune intitulată „Evenimente din Parcursul de Rezervare”Aceste evenimente se declanșează automat pe măsură ce oaspetele parcurge funnel-ul de rezervare. Configurați declanșatoarele GTM ca declanșatoare Custom Event care corespund numelor evenimentelor de mai jos.
| Pas | Eveniment | Când se declanșează |
|---|---|---|
| 1 | view_item_list | Se încarcă grila sau lista de inventar hotelier |
| 2 | view_item | Oaspetele vizualizează o pagină specifică a proprietății |
| 3 | add_to_cart | Oaspetele adaugă o cameră în coșul de cumpărături |
| 4 | begin_checkout | Se încarcă pagina de checkout / plată |
| 5 | add_payment_info | Oaspetele selectează o metodă de plată |
| 6 | login | Oaspetele se autentifică prin SSO |
| 7 | purchase | Rezervarea este confirmată |
| 8 | refund | Rezervarea este anulată |
view_item_list
Secțiune intitulată „view_item_list”Se declanșează când se afișează o grilă sau listă de inventar hotelier.
{ "event": "view_item_list", "ecommerce": { "item_list_id": "featured_hotels", "item_list_name": "Featured Hotels", "items": [ ] }}view_item
Secțiune intitulată „view_item”Se declanșează când un oaspete vizualizează o proprietate specifică.
{ "event": "view_item", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}add_to_cart
Secțiune intitulată „add_to_cart”Se declanșează când un oaspete adaugă o cameră în coș.
{ "event": "add_to_cart", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}begin_checkout
Secțiune intitulată „begin_checkout”Se declanșează când se încarcă pagina de checkout / plată.
{ "event": "begin_checkout", "ecommerce": { "currency": "USD", "value": 299.00, "coupon": "SUMMER10", "items": [ ] }}coupon este prezent doar când a fost aplicat un cod de reducere.
add_payment_info
Secțiune intitulată „add_payment_info”Se declanșează când oaspetele selectează sau confirmă o metodă de plată.
{ "event": "add_payment_info", "ecommerce": { "currency": "USD", "value": 299.00, "coupon": "SUMMER10", "payment_type": "STRIPE", "items": [ ] }}payment_type este completat din tipul procesatorului de plată. coupon este prezent doar când a fost aplicat un cod de reducere.
Se declanșează când un oaspete se autentifică prin single sign-on.
{ "event": "login", "ecommerce": { "method": "IAM" }}purchase
Secțiune intitulată „purchase”Se declanșează când o rezervare este confirmată.
{ "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 este identificatorul unic al contractului de rezervare. coupon, shipping și tax sunt prezente doar când este cazul.
Se declanșează când o rezervare este anulată.
{ "event": "refund", "ecommerce": { "currency": "USD", "transaction_id": "bc-a1b2c3d4", "value": 299.00, "coupon": "SUMMER10", "shipping": 0.00, "tax": 0.00, "items": [ ] }}transaction_id corespunde evenimentului purchase pentru aceeași rezervare. coupon, shipping și tax sunt prezente doar când este cazul.
Proprietăți ale Articolului
Secțiune intitulată „Proprietăți ale Articolului”Toate evenimentele care includ un array items împărtășesc aceeași schemă pentru articole. Fiecare proprietate este opțională, cu excepția celor marcate ca obligatorii.
Câmpuri standard GA4
Secțiune intitulată „Câmpuri standard GA4”Aceste câmpuri sunt înțelese nativ de GA4 și apar în rapoartele standard ecommerce fără configurare suplimentară.
| Proprietate | Tip | Obligatoriu | Descriere |
|---|---|---|---|
item_id | string | Da | Identificator unic pentru cameră sau produs |
item_name | string | — | Numele camerei sau produsului |
affiliation | string | — | Numele afiliatului sau vânzătorului |
coupon | string | — | Codul de reducere aplicat articolului |
currency | string | — | Codul valutar ISO 4217 (ex. USD) |
creative_name | string | — | Numele creativ folosit într-o promoție |
creative_slot | string | — | Poziția slotului pentru creativul promoției |
discount | number | — | Valoarea reducerii aplicate |
index | number | — | Poziția în listă (începând de la 1) |
item_brand | string | — | Numele hotelului sau brandului |
item_category | string | — | Tipul produsului — ex. GUEST_ROOM, ACTIVITY, ATTRACTION, MEETING_ROOM, RESTAURANT, SPA |
item_list_id | string | — | Identificatorul listei din care face parte articolul |
item_list_name | string | — | Numele afișat al listei |
location_id | string | — | Coordonatele geografice ale proprietății |
price | number | — | Preț unitar |
promotion_id | string | — | Identificatorul promoției |
promotion_name | string | — | Numele afișat al promoției |
quantity | number | — | Cantitate (implicit 1) |
Parametri personalizați la nivel de articol
Secțiune intitulată „Parametri personalizați la nivel de articol”Acești parametri poartă context specific rezervărilor Wink. GA4 nu îi afișează automat în rapoarte — trebuie să înregistrați fiecare ca dimensiune personalizată la nivel de articol în proprietatea GA4 înainte să apară în explorări sau rapoarte standard. Consultați Dimensiuni personalizate în GA4 mai jos pentru instrucțiuni.
| Proprietate | Tip | Descriere |
|---|---|---|
property_id | string | Identificatorul proprietății Wink |
property_name | string | Numele afișat al proprietății |
property_brand | string | Brandul căruia îi aparține proprietatea |
property_chain | string | Lanțul căruia îi aparține proprietatea |
property_url_name | string | Slug URL-friendly pentru proprietate |
city_name | string | Orașul unde se află proprietatea |
country_code | string | Codul țării ISO 3166-1 alpha-2 |
start_date | string | Data check-in în format YYYY-MM-DD |
end_date | string | Data check-out în format YYYY-MM-DD |
num_adults | number | Numărul de adulți în rezervare |
num_children | number | Numărul de copii în rezervare |
cancellation_policy | string | Unul dintre: Refundable, Non-Refundable, Refundable-With-Restrictions, Non-Refundable-With-Restrictions |
rate_plan_id | string | Identificatorul planului tarifar |
room_rate_id | string | Identificatorul tarifului camerei |
room_rate_name | string | Numele afișat al tarifului camerei |
num_perks | number | Numărul de beneficii incluse în tarif |
room_location | string | Descrierea locației camerei (ex. Overwater, Garden) |
room_view | string | Descrierea priveliștii camerei (ex. Ocean, City) |
room_classification | string | Clasificarea sau nivelul camerei (ex. Suite, Standard) |
bed_type | string | Configurația patului în cameră (ex. King, Twin) |
Dimensiuni Personalizate în GA4
Secțiune intitulată „Dimensiuni Personalizate în GA4”GA4 ignoră parametrii personalizați la nivel de articol în rapoarte până când îi înregistrați explicit ca dimensiuni personalizate la nivel de articol. Trebuie să înregistrați doar parametrii pe care intenționați să îi utilizați în rapoarte — nu este necesar să înregistrați toți cei 20.
-
Deschideți Definițiile Personalizate
În GA4, accesați Admin (pictograma roată din stânga jos) → selectați proprietatea dvs. → Afișare date → Definiții personalizate.
-
Creați o dimensiune personalizată nouă
Faceți clic pe Creează dimensiuni personalizate.
-
Completați detaliile dimensiunii
- Numele dimensiunii — eticheta lizibilă care apare în rapoartele GA4 (vedeți tabelul de mai jos)
- Scop — selectați Item
- Parametrul evenimentului — numele exact al parametrului așa cum apare în dataLayer (vedeți tabelul de mai jos)
- Descriere — opțional, dar recomandat
-
Salvați și repetați
Faceți clic pe Salvează, apoi repetați pentru fiecare parametru pe care doriți să îl urmăriți.
Folosiți tabelul următor ca referință când creați dimensiuni personalizate. Valoarea Parametrului evenimentului trebuie să corespundă exact — GA4 este sensibil la majuscule.
| Numele dimensiunii | Parametrul evenimentului | Tip |
|---|---|---|
| ID Proprietate | property_id | Text |
| Nume Proprietate | property_name | Text |
| Brand Proprietate | property_brand | Text |
| Lanț Proprietate | property_chain | Text |
| Nume URL Proprietate | property_url_name | Text |
| Nume Oraș | city_name | Text |
| Cod Țară | country_code | Text |
| Data Check-in | start_date | Text |
| Data Check-out | end_date | Text |
| Număr Adulți | num_adults | Număr |
| Număr Copii | num_children | Număr |
| Politica de Anulare | cancellation_policy | Text |
| ID Plan Tarifar | rate_plan_id | Text |
| ID Tarif Cameră | room_rate_id | Text |
| Nume Tarif Cameră | room_rate_name | Text |
| Număr Beneficii | num_perks | Număr |
| Locație Cameră | room_location | Text |
| Priveliște Cameră | room_view | Text |
| Clasificare Cameră | room_classification | Text |
| Tip Pat | bed_type | Text |
Evenimente Suplimentare Disponibile
Secțiune intitulată „Evenimente Suplimentare Disponibile”Următoarele evenimente sunt disponibile în dataLayer Wink, dar nu fac parte din funnel-ul standard de rezervare. Ele pot fi declanșate de alte interacțiuni pe platformă.
add_to_wishlist
Secțiune intitulată „add_to_wishlist”{ "event": "add_to_wishlist", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}remove_from_cart
Secțiune intitulată „remove_from_cart”{ "event": "remove_from_cart", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}select_item
Secțiune intitulată „select_item”{ "event": "select_item", "ecommerce": { "item_list_id": "featured_hotels", "item_list_name": "Featured Hotels", "items": [ ] }}view_cart
Secțiune intitulată „view_cart”{ "event": "view_cart"}Acest eveniment nu include o încărcătură ecommerce.
view_promotion
Secțiune intitulată „view_promotion”{ "event": "view_promotion", "ecommerce": { "creative_name": "Summer Banner", "creative_slot": "hero", "promotion_id": "promo_001", "promotion_name": "Summer Sale", "items": [ ] }}select_promotion
Secțiune intitulată „select_promotion”{ "event": "select_promotion", "ecommerce": { "creative_name": "Summer Banner", "creative_slot": "hero", "promotion_id": "promo_001", "promotion_name": "Summer Sale", "items": [ ] }}{ "event": "search", "ecommerce": { "search_term": "beachfront resort" }}select_content
Secțiune intitulată „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" }}{ "event": "sign_up", "ecommerce": { "method": "email" }}generate_lead
Secțiune intitulată „generate_lead”{ "event": "generate_lead", "ecommerce": { "currency": "USD", "value": 0.00 }}join_group
Secțiune intitulată „join_group”{ "event": "join_group", "ecommerce": { "group_id": "group_abc" }}earn_virtual_currency
Secțiune intitulată „earn_virtual_currency”{ "event": "earn_virtual_currency", "ecommerce": { "virtual_currency_name": "WinkPoints", "value": 100 }}spend_virtual_currency
Secțiune intitulată „spend_virtual_currency”{ "event": "spend_virtual_currency", "ecommerce": { "virtual_currency_name": "WinkPoints", "value": 50, "item_name": "Room Upgrade" }}level_start
Secțiune intitulată „level_start”{ "event": "level_start", "ecommerce": { "level_name": "Gold" }}level_end
Secțiune intitulată „level_end”{ "event": "level_end", "ecommerce": { "level_name": "Gold", "success": true }}level_up
Secțiune intitulată „level_up”{ "event": "level_up", "ecommerce": { "level": 2, "character": "traveler" }}post_score
Secțiune intitulată „post_score”{ "event": "post_score", "ecommerce": { "score": 980, "level": 2, "character": "traveler" }}unlock_achievement
Secțiune intitulată „unlock_achievement”{ "event": "unlock_achievement", "ecommerce": { "achievement_id": "first_booking" }}tutorial_begin
Secțiune intitulată „tutorial_begin”{ "event": "tutorial_begin", "ecommerce": {}}tutorial_complete
Secțiune intitulată „tutorial_complete”{ "event": "tutorial_complete", "ecommerce": {}}virtualPageView
Secțiune intitulată „virtualPageView”Acesta este un eveniment personalizat Wink — nu face parte din setul standard de evenimente GA4. Este împins la fiecare navigare pe pagină și poartă context despre dispozitiv și sesiune. Nu include un obiect 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"}| Proprietate | Descriere |
|---|---|
device | Tipul dispozitivului detectat — Desktop, Android, iPhone, iPad sau similar |
deviceAgent | String-ul raw al user agent-ului |
os | Sistemul de operare detectat — Windows, MacOS, Linux, UNIX |
path | Calea paginii curente |
title | Titlul paginii curente |
userId | Identificatorul utilizatorului autentificat (omise dacă nu este logat) |
startDate | Data check-in din sesiunea curentă de căutare |
endDate | Data check-out din sesiunea curentă de căutare |
guests | Numărul de oaspeți din sesiunea curentă de căutare |
rooms | Numărul de camere din sesiunea curentă de căutare |
