Integració d'Analytics amb GTM
Pots connectar qualsevol contenidor de Google Tag Manager (GTM) a Wink introduint el seu ID de Contenidor GTM al portal de Wink. Un cop connectat, el teu contenidor es carrega automàticament per a la teva propietat i llegeix directament els esdeveniments de reserva de Wink — cobrint tot el recorregut del client des de la cerca fins a la reserva completada. Un cas d’ús habitual és un contenidor Sojern per a retargeting i publicitat, però qualsevol contenidor GTM funciona igual.
Què Has de Fer
Section titled “Què Has de Fer”-
Obtenir el teu ID de Contenidor GTM
Obtingues el teu ID de Contenidor GTM (format
GTM-XXXXXXX). Si prové d’un soci com Sojern, demana específicament l’ID de Contenidor GTM — és diferent d’un pixel o ID d’etiqueta. -
Introduir-lo al portal de Wink
Inicia sessió a app.wink.travel, selecciona el teu compte i obre la configuració de personalització. A la secció Analytics & integrations, enganxa el teu ID de Contenidor GTM al camp GTM Container ID i desa. La teva integració ja està activa.
-
Confirmar amb el teu proveïdor
Si el teu contenidor prové d’un soci com Sojern, informa al teu gestor de compte que la integració està activa. Ells poden verificar des del seu costat que les etiquetes s’estan activant correctament a
wink.travelper a la teva propietat i que les dades flueixen al teu compte.
Què Fa Wink al Nostre Costat
Section titled “Què Fa Wink al Nostre Costat”Per transparència, això és el que Wink configura per fer que aquesta integració funcioni:
- Un camp d’ID de Contenidor GTM està disponible a la secció Analytics & integrations de la configuració de personalització. Quan introdueixes el teu ID de Contenidor, Wink valida el format (
GTM-XXXXXXX) i el desa de manera segura associat a la teva propietat. - A cada pàgina on la teva propietat està activa a Wink, el teu contenidor s’injecta directament a la pàgina — compartint el propi
window.dataLayerde Wink — de manera que es carrega juntament amb el contenidor propi de Wink sense dependre de cap configuració addicional. Això passa automàticament, sense cap treball específic per propietat per part de l’equip de Wink. - El teu contenidor es carrega de manera asíncrona, així no afecta el rendiment de càrrega de la pàgina per als teus clients.
- El seguiment propi de Wink i el teu contenidor funcionen en paral·lel, llegint del mateix
dataLayercompartit. Cada esdeveniment de reserva que Wink registra està disponible simultàniament per al teu contenidor. - Quan la teva propietat no està sent visualitzada — per exemple, quan un client està navegant per un altre hotel a Wink — el teu contenidor no es carrega, així només rep dades rellevants per a la teva propietat.
- La reserva completada (
purchase) s’activa al navegador a la pàgina de gràcies. Un ID de Contenidor GTM és una caixa negra — Wink no pot assumir quines etiquetes hi ha dins — així que Wink mai crida Google en nom teu des dels seus servidors. En canvi, qualsevol etiqueta GA4 o de conversió que hi hagi dins del teu contenidor rep elpurchaseal client, exactament com qualsevol altre esdeveniment de reserva. Com que el proveïdor de pagament redirigeix el navegador del client fora i després torna, Wink reconnecta la sessió d’analytics que la redirecció va interrompre abans d’activar elpurchase, de manera que la venda s’atribueix a la visita original del client i no es compta com una nova sessió.
Referència DataLayer
Section titled “Referència DataLayer”Wink envia esdeveniments compatibles amb GA4 al dataLayer durant tot el recorregut del client. El teu contenidor GTM llegeix d’aquest mateix dataLayer compartit, així qualsevol disparador o variable que configuris té accés a totes les propietats descrites a continuació.
Cada esdeveniment segueix l’estructura estàndard GA4 Enhanced Ecommerce: una cadena event de nivell superior i un objecte ecommerce. Abans de cada push, Wink neteja la càrrega útil ecommerce anterior per evitar que dades antigues afectin nous disparadors.
Esdeveniments del recorregut de reserva
Section titled “Esdeveniments del recorregut de reserva”Aquests esdeveniments s’activen automàticament mentre un client avança pel procés de reserva. Configura els teus disparadors GTM com a disparadors de Custom Event que coincideixin amb els noms d’esdeveniment següents.
| Pas | Esdeveniment | Quan s’activa |
|---|---|---|
| 1 | view_item_list | Es carrega la graella o llista d’inventari d’hotels |
| 2 | view_item | El client visualitza la pàgina d’una propietat específica |
| 3 | add_to_cart | El client afegeix una habitació a la cistella |
| 4 | begin_checkout | Es carrega la pàgina de pagament / checkout |
| 5 | add_payment_info | El client selecciona un mètode de pagament |
| 6 | login | El client s’autentica via SSO |
| 7 | purchase | La reserva es confirma |
| 8 | refund | La reserva es cancel·la |
view_item_list
Section titled “view_item_list”S’activa quan es mostra una graella o llista d’inventari d’hotels.
{ "event": "view_item_list", "ecommerce": { "item_list_id": "featured_hotels", "item_list_name": "Featured Hotels", "items": [ ] }}view_item
Section titled “view_item”S’activa quan un client visualitza una propietat específica.
{ "event": "view_item", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}add_to_cart
Section titled “add_to_cart”S’activa quan un client afegeix una habitació a la cistella.
{ "event": "add_to_cart", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}begin_checkout
Section titled “begin_checkout”S’activa quan es carrega la pàgina de pagament / checkout.
{ "event": "begin_checkout", "ecommerce": { "currency": "USD", "value": 299.00, "coupon": "SUMMER10", "items": [ ] }}coupon només està present quan s’ha aplicat un codi de descompte.
add_payment_info
Section titled “add_payment_info”S’activa quan el client selecciona o confirma un mètode de pagament.
{ "event": "add_payment_info", "ecommerce": { "currency": "USD", "value": 299.00, "coupon": "SUMMER10", "payment_type": "STRIPE", "items": [ ] }}payment_type s’omple amb el tipus d’adquirent de pagament. coupon només està present quan s’ha aplicat un codi de descompte.
S’activa quan un client s’autentica via single sign-on.
{ "event": "login", "ecommerce": { "method": "IAM" }}purchase
Section titled “purchase”S’activa quan es confirma una reserva.
{ "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 és l’identificador únic del contracte de reserva. coupon, shipping i tax només estan presents quan s’apliquen.
refund
Section titled “refund”S’activa quan es cancel·la una reserva.
{ "event": "refund", "ecommerce": { "currency": "USD", "transaction_id": "bc-a1b2c3d4", "value": 299.00, "coupon": "SUMMER10", "shipping": 0.00, "tax": 0.00, "items": [ ] }}transaction_id coincideix amb l’esdeveniment purchase de la mateixa reserva. coupon, shipping i tax només estan presents quan s’apliquen.
Propietats dels ítems
Section titled “Propietats dels ítems”Tots els esdeveniments que inclouen un array items comparteixen el mateix esquema d’ítem. Cada propietat és opcional tret que s’indiqui que és obligatòria.
Camps estàndard GA4
Section titled “Camps estàndard GA4”Aquests camps són entesos nativament per GA4 i apareixen als informes ecommerce estàndard sense configuració addicional.
| Propietat | Tipus | Obligatori | Descripció |
|---|---|---|---|
item_id | string | Sí | Identificador únic per a l’habitació o producte |
item_name | string | — | Nom de l’habitació o producte |
affiliation | string | — | Nom de l’afiliat o venedor |
coupon | string | — | Codi de cupó aplicat a l’ítem |
currency | string | — | Codi de moneda ISO 4217 (ex. USD) |
creative_name | string | — | Nom creatiu usat en una promoció |
creative_slot | string | — | Posició de la ranura de la creativitat promocional |
discount | number | — | Quantitat de descompte aplicada |
index | number | — | Posició a la llista (basat en 1) |
item_brand | string | — | Nom de l’hotel o marca |
item_category | string | — | Tipus de producte — ex. GUEST_ROOM, ACTIVITY, ATTRACTION, MEETING_ROOM, RESTAURANT, SPA |
item_list_id | string | — | Identificador de la llista a la qual pertany l’ítem |
item_list_name | string | — | Nom visible de la llista |
location_id | string | — | Coordenades geogràfiques de la propietat |
price | number | — | Preu unitari |
promotion_id | string | — | Identificador de la promoció |
promotion_name | string | — | Nom visible de la promoció |
quantity | number | — | Quantitat (per defecte 1) |
Paràmetres personalitzats a nivell d’ítem
Section titled “Paràmetres personalitzats a nivell d’ítem”Aquests paràmetres porten context específic de reserva de Wink. GA4 no els mostra automàticament als informes — has de registrar cadascun com a dimensió personalitzada a nivell d’ítem a la teva propietat GA4 abans que aparegui en exploracions o informes estàndard. Consulta Dimensions personalitzades a GA4 més avall per a les instruccions.
| Propietat | Tipus | Descripció |
|---|---|---|
property_id | string | Identificador de la propietat a Wink |
property_name | string | Nom visible de la propietat |
property_brand | string | Marca a la qual pertany la propietat |
property_chain | string | Cadena a la qual pertany la propietat |
property_url_name | string | Slug amigable per URL de la propietat |
city_name | string | Ciutat on està ubicada la propietat |
country_code | string | Codi de país ISO 3166-1 alpha-2 |
start_date | string | Data d’entrada en format YYYY-MM-DD |
end_date | string | Data de sortida en format YYYY-MM-DD |
num_adults | number | Nombre d’adults a la reserva |
num_children | number | Nombre de nens a la reserva |
cancellation_policy | string | Un de: Refundable, Non-Refundable, Refundable-With-Restrictions, Non-Refundable-With-Restrictions |
rate_plan_id | string | Identificador del pla tarifari |
room_rate_id | string | Identificador de la tarifa específica de l’habitació |
room_rate_name | string | Nom visible de la tarifa de l’habitació |
num_perks | number | Nombre de beneficis inclosos amb la tarifa |
room_location | string | Descripció de la ubicació de l’habitació (ex. Overwater, Garden) |
room_view | string | Descripció de la vista de l’habitació (ex. Ocean, City) |
room_classification | string | Classificació o categoria de l’habitació (ex. Suite, Standard) |
bed_type | string | Configuració del llit de l’habitació (ex. King, Twin) |
Dimensions personalitzades a GA4
Section titled “Dimensions personalitzades a GA4”GA4 ignora els paràmetres personalitzats a nivell d’ítem als informes fins que no els registres explícitament com a dimensions personalitzades a nivell d’ítem. Només cal registrar els paràmetres que vols utilitzar als informes — no cal registrar els 20.
-
Obrir Definicions Personalitzades
A GA4, ves a Admin (icona d’engranatge a baix a l’esquerra) → selecciona la teva propietat → Data display → Custom definitions.
-
Crear una nova dimensió personalitzada
Fes clic a Create custom dimensions.
-
Omplir els detalls de la dimensió
- Dimension name — l’etiqueta llegible que apareix als informes GA4 (consulta la taula a continuació)
- Scope — selecciona Item
- Event parameter — el nom exacte del paràmetre tal com apareix al dataLayer (consulta la taula a continuació)
- Description — opcional però recomanat
-
Desar i repetir
Fes clic a Save, després repeteix per a cada paràmetre que vulguis fer el seguiment.
Utilitza la taula següent com a referència quan creïs dimensions personalitzades. El valor de Event parameter ha de coincidir exactament — GA4 distingeix majúscules i minúscules.
| Nom de la dimensió | Event parameter | Tipus |
|---|---|---|
| Property ID | property_id | Text |
| Property name | property_name | Text |
| Property brand | property_brand | Text |
| Property chain | property_chain | Text |
| Property URL name | property_url_name | Text |
| City name | city_name | Text |
| Country code | country_code | Text |
| Check-in date | start_date | Text |
| Check-out date | end_date | Text |
| Number of adults | num_adults | Number |
| Number of children | num_children | Number |
| Cancellation policy | cancellation_policy | Text |
| Rate plan ID | rate_plan_id | Text |
| Room rate ID | room_rate_id | Text |
| Room rate name | room_rate_name | Text |
| Number of perks | num_perks | Number |
| Room location | room_location | Text |
| Room view | room_view | Text |
| Room classification | room_classification | Text |
| Bed type | bed_type | Text |
Esdeveniments addicionals disponibles
Section titled “Esdeveniments addicionals disponibles”Els següents esdeveniments estan disponibles al dataLayer de Wink però no formen part del procés estàndard de reserva. Poden ser activats per altres interaccions a la plataforma.
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"}Aquest esdeveniment no inclou càrrega útil ecommerce.
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”Aquest és un esdeveniment personalitzat de Wink — no forma part del conjunt estàndard d’esdeveniments GA4. Es fa push a cada navegació de pàgina i porta context de dispositiu i sessió. No inclou un objecte ecommerce.
{ "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"}| Propietat | Descripció |
|---|---|
device | Tipus de dispositiu detectat — Desktop, Android, iPhone, iPad o similar |
deviceAgent | Cadena d’agent d’usuari en brut |
os | Sistema operatiu detectat — Windows, MacOS, Linux, UNIX |
path | Ruta de la pàgina actual |
title | Títol de la pàgina actual |
userId | Identificador d’usuari autenticat (omitit si no està loguejat) |
startDate | Data d’entrada de la sessió de cerca actual |
endDate | Data de sortida de la sessió de cerca actual |
guests | Nombre de convidats de la sessió de cerca actual |
rooms | Nombre d’habitacions de la sessió de cerca actual |
