Gå til indhold

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.


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

  2. Indtast det i Wink-portalen

    Log ind på app.wink.travel, vælg din konto, og gå til fanen Customizations. Indsæt dit GTM Container ID i feltet GTM og gem. Din integration er nu aktiv.

  3. (Valgfrit) Tilføj et GA4 Measurement ID + API Secret til server-side køb

    GTM-containere kører udelukkende i gæstens browser, så en gennemført booking kan gå tabt, hvis gæsten lukker fanen under betalingsomdirigeringen. Hvis din container indlæser en GA4-ejendom og du vil sikre, at gennemførte bookinger registreres pålideligt, skal du også indtaste GA4’s Measurement ID og Measurement Protocol API secret i GTM-sektionen. Wink sender så purchase for den ejendom server-side, præcis som beskrevet i GA4 Analytics Integration guiden. Lad disse være tomme, hvis du kun har brug for tracking i browseren.

  4. 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.travel for din ejendom, og at data flyder ind i din konto.


For gennemsigtighed er her, hvad Wink konfigurerer for at få denne integration til at fungere:

  • Et GTM Container ID-felt er tilgængeligt i fanen Customizations i din Wink-portal. 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.
  • Hvis du har angivet et GA4 Measurement ID + API secret (trin 3 ovenfor), sendes purchase for gennemførte bookinger desuden server-side via GA4 Measurement Protocol, så et salg registreres, selvom gæsten aldrig vender tilbage til bekræftelsessiden.

Wink skubber GA4-kompatible events 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 nedenstående egenskaber.

Hver event følger den standard 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.


Disse events affyres automatisk, når en gæst bevæger sig gennem bookingtragten. Konfigurer dine GTM-triggers som Custom Event triggers, der matcher event-navnene nedenfor.

TrinEventHvornår den affyres
1view_item_listHotelinventarliste eller grid indlæses
2view_itemGæst ser en specifik ejendomsside
3add_to_cartGæst tilføjer et værelse til indkøbskurven
4begin_checkoutCheckout-/betalingsside indlæses
5add_payment_infoGæst vælger betalingsmetode
6loginGæst autentificerer via SSO
7purchaseBooking bekræftes
8refundBooking annulleres

Affyres, når et hotelinventar-grid eller liste vises.

{
"event": "view_item_list",
"ecommerce": {
"item_list_id": "featured_hotels",
"item_list_name": "Featured Hotels",
"items": [ ]
}
}

Affyres, når en gæst ser en specifik ejendom.

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

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

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.


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

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.


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-eventet for samme booking. coupon, shipping og tax er kun til stede, når relevant.


Alle events, der inkluderer et items array, deler samme vare-skema. Hver egenskab er valgfri, medmindre den er markeret som påkrævet.

Disse felter forstås indbygget af GA4 og vises i standard ecommerce-rapporter uden yderligere konfiguration.

EgenskabTypePåkrævetBeskrivelse
item_idstringJaUnik identifikator for værelset eller produktet
item_namestringNavn på værelset eller produktet
affiliationstringAffiliate- eller sælgernavn
couponstringAnvendt rabatkode på varen
currencystringISO 4217 valutakode (f.eks. USD)
creative_namestringKreativt navn brugt i en kampagne
creative_slotstringPlaceringsslot for kampagnekreativ
discountnumberAnvendt rabatbeløb
indexnumberPosition i listen (1-baseret)
item_brandstringHotel- eller brandnavn
item_categorystringProdukttype — f.eks. GUEST_ROOM, ACTIVITY, ATTRACTION, MEETING_ROOM, RESTAURANT, SPA
item_list_idstringIdentifikator for listen, varen tilhører
item_list_namestringVisningsnavn for listen
location_idstringGeokoordinater for ejendommen
pricenumberEnhedspris
promotion_idstringIdentifikator for kampagnen
promotion_namestringVisningsnavn for kampagnen
quantitynumberAntal (standard er 1)

Disse parametre bærer Wink-specifik bookingkontekst. GA4 viser dem ikke automatisk i rapporter — du skal registrere hver enkelt som en item-scoped custom dimension i din GA4-ejendom, før de vises i udforskninger eller standardrapporter. Se Custom Dimensions in GA4 nedenfor for opsætningsinstruktioner.

EgenskabTypeBeskrivelse
property_idstringWink ejendomsidentifikator
property_namestringEjendommens visningsnavn
property_brandstringBrand ejendommen tilhører
property_chainstringKæde ejendommen tilhører
property_url_namestringURL-venlig slug for ejendommen
city_namestringBy, hvor ejendommen ligger
country_codestringISO 3166-1 alpha-2 landekode
start_datestringCheck-in dato i YYYY-MM-DD format
end_datestringCheck-out dato i YYYY-MM-DD format
num_adultsnumberAntal voksne i bookingen
num_childrennumberAntal børn i bookingen
cancellation_policystringEn af: Refundable, Non-Refundable, Refundable-With-Restrictions, Non-Refundable-With-Restrictions
rate_plan_idstringIdentifikator for rateplan
room_rate_idstringIdentifikator for specifik værelsesrate
room_rate_namestringVisningsnavn for værelsesraten
num_perksnumberAntal fordele inkluderet med raten
room_locationstringLokationsbeskrivelse for værelset (f.eks. Overwater, Garden)
room_viewstringUdsigtsbeskrivelse for værelset (f.eks. Ocean, City)
room_classificationstringVærelsesklassifikation eller niveau (f.eks. Suite, Standard)
bed_typestringSengkonfiguration for værelset (f.eks. King, Twin)

GA4 ignorerer brugerdefinerede vareparametre i rapporter, indtil du eksplicit registrerer dem som item-scoped custom dimensions. Du behøver kun at registrere de parametre, du vil bruge i rapporter — ikke alle 20.

  1. Åbn Custom Definitions

    I GA4, gå til Admin (gearikon nederst til venstre) → vælg din ejendom → Data displayCustom definitions.

  2. Opret en ny brugerdefineret dimension

    Klik på Create custom dimensions.

  3. Udfyld dimensionsdetaljer

    • Dimension name — det menneskelige læselige navn, 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 anbefales
  4. Gem og gentag

    Klik på Save, og gentag for hver parameter, du vil spore.

Brug følgende tabel som reference, når du opretter brugerdefinerede dimensioner. Værdien for Event parameter skal matche præcist — GA4 er case-sensitiv.

Dimension navnEvent parameterType
Property IDproperty_idTekst
Property nameproperty_nameTekst
Property brandproperty_brandTekst
Property chainproperty_chainTekst
Property URL nameproperty_url_nameTekst
City namecity_nameTekst
Country codecountry_codeTekst
Check-in datestart_dateTekst
Check-out dateend_dateTekst
Number of adultsnum_adultsTal
Number of childrennum_childrenTal
Cancellation policycancellation_policyTekst
Rate plan IDrate_plan_idTekst
Room rate IDroom_rate_idTekst
Room rate nameroom_rate_nameTekst
Number of perksnum_perksTal
Room locationroom_locationTekst
Room viewroom_viewTekst
Room classificationroom_classificationTekst
Bed typebed_typeTekst

Følgende events er tilgængelige i Wink dataLayer, men er ikke en del af standard bookingtragt. De kan affyres af andre interaktioner på platformen.

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

Ingen ecommerce payload er inkluderet med denne event.

{
"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": {}
}

Dette er en brugerdefineret Wink-event — ikke en del af standard GA4-event-sæ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"
}
EgenskabBeskrivelse
deviceRegistreret enhedstype — Desktop, Android, iPhone, iPad eller lignende
deviceAgentRå brugeragent-streng
osRegistreret operativsystem — Windows, MacOS, Linux, UNIX
pathAktuel side-sti
titleAktuel sidetitel
userIdIdentifikator for autentificeret bruger (udeladt, hvis ikke logget ind)
startDateCheck-in dato fra den aktuelle søgesession
endDateCheck-out dato fra den aktuelle søgesession
guestsAntal gæster fra den aktuelle søgesession
roomsAntal værelser fra den aktuelle søgesession