GTM Analytics-integratie
U kunt elke Google Tag Manager (GTM) container koppelen aan Wink door de GTM Container ID in te voeren in het Wink-portaal. Zodra deze is gekoppeld, wordt uw container automatisch geladen voor uw accommodatie en leest deze direct de boekingsevenementen van Wink — dit dekt de volledige gastreis af van zoeken tot voltooide boeking. Een veelvoorkomend gebruik is een Sojern container voor retargeting en advertenties, maar elke GTM-container werkt op dezelfde manier.
Wat U Moet Doen
Section titled “Wat U Moet Doen”-
Verkrijg Uw GTM Container ID
Verkrijg uw GTM Container ID (formaat
GTM-XXXXXXX). Als deze van een partner zoals Sojern komt, vraag dan specifiek om de GTM Container ID — deze is anders dan een pixel- of tag-ID. -
Voer Het In in het Wink-portaal
Log in op app.wink.travel, selecteer uw account en ga naar het tabblad Aanpassingen. Plak uw GTM Container ID in het veld GTM en sla op. Uw integratie is nu actief.
-
(Optioneel) Voeg een GA4 Measurement ID + API Secret toe voor Server-Side Aankopen
GTM-containers draaien volledig in de browser van de gast, dus een voltooide boeking kan gemist worden als de gast het tabblad sluit tijdens de betalingsomleiding. Als uw container een GA4-property laadt en u wilt dat voltooide boekingen betrouwbaar worden geregistreerd, voer dan ook de Measurement ID en Measurement Protocol API secret van die GA4 in bij de GTM-sectie. Wink stuurt dan de
purchasevoor die property server-side, precies zoals beschreven in de GA4 Analytics-integratie handleiding. Laat deze velden leeg als u alleen tracking in de browser nodig heeft. -
Bevestig bij Uw Provider
Als uw container van een partner zoals Sojern komt, laat uw accountmanager weten dat de integratie actief is. Zij kunnen aan hun kant verifiëren dat tags correct afgevuurd worden op
wink.travelvoor uw accommodatie en dat data in uw account binnenkomt.
Wat Wink Aan Onze Kant Doet
Section titled “Wat Wink Aan Onze Kant Doet”Voor transparantie, dit is wat Wink configureert om deze integratie te laten werken:
- Een GTM Container ID-veld is beschikbaar in het tabblad Aanpassingen van uw Wink-portaal. Wanneer u uw Container ID invoert, valideert Wink het formaat (
GTM-XXXXXXX) en slaat het veilig op bij uw accommodatie. - Op elke pagina waar uw accommodatie actief is op Wink, wordt uw container direct in de pagina geïnjecteerd — waarbij Wink’s eigen
window.dataLayerwordt gedeeld — zodat deze samen met Wink’s eigen container laadt zonder afhankelijkheid van extra configuratie. Dit gebeurt automatisch, zonder dat het Wink-team per accommodatie iets hoeft te doen. - Uw container wordt asynchroon geladen, zodat dit de laadsnelheid van de pagina voor uw gasten niet beïnvloedt.
- Wink’s eigen tracking en uw container draaien parallel, waarbij ze lezen uit dezelfde gedeelde
dataLayer. Elk boekingsevenement dat Wink volgt, is tegelijkertijd beschikbaar voor uw container. - Wanneer uw accommodatie niet wordt bekeken — bijvoorbeeld als een gast een ander hotel op Wink bekijkt — wordt uw container niet geladen, zodat deze alleen data ontvangt die relevant is voor uw accommodatie.
- Als u een GA4 Measurement ID + API secret heeft opgegeven (stap 3 hierboven), wordt de
purchasevoor voltooide boekingen ook server-side verzonden via het GA4 Measurement Protocol, zodat een verkoop wordt geregistreerd, zelfs als de gast nooit terugkeert naar de bevestigingspagina.
DataLayer Referentie
Section titled “DataLayer Referentie”Wink pusht GA4-compatibele events naar de dataLayer gedurende de hele gastreis. Uw GTM-container leest uit dezezelfde gedeelde dataLayer, dus elke trigger of variabele die u configureert heeft toegang tot alle hieronder beschreven eigenschappen.
Elk event volgt de standaard GA4 Enhanced Ecommerce-structuur: een top-level event string en een ecommerce object. Voor elke push wist Wink de vorige ecommerce payload om te voorkomen dat verouderde data in nieuwe triggers terechtkomt.
Boekingsreis Events
Section titled “Boekingsreis Events”Deze events worden automatisch afgevuurd terwijl een gast door de boekingsfunnel beweegt. Configureer uw GTM-triggers als Custom Event triggers die overeenkomen met de onderstaande eventnamen.
| Stap | Event | Wanneer het afgevuurd wordt |
|---|---|---|
| 1 | view_item_list | Hotelinventarislijst of raster wordt geladen |
| 2 | view_item | Gast bekijkt een specifieke accommodatiepagina |
| 3 | add_to_cart | Gast voegt een kamer toe aan de winkelwagen |
| 4 | begin_checkout | Checkout / betaalpagina wordt geladen |
| 5 | add_payment_info | Gast selecteert een betaalmethode |
| 6 | login | Gast logt in via SSO |
| 7 | purchase | Boekingsbevestiging |
| 8 | refund | Boekingsannulering |
view_item_list
Section titled “view_item_list”Wordt afgevuurd wanneer een hotelinventarislijst of raster wordt weergegeven.
{ "event": "view_item_list", "ecommerce": { "item_list_id": "featured_hotels", "item_list_name": "Featured Hotels", "items": [ ] }}view_item
Section titled “view_item”Wordt afgevuurd wanneer een gast een specifieke accommodatie bekijkt.
{ "event": "view_item", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}add_to_cart
Section titled “add_to_cart”Wordt afgevuurd wanneer een gast een kamer aan de winkelwagen toevoegt.
{ "event": "add_to_cart", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}begin_checkout
Section titled “begin_checkout”Wordt afgevuurd wanneer de checkout / betaalpagina wordt geladen.
{ "event": "begin_checkout", "ecommerce": { "currency": "USD", "value": 299.00, "coupon": "SUMMER10", "items": [ ] }}coupon is alleen aanwezig wanneer een kortingscode is toegepast.
add_payment_info
Section titled “add_payment_info”Wordt afgevuurd wanneer de gast een betaalmethode selecteert of bevestigt.
{ "event": "add_payment_info", "ecommerce": { "currency": "USD", "value": 299.00, "coupon": "SUMMER10", "payment_type": "STRIPE", "items": [ ] }}payment_type wordt gevuld met het type betaalacquirer. coupon is alleen aanwezig wanneer een kortingscode is toegepast.
Wordt afgevuurd wanneer een gast zich authenticieert via single sign-on.
{ "event": "login", "ecommerce": { "method": "IAM" }}purchase
Section titled “purchase”Wordt afgevuurd wanneer een boeking is bevestigd.
{ "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 is de unieke boekingscontractidentificatie. coupon, shipping en tax zijn alleen aanwezig indien van toepassing.
refund
Section titled “refund”Wordt afgevuurd wanneer een boeking wordt geannuleerd.
{ "event": "refund", "ecommerce": { "currency": "USD", "transaction_id": "bc-a1b2c3d4", "value": 299.00, "coupon": "SUMMER10", "shipping": 0.00, "tax": 0.00, "items": [ ] }}transaction_id komt overeen met het purchase event voor dezelfde boeking. coupon, shipping en tax zijn alleen aanwezig indien van toepassing.
Item-eigenschappen
Section titled “Item-eigenschappen”Alle events die een items array bevatten, delen hetzelfde item-schema. Elke eigenschap is optioneel tenzij als verplicht gemarkeerd.
Standaard GA4-velden
Section titled “Standaard GA4-velden”Deze velden worden native begrepen door GA4 en verschijnen in standaard ecommerce-rapporten zonder extra configuratie.
| Eigenschap | Type | Verplicht | Beschrijving |
|---|---|---|---|
item_id | string | Ja | Unieke identificatie voor de kamer of het product |
item_name | string | — | Naam van de kamer of het product |
affiliation | string | — | Affiliate- of verkopersnaam |
coupon | string | — | Toegepaste kortingscode op het item |
currency | string | — | ISO 4217 valutacode (bijv. USD) |
creative_name | string | — | Creatieve naam gebruikt in een promotie |
creative_slot | string | — | Positie van de promotiecreatie |
discount | number | — | Toegepaste korting |
index | number | — | Positie in de lijst (1-gebaseerd) |
item_brand | string | — | Hotel- of merknaam |
item_category | string | — | Producttype — bijv. GUEST_ROOM, ACTIVITY, ATTRACTION, MEETING_ROOM, RESTAURANT, SPA |
item_list_id | string | — | Identificatie van de lijst waartoe dit item behoort |
item_list_name | string | — | Weergavenaam van de lijst |
location_id | string | — | Geografische coördinaten van de accommodatie |
price | number | — | Eenheidsprijs |
promotion_id | string | — | Identificatie van de promotie |
promotion_name | string | — | Weergavenaam van de promotie |
quantity | number | — | Aantal (standaard 1) |
Aangepaste item-parameters
Section titled “Aangepaste item-parameters”Deze parameters bevatten Wink-specifieke boekingscontext. GA4 toont ze niet automatisch in rapporten — u moet elk van deze registreren als een item-scoped custom dimension in uw GA4-property voordat ze verschijnen in exploraties of standaardrapporten. Zie Aangepaste dimensies in GA4 hieronder voor instructies.
| Eigenschap | Type | Beschrijving |
|---|---|---|
property_id | string | Wink accommodatie-identificatie |
property_name | string | Weergavenaam van de accommodatie |
property_brand | string | Merk waartoe de accommodatie behoort |
property_chain | string | Ketens waartoe de accommodatie behoort |
property_url_name | string | URL-vriendelijke slug voor de accommodatie |
city_name | string | Stad waar de accommodatie zich bevindt |
country_code | string | ISO 3166-1 alpha-2 landcode |
start_date | string | Incheckdatum in YYYY-MM-DD formaat |
end_date | string | Uitcheckdatum in YYYY-MM-DD formaat |
num_adults | number | Aantal volwassenen in de boeking |
num_children | number | Aantal kinderen in de boeking |
cancellation_policy | string | Eén van: Refundable, Non-Refundable, Refundable-With-Restrictions, Non-Refundable-With-Restrictions |
rate_plan_id | string | Identificatie van het tariefplan |
room_rate_id | string | Identificatie van het specifieke kamertarief |
room_rate_name | string | Weergavenaam van het kamertarief |
num_perks | number | Aantal extra’s inbegrepen bij het tarief |
room_location | string | Locatiebeschrijving van de kamer (bijv. Overwater, Garden) |
room_view | string | Uitzichtbeschrijving van de kamer (bijv. Ocean, City) |
room_classification | string | Kamerclassificatie of niveau (bijv. Suite, Standard) |
bed_type | string | Bedconfiguratie van de kamer (bijv. King, Twin) |
Aangepaste dimensies in GA4
Section titled “Aangepaste dimensies in GA4”GA4 negeert aangepaste item-parameters in rapporten totdat u ze expliciet registreert als item-scoped custom dimensions. U hoeft alleen de parameters te registreren die u in rapporten wilt gebruiken — niet alle 20.
-
Open Custom Definitions
Ga in GA4 naar Beheer (tandwiel-icoon linksonder) → selecteer uw property → Dataweergave → Aangepaste definities.
-
Maak een nieuwe aangepaste dimensie
Klik op Aangepaste dimensies maken.
-
Vul de dimensiedetails in
- Dimensienaam — de leesbare naam die in GA4-rapporten verschijnt (zie onderstaande tabel)
- Scope — selecteer Item
- Eventparameter — de exacte parameternaam zoals die in de dataLayer verschijnt (zie tabel)
- Beschrijving — optioneel maar aanbevolen
-
Opslaan en herhalen
Klik op Opslaan en herhaal dit voor elke parameter die u wilt volgen.
Gebruik de volgende tabel als referentie bij het aanmaken van aangepaste dimensies. De waarde van Eventparameter moet exact overeenkomen — GA4 is hoofdlettergevoelig.
| Dimensienaam | Eventparameter | Type |
|---|---|---|
| Accommodatie-ID | property_id | Tekst |
| Accommodatienaam | property_name | Tekst |
| Accommodatiemerk | property_brand | Tekst |
| Accommodatieketen | property_chain | Tekst |
| Accommodatie URL-naam | property_url_name | Tekst |
| Stadnaam | city_name | Tekst |
| Landcode | country_code | Tekst |
| Incheckdatum | start_date | Tekst |
| Uitcheckdatum | end_date | Tekst |
| Aantal volwassenen | num_adults | Nummer |
| Aantal kinderen | num_children | Nummer |
| Annuleringsbeleid | cancellation_policy | Tekst |
| Tariefplan-ID | rate_plan_id | Tekst |
| Kamertarief-ID | room_rate_id | Tekst |
| Kamertariefnaam | room_rate_name | Tekst |
| Aantal extra’s | num_perks | Nummer |
| Kamerlocatie | room_location | Tekst |
| Kameruitzicht | room_view | Tekst |
| Kamerclassificatie | room_classification | Tekst |
| Bedtype | bed_type | Tekst |
Extra Beschikbare Events
Section titled “Extra Beschikbare Events”De volgende events zijn beschikbaar in de Wink dataLayer maar maken geen deel uit van de standaard boekingsfunnel. Ze kunnen worden afgevuurd door andere interacties op het platform.
add_to_wishlist
Section titled “add_to_wishlist”{ "event": "add_to_wishlist", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}remove_from_cart
Section titled “remove_from_cart”{ "event": "remove_from_cart", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}select_item
Section titled “select_item”{ "event": "select_item", "ecommerce": { "item_list_id": "featured_hotels", "item_list_name": "Featured Hotels", "items": [ ] }}view_cart
Section titled “view_cart”{ "event": "view_cart"}Bij dit event wordt geen ecommerce payload meegegeven.
view_promotion
Section titled “view_promotion”{ "event": "view_promotion", "ecommerce": { "creative_name": "Summer Banner", "creative_slot": "hero", "promotion_id": "promo_001", "promotion_name": "Summer Sale", "items": [ ] }}select_promotion
Section titled “select_promotion”{ "event": "select_promotion", "ecommerce": { "creative_name": "Summer Banner", "creative_slot": "hero", "promotion_id": "promo_001", "promotion_name": "Summer Sale", "items": [ ] }}search
Section titled “search”{ "event": "search", "ecommerce": { "search_term": "beachfront resort" }}select_content
Section titled “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
Section titled “sign_up”{ "event": "sign_up", "ecommerce": { "method": "email" }}generate_lead
Section titled “generate_lead”{ "event": "generate_lead", "ecommerce": { "currency": "USD", "value": 0.00 }}join_group
Section titled “join_group”{ "event": "join_group", "ecommerce": { "group_id": "group_abc" }}earn_virtual_currency
Section titled “earn_virtual_currency”{ "event": "earn_virtual_currency", "ecommerce": { "virtual_currency_name": "WinkPoints", "value": 100 }}spend_virtual_currency
Section titled “spend_virtual_currency”{ "event": "spend_virtual_currency", "ecommerce": { "virtual_currency_name": "WinkPoints", "value": 50, "item_name": "Room Upgrade" }}level_start
Section titled “level_start”{ "event": "level_start", "ecommerce": { "level_name": "Gold" }}level_end
Section titled “level_end”{ "event": "level_end", "ecommerce": { "level_name": "Gold", "success": true }}level_up
Section titled “level_up”{ "event": "level_up", "ecommerce": { "level": 2, "character": "traveler" }}post_score
Section titled “post_score”{ "event": "post_score", "ecommerce": { "score": 980, "level": 2, "character": "traveler" }}unlock_achievement
Section titled “unlock_achievement”{ "event": "unlock_achievement", "ecommerce": { "achievement_id": "first_booking" }}tutorial_begin
Section titled “tutorial_begin”{ "event": "tutorial_begin", "ecommerce": {}}tutorial_complete
Section titled “tutorial_complete”{ "event": "tutorial_complete", "ecommerce": {}}virtualPageView
Section titled “virtualPageView”Dit is een aangepast Wink-event — geen onderdeel van de standaard GA4-eventset. Het wordt gepusht bij elke paginanavigatie en bevat apparaat- en sessiecontext. Het bevat geen ecommerce object.
{ "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"}| Eigenschap | Beschrijving |
|---|---|
device | Gedetecteerd apparaattype — Desktop, Android, iPhone, iPad of vergelijkbaar |
deviceAgent | Raw user agent string |
os | Gedetecteerd besturingssysteem — Windows, MacOS, Linux, UNIX |
path | Huidige paginapad |
title | Huidige paginatitel |
userId | Geauthenticeerde gebruikersidentificatie (weggelaten als niet ingelogd) |
startDate | Incheckdatum van de huidige zoeksessie |
endDate | Uitcheckdatum van de huidige zoeksessie |
guests | Aantal gasten van de huidige zoeksessie |
rooms | Aantal kamers van de huidige zoeksessie |
