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 beslaat de volledige gastreis 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 open uw aanpassingsinstellingen. Plak in de sectie Analytics & integraties uw GTM Container ID in het veld GTM Container ID en sla op. Uw integratie is nu actief.
-
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 gegevens in uw account binnenkomen.
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 de sectie Analytics & integraties van uw aanpassingsinstellingen. 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 het naast Wink’s eigen container laadt zonder afhankelijkheid van extra configuratie. Dit gebeurt automatisch, zonder dat het Wink-team per accommodatie hoeft te werken. - Uw container wordt asynchroon geladen, zodat dit de laadtijd van pagina’s 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 wanneer een gast een ander hotel op Wink bekijkt — wordt uw container niet geladen, zodat het alleen gegevens ontvangt die relevant zijn voor uw accommodatie.
- De voltooide boeking (
purchase) wordt in de browser afgevuurd op de bedankpagina. Een GTM Container ID is een black box — Wink kan niet aannemen welke tags erin zitten — dus Wink roept Google nooit namens u aan vanaf zijn servers. In plaats daarvan ontvangt elke GA4- of conversietag in uw container depurchaseclient-side, precies zoals elk ander boekingsevenement. Omdat de betalingsprovider de browser van de gast weg- en terugstuurt, herstelt Wink de analytics-sessie die door de redirect werd onderbroken voordatpurchasewordt afgevuurd, zodat de verkoop wordt toegeschreven aan het oorspronkelijke bezoek van de gast en niet als een nieuwe sessie wordt geteld.
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 afvuurt |
|---|---|---|
| 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-/betalingspagina wordt geladen |
| 5 | add_payment_info | Gast selecteert een betaalmethode |
| 6 | login | Gast logt in via SSO |
| 7 | purchase | Boeking is bevestigd |
| 8 | refund | Boeking is geannuleerd |
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-/betalingspagina 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 betalingsacquirer. 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 itemparameters 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 onderstaande tabel als referentie bij het aanmaken van aangepaste dimensies. De waarde van Eventparameter moet exact overeenkomen — GA4 is hoofdlettergevoelig.
| Dimensienaam | Eventparameter | Type |
|---|---|---|
| Property ID | property_id | Tekst |
| Property naam | property_name | Tekst |
| Property merk | property_brand | Tekst |
| Property keten | property_chain | Tekst |
| Property 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 |
| Kamertarief naam | 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"}Er wordt geen ecommerce payload meegeleverd met dit event.
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 | Geauthentificeerde 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 |
