Sari la conținut

Integrarea Analiticelor GTM

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 evenimentele de rezervare Wink direct — 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.


  1. 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.

  2. Introduceți-l în Portalul Wink

    Conectați-vă la app.wink.travel, selectați contul dvs. și deschideți setările de personalizare. În secțiunea Analytics & integrations, lipiți ID-ul Containerului GTM în câmpul GTM Container ID și salvați. Integrarea dvs. este acum activă.

  3. Confirmați cu Furnizorul Dvs.

    Dacă containerul 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.travel pentru proprietatea dvs. și dacă datele curg în contul dvs.


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 secțiunea Analytics & integrations din setările dvs. de personalizare. 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.dataLayer al 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 dataLayer partajat. 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 un alt hotel pe Wink — containerul dvs. nu este încărcat, deci primește doar date relevante pentru proprietatea dvs.
  • Evenimentul de rezervare finalizată (purchase) se declanșează în browser pe pagina de mulțumire. Un ID de Container GTM este o cutie neagră — Wink nu poate presupune ce tag-uri conține — deci Wink nu apelează Google în numele dvs. de pe serverele sale. În schimb, orice tag GA4 sau de conversie din containerul dvs. primește purchase client-side, exact ca orice alt eveniment de rezervare. Deoarece furnizorul de plată redirecționează browserul oaspetelui în afara și înapoi, Wink reconectează sesiunea de analiză pe care redirecționarea a întrerupt-o înainte de a declanșa purchase, astfel vânzarea este atribuită vizitei originale a oaspetelui și nu este contorizată ca o sesiune nouă.

Wink împinge evenimente compatibile GA4 în dataLayer pe tot parcursul călătoriei oaspetelui. Containerul dvs. GTM citește din același dataLayer partajat, deci orice declanșator sau variabilă configurați 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.


Aceste evenimente se declanșează automat pe măsură ce un oaspete parcurge funnel-ul de rezervare. Configurați declanșatoarele GTM ca declanșatoare Custom Event care corespund numelor de eveniment de mai jos.

PasEvenimentCând se declanșează
1view_item_listSe încarcă grila sau lista de inventar hotelier
2view_itemOaspetele vizualizează o pagină specifică a proprietății
3add_to_cartOaspetele adaugă o cameră în coșul de cumpărături
4begin_checkoutSe încarcă pagina de checkout / plată
5add_payment_infoOaspetele selectează o metodă de plată
6loginOaspetele se autentifică prin SSO
7purchaseRezervarea este confirmată
8refundRezervarea este anulată

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": [ ]
}
}

Se declanșează când un oaspete vizualizează o proprietate specifică.

{
"event": "view_item",
"ecommerce": {
"currency": "USD",
"value": 299.00,
"items": [ ]
}
}

Se declanșează când un oaspete adaugă o cameră în coș.

{
"event": "add_to_cart",
"ecommerce": {
"currency": "USD",
"value": 299.00,
"items": [ ]
}
}

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.


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 achizitorului 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"
}
}

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.


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.

Aceste câmpuri sunt înțelese nativ de GA4 și apar în rapoartele standard ecommerce fără configurare suplimentară.

ProprietateTipObligatoriuDescriere
item_idstringDaIdentificator unic pentru cameră sau produs
item_namestringNumele camerei sau produsului
affiliationstringNumele afiliatului sau vânzătorului
couponstringCodul de cupon aplicat articolului
currencystringCodul valutar ISO 4217 (ex. USD)
creative_namestringNumele creativ folosit într-o promoție
creative_slotstringPoziția slotului pentru creativul promoției
discountnumberValoarea discountului aplicat
indexnumberPoziția în listă (începând de la 1)
item_brandstringNumele hotelului sau brandului
item_categorystringTipul produsului — ex. GUEST_ROOM, ACTIVITY, ATTRACTION, MEETING_ROOM, RESTAURANT, SPA
item_list_idstringIdentificatorul listei din care face parte articolul
item_list_namestringNumele afișat al listei
location_idstringCoordonatele geografice ale proprietății
pricenumberPreț unitar
promotion_idstringIdentificatorul promoției
promotion_namestringNumele afișat al promoției
quantitynumberCantitate (implicit 1)

Acești parametri conțin 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.

ProprietateTipDescriere
property_idstringIdentificatorul proprietății Wink
property_namestringNumele afișat al proprietății
property_brandstringBrandul căruia îi aparține proprietatea
property_chainstringLanțul căruia îi aparține proprietatea
property_url_namestringSlug URL-friendly pentru proprietate
city_namestringOrașul unde se află proprietatea
country_codestringCodul țării ISO 3166-1 alpha-2
start_datestringData check-in în format YYYY-MM-DD
end_datestringData check-out în format YYYY-MM-DD
num_adultsnumberNumărul de adulți în rezervare
num_childrennumberNumărul de copii în rezervare
cancellation_policystringUnul dintre: Refundable, Non-Refundable, Refundable-With-Restrictions, Non-Refundable-With-Restrictions
rate_plan_idstringIdentificatorul planului tarifar
room_rate_idstringIdentificatorul tarifului camerei specifice
room_rate_namestringNumele afișat al tarifului camerei
num_perksnumberNumărul de beneficii incluse în tarif
room_locationstringDescrierea locației camerei (ex. Overwater, Garden)
room_viewstringDescrierea priveliștii camerei (ex. Ocean, City)
room_classificationstringClasificarea sau nivelul camerei (ex. Suite, Standard)
bed_typestringConfigurația patului în cameră (ex. King, Twin)

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 folosiți în rapoarte — nu este necesar să înregistrați toți cei 20.

  1. Deschideți Definițiile Personalizate

    În GA4, accesați Admin (pictograma roată din stânga jos) → selectați proprietatea dvs. → Data displayCustom definitions.

  2. Creați o dimensiune personalizată nouă

    Faceți clic pe Create custom dimensions.

  3. Completați detaliile dimensiunii

    • Dimension name — eticheta lizibilă pentru oameni care apare în rapoartele GA4 (vedeți tabelul de mai jos)
    • Scope — selectați Item
    • Event parameter — numele exact al parametrului așa cum apare în dataLayer (vedeți tabelul de mai jos)
    • Description — opțional, dar recomandat
  4. Salvați și repetați

    Faceți clic pe Save, 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 Event parameter trebuie să corespundă exact — GA4 este sensibil la majuscule.

Nume dimensiuneEvent parameterTip
Property IDproperty_idText
Property nameproperty_nameText
Property brandproperty_brandText
Property chainproperty_chainText
Property URL nameproperty_url_nameText
City namecity_nameText
Country codecountry_codeText
Check-in datestart_dateText
Check-out dateend_dateText
Number of adultsnum_adultsNumber
Number of childrennum_childrenNumber
Cancellation policycancellation_policyText
Rate plan IDrate_plan_idText
Room rate IDroom_rate_idText
Room rate nameroom_rate_nameText
Number of perksnum_perksNumber
Room locationroom_locationText
Room viewroom_viewText
Room classificationroom_classificationText
Bed typebed_typeText

Următoarele evenimente sunt disponibile în dataLayer-ul Wink, dar nu fac parte din funnel-ul standard de rezervare. Ele pot fi declanșate de alte interacțiuni pe platformă.

{
"event": "add_to_wishlist",
"ecommerce": {
"currency": "USD",
"value": 299.00,
"items": [ ]
}
}
{
"event": "remove_from_cart",
"ecommerce": {
"currency": "USD",
"value": 299.00,
"items": [ ]
}
}
{
"event": "select_item",
"ecommerce": {
"item_list_id": "featured_hotels",
"item_list_name": "Featured Hotels",
"items": [ ]
}
}
{
"event": "view_cart"
}

Nicio încărcătură ecommerce nu este inclusă cu acest eveniment.

{
"event": "view_promotion",
"ecommerce": {
"creative_name": "Summer Banner",
"creative_slot": "hero",
"promotion_id": "promo_001",
"promotion_name": "Summer Sale",
"items": [ ]
}
}
{
"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"
}
}
{
"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"
}
}
{
"event": "generate_lead",
"ecommerce": {
"currency": "USD",
"value": 0.00
}
}
{
"event": "join_group",
"ecommerce": {
"group_id": "group_abc"
}
}
{
"event": "earn_virtual_currency",
"ecommerce": {
"virtual_currency_name": "WinkPoints",
"value": 100
}
}
{
"event": "spend_virtual_currency",
"ecommerce": {
"virtual_currency_name": "WinkPoints",
"value": 50,
"item_name": "Room Upgrade"
}
}
{
"event": "level_start",
"ecommerce": {
"level_name": "Gold"
}
}
{
"event": "level_end",
"ecommerce": {
"level_name": "Gold",
"success": true
}
}
{
"event": "level_up",
"ecommerce": {
"level": 2,
"character": "traveler"
}
}
{
"event": "post_score",
"ecommerce": {
"score": 980,
"level": 2,
"character": "traveler"
}
}
{
"event": "unlock_achievement",
"ecommerce": {
"achievement_id": "first_booking"
}
}
{
"event": "tutorial_begin",
"ecommerce": {}
}
{
"event": "tutorial_complete",
"ecommerce": {}
}

Acesta este un eveniment personalizat Wink — nu face parte din setul standard de evenimente GA4. Este împins la fiecare navigare pe pagină și conține 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"
}
ProprietateDescriere
deviceTipul dispozitivului detectat — Desktop, Android, iPhone, iPad sau similar
deviceAgentStringul raw al user agent-ului
osSistemul de operare detectat — Windows, MacOS, Linux, UNIX
pathCalea paginii curente
titleTitlul paginii curente
userIdIdentificatorul utilizatorului autentificat (omise dacă nu este logat)
startDateData check-in din sesiunea curentă de căutare
endDateData check-out din sesiunea curentă de căutare
guestsNumărul de oaspeți din sesiunea curentă de căutare
roomsNumărul de camere din sesiunea curentă de căutare