Como configurar a Conversion API do Meta em 2026
Tutorial completo de instalação de Meta Conversions API via Stape: setup do container server, configuração do Pixel + CAPI, deduplicação por event_id, EMQ acima de 8. Com screenshots e troubleshooting.
Em 2026, qualquer conta Meta Ads séria precisa de Conversions API (CAPI) server-side. O Pixel sozinho perdeu sinal com o iOS 14 e nunca recuperou. O que separa contas com Event Match Quality (EMQ) 9+ das que estão em 5-6 é exactamente isto: setup técnico cuidadoso, não criatividade.
Há três caminhos para instalar CAPI: Stape (mais simples), GTM Server-Side em Cloud Run (mais flexível, mais trabalho) ou Direct API server-to-server (para volumes > 10M eventos/mês). Este guia foca-se no caminho mais prático para 90% dos casos: Stape.
Porque Stape (e não outro)
Stape é hosted GTM Server-Side. Em vez de configurares Cloud Run ou App Engine, eles cuidam da infra. Em 2026, plano free dá 1M requests/mês (chega para a maioria dos negócios < €10k/mês de spend). Plano Pro (€49/mês) sobe para 10M e dá custom subdomain, server containers ilimitados, e logging avançado.
Comparativamente: GTM Server-Side self-hosted em Cloud Run dá-te controlo total mas obriga-te a gerir auto-scaling, monitoring, custos de Compute (€20-€80/mês mediano), DNS, SSL. Para 90% dos casos, Stape compensa.
Passo 1 — Criar conta Stape e container
Vai a app.stape.io e cria conta. Escolhe plano Free para começar. Cria novo container Stape:
- Container name:
obruno-pt-server(descritivo) - Location: Europe (recomendado para clientes europeus, melhor latência + RGPD)
Recebes URL do container tipo https://yourcontainer.eu.stape.io. Esta é a URL que vai receber os eventos.
Passo 2 — Custom subdomain (opcional mas recomendado)
Por defeito, o tráfego vai para *.stape.io. Se quiseres melhor first-party tracking (cookie persistence em iOS 17+), usa custom subdomain do teu domínio:
- No Stape: Settings → Custom Domain → adicionar
gtm.obruno.pt - No teu DNS provider: criar CNAME
gtm→tracking.stape.io - Aguardar propagação (5-30 min)
Com isto, os pedidos saem de gtm.obruno.pt em vez de domínio terceiro. Reduz risco de ad blockers e dá EMQ ligeiramente mais alto.
Passo 3 — Criar GTM Server container
- Cria novo container tipo “Server”
- Quando perguntar “Manually provision tagging server”, cola a Container URL do Stape
- Recebes Container Config (uma string longa que cola no Stape)
Voltas ao Stape, Settings → Container Configuration → cola a string. Salvar. Em 1-2 min está ativo.
Passo 4 — Configurar Pixel cliente para enviar ao server
No teu GTM Web container (não server), edita a tag do Meta Pixel:
fbq('init', 'PIXEL_ID');
fbq('set', 'agent', 'tmgoogletagmanager', 'PIXEL_ID');
fbq('track', 'PageView');Mais importante: nas tags de conversion (Purchase, Lead, AddToCart) — em “Object Properties” passa event_id gerado dinamicamente. Exemplo:
const eventId = crypto.randomUUID();
fbq('track', 'Purchase', {
value: 99.50,
currency: 'EUR',
content_ids: ['SKU-123'],
}, { eventID: eventId });
// E push para dataLayer para o server container ler
dataLayer.push({
event: 'purchase_server',
event_id: eventId,
value: 99.50,
currency: 'EUR',
email: '{{User Email Hashed}}',
});Passo 5 — Configurar Meta CAPI tag no server container
Volta ao GTM Server container. Vai a Templates → Search Gallery → procura “Meta Conversions API Tag” (template oficial Meta, gratuito). Importa.
Cria nova tag:
- Tag type: Meta Conversions API
- Pixel ID: o teu
- API Access Token: vai a Events Manager → tua pixel → Settings → Generate Access Token. Copia para o GTM.
- Event Name: {{Event}} (referência ao GTM event)
- Event Source URL: {{Page URL}}
- Event ID: {{Event ID}} (lido do dataLayer)
Passo 6 — Mapear user_data corretamente
O parâmetro user_data é onde está o ouro do EMQ. Quantos mais parâmetros, melhor o match score. O template Meta CAPI já faz hashing SHA256 automático:
- em (email) — sempre que tiver
- ph (phone) — sempre que tiver
- fbp — cookie
_fbpdo browser - fbc — query string
fbclidou cookie_fbc - client_ip_address — IP do request (auto)
- client_user_agent — User-Agent (auto)
- ge (gender), db (DOB), fn/ln (first/last name), ct/st/zp/country — quando disponível
Quanto mais campos mandares com signal real, maior o EMQ. Target: ≥8 em produção.
Passo 7 — Deduplicação por event_id
Crítico: Pixel e CAPI devem enviar o mesmo event_id para o mesmo evento. Meta deduplica e conta apenas uma vez. Se não fizeres deduplicação, vais duplicar conversões e o algoritmo otimiza errado.
Verificação: no Events Manager → Test Events → envia 1 evento de teste. Deve aparecer Server + Browser source, dedupe icon visível.
Passo 8 — Testar com Test Events
Events Manager → Test Events → gera Test Event Code. Volta ao GTM e adiciona como variável temporária na CAPI tag. Triggers em todas as conversões.
Faz uma compra/lead/teste no site real. Em segundos aparece no Test Events com:
- Event name correto
- Source: Server + Browser
- Deduplicação: ✓
- EMQ score por parâmetro user_data
Se aparecer Diagnostic warning, corrige antes de meter em produção.
Passo 9 — Verificar EMQ em produção
Após 24h em produção, Events Manager → Data Sources → tua Pixel → Diagnostics → Event Match Quality.
Por evento, deve aparecer:
- EMQ 8-10: Excelente. Algoritmo otimiza ao máximo.
- EMQ 6-7: Mediano. Procurar parâmetros em falta (email? phone?).
- EMQ < 6: Mau. Provavelmente o user_data está mal mapeado ou hash incorreto.
Passo 10 — Monitorizar nas primeiras 2 semanas
Indicadores a monitorizar:
- Volume de eventos — Pixel e CAPI devem ter volumes parecidos (deduplicação a funcionar). Se CAPI < Pixel, há problema no server.
- EMQ por evento — manter ≥8 em produção.
- CPA / ROAS reportado vs real — após 1-2 semanas com CAPI bem feito, reportado deve aproximar do real, sem “dark conversions”.
- Warnings no Diagnostics — verificar diariamente nas primeiras 2 semanas.
Troubleshooting rápido
EMQ baixo: faltam parâmetros user_data. Adicionar fn, ln, ge, db, ct, st, zp, country sempre que tiver. Mesmo parcial ajuda.
Eventos duplicados: event_id diferente entre Pixel e CAPI. Confirma que estás a passar o mesmo UUID em ambos.
Eventos não aparecem no server: Container URL mal configurada, ou Container Config não foi colada no Stape. Reverifica.
Latência alta: Stape região errada vs cliente. Move container para Europe se cliente é EU.
Próximos passos
Com CAPI ativo e EMQ ≥8, podes:
- Ativar Advantage+ Shopping com confiança (otimização baseada em dados limpos)
- Subir o budget de campanhas, agora que o algoritmo decide melhor
- Implementar Enhanced Conversions em Google Ads (mesmo pattern)
- Pedir uma auditoria gratuita para validar setup técnico antes de escalar
Se este guia te poupou tempo, considera partilhar — outros operators também passam pela mesma curva técnica.
Continua a ler
Outros artigos relacionados
Ferramentas que podem ajudar
Precisas de ajuda com isto num cliente?
Faço auditorias gratuitas a contas Google Ads e Meta Ads em 24h.