Ir al contenido

Integración de Analytics con GTM

Puedes conectar cualquier contenedor de Google Tag Manager (GTM) a Wink ingresando su ID de contenedor GTM en el portal de Wink. Una vez conectado, tu contenedor se carga automáticamente para tu propiedad y lee directamente los eventos de reserva de Wink, cubriendo todo el recorrido del huésped desde la búsqueda hasta la reserva completada. Un caso de uso común es un contenedor de Sojern para retargeting y publicidad, pero cualquier contenedor GTM funciona de la misma manera.


  1. Obtén tu ID de Contenedor GTM

    Obtén tu ID de contenedor GTM (formato GTM-XXXXXXX). Si proviene de un socio como Sojern, solicita específicamente el ID de contenedor GTM — es diferente de un pixel o ID de etiqueta.

  2. Ingresa el ID en el Portal de Wink

    Inicia sesión en app.wink.travel, selecciona tu cuenta y abre la configuración de personalización. En la sección Analytics & integrations, pega tu ID de contenedor GTM en el campo GTM Container ID y guarda. Tu integración ya está activa.

  3. Confirma con tu Proveedor

    Si tu contenedor proviene de un socio como Sojern, informa a tu gerente de cuenta que la integración está activa. Ellos pueden verificar desde su lado que las etiquetas se disparan correctamente en wink.travel para tu propiedad y que los datos fluyen hacia tu cuenta.


Para mayor transparencia, esto es lo que Wink configura para que esta integración funcione:

  • Un campo para el ID de contenedor GTM está disponible en la sección Analytics & integrations de tu configuración de personalización. Cuando ingresas tu ID de contenedor, Wink valida el formato (GTM-XXXXXXX) y lo almacena de forma segura asociado a tu propiedad.
  • En cada página donde tu propiedad está activa en Wink, tu contenedor se inyecta directamente en la página — compartiendo el propio window.dataLayer de Wink — para que se cargue junto con el contenedor propio de Wink sin depender de ninguna configuración adicional. Esto ocurre automáticamente, sin trabajo por propiedad por parte del equipo de Wink.
  • Tu contenedor se carga de forma asíncrona, por lo que no afecta el rendimiento de carga de página para tus huéspedes.
  • El seguimiento propio de Wink y tu contenedor se ejecutan en paralelo, leyendo del mismo dataLayer compartido. Cada evento de reserva que Wink rastrea está disponible simultáneamente para tu contenedor.
  • Cuando tu propiedad no está siendo vista — por ejemplo, cuando un huésped navega por otro hotel en Wink — tu contenedor no se carga, por lo que solo recibe datos relevantes para tu propiedad.
  • La reserva completada (purchase) se dispara en el navegador en la página de agradecimiento. Un ID de contenedor GTM es una caja negra — Wink no puede asumir qué etiquetas contiene — por lo que Wink nunca llama a Google en tu nombre desde sus servidores. En cambio, cualquier etiqueta GA4 o de conversión que esté en tu contenedor recibe el evento purchase del lado del cliente, exactamente como cualquier otro evento de reserva. Debido a que el proveedor de pago redirige el navegador del huésped fuera y de vuelta, Wink reconecta la sesión de analytics que la redirección interrumpió antes de disparar purchase, para que la venta se atribuya a la visita original del huésped y no se cuente como una sesión nueva.

Wink envía eventos compatibles con GA4 al dataLayer durante todo el recorrido del huésped. Tu contenedor GTM lee de este mismo dataLayer compartido, por lo que cualquier activador o variable que configures tiene acceso a todas las propiedades descritas a continuación.

Cada evento sigue la estructura estándar de GA4 Enhanced Ecommerce: una cadena event de nivel superior y un objeto ecommerce. Antes de cada push, Wink limpia la carga útil ecommerce previa para evitar que datos antiguos se mezclen en nuevos activadores.


Estos eventos se disparan automáticamente a medida que un huésped avanza por el embudo de reserva. Configura tus activadores GTM como activadores de Evento Personalizado que coincidan con los nombres de evento a continuación.

PasoEventoCuándo se Dispara
1view_item_listSe carga la cuadrícula o lista de inventario hotelero
2view_itemEl huésped ve la página de una propiedad específica
3add_to_cartEl huésped añade una habitación al carrito
4begin_checkoutSe carga la página de pago / checkout
5add_payment_infoEl huésped selecciona un método de pago
6loginEl huésped se autentica vía SSO
7purchaseLa reserva se confirma
8refundLa reserva se cancela

Se dispara cuando se renderiza una cuadrícula o lista de inventario hotelero.

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

Se dispara cuando un huésped ve una propiedad específica.

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

Se dispara cuando un huésped añade una habitación a su carrito.

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

Se dispara cuando se carga la página de pago / checkout.

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

coupon solo está presente cuando se aplicó un código de descuento.


Se dispara cuando el huésped selecciona o confirma un método de pago.

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

payment_type se llena con el tipo de adquirente de pago. coupon solo está presente cuando se aplicó un código de descuento.


Se dispara cuando un huésped se autentica vía inicio de sesión único.

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

Se dispara cuando una reserva se 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 es el identificador único del contrato de reserva. coupon, shipping y tax solo están presentes cuando aplican.


Se dispara cuando una reserva se cancela.

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

transaction_id coincide con el evento purchase de la misma reserva. coupon, shipping y tax solo están presentes cuando aplican.


Todos los eventos que incluyen un arreglo items comparten el mismo esquema de ítem. Cada propiedad es opcional a menos que se indique como requerida.

Estos campos son entendidos nativamente por GA4 y aparecen en los informes estándar de ecommerce sin configuración adicional.

PropiedadTipoRequeridoDescripción
item_idstringIdentificador único para la habitación o producto
item_namestringNombre de la habitación o producto
affiliationstringNombre del afiliado o vendedor
couponstringCódigo de cupón aplicado al ítem
currencystringCódigo de moneda ISO 4217 (ej. USD)
creative_namestringNombre creativo usado en una promoción
creative_slotstringPosición del slot de la promoción creativa
discountnumberMonto de descuento aplicado
indexnumberPosición en la lista (basado en 1)
item_brandstringNombre del hotel o marca
item_categorystringTipo de producto — ej. GUEST_ROOM, ACTIVITY, ATTRACTION, MEETING_ROOM, RESTAURANT, SPA
item_list_idstringIdentificador de la lista a la que pertenece el ítem
item_list_namestringNombre visible de la lista
location_idstringCoordenadas geográficas de la propiedad
pricenumberPrecio unitario
promotion_idstringIdentificador de la promoción
promotion_namestringNombre visible de la promoción
quantitynumberCantidad (por defecto 1)

Estos parámetros llevan contexto específico de reserva de Wink. GA4 no los muestra automáticamente en informes — debes registrar cada uno como una dimensión personalizada a nivel de ítem en tu propiedad GA4 antes de que aparezcan en exploraciones o informes estándar. Consulta Dimensiones Personalizadas en GA4 más abajo para instrucciones.

PropiedadTipoDescripción
property_idstringIdentificador de propiedad en Wink
property_namestringNombre visible de la propiedad
property_brandstringMarca a la que pertenece la propiedad
property_chainstringCadena a la que pertenece la propiedad
property_url_namestringSlug amigable para URL de la propiedad
city_namestringCiudad donde está ubicada la propiedad
country_codestringCódigo de país ISO 3166-1 alfa-2
start_datestringFecha de check-in en formato YYYY-MM-DD
end_datestringFecha de check-out en formato YYYY-MM-DD
num_adultsnumberNúmero de adultos en la reserva
num_childrennumberNúmero de niños en la reserva
cancellation_policystringUno de: Refundable, Non-Refundable, Refundable-With-Restrictions, Non-Refundable-With-Restrictions
rate_plan_idstringIdentificador del plan tarifario
room_rate_idstringIdentificador de la tarifa específica de la habitación
room_rate_namestringNombre visible de la tarifa de habitación
num_perksnumberNúmero de beneficios incluidos con la tarifa
room_locationstringDescripción de la ubicación de la habitación (ej. Overwater, Garden)
room_viewstringDescripción de la vista de la habitación (ej. Ocean, City)
room_classificationstringClasificación o categoría de la habitación (ej. Suite, Standard)
bed_typestringConfiguración de camas de la habitación (ej. King, Twin)

GA4 ignora los parámetros personalizados a nivel de ítem en los informes hasta que los registras explícitamente como dimensiones personalizadas a nivel de ítem. Solo necesitas registrar los parámetros que planeas usar en informes — no es necesario registrar los 20.

  1. Abre Definiciones Personalizadas

    En GA4, ve a Admin (icono de engranaje abajo a la izquierda) → selecciona tu propiedad → Data displayCustom definitions.

  2. Crea una nueva dimensión personalizada

    Haz clic en Create custom dimensions.

  3. Completa los detalles de la dimensión

    • Dimension name — la etiqueta legible que aparece en los informes GA4 (ver tabla abajo)
    • Scope — selecciona Item
    • Event parameter — el nombre exacto del parámetro tal como aparece en el dataLayer (ver tabla abajo)
    • Description — opcional pero recomendado
  4. Guarda y repite

    Haz clic en Save, luego repite para cada parámetro que quieras rastrear.

Usa la siguiente tabla como referencia al crear dimensiones personalizadas. El valor de Event parameter debe coincidir exactamente — GA4 distingue mayúsculas y minúsculas.

Nombre de dimensiónParámetro de eventoTipo
Property IDproperty_idTexto
Property nameproperty_nameTexto
Property brandproperty_brandTexto
Property chainproperty_chainTexto
Property URL nameproperty_url_nameTexto
City namecity_nameTexto
Country codecountry_codeTexto
Check-in datestart_dateTexto
Check-out dateend_dateTexto
Number of adultsnum_adultsNúmero
Number of childrennum_childrenNúmero
Cancellation policycancellation_policyTexto
Rate plan IDrate_plan_idTexto
Room rate IDroom_rate_idTexto
Room rate nameroom_rate_nameTexto
Number of perksnum_perksNúmero
Room locationroom_locationTexto
Room viewroom_viewTexto
Room classificationroom_classificationTexto
Bed typebed_typeTexto

Los siguientes eventos están disponibles en el dataLayer de Wink pero no forman parte del embudo estándar de reserva. Pueden dispararse por otras interacciones en la plataforma.

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

Este evento no incluye carga útil ecommerce.

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

Este es un evento personalizado de Wink — no forma parte del conjunto estándar de eventos GA4. Se envía en cada navegación de página y lleva contexto de dispositivo y sesión. No incluye un objeto 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"
}
PropiedadDescripción
deviceTipo de dispositivo detectado — Desktop, Android, iPhone, iPad o similar
deviceAgentCadena cruda del agente de usuario
osSistema operativo detectado — Windows, MacOS, Linux, UNIX
pathRuta actual de la página
titleTítulo actual de la página
userIdIdentificador de usuario autenticado (omitido si no está logueado)
startDateFecha de check-in de la sesión de búsqueda actual
endDateFecha de check-out de la sesión de búsqueda actual
guestsNúmero de huéspedes de la sesión de búsqueda actual
roomsNúmero de habitaciones de la sesión de búsqueda actual