@chrono-os/meta-capi
v0.1.1
Published
Meta Conversions API (server-side): hash de PII no padrão da Meta, deduplicação por event_id, fbc/fbp, Lead e Purchase. Nunca lança; zero dependências de runtime.
Maintainers
Readme
@chrono-os/meta-capi
Meta Conversions API (eventos server-side do pixel). Hash de PII no padrão da Meta, deduplicação com o evento do navegador por event_id, fbp/fbc, Lead e Purchase. Nunca lança; zero dependências de runtime.
import { criarMetaCapi, lerCookie } from '@chrono-os/meta-capi'
const capi = criarMetaCapi({
accessToken: process.env.META_CAPI_ACCESS_TOKEN, // vazio = desligado (avisa uma vez)
pixelId: process.env.META_PIXEL_ID,
testEventCode: process.env.META_CAPI_TEST_CODE, // aba "Testar eventos"
logger,
})
await capi.enviar({
eventName: 'Lead',
eventId, // o mesmo do fbq('track', 'Lead', {}, { eventID })
email, telefone, nome,
fbp: lerCookie(req.headers.cookie, '_fbp'),
fbc: lerCookie(req.headers.cookie, '_fbc'),
fbclid, // vira fbc quando o cookie falta
clientIp, userAgent,
eventSourceUrl: pagina, // só origem + caminho são enviados
contentName: 'lp-holding',
})
// { ok: true, status } | { ok: false, motivo: 'desligado' | 'http' | 'rede', status? }- Telefone sem DDI e sem
+ganha o DDI padrão (55); com+, fica como veio. - O
access_tokenvai no corpo do POST, não na URL (na URL ele acaba em log de proxy e de APM). - Nenhum dado pessoal sai em claro: e-mail, telefone, nome e
externalIdvão com SHA-256.
Antes de subir campanha para domínio novo: adicionar o domínio na lista de permissão do pixel (Events Manager → Configurações → Permissões de tráfego) e confirmar o PageView como Processado em "Testar eventos". Sem isso o pixel do navegador não envia, e só este caminho server-side chega.
