A Aliv Hub Central de Ajuda
14 min de leitura

Traqueamento: todos os eventos do app (Pixel da Meta, GA4, GTM e Google Ads)

Todos os eventos que o app de pedidos dispara e os dados de cada um: Pixel e GA4 direto (sem GTM), GTM e Google Ads, e as compras enviadas pelo servidor (API de Conversões e Measurement Protocol).

Este guia é para quem vai medir as vendas do cardápio digital da loja (o app de pedidos): gestor de tráfego, agência ou o próprio dono. Ele lista todos os eventos que o Aliv Hub dispara, quando cada um acontece, que dados vão junto e como montar o Pixel da Meta, o Google Analytics 4 (GA4), o Google Tag Manager (GTM) e o Google Ads em cima deles.

Resposta curta: o Aliv Hub já dispara todos os eventos de e-commerce do app. Você não precisa programar nada. Cole o Pixel ID e a Meta recebe tudo. Cole o GA4 ID e o Google Analytics recebe tudo. O GTM é opcional, para quem quer Google Ads, outras ferramentas ou controle fino: os eventos chegam prontos no dataLayer. Sem GTM, com o Access Token e o API Secret, as compras também vão pelo servidor, então a venda conta mesmo com bloqueador de anúncio ou iPhone.

1. Onde colocar os códigos

No painel, abra Configurações → Traqueamento (precisa do acesso de dono ou de quem tem permissão de configurações). Os campos são:

CampoExemploPara que serve
Pixel ID123456789012345Pixel da Meta (Facebook/Instagram). Sem GTM, o app instala sozinho.
Access TokenEAAG…Token da API de Conversões da Meta. Com ele, o servidor manda as compras (seção 7). Gere no Gerenciador de Eventos → seu Pixel → Configurações → API de Conversões.
GA4 IDG-XXXXXXXXXXGoogle Analytics 4. Sem GTM, o app instala sozinho.
API Secretchave do GA4Com ela, o servidor manda as compras pro GA4. Crie no GA4 em Administrador → Fluxos de dados → seu fluxo → Measurement Protocol API secrets.
GTM IDGTM-XXXXXXXGoogle Tag Manager (opcional). Quando preenchido, o GTM manda: o app deixa de instalar o Pixel e o GA4 sozinho (seção 2).

Os campos salvam sozinhos ao sair deles. Loja com mais de uma marca (cardápios diferentes) pode ter Pixel, token, GA4 e GTM próprios por marca no seletor do topo. Marca sem valor próprio usa o da loja.

2. Sem GTM ou com GTM: o que muda

Sem GTM IDCom GTM ID
Pixel da MetaO app instala o Pixel, dispara o PageView ao abrir e os eventos padrão (seção 3).O app não instala. Você instala e dispara pelo GTM (seção 6).
Google Analytics 4O app instala o GA4 (page view automático) e manda todos os eventos de e-commerce com os mesmos nomes da seção 3.O app não instala. Você cria a tag no GTM (seção 5).
Google Ads e outras ferramentasNão há.Pelas suas tags no GTM, lendo o dataLayer.
Compras do app pelo servidorAutomáticas, com Access Token e API Secret (seção 7).Pelo seu GTM server-side, chamando o endpoint da loja (seção 7). O automático fica desligado para não contar em dobro.

Com GTM preenchido o app desliga o Pixel, o GA4 e a compra automática pelo servidor de propósito. Tag no código e tag no GTM ao mesmo tempo contariam cada evento duas vezes, e o Aliv Hub não tem como saber se a sua tag de compra manda o ID do evento que junta navegador e servidor. Resumo: sem GTM, o Aliv Hub cuida de tudo; com GTM, o GTM manda.

3. Todos os eventos do app

O nome da primeira coluna é o do padrão de e-commerce do GA4: é o que aparece no dataLayer e o que o GA4 recebe direto (sem GTM). A segunda é o evento que o Pixel recebe direto (sem GTM).

Evento (dataLayer)Meta (Pixel direto)Quando aconteceValor (ecommerce.value)
(page view)PageViewAo abrir o app. O app é uma página só: não há novo page view ao navegar entre categorias. O GA4 direto conta sozinho; no GTM, use o acionador de visualização de página normal.—
view_itemViewContentCliente abre um produto.Preço do produto.
add_to_cartAddToCartCliente adiciona ao carrinho, pela tela do produto ou pelo botão + do card. Editar um item que já está no carrinho não conta.Preço × quantidade do item adicionado.
view_cart—Cliente abre a sacola.Soma dos itens.
remove_from_cart—Cliente remove um item da sacola.Valor do item removido.
begin_checkoutInitiateCheckoutCliente abre a finalização do pedido.Subtotal dos produtos (sem entrega).
add_shipping_info—A entrega fica definida: endereço com taxa calculada, ou "retirar na loja". Uma vez por endereço por visita.Subtotal dos produtos.
add_payment_infoAddPaymentInfoCliente escolhe a forma de pagamento. Uma vez por forma por visita.Total do pedido.
purchasePurchasePedido confirmado. Dinheiro e cartão na entrega: quando o pedido é enviado. PIX: só quando o pagamento é aprovado. Também vai pelo servidor (seção 7), com o mesmo ID.Total do pedido (com entrega).
loginCompleteRegistrationCliente entra na conta.—
sign_upCompleteRegistrationCliente cria a conta.—

Os eventos add_shipping_info e add_payment_info não se repetem quando o cliente abre e fecha o checkout várias vezes. Depois de uma compra eles voltam a valer para o próximo pedido na mesma aba.

4. O que vai junto em cada evento

Todo evento chega no dataLayer neste formato (exemplo de uma compra):

{
  event: "purchase",
  ecommerce: {
    transaction_id: "APP-1234",
    value: 89.90,
    currency: "BRL",
    tax: 8.00,
    items: [
      { item_id: "512", item_name: "Calabresa", price: 35.00, quantity: 0.5, item_category: "Pizza" },
      { item_id: "530", item_name: "Portuguesa", price: 35.00, quantity: 0.5, item_category: "Pizza" },
      { item_id: "77",  item_name: "Coca-Cola 2L", price: 11.90, quantity: 1, item_category: "Produto" }
    ]
  },
  user_data: {
    country: "BR",
    external_id: "48213",
    email_hash: "5e8848…(64 caracteres)",
    phone_hash: "a1b2c3…(64 caracteres)",
    phone_hash_google: "9f8e7d…(64 caracteres)",
    first_name: "Maria",
    last_name: "Souza",
    city: "Curitiba",
    state: "PR",
    zip_code: "80000-000"
  }
}

Dentro de ecommerce

  • currency: sempre BRL.
  • value: o valor descrito na tabela da seção 3.
  • items: lista de produtos com item_id (código do produto no Aliv Hub), item_name, price e quantity.
  • transaction_id (só no purchase): número do pedido como a loja vê no painel (ex.: APP-1234). Use para evitar compra duplicada no GA4 e no Ads.
  • tax (só no purchase): leva a taxa de entrega. O valor total já inclui a entrega.
  • shipping_tier (só no add_shipping_info): delivery ou pickup.
  • payment_type (só no add_payment_info): a forma escolhida (pix, money para dinheiro, credit, debit, ou o nome da forma cadastrada pela loja).

Como vêm os itens na compra: pizza meio a meio vira um item por sabor, cada um com quantidade fracionada (½ + ½) e item_category: "Pizza". Combo vira um item por produto escolhido dentro dele ("Combo Item"). O resto vem como "Produto". Assim o relatório mostra quais sabores vendem, não só "Pizza Grande". Nos outros eventos (add_to_cart, begin_checkout…) o item é a linha do carrinho como o cliente montou.

Dentro de user_data (dados do cliente)

Vão quando o app conhece o cliente: logado (desde o primeiro evento) ou depois de preencher os dados no checkout (cliente convidado). Visitante anônimo vai sem user_data preenchido.

  • email_hash: SHA-256 do e-mail em minúsculas.
  • phone_hash: SHA-256 do telefone no formato da Meta (5511999998888, sem +).
  • phone_hash_google: SHA-256 do telefone no formato do Google (+5511999998888, com +). Use este no GA4 e nas conversões otimizadas do Google Ads. Formato errado gera um hash que não casa.
  • E-mail e telefone abertos nunca vão para o navegador.
  • external_id: código do cliente no Aliv Hub (o mesmo em todas as compras dele).
  • first_name, last_name, city, state, zip_code: abertos, para a correspondência avançada (a Meta e o Google fazem o hash do lado deles, ou sua tag faz).
  • country: BR.

⚠️ Leia sempre de dentro de ecommerce. O app coloca no dataLayer as chaves event, ecommerce, user_data e, no login/sign_up, method (como o cliente entrou). Valor, moeda, tipo de entrega e forma de pagamento estão em ecommerce.value, ecommerce.currency, ecommerce.shipping_tier e ecommerce.payment_type, não no primeiro nível.

5. Passo a passo: GA4 pelo GTM

Só é necessário se o GTM ID estiver preenchido. Sem GTM, basta colar o GA4 ID: o app instala e manda tudo, inclusive o código do cliente como user_id e o e-mail/telefone em hash para os dados fornecidos pelo usuário.

  1. No GTM, crie as variáveis do tipo Variável da camada de dados (versão 2): ecommerce.value, ecommerce.currency, ecommerce.transaction_id, ecommerce.items, user_data.email_hash, user_data.phone_hash, user_data.phone_hash_google, user_data.external_id.
  2. Crie a tag Tag do Google com o ID G-XXXXXXXXXX, acionada em Initialization – All Pages.
  3. Crie uma tag Evento do GA4 para todo o funil:
    • Nome do evento: {{Event}} (a variável interna "Event", que repete o nome que o app mandou).
    • Em Mais configurações → Comércio eletrônico, marque Enviar dados de comércio eletrônico com origem Camada de dados.
    • (Opcional) Propriedades do usuário: user_id = {{user_data.external_id}}, para unir as visitas do mesmo cliente.
    • Acionador: Evento personalizado, nome com regex:
      ^(view_item|add_to_cart|view_cart|remove_from_cart|begin_checkout|add_shipping_info|add_payment_info|purchase|login|sign_up)$
  4. Publique o contêiner e, no GA4, marque purchase como evento principal (conversão).

Pronto: receita, itens mais vendidos e funil (visualizou → carrinho → checkout → compra) aparecem nos relatórios de e-commerce do GA4.

6. Passo a passo: Pixel da Meta pelo GTM

Só é necessário se o GTM ID estiver preenchido. Sem GTM, o Aliv Hub já instala e dispara o Pixel sozinho.

  1. Instale o Pixel no GTM: use o modelo Facebook Pixel da Galeria de Modelos ou uma tag HTML com o código base da Meta, acionada em All Pages. Ela dispara o PageView.
  2. Crie uma variável JavaScript personalizado chamada content_ids:
    function () {
      var itens = {{ecommerce.items}} || [];
      return itens.map(function (i) { return String(i.item_id); });
    }
  3. Crie uma tag por evento, com value = {{ecommerce.value}}, currency = BRL, content_ids = {{content_ids}} e content_type = product:
    Acionador (evento personalizado)Evento da Meta
    view_itemViewContent
    add_to_cartAddToCart
    begin_checkoutInitiateCheckout
    add_payment_infoAddPaymentInfo
    purchasePurchase
    login e sign_upCompleteRegistration
  4. Na tag do Purchase, use {{ecommerce.transaction_id}} como Event ID. É o mesmo ID que o servidor manda (seção 7), e a Meta junta as duas notificações da mesma compra numa só. Sem isso a compra conta em dobro. (Sem GTM, o Pixel do app já manda esse ID sozinho.)
  5. Para a correspondência avançada, passe em = {{user_data.email_hash}}, ph = {{user_data.phone_hash}} e external_id = {{user_data.external_id}}. O e-mail e o telefone já estão em SHA-256.

7. Eventos pelo servidor (API de Conversões e Measurement Protocol)

Bloqueador de anúncio e o iPhone cortam parte do que o navegador manda. Por isso o Aliv Hub também envia pelo servidor:

Automático: compras do app

Em loja sem GTM, todo pedido do app confirmado vai pelo servidor como Purchase cerca de 2 minutos depois: dinheiro e cartão na entrega logo após o envio, PIX depois do pagamento aprovado. Pedido cancelado nesse intervalo não vai. Com GTM, use o endpoint abaixo.

  • Meta (API de Conversões): precisa de Pixel ID + Access Token.
  • GA4 (Measurement Protocol): precisa de GA4 ID + API Secret.
  • O que vai: valor total, itens, número do pedido, e-mail/telefone/nome/cidade do pedido (a Meta e o Google recebem em hash), código do cliente e, da visita em que o pedido foi feito, o IP, o navegador, os cookies da Meta (_fbp/_fbc, que ligam a venda ao clique no anúncio) e do Google (_ga, que põe a compra no mesmo usuário e sessão do GA4).
  • Não conta em dobro: o ID do evento é o número do pedido (APP-1234), o mesmo transaction_id do purchase do navegador. A Meta junta as duas notificações numa venda só, e o GA4 junta pelo transaction_id. No Gerenciador de Eventos, a compra aparece como recebida pelo navegador e servidor.
  • Vale para lojas cujo plano inclui Traqueamento. Com marcas diferentes na mesma loja, cada pedido vai com o Pixel/GA4 da marca dele.

Automático: vendas das integrações

Com Pixel ID e Access Token preenchidos, todo pedido que entra pelas integrações (iFood, 99Food, Anota AI e as demais plataformas ligadas à loja) vai para a API de Conversões da Meta como o evento Venda Real (Server) - Correta. Leva o valor, os itens, o número do pedido e os dados do cliente que a plataforma mandou. Pode virar uma conversão personalizada no Gerenciador de Eventos. Esses pedidos não passam pelo app, então não aparecem no Pixel do navegador.

Endereço para o seu GTM (server-side)

Em Configurações → Traqueamento aparece o Endpoint de Rastreamento Server-Side, no formato https://alivhub.com.br/api/track/<sua-loja>. O que for enviado para lá (POST, JSON) o Aliv Hub repassa para a API de Conversões da Meta (com Pixel ID + Access Token) e para o GA4 Measurement Protocol (com GA4 ID + API Secret):

{
  "event_name": "Purchase",
  "event_id": "APP-1234",
  "url": "https://alivhub.com.br/app/sua-loja",
  "user_agent": "Mozilla/5.0 …",
  "user_data": {
    "email_hash": "…", "phone_hash": "…",
    "first_name": "Maria", "last_name": "Souza",
    "city": "Curitiba", "state": "PR", "zip_code": "80000-000", "country": "BR",
    "external_id": "48213",
    "ip": "…", "fbp": "…", "fbc": "…",
    "gclid": "…", "session_id": "…"
  },
  "custom_data": {
    "value": 89.90, "currency": "BRL", "transaction_id": "APP-1234",
    "contents": [ { "item_id": "512", "item_name": "Calabresa", "price": 35.00, "quantity": 1 } ]
  }
}
  • Use os nomes de evento da Meta (Purchase, AddToCart, ViewContent, InitiateCheckout, AddPaymentInfo, CompleteRegistration). Para o GA4 o Aliv Hub converte sozinho (Purchase → purchase e assim por diante).
  • No Purchase, o custom_data.transaction_id vira o ID do evento. Use o mesmo número na tag de compra do navegador (seção 6, passo 4) e a Meta junta as duas notificações numa venda só.
  • E-mail e telefone podem ir abertos (email, phone) ou já em hash (email_hash, phone_hash, 64 caracteres). Valor quebrado ou de mentira (undefined, hash truncado) é descartado, para não derrubar a nota de qualidade do evento na Meta.
  • Se ip e user_agent não vierem no corpo, o Aliv Hub usa os da própria requisição. fbp/fbc também são lidos dos cookies quando chegam.
  • O envio depende de o plano da loja incluir Traqueamento. No plano Elite, o Aliv Hub completa sozinho os dados do cliente que faltarem (e-mail, telefone, nome, cidade) a partir do cadastro dele e do pedido. Isso melhora a qualidade da correspondência.

8. Como testar antes de soltar a campanha

  1. GTM: clique em Visualizar, abra o link do app da loja e faça o caminho do cliente. Cada evento aparece na lateral do Tag Assistant com o ecommerce e o user_data.
  2. GA4: Administrador → DebugView mostra os eventos chegando em tempo real enquanto o modo de visualização do GTM está aberto.
  3. Meta: Gerenciador de Eventos → Testar eventos. Os eventos do navegador aparecem na hora. O Purchase pelo servidor chega uns 2 minutos depois da confirmação e é juntado ao do navegador (mesmo ID).
  4. Faça um pedido de teste com retirada na loja e pagamento na retirada e cancele no painel depois. Com PIX, o purchase só sai quando o PIX é pago.

Perguntas frequentes

Preciso do GTM ou só o Pixel já pega tudo?

Não precisa de GTM. O Pixel ID e o GA4 ID já pegam todos os eventos da seção 3, e o Access Token e o API Secret garantem as compras pelo servidor (sem GTM). O GTM serve para Google Ads, outras ferramentas (TikTok, Clarity…) ou regras próprias. Se usar GTM, configure o Pixel e o GA4 por lá também, porque o app deixa de instalar os dele.

Não achei onde colocar o código do Google Analytics.

Fica em Configurações → Traqueamento, no bloco "Google Analytics e Maps", e não em Marketing. Se a aba não aparece, o usuário que você recebeu não tem permissão de configurações: peça ao dono da loja para liberar ou para colar os IDs.

Por que a compra no PIX demora a aparecer?

Porque ela só é contada quando o pagamento é aprovado. Pedido com PIX gerado e não pago não vira conversão.

Uso GTM. O Aliv Hub também manda a compra pelo servidor?

Não automaticamente. Com GTM, quem decide é o seu contêiner. Para ter a compra pelo servidor, faça o GTM server-side (ou uma tag) chamar o endpoint da seção 7 com o número do pedido como ID, e use esse mesmo ID na tag de compra do navegador.

Os pedidos do iFood aparecem no GA4?

Não pelo navegador, porque o cliente comprou dentro do iFood. Eles vão para a Meta pelo servidor (seção 7), como Venda Real (Server) - Correta.

Posso instalar outras ferramentas (TikTok, Hotjar, Clarity…)?

Pelo GTM, sim. Tudo o que o GTM carrega roda no app, e os mesmos eventos do dataLayer servem para acionar qualquer tag.

Quer ver isso funcionando na sua operação?

O Aliv Hub junta PDV, cozinha, estoque, app próprio e os aplicativos de delivery numa tela só. 15 minutos de conversa e você vê o sistema rodando com o seu cardápio.

Conhecer o Aliv Hub