P3.3 · Conversions API e conversão offline
Depende de P3.1 e P3.2. **É o prompt mais importante do projeto.**
Por que este é o mais importante
Sem ele, a Meta e o Google otimizam para clique e formulário, e a verba compra curioso. Com ele, os dois algoritmos passam a caçar dono de loja que paga.
Nenhuma campanha é ativada antes de todos os critérios de aceite deste prompt estarem verdes. Essa é a condição de partida do projeto inteiro.
O prompt
Implemente a medição server-side completa no app atribuicao.
1. Conversions API da Meta
Tarefa Celery enviar_capi(evento_id):
event_name, event_time, event_id, action_source="website", event_source_url
user_data:
em = sha256(email minusculo, sem espaco)
ph = sha256(telefone E.164, sem "+" e sem separador)
fn, ln = sha256(nome e sobrenome minusculos)
fbc = cookie _fbc ou reconstruido "fb.1.<ts_ms>.<fbclid>"
fbp = cookie _fbp
client_ip_address, client_user_agent
custom_data:
value, currency="BRL", content_name, content_ids
Deduplicação: o event_id tem que ser o mesmo do pixel. Se não for, a Meta conta duas vezes e o ROAS mente para cima.
2. Os valores — a parte que ensina o algoritmo
Mande o valor econômico, não o preço de etiqueta:
| Evento | Valor | Por quê |
|---|---|---|
| Loja conectada, fatura abaixo de R$ 30 mil | R$ 0 | Não queremos mais como ele |
| Loja conectada, fatura R$ 30 mil ou mais | R$ 150 | Vale o que economiza de prospecção |
| Radar Essencial R$ 97/ano | R$ 97 | Valor real |
| Radar Pro ou Anúncios R$ 49/mês | R$ 294 | Seis meses esperados |
| Hub | R$ 3.600 | LTV de 18 meses com margem |
Com essa hierarquia o algoritmo aprende que um lojista grande vale 24 vezes um curioso.
Documente a origem de cada valor em atribuicao/README.md e revise a cada trimestre com os números reais do painel.
3. Conversão offline no Google
Use as ferramentas criadas em P3.2. No mesmo gatilho do CAPI:
- Se houver
gclid,wbraidougbraid→upload_offline_conversion - Sempre →
upload_enhanced_conversioncom e-mail e telefone em hash, para cobrir quem perdeu o click id - Quando o lead vira Hub →
adjust_offline_conversionpara corrigir o valor da conversão original
4. Gatilhos
No webhook checkout.session.completed (o gancho de P0.3) e no fim do Raio-X:
- Recupera o
Toquede último toque do lead - Enfileira CAPI se houver sinal da Meta
- Enfileira conversão offline se houver click id do Google
- Enfileira conversão aprimorada sempre
5. Robustez
- Fila Celery dedicada, com retry exponencial por até 24 horas
EventoEnviadoguardando payload e resposta, para auditoria- Falha de CAPI nunca derruba o checkout. O dinheiro entra primeiro, a medição é consequência. Escreva o teste que prova isso
6. Privacidade
- Nunca e-mail ou telefone em claro. Sempre SHA-256 do valor normalizado
- Aviso de privacidade das landings registrando o compartilhamento pseudonimizado para medição
- Sem consentimento de cookie: não enviar
fbp,fbcnem IP. Enviar só o evento com dados em hash
Critérios de aceite — todos obrigatórios
- Gerenciador de Eventos da Meta mostrando
Purchaserecebido pelo pixel e pela CAPI, marcado como deduplicado. Capture a tela - Qualidade de correspondência igual ou acima de 6,0. Abaixo disso faltam parâmetros — corrija antes de seguir
- Conversão offline aparecendo no Google Ads em até 24h, com valor e
order_id. Capture a tela - Teste de hash: e-mail com maiúscula, espaço e ponto no Gmail produz o hash normalizado correto
- Teste de que falha da CAPI não derruba o webhook da Stripe
- Teste de reconstrução do
fbca partir dofbclid - Teste de
adjust_offline_conversionajustando o valor quando o lead vira Hub
Só depois destes sete itens verdes, siga para P4.1.