Pular para o conteúdo

Integração GTM Analytics

Pode ligar qualquer contentor Google Tag Manager (GTM) ao Wink introduzindo o seu ID do Contentor GTM no portal Wink. Uma vez ligado, o seu contentor carrega automaticamente para a sua propriedade e lê diretamente os eventos de reserva do Wink — cobrindo toda a jornada do hóspede desde a pesquisa até à reserva concluída. Um caso de uso comum é um contentor Sojern para retargeting e publicidade, mas qualquer contentor GTM funciona da mesma forma.


  1. Obtenha o Seu ID do Contentor GTM

    Obtenha o seu ID do Contentor GTM (formato GTM-XXXXXXX). Se for de um parceiro como a Sojern, solicite especificamente o ID do Contentor GTM — é diferente de um pixel ou ID de tag.

  2. Introduza-o no Portal Wink

    Inicie sessão em app.wink.travel, selecione a sua conta e vá ao separador Personalizações. Cole o seu ID do Contentor GTM no campo GTM e guarde. A sua integração está agora ativa.

  3. (Opcional) Adicione um ID de Medição GA4 + Segredo API para Compra Server-Side

    Os contentores GTM correm inteiramente no navegador do hóspede, pelo que uma reserva concluída pode ser perdida se o hóspede fechar o separador durante o redirecionamento de pagamento. Se o seu contentor carregar uma propriedade GA4 e quiser que as reservas concluídas sejam registadas de forma fiável, introduza também o ID de Medição e o Segredo da API do Protocolo de Medição dessa GA4 na secção GTM. O Wink enviará então o evento purchase para essa propriedade server-side, exatamente como descrito no guia de Integração GA4 Analytics. Deixe estes campos em branco se só precisar de rastreio no navegador.

  4. Confirme com o Seu Fornecedor

    Se o seu contentor for de um parceiro como a Sojern, informe o seu gestor de conta que a integração está ativa. Eles podem verificar do lado deles se as tags estão a disparar corretamente em wink.travel para a sua propriedade e se os dados estão a fluir para a sua conta.


Para transparência, aqui está o que o Wink configura para fazer esta integração funcionar:

  • Um campo de ID do Contentor GTM está disponível no separador Personalizações do seu portal Wink. Quando introduz o seu ID de Contentor, o Wink valida o formato (GTM-XXXXXXX) e armazena-o de forma segura associado à sua propriedade.
  • Em todas as páginas onde a sua propriedade está ativa no Wink, o seu contentor é injetado diretamente na página — partilhando o próprio window.dataLayer do Wink — para que carregue em paralelo com o contentor do Wink sem depender de qualquer configuração extra. Isto acontece automaticamente, sem trabalho por propriedade da equipa Wink.
  • O seu contentor é carregado de forma assíncrona, para não afetar o desempenho do carregamento da página para os seus hóspedes.
  • O rastreio do Wink e o seu contentor correm em paralelo, lendo do mesmo dataLayer partilhado. Cada evento de reserva que o Wink regista está simultaneamente disponível para o seu contentor.
  • Quando a sua propriedade não está a ser visualizada — por exemplo, quando um hóspede está a navegar por outro hotel no Wink — o seu contentor não é carregado, recebendo apenas dados relevantes para a sua propriedade.
  • Se forneceu um ID de Medição GA4 + segredo API (passo 3 acima), o evento purchase para reservas concluídas é adicionalmente enviado server-side via o Protocolo de Medição GA4, para que uma venda seja registada mesmo que o hóspede nunca volte à página de confirmação.

O Wink envia eventos compatíveis com GA4 para o dataLayer ao longo da jornada do hóspede. O seu contentor GTM lê deste mesmo dataLayer partilhado, pelo que qualquer trigger ou variável que configure tem acesso a todas as propriedades descritas abaixo.

Cada evento segue a estrutura padrão GA4 Enhanced Ecommerce: uma string event ao nível superior e um objeto ecommerce. Antes de cada push, o Wink limpa o payload ecommerce anterior para evitar que dados antigos interfiram em novos triggers.


Estes eventos disparam automaticamente à medida que um hóspede avança no funil de reserva. Configure os seus triggers GTM como triggers de Evento Personalizado que correspondam aos nomes dos eventos abaixo.

PassoEventoQuando Dispara
1view_item_listCarregamento da grelha ou lista de inventário do hotel
2view_itemHóspede visualiza a página de uma propriedade específica
3add_to_cartHóspede adiciona um quarto ao carrinho de compras
4begin_checkoutCarregamento da página de checkout/pagamento
5add_payment_infoHóspede seleciona um método de pagamento
6loginHóspede autentica-se via SSO
7purchaseReserva é confirmada
8refundReserva é cancelada

Dispara quando uma grelha ou lista de inventário do hotel é 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 carrega.

{
"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 de adquirente de pagamento. coupon está presente apenas quando um código de desconto foi aplicado.


Dispara quando um hóspede se 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 partilham o mesmo esquema de item. Cada propriedade é opcional, a menos que marcada como obrigatória.

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

PropriedadeTipoObrigatórioDescrição
item_idstringSimIdentificador único para o quarto ou produto
item_namestringNome do quarto ou produto
affiliationstringNome do afiliado ou vendedor
couponstringCódigo de cupão aplicado ao item
currencystringCódigo de moeda ISO 4217 (ex: USD)
creative_namestringNome criativo usado numa 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 de exibição da lista
location_idstringCoordenadas geográficas da propriedade
pricenumberPreço unitário
promotion_idstringIdentificador da promoção
promotion_namestringNome de exibição da promoção
quantitynumberQuantidade (padrão 1)

Estes parâmetros transportam contexto de reserva específico do Wink. O GA4 não os apresenta automaticamente nos relatórios — deve registar cada um como uma dimensão personalizada ao nível do item na sua propriedade GA4 antes de aparecerem em explorações ou relatórios padrão. Veja Dimensões Personalizadas no GA4 abaixo para instruções de configuração.

PropriedadeTipoDescrição
property_idstringIdentificador da propriedade Wink
property_namestringNome de exibição da propriedade
property_brandstringMarca a que a propriedade pertence
property_chainstringCadeia a que a propriedade pertence
property_url_namestringSlug amigável para URL da propriedade
city_namestringCidade onde a propriedade está localizada
country_codestringCódigo de país ISO 3166-1 alpha-2
start_datestringData de check-in no formato YYYY-MM-DD
end_datestringData de 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 de exibição 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 ao nível do item nos relatórios até que os registe explicitamente como dimensões personalizadas ao nível do item. Só precisa registar os parâmetros que pretende usar nos relatórios — não é necessário registar todos os 20.

  1. Abra Definições Personalizadas

    No GA4, vá a Admin (ícone de engrenagem no canto inferior esquerdo) → selecione a 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)
    • Âmbito — selecione Item
    • Parâmetro do evento — o nome exato do parâmetro conforme aparece no dataLayer (veja a tabela abaixo)
    • Descrição — opcional mas recomendado
  4. Guarde e repita

    Clique em Guardar, depois repita para cada parâmetro que deseja rastrear.

Use a tabela seguinte 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
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

Os seguintes eventos estão disponíveis no dataLayer do Wink mas não fazem parte do funil padrão de reserva. 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 está 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. É enviado em cada navegação de página e transporta 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 detetado — Desktop, Android, iPhone, iPad ou similar
deviceAgentString bruta do user agent
osSistema operativo detetado — Windows, MacOS, Linux, UNIX
pathCaminho da página atual
titleTítulo da página atual
userIdIdentificador do utilizador autenticado (omitido quando não está autenticado)
startDateData de check-in da sessão de pesquisa atual
endDateData de check-out da sessão de pesquisa atual
guestsNúmero de hóspedes da sessão de pesquisa atual
roomsNúmero de quartos da sessão de pesquisa atual