Hoppa till innehåll

GTM Analytics-integration

Du kan ansluta vilken som helst Google Tag Manager (GTM)-behållare till Wink genom att ange dess GTM Container ID i Wink-portalen. När den är ansluten laddas din behållare automatiskt för din fastighet och läser Wink:s bokningsevenemang direkt — vilket täcker hela gästreseflödet från sökning till slutförd bokning. Ett vanligt användningsfall är en Sojern-behållare för retargeting och reklam, men vilken GTM-behållare som helst fungerar på samma sätt.


  1. Skaffa ditt GTM Container ID

    Skaffa ditt GTM Container ID (format GTM-XXXXXXX). Om det kommer från en partner som Sojern, begär GTM Container ID specifikt — det skiljer sig från en pixel- eller tagg-ID.

  2. Ange det i Wink-portalen

    Logga in på app.wink.travel, välj ditt konto och gå till fliken Anpassningar. Klistra in ditt GTM Container ID i fältet GTM och spara. Din integration är nu aktiv.

  3. (Valfritt) Lägg till ett GA4 Measurement ID + API Secret för serverbaserad köpregistrering

    GTM-behållare körs helt i gästens webbläsare, så en slutförd bokning kan missas om gästen stänger fliken under betalningsomdirigeringen. Om din behållare laddar en GA4-egendom och du vill att slutförda bokningar ska registreras pålitligt, ange även GA4:ans Measurement ID och Measurement Protocol API secret i GTM-sektionen. Wink skickar då purchase för den egendomen server-side, precis som beskrivs i guiden GA4 Analytics Integration. Lämna dessa tomma om du bara behöver spårning i webbläsaren.

  4. Bekräfta med din leverantör

    Om din behållare kommer från en partner som Sojern, meddela din kontohanterare att integrationen är aktiv. De kan verifiera från sin sida att taggarna avfyras korrekt på wink.travel för din fastighet och att data flödar in i ditt konto.


För transparens, här är vad Wink konfigurerar för att få denna integration att fungera:

  • Ett GTM Container ID-fält finns tillgängligt i fliken Anpassningar i din Wink-portal. När du anger ditt Container ID validerar Wink formatet (GTM-XXXXXXX) och lagrar det säkert kopplat till din fastighet.
  • På varje sida där din fastighet är aktiv på Wink injiceras din behållare direkt i sidan — den delar Wink:s egen window.dataLayer — så den laddas parallellt med Winks egen behållare utan beroende av någon extra konfiguration. Detta sker automatiskt, utan arbete per fastighet från Wink-teamet.
  • Din behållare laddas asynkront, så den påverkar inte sidladdningsprestandan för dina gäster.
  • Winks egen spårning och din behållare körs parallellt, och läser från samma delade dataLayer. Varje bokningsevenemang som Wink spårar är samtidigt tillgängligt för din behållare.
  • När din fastighet inte visas — till exempel när en gäst bläddrar bland ett annat hotell på Wink — laddas inte din behållare, så den får bara data som är relevant för din fastighet.
  • Om du angav ett GA4 Measurement ID + API secret (steg 3 ovan) skickas purchase för slutförda bokningar dessutom server-side via GA4 Measurement Protocol, så en försäljning registreras även om gästen aldrig återvänder till bekräftelsesidan.

Wink skickar GA4-kompatibla händelser till dataLayer genom hela gästreseflödet. Din GTM-behållare läser från samma delade dataLayer, så alla triggers eller variabler du konfigurerar har tillgång till alla egenskaper som beskrivs nedan.

Varje händelse följer standardstrukturen för GA4 Enhanced Ecommerce: en överordnad event-sträng och ett ecommerce-objekt. Innan varje push rensar Wink den tidigare ecommerce-payloaden för att förhindra att gammal data läcker in i nya triggers.


Dessa händelser avfyras automatiskt när en gäst rör sig genom bokningstratten. Konfigurera dina GTM-triggers som Custom Event-triggers som matchar händelsenamnen nedan.

StegHändelseNär den avfyras
1view_item_listHotellinventariets rutnät eller lista laddas
2view_itemGäst tittar på en specifik fastighetssida
3add_to_cartGäst lägger till ett rum i kundvagnen
4begin_checkoutKassan/betalningssidan laddas
5add_payment_infoGäst väljer betalningsmetod
6loginGäst autentiserar via SSO
7purchaseBokning bekräftas
8refundBokning avbokas

Avfyras när ett hotellinventarierutnät eller lista renderas.

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

Avfyras när en gäst tittar på en specifik fastighet.

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

Avfyras när en gäst lägger till ett rum i sin kundvagn.

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

Avfyras när kassan/betalningssidan laddas.

{
"event": "begin_checkout",
"ecommerce": {
"currency": "USD",
"value": 299.00,
"coupon": "SUMMER10",
"items": [ ]
}
}

coupon finns endast när en rabattkod har använts.


Avfyras när gästen väljer eller bekräftar en betalningsmetod.

{
"event": "add_payment_info",
"ecommerce": {
"currency": "USD",
"value": 299.00,
"coupon": "SUMMER10",
"payment_type": "STRIPE",
"items": [ ]
}
}

payment_type fylls i från betalningsförvärvarens typ. coupon finns endast när en rabattkod har använts.


Avfyras när en gäst autentiserar via single sign-on.

{
"event": "login",
"ecommerce": {
"method": "IAM"
}
}

Avfyras när en bokning bekräftas.

{
"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 är det unika bokningskontrakts-ID:t. coupon, shipping och tax finns endast när det är tillämpligt.


Avfyras när en bokning avbokas.

{
"event": "refund",
"ecommerce": {
"currency": "USD",
"transaction_id": "bc-a1b2c3d4",
"value": 299.00,
"coupon": "SUMMER10",
"shipping": 0.00,
"tax": 0.00,
"items": [ ]
}
}

transaction_id matchar purchase-händelsen för samma bokning. coupon, shipping och tax finns endast när det är tillämpligt.


Alla händelser som inkluderar en items-array delar samma objektschema. Varje egenskap är valfri om inte annat anges.

Dessa fält förstås inbyggt av GA4 och visas i standardrapporter för e-handel utan ytterligare konfiguration.

EgenskapTypObligatoriskBeskrivning
item_idstringJaUnikt ID för rummet eller produkten
item_namestringNamn på rummet eller produkten
affiliationstringAffiliate- eller säljarnamn
couponstringAnvänd rabattkod för objektet
currencystringISO 4217 valutakod (t.ex. USD)
creative_namestringKreativt namn som används i en kampanj
creative_slotstringPlats för kampanjens kreativa inslag
discountnumberRabattsumma som tillämpats
indexnumberPosition i listan (1-baserad)
item_brandstringHotell- eller varumärkesnamn
item_categorystringProdukttyp — t.ex. GUEST_ROOM, ACTIVITY, ATTRACTION, MEETING_ROOM, RESTAURANT, SPA
item_list_idstringIdentifierare för listan objektet tillhör
item_list_namestringVisningsnamn för listan
location_idstringGeokoordinater för fastigheten
pricenumberEnhetspris
promotion_idstringIdentifierare för kampanjen
promotion_namestringVisningsnamn för kampanjen
quantitynumberKvantitet (standard är 1)

Dessa parametrar bär Wink-specifik bokningskontext. GA4 visar dem inte automatiskt i rapporter — du måste registrera varje som en anpassad dimension med objektomfång i din GA4-egendom innan de visas i utforskningar eller standardrapporter. Se Anpassade dimensioner i GA4 nedan för instruktioner.

EgenskapTypBeskrivning
property_idstringWink-fastighetsidentifierare
property_namestringVisningsnamn för fastigheten
property_brandstringVarumärke fastigheten tillhör
property_chainstringKedja fastigheten tillhör
property_url_namestringURL-vänlig slug för fastigheten
city_namestringStad där fastigheten ligger
country_codestringISO 3166-1 alpha-2 landskod
start_datestringIncheckningsdatum i formatet ÅÅÅÅ-MM-DD
end_datestringUtcheckningsdatum i formatet ÅÅÅÅ-MM-DD
num_adultsnumberAntal vuxna i bokningen
num_childrennumberAntal barn i bokningen
cancellation_policystringEn av: Refundable, Non-Refundable, Refundable-With-Restrictions, Non-Refundable-With-Restrictions
rate_plan_idstringIdentifierare för prisplanen
room_rate_idstringIdentifierare för det specifika rumspriset
room_rate_namestringVisningsnamn för rumspriset
num_perksnumberAntal förmåner som ingår i priset
room_locationstringPlatsbeskrivning för rummet (t.ex. Overwater, Garden)
room_viewstringUtsiktsbeskrivning för rummet (t.ex. Ocean, City)
room_classificationstringRumsklassificering eller nivå (t.ex. Suite, Standard)
bed_typestringSängkonfiguration för rummet (t.ex. King, Twin)

GA4 ignorerar anpassade objektparametrar i rapporter tills du explicit registrerar dem som anpassade dimensioner med objektomfång. Du behöver bara registrera de parametrar du tänker använda i rapporter — du behöver inte registrera alla 20.

  1. Öppna Anpassade definitioner

    I GA4, gå till Admin (kugghjulet nere till vänster) → välj din egendom → Data displayCustom definitions.

  2. Skapa en ny anpassad dimension

    Klicka på Create custom dimensions.

  3. Fyll i dimensionens detaljer

    • Dimension name — den läsbara etiketten som visas i GA4-rapporter (se tabellen nedan)
    • Scope — välj Item
    • Event parameter — exakt parameternamn som det visas i dataLayer (se tabellen nedan)
    • Description — valfritt men rekommenderas
  4. Spara och upprepa

    Klicka på Save, och upprepa för varje parameter du vill spåra.

Använd följande tabell som referens när du skapar anpassade dimensioner. Värdet för Event parameter måste matcha exakt — GA4 är skiftlägeskänsligt.

Dimensionens namnEvent parameterTyp
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

Följande händelser finns i Wink dataLayer men ingår inte i standardbokningstratten. De kan avfyras av andra interaktioner på plattformen.

{
"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 ingår med denna händelse.

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

Detta är en anpassad Wink-händelse — inte en del av standard GA4-händelseuppsättningen. Den skickas vid varje sidnavigering och bär med sig enhets- och sessionskontext. Den inkluderar inget 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"
}
EgenskapBeskrivning
deviceUpptäckt enhetstyp — Desktop, Android, iPhone, iPad eller liknande
deviceAgentRå användaragentsträng
osUpptäckt operativsystem — Windows, MacOS, Linux, UNIX
pathAktuell sidväg
titleAktuell sidtitel
userIdIdentifierare för autentiserad användare (utesluts när ej inloggad)
startDateIncheckningsdatum från aktuell sökningssession
endDateUtcheckningsdatum från aktuell sökningssession
guestsAntal gäster från aktuell sökningssession
roomsAntal rum från aktuell sökningssession