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 ID de píxel o etiqueta. -
Introduir-lo al portal de Wink
Inicia sessió a app.wink.travel, selecciona el teu compte i ves a la pestanya Personalitzacions. Enganxa el teu ID de Contenidor GTM al camp GTM i desa. La teva integració ja està activa.
-
(Opcional) Afegir un ID de Mesura GA4 + Secret API per a compres per servidor
Els contenidors GTM s’executen completament al navegador del client, així que una reserva completada es pot perdre si el client tanca la pestanya durant la redirecció de pagament. Si el teu contenidor carrega una propietat GA4 i vols que les reserves completades es registrin de manera fiable, també introdueix l’ID de Mesura i el secret de l’API del Protocol de Mesura d’aquesta GA4 a la secció GTM. Wink enviarà llavors la
purchaseper a aquesta propietat des del servidor, exactament com es descriu a la guia de Integració d’Analytics GA4. Deixa aquests camps en blanc si només necessites el seguiment al navegador. -
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 pestanya de Personalitzacions del teu portal Wink. 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 — així es carrega juntament amb el contenidor propi de Wink sense dependre de cap configuració addicional. Això passa automàticament, sense cap treball 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 pàgina per als teus clients.
- El seguiment propi de Wink i el teu contenidor s’executen 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 s’està visualitzant — 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.
- Si has proporcionat un ID de Mesura GA4 + secret API (pas 3 anterior), la
purchasede les reserves completades s’envia addicionalment des del servidor via el Protocol de Mesura GA4, així es registra una venda encara que el client no torni a la pàgina de confirmació.
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 Esdeveniment Personalitzat 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 inici de sessió únic (SSO).
{ "event": "login", "ecommerce": { "method": "IAM" }}purchase
Section titled “purchase”S’activa quan una reserva es confirma.
{ "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 una reserva es cancel·la.
{ "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 articles
Section titled “Propietats dels articles”Tots els esdeveniments que inclouen un array items comparteixen el mateix esquema d’articles. 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 cap 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’article |
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’article |
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’article
Section titled “Paràmetres personalitzats a nivell d’article”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’article a la teva propietat GA4 abans que apareguin a 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 d’articles als informes fins que no els registres explícitament com a dimensions personalitzades a nivell d’article. Només cal registrar els paràmetres que vols utilitzar als informes — no cal registrar els 20.
-
Obrir Definicions Personalitzades
A GA4, ves a Administrador (icona d’engranatge a baix a l’esquerra) → selecciona la teva propietat → Visualització de dades → Definicions personalitzades.
-
Crear una nova dimensió personalitzada
Fes clic a Crear dimensions personalitzades.
-
Omplir els detalls de la dimensió
- Nom de la dimensió — l’etiqueta llegible que apareix als informes GA4 (consulta la taula a continuació)
- Abast — selecciona Article
- Paràmetre d’esdeveniment — el nom exacte del paràmetre tal com apareix al dataLayer (consulta la taula a continuació)
- Descripció — opcional però recomanada
-
Desar i repetir
Fes clic a Desar, 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 Paràmetre d’esdeveniment ha de coincidir exactament — GA4 distingeix majúscules i minúscules.
| Nom de la dimensió | Paràmetre d’esdeveniment | Tipus |
|---|---|---|
| ID de la propietat | property_id | Text |
| Nom de la propietat | property_name | Text |
| Marca de la propietat | property_brand | Text |
| Cadena de la propietat | property_chain | Text |
| Nom URL de la propietat | property_url_name | Text |
| Nom de la ciutat | city_name | Text |
| Codi de país | country_code | Text |
| Data d’entrada | start_date | Text |
| Data de sortida | end_date | Text |
| Nombre d’adults | num_adults | Nombre |
| Nombre de nens | num_children | Nombre |
| Política de cancel·lació | cancellation_policy | Text |
| ID del pla tarifari | rate_plan_id | Text |
| ID de la tarifa d’habitació | room_rate_id | Text |
| Nom de la tarifa d’habitació | room_rate_name | Text |
| Nombre de beneficis | num_perks | Nombre |
| Ubicació de l’habitació | room_location | Text |
| Vista de l’habitació | room_view | Text |
| Classificació de l’habitació | room_classification | Text |
| Tipus de llit | bed_type | Text |
Esdeveniments addicionals disponibles
Section titled “Esdeveniments addicionals disponibles”Els esdeveniments següents 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 cap 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 |
