Pular para o conteúdo

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.


  1. 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.

  2. 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.

  3. (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 purchase para essa propriedade server-side, exatamente como descrito no guia de Integração GA4 Analytics. Deixe em branco se precisar apenas do rastreamento no navegador.

  4. 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.travel para sua propriedade e se os dados estão fluindo para sua conta.


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.dataLayer do 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 dataLayer compartilhado. 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 purchase para 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.

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.


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.

PassoEventoQuando Dispara
1view_item_listGrade ou lista de inventário de hotéis carregada
2view_itemHóspede visualiza a página de uma propriedade específica
3add_to_cartHóspede adiciona um quarto ao carrinho
4begin_checkoutPágina de checkout/pagamento carregada
5add_payment_infoHóspede seleciona um método de pagamento
6loginHóspede autentica via SSO
7purchaseReserva confirmada
8refundReserva cancelada

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": [ ]
}
}

Dispara quando um hóspede visualiza uma propriedade específica.

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

Dispara quando um hóspede adiciona um quarto ao carrinho.

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

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.


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

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.


Todos os eventos que incluem um array items compartilham o mesmo esquema de item. Cada propriedade é opcional, a menos que marcada como obrigatória.

Esses campos são entendidos nativamente pelo GA4 e aparecem em relatórios padrão de ecommerce sem configuração adicional.

PropriedadeTipoObrigatórioDescrição
item_idstringSimIdentificador único do quarto ou produto
item_namestringNome do quarto ou produto
affiliationstringNome do afiliado ou vendedor
couponstringCódigo de cupom aplicado ao item
currencystringCódigo de moeda ISO 4217 (ex: USD)
creative_namestringNome criativo usado em uma promoção
creative_slotstringPosição do slot da promoção criativa
discountnumberValor do desconto aplicado
indexnumberPosição na lista (base 1)
item_brandstringNome do hotel ou marca
item_categorystringTipo de produto — ex: GUEST_ROOM, ACTIVITY, ATTRACTION, MEETING_ROOM, RESTAURANT, SPA
item_list_idstringIdentificador da lista a que o item pertence
item_list_namestringNome exibido da lista
location_idstringCoordenadas geográficas da propriedade
pricenumberPreço unitário
promotion_idstringIdentificador da promoção
promotion_namestringNome exibido da promoção
quantitynumberQuantidade (padrão 1)

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.

PropriedadeTipoDescrição
property_idstringIdentificador da propriedade no Wink
property_namestringNome exibido da propriedade
property_brandstringMarca à qual a propriedade pertence
property_chainstringCadeia à qual a propriedade pertence
property_url_namestringSlug amigável para URL da propriedade
city_namestringCidade onde a propriedade está localizada
country_codestringCódigo do país ISO 3166-1 alfa-2
start_datestringData do check-in no formato YYYY-MM-DD
end_datestringData do check-out no formato YYYY-MM-DD
num_adultsnumberNúmero de adultos na reserva
num_childrennumberNúmero de crianças na reserva
cancellation_policystringUm dos: Refundable, Non-Refundable, Refundable-With-Restrictions, Non-Refundable-With-Restrictions
rate_plan_idstringIdentificador do plano tarifário
room_rate_idstringIdentificador da tarifa específica do quarto
room_rate_namestringNome exibido da tarifa do quarto
num_perksnumberNúmero de benefícios incluídos na tarifa
room_locationstringDescrição da localização do quarto (ex: Overwater, Garden)
room_viewstringDescrição da vista do quarto (ex: Ocean, City)
room_classificationstringClassificação ou categoria do quarto (ex: Suite, Standard)
bed_typestringConfiguração da cama do quarto (ex: King, Twin)

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.

  1. Abra Definições Personalizadas

    No GA4, vá para Admin (ícone de engrenagem no canto inferior esquerdo) → selecione sua propriedade → Exibição de dadosDefinições personalizadas.

  2. Crie uma nova dimensão personalizada

    Clique em Criar dimensões personalizadas.

  3. 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
  4. 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ãoParâmetro do eventoTipo
ID da propriedadeproperty_idTexto
Nome da propriedadeproperty_nameTexto
Marca da propriedadeproperty_brandTexto
Cadeia da propriedadeproperty_chainTexto
Nome URL da propriedadeproperty_url_nameTexto
Nome da cidadecity_nameTexto
Código do paíscountry_codeTexto
Data do check-instart_dateTexto
Data do check-outend_dateTexto
Número de adultosnum_adultsNúmero
Número de criançasnum_childrenNúmero
Política de cancelamentocancellation_policyTexto
ID do plano tarifáriorate_plan_idTexto
ID da tarifa do quartoroom_rate_idTexto
Nome da tarifa do quartoroom_rate_nameTexto
Número de benefíciosnum_perksNúmero
Localização do quartoroom_locationTexto
Vista do quartoroom_viewTexto
Classificação do quartoroom_classificationTexto
Tipo de camabed_typeTexto

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.

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

Nenhum payload ecommerce é incluído com este evento.

{
"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 é 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"
}
PropriedadeDescrição
deviceTipo de dispositivo detectado — Desktop, Android, iPhone, iPad ou similar
deviceAgentString bruta do user agent
osSistema operacional detectado — Windows, MacOS, Linux, UNIX
pathCaminho da página atual
titleTítulo da página atual
userIdIdentificador do usuário autenticado (omitido quando não logado)
startDateData do check-in da sessão de busca atual
endDateData do check-out da sessão de busca atual
guestsNúmero de hóspedes da sessão de busca atual
roomsNúmero de quartos da sessão de busca atual