Integração de Analytics com GTM
Você pode conectar qualquer container do Google Tag Manager (GTM) ao Wink inserindo seu ID do Container GTM no portal Wink. Uma vez conectado, seu container é carregado automaticamente para sua propriedade e lê os eventos de reserva do Wink diretamente — cobrindo toda a jornada do hóspede, desde a busca até a reserva concluída. Um caso comum é um container Sojern para retargeting e publicidade, mas qualquer container GTM funciona da mesma forma.
O Que Você Precisa Fazer
Seção intitulada “O Que Você Precisa Fazer”-
Obtenha Seu ID do Container GTM
Obtenha seu ID do Container GTM (formato
GTM-XXXXXXX). Se for de um parceiro como Sojern, solicite especificamente o ID do Container GTM — ele é diferente do ID de pixel ou tag. -
Insira no Portal Wink
Faça login em app.wink.travel, selecione sua conta e vá para a aba Customizações. Cole seu ID do Container GTM no campo GTM e salve. Sua integração estará ativa.
-
(Opcional) Adicione um ID de Medição GA4 + Segredo da API para Compra Server-Side
Containers GTM rodam inteiramente no navegador do hóspede, então uma reserva concluída pode ser perdida se o hóspede fechar a aba durante o redirecionamento de pagamento. Se seu container carrega uma propriedade GA4 e você quer que as reservas concluídas sejam registradas de forma confiável, insira também o ID de Medição e o Segredo da API do Protocolo de Medição dessa GA4 na seção GTM. O Wink então enviará o evento
purchasepara essa propriedade server-side, exatamente como descrito no guia de Integração GA4 Analytics. Deixe em branco se precisar apenas do rastreamento no navegador. -
Confirme com Seu Provedor
Se seu container for de um parceiro como Sojern, informe seu gerente de conta que a integração está ativa. Eles podem verificar do lado deles se as tags estão disparando corretamente em
wink.travelpara sua propriedade e se os dados estão fluindo para sua conta.
O Que o Wink Faz do Nosso Lado
Seção intitulada “O Que o Wink Faz do Nosso Lado”Para transparência, aqui está o que o Wink configura para fazer essa integração funcionar:
- Um campo de ID do Container GTM está disponível na aba Customizações do seu portal Wink. Quando você insere seu ID do Container, o Wink valida o formato (
GTM-XXXXXXX) e o armazena com segurança vinculado à sua propriedade. - Em todas as páginas onde sua propriedade está ativa no Wink, seu container é injetado diretamente na página — compartilhando o próprio
window.dataLayerdo Wink — para que ele carregue junto com o container do Wink sem depender de nenhuma configuração extra. Isso acontece automaticamente, sem trabalho por propriedade da equipe Wink. - Seu container é carregado de forma assíncrona, para não afetar o desempenho do carregamento da página para seus hóspedes.
- O rastreamento do Wink e seu container rodam em paralelo, lendo do mesmo
dataLayercompartilhado. Todo evento de reserva que o Wink rastreia está simultaneamente disponível para seu container. - Quando sua propriedade não está sendo visualizada — por exemplo, quando um hóspede está navegando por outro hotel no Wink — seu container não é carregado, então ele só recebe dados relevantes para sua propriedade.
- Se você forneceu um ID de Medição GA4 + segredo da API (passo 3 acima), o evento
purchasepara reservas concluídas é enviado adicionalmente server-side via Protocolo de Medição GA4, para que a venda seja registrada mesmo que o hóspede nunca retorne à página de confirmação.
Referência do DataLayer
Seção intitulada “Referência do DataLayer”O Wink envia eventos compatíveis com GA4 para o dataLayer durante toda a jornada do hóspede. Seu container GTM lê desse mesmo dataLayer compartilhado, então qualquer gatilho ou variável que você configurar tem acesso a todas as propriedades descritas abaixo.
Cada evento segue a estrutura padrão do GA4 Enhanced Ecommerce: uma string event no nível superior e um objeto ecommerce. Antes de cada push, o Wink limpa o payload ecommerce anterior para evitar que dados antigos vazem para novos gatilhos.
Eventos da Jornada de Reserva
Seção intitulada “Eventos da Jornada de Reserva”Esses eventos disparam automaticamente conforme o hóspede avança pelo funil de reserva. Configure seus gatilhos GTM como gatilhos de Evento Personalizado que correspondam aos nomes dos eventos abaixo.
| Passo | Evento | Quando Dispara |
|---|---|---|
| 1 | view_item_list | Grade ou lista de inventário de hotéis carregada |
| 2 | view_item | Hóspede visualiza a página de uma propriedade específica |
| 3 | add_to_cart | Hóspede adiciona um quarto ao carrinho |
| 4 | begin_checkout | Página de checkout/pagamento carregada |
| 5 | add_payment_info | Hóspede seleciona um método de pagamento |
| 6 | login | Hóspede autentica via SSO |
| 7 | purchase | Reserva confirmada |
| 8 | refund | Reserva cancelada |
view_item_list
Seção intitulada “view_item_list”Dispara quando uma grade ou lista de inventário de hotéis é renderizada.
{ "event": "view_item_list", "ecommerce": { "item_list_id": "featured_hotels", "item_list_name": "Featured Hotels", "items": [ ] }}view_item
Seção intitulada “view_item”Dispara quando um hóspede visualiza uma propriedade específica.
{ "event": "view_item", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}add_to_cart
Seção intitulada “add_to_cart”Dispara quando um hóspede adiciona um quarto ao carrinho.
{ "event": "add_to_cart", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}begin_checkout
Seção intitulada “begin_checkout”Dispara quando a página de checkout/pagamento é carregada.
{ "event": "begin_checkout", "ecommerce": { "currency": "USD", "value": 299.00, "coupon": "SUMMER10", "items": [ ] }}coupon está presente apenas quando um código de desconto foi aplicado.
add_payment_info
Seção intitulada “add_payment_info”Dispara quando o hóspede seleciona ou confirma um método de pagamento.
{ "event": "add_payment_info", "ecommerce": { "currency": "USD", "value": 299.00, "coupon": "SUMMER10", "payment_type": "STRIPE", "items": [ ] }}payment_type é preenchido a partir do tipo do adquirente de pagamento. coupon está presente apenas quando um código de desconto foi aplicado.
Dispara quando um hóspede autentica via single sign-on.
{ "event": "login", "ecommerce": { "method": "IAM" }}purchase
Seção intitulada “purchase”Dispara quando uma reserva é confirmada.
{ "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 é o identificador único do contrato de reserva. coupon, shipping e tax estão presentes apenas quando aplicáveis.
Dispara quando uma reserva é cancelada.
{ "event": "refund", "ecommerce": { "currency": "USD", "transaction_id": "bc-a1b2c3d4", "value": 299.00, "coupon": "SUMMER10", "shipping": 0.00, "tax": 0.00, "items": [ ] }}transaction_id corresponde ao evento purchase da mesma reserva. coupon, shipping e tax estão presentes apenas quando aplicáveis.
Propriedades do Item
Seção intitulada “Propriedades do Item”Todos os eventos que incluem um array items compartilham o mesmo esquema de item. Cada propriedade é opcional, a menos que marcada como obrigatória.
Campos padrão do GA4
Seção intitulada “Campos padrão do GA4”Esses campos são entendidos nativamente pelo GA4 e aparecem em relatórios padrão de ecommerce sem configuração adicional.
| Propriedade | Tipo | Obrigatório | Descrição |
|---|---|---|---|
item_id | string | Sim | Identificador único do quarto ou produto |
item_name | string | — | Nome do quarto ou produto |
affiliation | string | — | Nome do afiliado ou vendedor |
coupon | string | — | Código de cupom aplicado ao item |
currency | string | — | Código de moeda ISO 4217 (ex: USD) |
creative_name | string | — | Nome criativo usado em uma promoção |
creative_slot | string | — | Posição do slot da promoção criativa |
discount | number | — | Valor do desconto aplicado |
index | number | — | Posição na lista (base 1) |
item_brand | string | — | Nome do hotel ou marca |
item_category | string | — | Tipo de produto — ex: GUEST_ROOM, ACTIVITY, ATTRACTION, MEETING_ROOM, RESTAURANT, SPA |
item_list_id | string | — | Identificador da lista a que o item pertence |
item_list_name | string | — | Nome exibido da lista |
location_id | string | — | Coordenadas geográficas da propriedade |
price | number | — | Preço unitário |
promotion_id | string | — | Identificador da promoção |
promotion_name | string | — | Nome exibido da promoção |
quantity | number | — | Quantidade (padrão 1) |
Parâmetros personalizados com escopo de item
Seção intitulada “Parâmetros personalizados com escopo de item”Esses parâmetros carregam contexto específico de reserva do Wink. O GA4 não os exibe automaticamente em relatórios — você deve registrar cada um como uma dimensão personalizada com escopo de item na sua propriedade GA4 antes que apareçam em explorações ou relatórios padrão. Veja Dimensões Personalizadas no GA4 abaixo para instruções.
| Propriedade | Tipo | Descrição |
|---|---|---|
property_id | string | Identificador da propriedade no Wink |
property_name | string | Nome exibido da propriedade |
property_brand | string | Marca à qual a propriedade pertence |
property_chain | string | Cadeia à qual a propriedade pertence |
property_url_name | string | Slug amigável para URL da propriedade |
city_name | string | Cidade onde a propriedade está localizada |
country_code | string | Código do país ISO 3166-1 alfa-2 |
start_date | string | Data do check-in no formato YYYY-MM-DD |
end_date | string | Data do check-out no formato YYYY-MM-DD |
num_adults | number | Número de adultos na reserva |
num_children | number | Número de crianças na reserva |
cancellation_policy | string | Um dos: Refundable, Non-Refundable, Refundable-With-Restrictions, Non-Refundable-With-Restrictions |
rate_plan_id | string | Identificador do plano tarifário |
room_rate_id | string | Identificador da tarifa específica do quarto |
room_rate_name | string | Nome exibido da tarifa do quarto |
num_perks | number | Número de benefícios incluídos na tarifa |
room_location | string | Descrição da localização do quarto (ex: Overwater, Garden) |
room_view | string | Descrição da vista do quarto (ex: Ocean, City) |
room_classification | string | Classificação ou categoria do quarto (ex: Suite, Standard) |
bed_type | string | Configuração da cama do quarto (ex: King, Twin) |
Dimensões Personalizadas no GA4
Seção intitulada “Dimensões Personalizadas no GA4”O GA4 ignora parâmetros personalizados de item em relatórios até que você os registre explicitamente como dimensões personalizadas com escopo de item. Você só precisa registrar os parâmetros que pretende usar em relatórios — não é necessário registrar todos os 20.
-
Abra Definições Personalizadas
No GA4, vá para Admin (ícone de engrenagem no canto inferior esquerdo) → selecione sua propriedade → Exibição de dados → Definições personalizadas.
-
Crie uma nova dimensão personalizada
Clique em Criar dimensões personalizadas.
-
Preencha os detalhes da dimensão
- Nome da dimensão — o rótulo legível que aparece nos relatórios GA4 (veja a tabela abaixo)
- Escopo — selecione Item
- Parâmetro do evento — o nome exato do parâmetro conforme aparece no dataLayer (veja a tabela abaixo)
- Descrição — opcional, mas recomendada
-
Salve e repita
Clique em Salvar e repita para cada parâmetro que deseja rastrear.
Use a tabela a seguir como referência ao criar dimensões personalizadas. O valor do Parâmetro do evento deve corresponder exatamente — o GA4 diferencia maiúsculas de minúsculas.
| Nome da dimensão | Parâmetro do evento | Tipo |
|---|---|---|
| ID da propriedade | property_id | Texto |
| Nome da propriedade | property_name | Texto |
| Marca da propriedade | property_brand | Texto |
| Cadeia da propriedade | property_chain | Texto |
| Nome URL da propriedade | property_url_name | Texto |
| Nome da cidade | city_name | Texto |
| Código do país | country_code | Texto |
| Data do check-in | start_date | Texto |
| Data do check-out | end_date | Texto |
| Número de adultos | num_adults | Número |
| Número de crianças | num_children | Número |
| Política de cancelamento | cancellation_policy | Texto |
| ID do plano tarifário | rate_plan_id | Texto |
| ID da tarifa do quarto | room_rate_id | Texto |
| Nome da tarifa do quarto | room_rate_name | Texto |
| Número de benefícios | num_perks | Número |
| Localização do quarto | room_location | Texto |
| Vista do quarto | room_view | Texto |
| Classificação do quarto | room_classification | Texto |
| Tipo de cama | bed_type | Texto |
Eventos Adicionais Disponíveis
Seção intitulada “Eventos Adicionais Disponíveis”Os seguintes eventos estão disponíveis no dataLayer do Wink, mas não fazem parte do funil padrão de reserva. Eles podem ser disparados por outras interações na plataforma.
add_to_wishlist
Seção intitulada “add_to_wishlist”{ "event": "add_to_wishlist", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}remove_from_cart
Seção intitulada “remove_from_cart”{ "event": "remove_from_cart", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}select_item
Seção intitulada “select_item”{ "event": "select_item", "ecommerce": { "item_list_id": "featured_hotels", "item_list_name": "Featured Hotels", "items": [ ] }}view_cart
Seção intitulada “view_cart”{ "event": "view_cart"}Nenhum payload ecommerce é incluído com este evento.
view_promotion
Seção intitulada “view_promotion”{ "event": "view_promotion", "ecommerce": { "creative_name": "Summer Banner", "creative_slot": "hero", "promotion_id": "promo_001", "promotion_name": "Summer Sale", "items": [ ] }}select_promotion
Seção intitulada “select_promotion”{ "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" }}select_content
Seção intitulada “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
Seção intitulada “sign_up”{ "event": "sign_up", "ecommerce": { "method": "email" }}generate_lead
Seção intitulada “generate_lead”{ "event": "generate_lead", "ecommerce": { "currency": "USD", "value": 0.00 }}join_group
Seção intitulada “join_group”{ "event": "join_group", "ecommerce": { "group_id": "group_abc" }}earn_virtual_currency
Seção intitulada “earn_virtual_currency”{ "event": "earn_virtual_currency", "ecommerce": { "virtual_currency_name": "WinkPoints", "value": 100 }}spend_virtual_currency
Seção intitulada “spend_virtual_currency”{ "event": "spend_virtual_currency", "ecommerce": { "virtual_currency_name": "WinkPoints", "value": 50, "item_name": "Room Upgrade" }}level_start
Seção intitulada “level_start”{ "event": "level_start", "ecommerce": { "level_name": "Gold" }}level_end
Seção intitulada “level_end”{ "event": "level_end", "ecommerce": { "level_name": "Gold", "success": true }}level_up
Seção intitulada “level_up”{ "event": "level_up", "ecommerce": { "level": 2, "character": "traveler" }}post_score
Seção intitulada “post_score”{ "event": "post_score", "ecommerce": { "score": 980, "level": 2, "character": "traveler" }}unlock_achievement
Seção intitulada “unlock_achievement”{ "event": "unlock_achievement", "ecommerce": { "achievement_id": "first_booking" }}tutorial_begin
Seção intitulada “tutorial_begin”{ "event": "tutorial_begin", "ecommerce": {}}tutorial_complete
Seção intitulada “tutorial_complete”{ "event": "tutorial_complete", "ecommerce": {}}virtualPageView
Seção intitulada “virtualPageView”Este é um evento personalizado do Wink — não faz parte do conjunto padrão de eventos GA4. Ele é enviado a cada navegação de página e carrega contexto de dispositivo e sessão. Não inclui um 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"}| Propriedade | Descrição |
|---|---|
device | Tipo de dispositivo detectado — Desktop, Android, iPhone, iPad ou similar |
deviceAgent | String bruta do user agent |
os | Sistema operacional detectado — Windows, MacOS, Linux, UNIX |
path | Caminho da página atual |
title | Título da página atual |
userId | Identificador do usuário autenticado (omitido quando não logado) |
startDate | Data do check-in da sessão de busca atual |
endDate | Data do check-out da sessão de busca atual |
guests | Número de hóspedes da sessão de busca atual |
rooms | Número de quartos da sessão de busca atual |
