Ir para conteúdo principal

Manual de rastreamento

Este artigo descreve o processo de configuração do rastreamento de eventos via Google Tag Manager (GTM) no Google Analytics 4 (GA4).

Atualizado hoje

💡 Certifique-se de revisar o Registo de alterações para garantir que os eventos que está a rastrear estão atualizados.


Como o rastreamento é implementado

📒 NOTA

O Ventrata Checkout utiliza a implementação dataLayer de acordo com a documentação do Google.

Este artigo fornece um guia abrangente para configurar o rastreamento de eventos usando o Google Tag Manager (GTM) e o Google Analytics 4 (GA4). Você aprenderá a configurar e rastrear vários eventos principais e personalizados, permitindo captar interações significativas ao longo da jornada do cliente no processo de checkout.

O sistema de checkout da Ventrata permite que os clientes rastreiem as ações dos clientes usando uma combinação de Eventos principais e Eventos personalizados. Estes eventos permitem recolher dados e informações sobre o comportamento do cliente, permitindo aos clientes otimizar o processo de checkout.

Eventos principais

Eventos que são sempre acionados independentemente do produto ou configuração do checkout.

Evento

Descrição

view_item

acionado quando o cliente visualiza um item inicial ou subsequente

add_to_cart

ativado quando o cliente adiciona um produto ao carrinho

view_cart

enviado quando o cliente visualiza o carrinho, revendo os itens antes de prosseguir para o checkout

begin_checkout

ativado quando o cliente inicia o processo de checkout

create_or_update_order

enviado quando o cliente introduz todos os dados obrigatórios e avança para o pagamento

add_payment_info

ativado quando o cliente introduz as suas informações de pagamento

purchase

ativado quando a transação é concluída e o pagamento é confirmado

order_expired

acionado quando uma sessão única de checkout expira sem uma compra bem-sucedida, ou quando o cliente fecha o checkout antes de concluir o pagamento

Eventos personalizados

Eventos opcionais ativados com base em configurações específicas, funcionalidades do produto e interações do cliente.

Evento

Descrição

view_gift_item

ativado quando o cliente seleciona a opção Buy as a Gift Card (Comprar como cartão presente)

gift_added_to_cart

ativado quando um item de presente é adicionado ao carrinho

select_unit

ativado quando o cliente seleciona uma unidade ou categoria específica, como "Adult"

remove_unit

acionado quando o cliente clica no botão de menos para desselecionar uma unidade ou categoria específica, como "Adult". Este evento é o oposto de select_unit.

select_date

enviado quando o cliente seleciona uma data para a sua reserva

select_time

ativado quando o cliente escolhe um horário específico para a sua reserva

notify_me

ativado quando o cliente opta por ser notificado sobre a disponibilidade de um produto esgotado

quote_confirmed

acionado quando o cliente opta por guardar a sua reserva como um orçamento

wait_list_confirmed

enviado quando o cliente confirma o seu lugar na lista de espera

upgrade_ticket

ativado quando o cliente melhora o bilhete

cross-sell

ativado quando o cliente seleciona um produto adicional para comprar

select_pickup

ativado quando o cliente seleciona um ponto de recolha para a sua reserva

select_question

enviado quando o cliente seleciona e responde a uma pergunta configurada

edit_booking

ativado quando o cliente edita a sua reserva

remove_booking

enviado quando o cliente remove uma reserva do carrinho


Configuração do GTM

Pré-requisitos:

  • Um site onde tem acesso para adicionar os códigos de rastreamento GTM e GA4.

  • Uma conta do Google Tag Manager e um contentor configurados para o seu site.

  • Uma propriedade do Google Analytics 4 criada no consola de administração do Google Analytics.

Instalar o GTM

  • Se ainda não instalou o GTM no seu site, siga as instruções fornecidas por Google.

Configurar a tag de configuração GA4

  • Crie uma nova tag no GTM do tipo "Google Analytics: Configuração GA4." Configure a tag com seu ID de medição GA4.

Configurar as tags de eventos GA4

  • Crie tags para cada evento que deseja rastrear (Visualizar Item, Evento Personalizado, Adicionar ao Carrinho, Visualizar Carrinho, Iniciar Checkout, Adicionar Informações de Pagamento, Compra). Para cada tag, defina o 'Nome do Evento' e quaisquer 'Parâmetros de Evento' adicionais necessários.

Configurar os gatilhos

  • Crie gatilhos que ativarão as tags respectivas com base nas interações dos utilizadores ou eventos no seu site.

Cada evento recomendado pelo Google tem uma configuração de tag de exemplo conforme mostrado neste Exemplo de evento de compra.

📗 DICA

Siga os passos neste artigo para configurar o Google Tag Manager (GTM) e o Google Analytics 4 (GA4).


Glossário

📗 DICA

Recomendamos também que consulte esta documentação da Google.

Parâmetros globais

Parâmetro

Descrição

Exemplo

event

nome do evento rastreado

"purchase"

custom_timestamp

carimbo de data/hora em que o evento foi acionado

"1759833980195"

preferred_locale

idioma selecionado pelo cliente

"en"

label

informações associadas ao evento, especialmente para eventos personalizados

"Hotel Bishram"

Parâmetros partilhados

Estes parâmetros não estão incluídos em todos os eventos. Em alguns casos, ficam aninhados em ecommerce.items (ver o exemplo Purchase - objeto completo), enquanto em certos eventos aparecem diretamente no corpo principal (ver o exemplo Select unit - objeto completo).

Parâmetro

Descrição

Exemplo

label

informações associadas ao evento, especialmente para eventos personalizados

"Hotel Bishram"

product_id

identificador único do produto que corresponde ao backend product_id

"69f07800-0b30-4824-b462-09a7f19529as"

item_name

nome do produto no idioma por defeito

"Mount Everest"

option_id

identificador único atribuído à opção do produto

"1e143307-1ef3-4d3a-8005-b9adb3e54d5b"

item_variant

nome da opção no idioma por defeito

"Mount Everest - Ascent to Camp 3"

checkout_mode

modo de checkout, que pode ser popup ou embedded

popup

crossSell

valor booleano indicando se a venda cruzada foi ativada

false

Parâmetros do objeto de comércio eletrônico

Parâmetro

Descrição

Exemplo

coupons

nome da promoção / cupom

"10% discount for online booking (10% OFF)"

currency

moeda dos itens associados ao evento

"EUR"

items

informações detalhadas sobre produtos / opções

extras

informações detalhadas sobre extras

value

valor monetário do evento - receita (excluindo impostos)

199

tax

imposto aplicado à reserva

18.08

order_id

identificador único atribuído ao pedido; corresponde ao backend order_id, que também pode ser encontrado no dashboard

"3918ba5e-3da8-45ac-8fa1-23fb3949983d"

transaction_id

identificador único atribuído ao pedido; corresponde ao backend order_id, que também pode ser encontrado no dashboard

"3918ba5e-3da8-45ac-8fa1-23fb3949983d"

transaction_type

o valor por defeito "ventrata" é usado para indicar claramente a origem da transação

"ventrata"

quantity

quantidade do produto selecionado

5

discount

desconto aplicado ao pedido

0

Parâmetros do item

Parâmetro

Descrição

Exemplo

item_id

ID da unidade

"unit_2b1e6f4e-c69b-40d1-bc2e-31872df4d535"

booking_id

identificador único atribuído à reserva; corresponde ao backend booking_id, que também pode ser encontrado no dashboard

"acf4c89f-f6b0-47ea-b690-522f8abef116"

product_id

identificador único do produto que corresponde ao backend product_id

"69f07800-0b30-4824-b462-09a7f19529as"

item_name

nome do produto no idioma por defeito

"Mount Everest"

option_id

identificador único atribuído à opção do produto

"1e143307-1ef3-4d3a-8005-b9adb3e54d5b"

item_variant

nome da opção no idioma por defeito

"Mount Everest - Ascent to Camp 3"

item_category

nome da unidade no idioma por defeito

"Adult - Unskilled"

item_category2

data da viagem

"2023-12-12"

item_category3

hora da viagem

"09:00:00"

item_category4

tipo de grupo turístico no idioma por defeito

"sunset"

price

preço do produto

70

tax

imposto aplicado à reserva

1

discount

desconto do produto

0

quantity

quantidade do produto

2

extras

informações detalhadas sobre os extras

crossSell

valor booleano indicando se a venda cruzada foi ativada

false

gift

valor booleano que indica se a compra é um presente

true

gift_value

valor monetário do presente

400

multidate

valor booleano indicando se o produto pode ser reservado em várias datas

false

packages

se o produto for um pacote, uma lista de produtos será exibida aqui

Parâmetros extras

Parâmetro

Descrição

Exemplo

id

ID extra

"extra_330c1c32-cd9d-4c7c-b216-04857e514c68"

name

nome do extra no idioma por defeito

"Crampons and Ice-Axe"

price

preço extra

20

quantity

quantidade extra

2

tax

imposto aplicado ao extra

18.08

Parâmetros do cliente

Parâmetro

Descrição

Exemplo

fullName

concatenação do primeiro e último nome do cliente

"John Doe"

firstName

nome inserido no formulário de contato

"John"

lastName

sobrenome inserido no formulário de contato

"Doe"

title

título selecionado pelo cliente

"Product manager"

email

email inserido no formulário de contato

mobile

número de telefone inserido no formulário de contato

"+420123456789"

age

idade do cliente

35

birthdate

data de nascimento do cliente

"1985-04-27"

locales

locales selecionados pelo cliente ou locales por defeito

"en", "cs"

country

país selecionado na lista do formulário de contato

"CZ"

streetAddress

morada fornecida pelo cliente

"Behounská"

city

cidade indicada pelo cliente

"Brno"

state

estado ou região do cliente

"Jihomoravský kraj"

postalCode

código postal inserido no formulário de contato

"61200"

notes

notas adicionais inseridas pelo cliente

"Please arrange vegetarian meals and window seats if possible."

taxId

número de identificação fiscal do cliente

"CZ12345678"

allowMarketing

valor booleano que indica se o cliente consentiu receber comunicações de marketing

false

Parâmetros dos pacotes

Parâmetro

Descrição

Exemplo

item_name

nome do produto incluído num pacote no idioma por defeito

"Kathmandu"

item_variant

nome da opção de um produto incluído num pacote no idioma por defeito

"Kathmandu"

item_category

nome da unidade de um produto incluído num pacote no idioma por defeito

"Person"

item_category2

data da viagem dentro de um pacote

"2024-08-17"

item_category3

hora da viagem dentro de um pacote

"00:00:00"

item_category4

tipo de grupo turístico dentro de um pacote no idioma por defeito

"sunset"

Parâmetros das perguntas

Parâmetro

Descrição

Exemplo

questions

pergunta feita ao cliente no idioma por defeito

"Feedback"

answer

resposta fornecida pelo cliente à pergunta

"Good"

Parâmetros de pontos de recolha

Parâmetro

Descrição

Exemplo

label

informações associadas ao evento, especialmente para eventos personalizados no idioma por defeito

"Hotel Bishram"

item_name

nome do ponto de recolha no idioma por defeito

"Mount Everest"

item_variant

nome da opção para o ponto de recolha no idioma por defeito

"Mount Everest - Ascent to Camp 2"

Teste de checkout

📗 DICA

Pode testar o checkout com um produto fictício e usar cartões de teste Adyen para pagamentos com cartão.


Implementação do rastreamento de eventos

View_item (Ver item)

  • Acionado quando um cliente visualiza um produto no widget de checkout da Ventrata.

  • Este evento é acionado assim que a janela de checkout é aberta (modo pop-up ou integrado).

    • No modo incorporado, este evento é acionado sempre que o cliente visita a página com o checkout integrado, o que pode resultar em múltiplos eventos view_item durante uma única sessão

    • No modo pop-up, este evento é acionado quando o cliente clica ativamente no botão Book Now (Reserve agora) ou realiza uma ação equivalente para abrir o checkout

Corpo do evento

Execute o seguinte código para rastrear a etapa Tickets (Bilhetes):

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object. 
dataLayer.push({
"event": "view_item",
"ecommerce": {
"currency": "EUR",
"checkout_mode": "popup",
"items": [
{
"item_id": "unit_38d8b24e-89a9-488c-9f51-6981dc56a581",
"booking_id": "",
"product_id": "69f07800-0b30-4824-b462-09a7f195295b",
"item_name": "Chitwan National Park",
"option_id": "DEFAULT",
"item_variant": "Chitwan National Park",
"item_category": "6 seater car",
"price": 400,
"tax": 0,
"discount": 0,
"quantity": 1,
"extras": [],
"crossSell": false
}
],
"extras": []
},
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 26
})


View_gift_item (Visualizar item de presente)

Acionado quando o cliente compra um presente usando o widget.

Corpo do evento

Execute o seguinte código quando o cliente clicar no link Buy as a gift card (Comprar como cartão-presente):

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object. 
dataLayer.push({
"event": "view_gift_item",
"ecommerce": {
"currency": "EUR",
"checkout_mode": "popup",
"items": [
{
"item_id": "unit_38d8b24e-89a9-488c-9f51-6981dc56a581",
"booking_id" : "",
"product_id": "69f07800-0b30-4824-b462-09a7f195295b",
"item_name": "Chitwan National Park",
"option_id": "DEFAULT",
"item_variant": "Chitwan National Park",
"item_category": "6 seater car",
"price": 400,
"tax": 0,
"discount": 0,
"quantity": 1,
"extras": [],
"crossSell": false
}
],
"extras": []
},
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 31
})


Gift_added_to_cart (Presente adicionado ao carrinho)

Acionado quando um cliente adiciona um item de presente ou cartão presente ao carrinho.

Corpo do evento

Execute o seguinte código quando o cliente clicar no botão Continue (Continuar) (após selecionar unidade ou valor) na etapa Gift (Presente):

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object. 
dataLayer.push({
"event": "gift_added_to_cart",
"ecommerce": {
"checkout_mode": "popup",
"currency": "EUR",
"items": [
{
"item_id": "d75fb204-9bbe-465f-95a2-21945553c95e",
"booking_id" : "",
"option_id" : "",
"product_id" : "",
"item_name": "Gift card",
"item_variant": "",
"item_category": "",
"item_category2": "",
"item_category3": "",
"item_category4": "",
"crossSell": false,
"multidate": false,
"tax": 0,
"discount": 0,
"price": 400,
"gift_value": 400,
"gift": true,
"quantity": 1,
"extras": [],
"packages": []
}
],
"value": 400,
"tax": 0,
"discount" : 0
},
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 34
})


Select_unit (Selecionar unidade)

Este evento é acionado quando o cliente seleciona uma unidade (por exemplo, um tipo específico de bilhete ou pacote) durante o processo de checkout.

Corpo do evento

Execute o seguinte código quando o cliente clicar no botão mais (+) na etapa Tickets (Bilhetes):

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object. 
dataLayer.push({
"event": "select_unit",
"label": "6 seater car",
"checkout_mode": "popup",
"crossSell": false,
"product_id": "69f07800-0b30-4824-b462-09a7f195295b",
"item_name": "Chitwan National Park",
"option_id": "1e143307-1ef3-4d3a-8005-b9adb3e54d5b",
"item_variant": "Mount Everest - Ascent to Camp 3",
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 27
})


Remove_unit (Remover_unidade)

Este evento é acionado quando o cliente diminui uma unidade (deseleciona uma unidade de um determinado tipo de bilhete ou pacote) durante o processo de checkout.

Corpo do evento

Execute o seguinte código quando o cliente clicar no botão menos (-) no etapa Tickets (Bilhetes):

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object. 
dataLayer.push({
"event": "remove_unit",
"label": "6 seater car",
"checkout_mode": "popup",
"crossSell": false,
"product_id": "69f07800-0b30-4824-b462-09a7f195295b",
"item_name": "Chitwan National Park",
"option_id": "1e143307-1ef3-4d3a-8005-b9adb3e54d5b",
"item_variant": "Mount Everest - Ascent to Camp 3",
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 27
})


Select_date (Selecionar data)

Acionado quando o cliente seleciona uma data para a sua reserva.

Corpo do evento

Execute o seguinte código quando o cliente selecionar uma data:

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object. 
dataLayer.push({
"event": "select_date",
"label": "2024-09-17",
"product_id": "69f07800-0b30-4824-b462-09a7f195295b",
"item_name": "Chitwan National Park",
"option_id": "DEFAULT",
"item_variant": "Chitwan National Park",
"checkout_mode": "popup",
"crossSell": false,
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 28
})


Select_time (Selecionar hora)

Acionado quando o cliente seleciona um horário para a sua reserva.

Corpo do evento

Execute o seguinte código quando o cliente selecionar um horário:

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object. 
dataLayer.push({
"event": "select_time",
"label": "15:30:00",
"product_id": "69f07800-0b30-4824-b462-09a7f195295b",
"item_name": "Chitwan National Park",
"option_id": "DEFAULT",
"item_variant": "Chitwan National Park",
"checkout_mode": "popup",
"crossSell": false,
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 29
})


Notify_me (Notificar-me)

Este evento pode ser usado para medir a procura de certas datas ou produtos e ajuda a evitar vendas perdidas. Ele é acionado quando o cliente opta por ser notificado sobre a disponibilidade do produto para uma data ou hora atualmente indisponível.

Corpo do evento

Execute o seguinte código quando o cliente clicar no botão Notify me (Notificar-me):

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object. 
dataLayer.push({
"event": "notify_me",
"ecommerce": {
"checkout_mode": "popup",
"currency": "CZK",
"order_id": "",
"items": [
{
"item_id": "unit_38d8b24e-89a9-488c-9f51-6981dc56a581",
"booking_id": "acf4c89f-f6b0-47ea-b690-522f8abef116",
"product_id": "c097cd5f-e7eb-45dc-adff-e00894d063cb",
"item_name": "Kathmandu",
"option_id": "fc8010ec-e785-4f19-af6d-34dec76a29e3",
"item_variant": "Kathmandu",
"item_category": "Adult",
"item_category2": "2024-09-30",
"item_category3": "10:00:00",
"item_category4": "",
"crossSell": false,
"price": 0,
"tax": 0,
"discount": 0,
"quantity": 1,
"extras": []
}
],
"value": 0,
"tax": 0,
"discount": 0,
"quantity": 1,
"extras": []
},
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 31
})


Wait_list_confirmed (Lista de espera confirmada)

Acionado quando um cliente confirma o seu lugar na lista de espera para um produto esgotado.

Corpo do evento

Execute o seguinte código quando o cliente clicar no botão Continue (Continuar):

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object. 
dataLayer.push({
"event": "wait_list_confirmed",
"ecommerce": {
"checkout_mode": "popup",
"currency": "CZK",
"order_id": "",
"items": [
{
"item_id": "unit_38d8b24e-89a9-488c-9f51-6981dc56a581",
"booking_id": "acf4c89f-f6b0-47ea-b690-522f8abef116",
"product_id": "c097cd5f-e7eb-45dc-adff-e00894d063cb",
"item_name": "Kathmandu",
"option_id": "fc8010ec-e785-4f19-af6d-34dec76a29e3",
"item_variant": "Kathmandu",
"item_category": "Adult",
"item_category2": "2024-09-30",
"item_category3": "10:00:00",
"item_category4": "",
"crossSell": false,
"price": 0,
"tax": 0,
"discount": 0,
"quantity": 1,
"extras": []
}
],
"value": 0,
"tax": 0,
"discount": 0,
"quantity": 1,
"extras": []
},
"customer": {
"firstName": "Karel",
"lastName": "Fisher",
"emailAddress": "[email protected]"
},
"gtm.uniqueEventId": 36
})


Add_to_cart (Adicionar ao carrinho)

Acionado quando o cliente clica no botão Continue (Continuar) (após a seleção da unidade, data e hora) identificando a ação que corresponde a adicionar um item ao carrinho na etapa Tickets (Bilhetes).

Corpo do evento

Execute o seguinte código quando o cliente clicar no botão Continue (Continuar):

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object. 
dataLayer.push({
"event": "add_to_cart",
"ecommerce": {
"checkout_mode": "popup",
"currency": "EUR",
"order_id": "64c62751-2223-4461-99ee-351443c7d540",
"items": [
{
"item_id": "unit_38d8b24e-89a9-488c-9f51-6981dc56a581",
"booking_id": "acf4c89f-f6b0-47ea-b690-522f8abef116",
"product_id": "69f07800-0b30-4824-b462-09a7f195295b",
"item_name": "Chitwan National Park",
"option_id": "DEFAULT",
"item_variant": "Chitwan National Park",
"item_category": "6 seater car",
"item_category2": "2024-09-17",
"item_category3": "15:30:00",
"item_category4": "",
"crossSell": false,
"price": 400,
"tax": 0,
"discount": 0,
"quantity": 1,
"extras": []
}
],
"value": 400,
"tax": 0,
"discount": 0,
"quantity": 1,
"extras": []
},
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 48
})


Upgrade_ticket (Melhorar bilhete)

Este evento é acionado quando o cliente decide atualizar o seu produto.

Corpo do evento

Execute o seguinte código quando o cliente clicar no botão Upgrade (Melhorar) na etapa Upgrade Your Experience (Melhore a sua experiência):

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object. 
dataLayer.push({
"event": "upgrade_ticket",
"label": "Kathmandu",
"checkout_mode": "popup",
"product_id": "dcaf4844-324c-46ae-9209-a975a9d19acd",
"option_id": "DEFAULT",
"order_id": "64c62751-2223-4461-99ee-351443c7d540",
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 49
})

📒 NOTA

Em caso de atualização, todas as variáveis subsequentes item_name devem conter as informações do bilhete atualizado em vez das originais.


Cross-sell (Venda cruzada)

É acionado quando o cliente seleciona produtos ou serviços adicionais (cross-sell) durante o processo de reserva.

Corpo do evento

Execute o seguinte código quando o cliente clicar no botão Book now (Reserve agora):

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object. 
dataLayer.push({
"event": "cross-sell",
"label": "Mount Everest - Breathing course",
"checkout_mode": "popup",
"product_id": "d60965be-a76a-410f-8e88-2f839aeecfbd",
"option_id": "1e143307-1ef3-4d3a-8005-b9adb3e54d5b",
"order_id": "17def567-005d-43be-ad81-6a904325b17c",
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 72
})


Select_question (Selecionar pergunta)

Este evento é acionado quando o cliente responde a uma ou mais perguntas na etapa Questions (Perguntas).

Corpo do evento

Execute o seguinte código quando o cliente responder a uma ou mais perguntas e clicar no botão Continue (Continuar):

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object. 
dataLayer.push({
"event": "select_question",
"crossSell": false,
"questions": [
{
"question": "Confirmation that you are in good health is required.",
"answer": "I understand",
"unit_name": null
}
],
"product_id": "c097cd5f-e7eb-45dc-adff-e00894d063cb",
"option_id": "7319e191-e1e5-41b3-9cc8-0f94faea98d2",
"order_id": "17def567-005d-43be-ad81-6a904325b17c",
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 58
})


Select_pickup (Selecionar ponto de recolha)

Este evento é acionado quando o cliente seleciona um ponto de recolha na etapa Select Pickup (Selecionar ponto de recolha).

Corpo do evento

Execute o seguinte código quando o cliente escolher um ponto de recolha para a sua reserva e clicar no botão Continue (Continuar):

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object. 
dataLayer.push({
"event": "select_pickup",
"label": "Hotel Bishram",
"pickups": [
{
"label": "Hotel Bishram",
"item_name": "Mount Everest",
"item_variant": "Mount Everest - Ascent to Camp 3"
}
],
"checkout_mode": "popup",
"crossSell": false,
"product_id": "c097cd5f-e7eb-45dc-adff-e00894d063cb",
"option_id": "7319e191-e1e5-41b3-9cc8-0f94faea98d2",
"order_id": null,
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 70
})


View_cart (Ver carrinho)

Identifique o evento no seu site que corresponde à visualização do carrinho.

Corpo do evento

Execute o seguinte código para rastrear a seção Cart Summary (Resumo do carrinho) na etapa Checkout:

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object. 
dataLayer.push({
"event": "view_cart",
"ecommerce": {
"order_id": "17def567-005d-43be-ad81-6a904325b17c",
"coupons": [],
"currency": "EUR",
"checkout_mode": "popup",
"items": [
{
"item_id": "unit_38d8b24e-89a9-488c-9f51-6981dc56a581",
"booking_id": "2a37bb6d-a62a-4d73-b147-3155bfad1d0f",
"product_id": "69f07800-0b30-4824-b462-09a7f195295b",
"item_name": "Chitwan National Park",
"option_id": "DEFAULT",
"item_variant": "Chitwan National Park",
"item_category": "6 seater car",
"item_category2": "2024-09-13",
"item_category3": "15:30:00",
"item_category4": "",
"crossSell": false,
"multidate": false,
"price": 400,
"tax": 0,
"discount": 0,
"quantity": 1,
"extras": [],
"packages": []
}
],
"quantity": 1,
"extras": [],
"value": 400,
"tax": 0,
"discount": 0
},
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 85
})

📒 NOTA

Observe que na versão desktop, tanto o evento view_cart e o evento begin_checkout devem ser acionados a partir da página Checkout. Na versão móvel, essas duas seções estão em ecrãs separados, então os view_cart e begin_checkout eventos também são acionados a partir de ecrãs diferentes.


Begin_checkout (Início do checkout)

Identifique o evento no seu site que corresponde ao início do processo de checkout.

Corpo do evento

Execute o seguinte código para rastrear a etapa Checkout:

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object. 
dataLayer.push({
"event": "begin_checkout",
"ecommerce": {
"order_id": "17def567-005d-43be-ad81-6a904325b17c",
"coupons": [],
"currency": "EUR",
"checkout_mode": "popup",
"items": [
{
"item_id": "unit_38d8b24e-89a9-488c-9f51-6981dc56a581",
"booking_id": "2a37bb6d-a62a-4d73-b147-3155bfad1d0f",
"product_id": "69f07800-0b30-4824-b462-09a7f195295b",
"item_name": "Chitwan National Park",
"option_id": "DEFAULT",
"item_variant": "Chitwan National Park",
"item_category": "6 seater car",
"item_category2": "2024-09-18",
"item_category3": "14:30:00",
"item_category4": "",
"crossSell": false,
"multidate": false,
"price": 400,
"tax": 0,
"discount": 0,
"quantity": 1,
"extras": [],
"packages": []
}
],
"quantity": 1,
"extras": [],
"value": 400,
"tax": 0,
"discount": 0
},
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 86
})

📒 NOTA

Observe que na versão desktop, tanto o evento view_cart o evento begin_checkout devem ser acionados a partir da página Checkout. Na versão móvel, essas duas seções estão em telas separadas, então os eventos view_cart e begin_checkout também são acionados a partir de telas diferentes.


Edit_booking (Editar reserva)

Acionado quando o cliente edita a sua reserva.

Corpo do evento

Execute o seguinte código quando o cliente clicar no botão Edit (Editar):

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object. 
dataLayer.push({
"event": "edit_booking",
"label": "Mount Everest",
"checkout_mode": "popup",
"product_id": "c097cd5f-e7eb-45dc-adff-e00894d063cb",
"option_id": "7319e191-e1e5-41b3-9cc8-0f94faea98d2",
"order_id": "17def567-005d-43be-ad81-6a904325b17c",
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 105
})


Remove_booking (Remover reserva)

Acionado quando o cliente exclui a sua reserva.

Corpo do evento

Execute o seguinte código quando o cliente clicar no botão Remove (Remover):

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object. 
dataLayer.push({
"event": "remove_booking",
"label": "Mount Everest",
"checkout_mode": "popup",
"product_id": "c097cd5f-e7eb-45dc-adff-e00894d063cb",
"option_id": "7319e191-e1e5-41b3-9cc8-0f94faea98d2",
"order_id": "17def567-005d-43be-ad81-6a904325b17c",
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 111
})


Create_or_update_order (Criar ou atualizar pedido)

Acionado quando o cliente preencheu todos os detalhes de contacto essenciais, marcou todos os campos obrigatórios e continua para o pagamento.

Corpo do evento

Execute o seguinte código quando o cliente clicar no botão Pay Now (Pagar agora):

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object. 
dataLayer.push({
"event": "create_or_update_order",
"ecommerce": {
"order_id": "17def567-005d-43be-ad81-6a904325b17c",
"coupons": [],
"currency": "EUR",
"checkout_mode": "popup",
"items": [
{
"item_id": "unit_2e1348c9-32c3-478a-9983-395bdd0267c8",
"booking_id": "a1026fcc-b02c-47ab-813b-8ea5a2d04666",
"product_id": "d60965be-a76a-410f-8e88-2f839aeecfbd",
"item_name": "Mount Everest - Breathing course",
"option_id": "1e143307-1ef3-4d3a-8005-b9adb3e54d5b",
"item_variant": "Camp 2",
"item_category": "Adult",
"item_category2": "2024-09-19",
"item_category3": "00:00:00",
"item_category4": "",
"crossSell": false,
"multidate": false,
"price": 5,
"tax": 0,
"discount": 0,
"quantity": 1,
"extras": [],
"packages": []
}
],
"quantity": 1,
"extras": [],
"value": 5,
"tax": 0,
"discount": 0
},
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 117
})


Quote_confirmed (Orçamento confirmado)

Acionado quando o cliente preenche todos os dados de contacto obrigatórios na página Checkout e opta por guardar a reserva como orçamento em vez de avançar para o pagamento.

Corpo do evento

Execute o seguinte código quando o utilizador pressionar o botão Save for later (Guardar para mais tarde) para guardar a reserva para mais tarde na página Checkout:

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object. 
dataLayer.push({
"event": "quote_confirmed",
"ecommerce": {
"order_id": "7cab3c1b-ce19-440a-b98b-88e30f20c850",
"coupons": [],
"currency": "EUR",
"checkout_mode": "embedded",
"items": [
{
"item_id": "unit_38d8b24e-89a9-488c-9f51-6981dc56a581",
"booking_id": "9cfbd3a2-1b76-40fc-87e1-a8a41e2af2c8",
"product_id": "69f07800-0b30-4824-b462-09a7f195295b",
"item_name": "Chitwan National Park",
"option_id": "DEFAULT",
"item_variant": "Chitwan National Park",
"item_category": "6 seater car",
"item_category2": "2025-10-08",
"item_category3": "10:30:00",
"item_category4": "",
"crossSell": false,
"multidate": false,
"price": 400,
"tax": 0,
"discount": 0,
"quantity": 1,
"extras": [],
"packages": []
}
],
"quantity": 1,
"extras": [],
"value": 400,
"tax": 0,
"discount": 0
},
"customer": {
"title": null,
"fullName": "John Doe",
"firstName": "John",
"lastName": "Doe",
"emailAddress": "[email protected]",
"phoneNumber": "+421123456789",
"age": null,
"birthdate": "1982-10-23",
"locales": [
"en"
],
"streetAddress": "Běhounská",
"city": "Brno-střed",
"state": null,
"postalCode": "60200",
"country": "CZ",
"notes": null,
"allowMarketing": true,
"taxId": null,
"company": null
},
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 118
})


Add_payment_info (Adicionar informações de pagamento)

Determine o evento no seu site que corresponde aos clientes adicionando as suas informações de pagamento durante o checkout.

Corpo do evento

Se não for uma página externa, execute o código a seguir quando o utilizador selecionar o método de pagamento na página Payment (Pagamento):

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object. 
dataLayer.push({
"payment_type": "Cards",
"event": "add_payment_info",
"ecommerce": {
"order_id": "fa37528e-c0d2-4516-a4b6-71e10c994602",
"currency": "EUR",
"checkout_mode": "popup",
"items": [
{
"item_id": "unit_2e1348c9-32c3-478a-9983-395bdd0267c8",
"booking_id": "e5132bbf-b6d1-48c3-8e35-c9adedef210a",
"product_id": "d60965be-a76a-410f-8e88-2f839aeecfbd",
"item_name": "Mount Everest - Breathing course",
"option_id": "1e143307-1ef3-4d3a-8005-b9adb3e54d5b",
"item_variant": "Camp 2",
"item_category": "Adult",
"item_category2": "2024-09-19",
"item_category3": "00:00:00",
"item_category4": "",
"crossSell": false,
"multidate": false,
"price": 5,
"tax": 0,
"discount": 0,
"quantity": 1,
"extras": [],
"packages": []
}
],
"quantity": 1,
"extras": [],
"value": 5,
"tax": 0,
"discount": 0
},
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 118
})


Purchase (Compra)

Identifique o evento no seu site que corresponde à conclusão de uma compra.

Corpo do evento

Utilize o código abaixo quando a página de agradecimento é exibida para rastrear uma compra bem-sucedida:

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object. 
dataLayer.push({
"event": "purchase",
"ecommerce": {
"order_id": "fa37528e-c0d2-4516-a4b6-71e10c994602",
"coupons": [],
"currency": "EUR",
"checkout_mode": "popup",
"items": [
{
"item_id": "unit_2e1348c9-32c3-478a-9983-395bdd0267c8",
"booking_id": "e5132bbf-b6d1-48c3-8e35-c9adedef210a",
"product_id": "d60965be-a76a-410f-8e88-2f839aeecfbd",
"item_name": "Mount Everest - Breathing course",
"option_id": "1e143307-1ef3-4d3a-8005-b9adb3e54d5b",
"item_variant": "Camp 2",
"item_category": "Adult",
"item_category2": "2024-09-19",
"item_category3": "00:00:00",
"item_category4": "",
"price": 5,
"tax": 0,
"discount": 0,
"quantity": 1,
"extras": [],
"packages": []
}
],
"quantity": 1,
"extras": [],
"value": 5,
"tax": 0,
"discount": 0,
"transaction_id": "fa37528e-c0d2-4516-a4b6-71e10c994602",
"transaction_type": "ventrata"
},
"customer": {
"full_name": "Karel Fisher",
"email": "[email protected]",
"mobile": "+4201234567899",
"country": "CZ",
"postal_code": null
},
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 119
})

📒 NOTA

O 'ID da transação' é o identificador único preciso atribuído a cada pedido. Na página Bookings (Reservas) > Orders (Pedidos), pressione o botão Show Columns (Mostrar Colunas) e adicione 'ID' à sua visualização. O 'Order ID (ID do pedido)' é o mesmo que o 'Transaction ID (ID da transação)' (Transaction ID = Order ID).

Orders - Transaction ID


Order_expired (Pedido expirado)

Acionado quando uma sessão única de checkout expira sem uma compra bem-sucedida ou quando o cliente fecha o checkout antes de concluir o pagamento.

Corpo do evento

Execute o código abaixo quando a sessão de checkout expirar e quando a página Order expired (Pedido expirado) é apresentada:

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object. 
dataLayer.push({
"event": "order_expired",
"order_id": "eb16d401-3b9f-44b7-b927-417487369f70",
"checkout_mode": "popup",
"page": "bottom_bar",
"product_id": null,
"option_id": null,
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 119
})


Como saber se o Web Checkout está a enviar dados

  • Pode utilizar uma extensão de navegador capaz de verificar a camada de dados, por exemplo, DataLayer Checker.


Publicar e testar

Após configurar todas as tags, gatilhos e parâmetros, guarde e publique o seu contentor GTM para tornar as alterações ativas no seu site.

Teste a implementação do rastreamento realizando as ações relevantes no seu site e verificando se os eventos estão a ser rastreados no GA4.


Verificar dados no GA4

Depois que os dados forem enviados para o GA4, faça login na sua propriedade GA4 e navegue até a secção de relatórios.

Use Event reports (Relatórios de eventos) para analisar e verificar se os eventos rastreados estão a ser registrados corretamente.

Revise e atualize regularmente o seu contentor GTM conforme necessário para garantir um rastreamento preciso e acomodar quaisquer alterações no seu site ou nos requisitos de rastreamento de eventos.


Registo de alterações

Última atualização

Registo de alterações

07/10/2025

2.0.3 - parâmetros e corpos de eventos atualizados, adicionados os eventos Remove_unit, Quote_confirmed e Order_expired

17/09/2024

2.0.2 - lista atualizada de eventos e corpos de eventos

18/12/2023

2.0.1 - quantidade adicionada em e-commerce

12/12/2023

2.0.0 - nova estrutura de itens adicionada + perguntas, pickups, extras

04/08/2023

1.0.4 - adicionados exemplos concretos de JSON na documentação

20/07/2023

1.0.3 - informações do cliente adicionadas ao evento de compra

29/06/2023

1.0.2 - o preço de um item é mostrado por unidade (não o total)

28.6.2023

1.0.1 - adicionada 1 unidade à quantidade para o evento view_item

22.5.2023

1.0.0 - Primeira versão


Isto respondeu à sua pergunta?