💡 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 |
| acionado quando o cliente visualiza um item inicial ou subsequente |
| ativado quando o cliente adiciona um produto ao carrinho |
| enviado quando o cliente visualiza o carrinho, revendo os itens antes de prosseguir para o checkout |
| ativado quando o cliente inicia o processo de checkout |
| enviado quando o cliente introduz todos os dados obrigatórios e avança para o pagamento |
| ativado quando o cliente introduz as suas informações de pagamento |
| ativado quando a transação é concluída e o pagamento é confirmado |
| 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 |
| ativado quando o cliente seleciona a opção Buy as a Gift Card (Comprar como cartão presente) |
| ativado quando um item de presente é adicionado ao carrinho |
| ativado quando o cliente seleciona uma unidade ou categoria específica, como |
| acionado quando o cliente clica no botão de menos para desselecionar uma unidade ou categoria específica, como |
| enviado quando o cliente seleciona uma data para a sua reserva |
| ativado quando o cliente escolhe um horário específico para a sua reserva |
| ativado quando o cliente opta por ser notificado sobre a disponibilidade de um produto esgotado |
| acionado quando o cliente opta por guardar a sua reserva como um orçamento |
| enviado quando o cliente confirma o seu lugar na lista de espera |
| ativado quando o cliente melhora o bilhete |
| ativado quando o cliente seleciona um produto adicional para comprar |
| ativado quando o cliente seleciona um ponto de recolha para a sua reserva |
| enviado quando o cliente seleciona e responde a uma pergunta configurada |
| ativado quando o cliente edita a sua reserva |
| 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 |
| nome do evento rastreado |
|
| carimbo de data/hora em que o evento foi acionado |
|
| idioma selecionado pelo cliente |
|
| informações associadas ao evento, especialmente para eventos personalizados |
|
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 |
| informações associadas ao evento, especialmente para eventos personalizados |
|
| identificador único do produto que corresponde ao backend |
|
| nome do produto no idioma por defeito |
|
| identificador único atribuído à opção do produto |
|
| nome da opção no idioma por defeito |
|
| modo de checkout, que pode ser |
|
| valor booleano indicando se a venda cruzada foi ativada |
|
Parâmetros do objeto de comércio eletrônico
Parâmetro | Descrição | Exemplo |
| nome da promoção / cupom |
|
| moeda dos itens associados ao evento |
|
| informações detalhadas sobre produtos / opções | Veja Tabela de parâmetros dos itens abaixo |
| informações detalhadas sobre extras | Veja Tabela de parâmetros extras abaixo |
| valor monetário do evento - receita (excluindo impostos) |
|
| imposto aplicado à reserva |
|
| identificador único atribuído ao pedido; corresponde ao backend |
|
| identificador único atribuído ao pedido; corresponde ao backend |
|
| o valor por defeito |
|
| quantidade do produto selecionado |
|
| desconto aplicado ao pedido |
|
Parâmetros do item
Parâmetro | Descrição | Exemplo |
| ID da unidade |
|
| identificador único atribuído à reserva; corresponde ao backend | |
| identificador único do produto que corresponde ao backend |
|
| nome do produto no idioma por defeito |
|
| identificador único atribuído à opção do produto |
|
| nome da opção no idioma por defeito |
|
| nome da unidade no idioma por defeito |
|
| data da viagem |
|
| hora da viagem |
|
| tipo de grupo turístico no idioma por defeito |
|
| preço do produto |
|
| imposto aplicado à reserva |
|
| desconto do produto |
|
| quantidade do produto |
|
| informações detalhadas sobre os extras | Veja Tabela de parâmetros extras abaixo |
| valor booleano indicando se a venda cruzada foi ativada |
|
| valor booleano que indica se a compra é um presente |
|
| valor monetário do presente |
|
| valor booleano indicando se o produto pode ser reservado em várias datas |
|
| se o produto for um pacote, uma lista de produtos será exibida aqui | Veja Tabela de parâmetros dos pacotes abaixo |
Parâmetros extras
Parâmetro | Descrição | Exemplo |
| ID extra |
|
| nome do extra no idioma por defeito |
|
| preço extra |
|
| quantidade extra |
|
| imposto aplicado ao extra |
|
Parâmetros do cliente
Parâmetro | Descrição | Exemplo |
| concatenação do primeiro e último nome do cliente |
|
| nome inserido no formulário de contato |
|
| sobrenome inserido no formulário de contato |
|
| título selecionado pelo cliente | |
| email inserido no formulário de contato | |
| número de telefone inserido no formulário de contato |
|
| idade do cliente |
|
| data de nascimento do cliente | |
| locales selecionados pelo cliente ou locales por defeito | |
| país selecionado na lista do formulário de contato |
|
| morada fornecida pelo cliente | |
| cidade indicada pelo cliente |
|
| estado ou região do cliente | |
| código postal inserido no formulário de contato |
|
| notas adicionais inseridas pelo cliente | |
| número de identificação fiscal do cliente |
|
| valor booleano que indica se o cliente consentiu receber comunicações de marketing | |
Parâmetros dos pacotes
Parâmetro | Descrição | Exemplo |
| nome do produto incluído num pacote no idioma por defeito |
|
| nome da opção de um produto incluído num pacote no idioma por defeito |
|
| nome da unidade de um produto incluído num pacote no idioma por defeito |
|
| data da viagem dentro de um pacote |
|
| hora da viagem dentro de um pacote |
|
| tipo de grupo turístico dentro de um pacote no idioma por defeito |
|
Parâmetros das perguntas
Parâmetro | Descrição | Exemplo |
| pergunta feita ao cliente no idioma por defeito |
|
| resposta fornecida pelo cliente à pergunta |
|
Parâmetros de pontos de recolha
Parâmetro | Descrição | Exemplo |
| informações associadas ao evento, especialmente para eventos personalizados no idioma por defeito |
|
| nome do ponto de recolha no idioma por defeito |
|
| nome da opção para o ponto de recolha no idioma por defeito |
|
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_itemdurante uma única sessãoNo 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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).
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
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 |
























