GTM Analytics-integration
Du kan forbinde enhver Google Tag Manager (GTM) container til Wink ved at indtaste dens GTM Container ID i Wink-portalen. Når den er forbundet, indlæses din container automatisk for din ejendom og læser Winks bookingbegivenheder direkte — hvilket dækker hele gæstens rejse fra søgning til gennemført booking. Et almindeligt brugsscenarie er en Sojern container til retargeting og reklame, men enhver GTM-container fungerer på samme måde.
Hvad Du Skal Gøre
Sektion kaldt “Hvad Du Skal Gøre”-
Få dit GTM Container ID
Skaff dit GTM Container ID (format
GTM-XXXXXXX). Hvis det kommer fra en partner som Sojern, bed om GTM Container ID specifikt — det er forskelligt fra et pixel- eller tag-ID. -
Indtast det i Wink-portalen
Log ind på app.wink.travel, vælg din konto, og åbn dine tilpasningsindstillinger. I sektionen Analytics & integrations indsætter du dit GTM Container ID i feltet GTM Container ID og gemmer. Din integration er nu aktiv.
-
Bekræft med din udbyder
Hvis din container kommer fra en partner som Sojern, så giv din account manager besked om, at integrationen er aktiv. De kan verificere fra deres side, at tags affyres korrekt på
wink.travelfor din ejendom, og at data flyder ind i din konto.
Hvad Wink Gør På Vores Side
Sektion kaldt “Hvad Wink Gør På Vores Side”For gennemsigtighed er her, hvad Wink konfigurerer for at få denne integration til at fungere:
- Et GTM Container ID-felt er tilgængeligt i sektionen Analytics & integrations i dine tilpasningsindstillinger. Når du indtaster dit Container ID, validerer Wink formatet (
GTM-XXXXXXX) og gemmer det sikkert tilknyttet din ejendom. - På hver side, hvor din ejendom er aktiv på Wink, injiceres din container direkte i siden — den deler Winks egen
window.dataLayer— så den indlæses sammen med Winks egen container uden afhængighed af ekstra konfiguration. Dette sker automatisk, uden arbejde pr. ejendom fra Wink-teamet. - Din container indlæses asynkront, så den påvirker ikke sideindlæsningens ydeevne for dine gæster.
- Winks egen tracking og din container kører parallelt, og læser fra samme delte
dataLayer. Hver bookingbegivenhed, som Wink sporer, er samtidig tilgængelig for din container. - Når din ejendom ikke vises — for eksempel når en gæst browser et andet hotel på Wink — indlæses din container ikke, så den modtager kun data relevant for din ejendom.
- Den gennemførte booking (
purchase) affyres i browseren på takkesiden. Et GTM Container ID er en sort boks — Wink kan ikke antage, hvilke tags der er indeni — så Wink kalder aldrig Google på dine vegne fra sine servere. I stedet modtager den GA4- eller konverteringstag, der ligger i din container,purchaseklient-side, præcis som alle andre bookingbegivenheder. Fordi betalingsudbyderen omdirigerer gæstens browser væk og tilbage, genopretter Wink den analytics-session, som omdirigeringen afbrød, førpurchaseaffyres, så salget tilskrives gæstens oprindelige besøg i stedet for at tælle som en ny session.
DataLayer Reference
Sektion kaldt “DataLayer Reference”Wink skubber GA4-kompatible begivenheder til dataLayer gennem hele gæstens rejse. Din GTM-container læser fra denne samme delte dataLayer, så enhver trigger eller variabel, du konfigurerer, har adgang til alle egenskaber beskrevet nedenfor.
Hver begivenhed følger den standardiserede GA4 Enhanced Ecommerce-struktur: en topniveau event-streng og et ecommerce-objekt. Før hver push rydder Wink den tidligere ecommerce-payload for at forhindre forældede data i at påvirke nye triggers.
Bookingrejse-begivenheder
Sektion kaldt “Bookingrejse-begivenheder”Disse begivenheder affyres automatisk, når en gæst bevæger sig gennem bookingtragten. Konfigurer dine GTM-triggers som Custom Event triggers, der matcher begivenhedsnavnene nedenfor.
| Trin | Begivenhed | Hvornår den affyres |
|---|---|---|
| 1 | view_item_list | Hotelinventar-gitter eller liste indlæses |
| 2 | view_item | Gæst ser en specifik ejendomsside |
| 3 | add_to_cart | Gæst tilføjer et værelse til indkøbskurven |
| 4 | begin_checkout | Checkout-/betalingssiden indlæses |
| 5 | add_payment_info | Gæst vælger en betalingsmetode |
| 6 | login | Gæst autentificerer via SSO |
| 7 | purchase | Booking bekræftes |
| 8 | refund | Booking annulleres |
view_item_list
Sektion kaldt “view_item_list”Affyres, når et hotelinventar-gitter eller en liste vises.
{ "event": "view_item_list", "ecommerce": { "item_list_id": "featured_hotels", "item_list_name": "Featured Hotels", "items": [ ] }}view_item
Sektion kaldt “view_item”Affyres, når en gæst ser en specifik ejendom.
{ "event": "view_item", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}add_to_cart
Sektion kaldt “add_to_cart”Affyres, når en gæst tilføjer et værelse til sin kurv.
{ "event": "add_to_cart", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}begin_checkout
Sektion kaldt “begin_checkout”Affyres, når checkout-/betalingssiden indlæses.
{ "event": "begin_checkout", "ecommerce": { "currency": "USD", "value": 299.00, "coupon": "SUMMER10", "items": [ ] }}coupon er kun til stede, når en rabatkode er anvendt.
add_payment_info
Sektion kaldt “add_payment_info”Affyres, når gæsten vælger eller bekræfter en betalingsmetode.
{ "event": "add_payment_info", "ecommerce": { "currency": "USD", "value": 299.00, "coupon": "SUMMER10", "payment_type": "STRIPE", "items": [ ] }}payment_type udfyldes ud fra betalingsindløserens type. coupon er kun til stede, når en rabatkode er anvendt.
Affyres, når en gæst autentificerer via single sign-on.
{ "event": "login", "ecommerce": { "method": "IAM" }}purchase
Sektion kaldt “purchase”Affyres, når en booking bekræftes.
{ "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 er den unikke bookingkontrakt-identifikator. coupon, shipping og tax er kun til stede, når relevant.
refund
Sektion kaldt “refund”Affyres, når en booking annulleres.
{ "event": "refund", "ecommerce": { "currency": "USD", "transaction_id": "bc-a1b2c3d4", "value": 299.00, "coupon": "SUMMER10", "shipping": 0.00, "tax": 0.00, "items": [ ] }}transaction_id matcher purchase-begivenheden for samme booking. coupon, shipping og tax er kun til stede, når relevant.
Vareegenskaber
Sektion kaldt “Vareegenskaber”Alle begivenheder, der inkluderer et items-array, deler samme vare-skema. Hver egenskab er valgfri, medmindre den er markeret som påkrævet.
Standard GA4-felter
Sektion kaldt “Standard GA4-felter”Disse felter forstås indbygget af GA4 og vises i standard ecommerce-rapporter uden yderligere konfiguration.
| Egenskab | Type | Påkrævet | Beskrivelse |
|---|---|---|---|
item_id | string | Ja | Unik identifikator for værelset eller produktet |
item_name | string | — | Navn på værelset eller produktet |
affiliation | string | — | Affiliate- eller sælgernavn |
coupon | string | — | Anvendt rabatkode på varen |
currency | string | — | ISO 4217 valutakode (f.eks. USD) |
creative_name | string | — | Kreativt navn brugt i en kampagne |
creative_slot | string | — | Placeringsslot for kampagnekreativ |
discount | number | — | Anvendt rabatbeløb |
index | number | — | Position i listen (1-baseret) |
item_brand | string | — | Hotel- eller brandnavn |
item_category | string | — | Produkttype — f.eks. GUEST_ROOM, ACTIVITY, ATTRACTION, MEETING_ROOM, RESTAURANT, SPA |
item_list_id | string | — | Identifikator for listen, som varen tilhører |
item_list_name | string | — | Visningsnavn for listen |
location_id | string | — | Geokoordinater for ejendommen |
price | number | — | Enhedspris |
promotion_id | string | — | Identifikator for kampagnen |
promotion_name | string | — | Visningsnavn for kampagnen |
quantity | number | — | Antal (standard er 1) |
Tilpassede vareparametre
Sektion kaldt “Tilpassede vareparametre”Disse parametre bærer Wink-specifik bookingkontekst. GA4 viser dem ikke automatisk i rapporter — du skal registrere hver enkelt som en vare-scoped custom dimension i din GA4-ejendom, før de vises i udforskninger eller standardrapporter. Se Custom Dimensions in GA4 nedenfor for opsætningsinstruktioner.
| Egenskab | Type | Beskrivelse |
|---|---|---|
property_id | string | Wink ejendomsidentifikator |
property_name | string | Ejendommens visningsnavn |
property_brand | string | Brand, som ejendommen tilhører |
property_chain | string | Kæde, som ejendommen tilhører |
property_url_name | string | URL-venlig slug for ejendommen |
city_name | string | By, hvor ejendommen ligger |
country_code | string | ISO 3166-1 alpha-2 landekode |
start_date | string | Check-in dato i YYYY-MM-DD format |
end_date | string | Check-out dato i YYYY-MM-DD format |
num_adults | number | Antal voksne i bookingen |
num_children | number | Antal børn i bookingen |
cancellation_policy | string | En af: Refundable, Non-Refundable, Refundable-With-Restrictions, Non-Refundable-With-Restrictions |
rate_plan_id | string | Identifikator for prisplan |
room_rate_id | string | Identifikator for specifik værelsespris |
room_rate_name | string | Visningsnavn for værelsesprisen |
num_perks | number | Antal fordele inkluderet med prisen |
room_location | string | Lokationsbeskrivelse for værelset (f.eks. Overwater, Garden) |
room_view | string | Udsigtsbeskrivelse for værelset (f.eks. Ocean, City) |
room_classification | string | Værelsesklassifikation eller niveau (f.eks. Suite, Standard) |
bed_type | string | Sengkonfiguration for værelset (f.eks. King, Twin) |
Custom Dimensions i GA4
Sektion kaldt “Custom Dimensions i GA4”GA4 ignorerer tilpassede vareparametre i rapporter, indtil du eksplicit registrerer dem som vare-scoped custom dimensions. Du behøver kun at registrere de parametre, du vil bruge i rapporter — ikke alle 20.
-
Åbn Custom Definitions
I GA4, gå til Admin (gearikon nederst til venstre) → vælg din ejendom → Data display → Custom definitions.
-
Opret en ny custom dimension
Klik på Create custom dimensions.
-
Udfyld dimensionens detaljer
- Dimension name — den menneskelige læsbare etiket, der vises i GA4-rapporter (se tabel nedenfor)
- Scope — vælg Item
- Event parameter — det præcise parameternavn, som det vises i dataLayer (se tabel nedenfor)
- Description — valgfrit, men anbefalet
-
Gem og gentag
Klik på Save, og gentag for hver parameter, du vil spore.
Brug følgende tabel som reference, når du opretter custom dimensions. Værdien for Event parameter skal matche præcist — GA4 er case-sensitiv.
| Dimension navn | Event parameter | Type |
|---|---|---|
| Property ID | property_id | Tekst |
| Property name | property_name | Tekst |
| Property brand | property_brand | Tekst |
| Property chain | property_chain | Tekst |
| Property URL name | property_url_name | Tekst |
| City name | city_name | Tekst |
| Country code | country_code | Tekst |
| Check-in date | start_date | Tekst |
| Check-out date | end_date | Tekst |
| Number of adults | num_adults | Tal |
| Number of children | num_children | Tal |
| Cancellation policy | cancellation_policy | Tekst |
| Rate plan ID | rate_plan_id | Tekst |
| Room rate ID | room_rate_id | Tekst |
| Room rate name | room_rate_name | Tekst |
| Number of perks | num_perks | Tal |
| Room location | room_location | Tekst |
| Room view | room_view | Tekst |
| Room classification | room_classification | Tekst |
| Bed type | bed_type | Tekst |
Yderligere tilgængelige begivenheder
Sektion kaldt “Yderligere tilgængelige begivenheder”Følgende begivenheder er tilgængelige i Wink dataLayer, men er ikke en del af standard bookingtragt. De kan affyres af andre interaktioner på platformen.
add_to_wishlist
Sektion kaldt “add_to_wishlist”{ "event": "add_to_wishlist", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}remove_from_cart
Sektion kaldt “remove_from_cart”{ "event": "remove_from_cart", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}select_item
Sektion kaldt “select_item”{ "event": "select_item", "ecommerce": { "item_list_id": "featured_hotels", "item_list_name": "Featured Hotels", "items": [ ] }}view_cart
Sektion kaldt “view_cart”{ "event": "view_cart"}Ingen ecommerce payload er inkluderet med denne begivenhed.
view_promotion
Sektion kaldt “view_promotion”{ "event": "view_promotion", "ecommerce": { "creative_name": "Summer Banner", "creative_slot": "hero", "promotion_id": "promo_001", "promotion_name": "Summer Sale", "items": [ ] }}select_promotion
Sektion kaldt “select_promotion”{ "event": "select_promotion", "ecommerce": { "creative_name": "Summer Banner", "creative_slot": "hero", "promotion_id": "promo_001", "promotion_name": "Summer Sale", "items": [ ] }}search
Sektion kaldt “search”{ "event": "search", "ecommerce": { "search_term": "beachfront resort" }}select_content
Sektion kaldt “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
Sektion kaldt “sign_up”{ "event": "sign_up", "ecommerce": { "method": "email" }}generate_lead
Sektion kaldt “generate_lead”{ "event": "generate_lead", "ecommerce": { "currency": "USD", "value": 0.00 }}join_group
Sektion kaldt “join_group”{ "event": "join_group", "ecommerce": { "group_id": "group_abc" }}earn_virtual_currency
Sektion kaldt “earn_virtual_currency”{ "event": "earn_virtual_currency", "ecommerce": { "virtual_currency_name": "WinkPoints", "value": 100 }}spend_virtual_currency
Sektion kaldt “spend_virtual_currency”{ "event": "spend_virtual_currency", "ecommerce": { "virtual_currency_name": "WinkPoints", "value": 50, "item_name": "Room Upgrade" }}level_start
Sektion kaldt “level_start”{ "event": "level_start", "ecommerce": { "level_name": "Gold" }}level_end
Sektion kaldt “level_end”{ "event": "level_end", "ecommerce": { "level_name": "Gold", "success": true }}level_up
Sektion kaldt “level_up”{ "event": "level_up", "ecommerce": { "level": 2, "character": "traveler" }}post_score
Sektion kaldt “post_score”{ "event": "post_score", "ecommerce": { "score": 980, "level": 2, "character": "traveler" }}unlock_achievement
Sektion kaldt “unlock_achievement”{ "event": "unlock_achievement", "ecommerce": { "achievement_id": "first_booking" }}tutorial_begin
Sektion kaldt “tutorial_begin”{ "event": "tutorial_begin", "ecommerce": {}}tutorial_complete
Sektion kaldt “tutorial_complete”{ "event": "tutorial_complete", "ecommerce": {}}virtualPageView
Sektion kaldt “virtualPageView”Dette er en tilpasset Wink-begivenhed — ikke en del af standard GA4-begivenhedssættet. Den skubbes ved hver side-navigation og bærer enheds- og sessionskontekst. Den inkluderer ikke et ecommerce-objekt.
{ "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"}| Egenskab | Beskrivelse |
|---|---|
device | Registreret enhedstype — Desktop, Android, iPhone, iPad eller lignende |
deviceAgent | Rå brugeragent-streng |
os | Registreret operativsystem — Windows, MacOS, Linux, UNIX |
path | Aktuel side-sti |
title | Aktuel sidetitel |
userId | Identifikator for autentificeret bruger (udeladt, hvis ikke logget ind) |
startDate | Check-in dato fra den aktuelle søgesession |
endDate | Check-out dato fra den aktuelle søgesession |
guests | Antal gæster fra den aktuelle søgesession |
rooms | Antal værelser fra den aktuelle søgesession |
