cdp-edge 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +367 -0
- package/bin/cdp-edge.js +61 -0
- package/contracts/api-versions.json +368 -0
- package/dist/commands/analyze.js +52 -0
- package/dist/commands/infra.js +54 -0
- package/dist/commands/install.js +168 -0
- package/dist/commands/server.js +174 -0
- package/dist/commands/setup.js +123 -0
- package/dist/commands/validate.js +84 -0
- package/dist/index.js +12 -0
- package/docs/CI-CD-SETUP.md +217 -0
- package/docs/PixelBuilder-Documentacao-Completa (2).docx +0 -0
- package/docs/events-reference.md +359 -0
- package/docs/installation.md +155 -0
- package/docs/quick-start.md +185 -0
- package/docs/sdk-reference.md +371 -0
- package/docs/whatsapp-ctwa.md +209 -0
- package/extracted-skill/tracking-events-generator/INDEX.md +94 -0
- package/extracted-skill/tracking-events-generator/INSTALACAO-CDPEDGE.md +58 -0
- package/extracted-skill/tracking-events-generator/INTEGRACAO-COMPLETA.md +594 -0
- package/extracted-skill/tracking-events-generator/MELHORIAS-IMPLEMENTADAS.md +412 -0
- package/extracted-skill/tracking-events-generator/Premium-Tracking-Intelligence-Resumo.md +333 -0
- package/extracted-skill/tracking-events-generator/SKILL.md +257 -0
- package/extracted-skill/tracking-events-generator/advanced-matching.js +364 -0
- package/extracted-skill/tracking-events-generator/agents/ab-testing-agent.md +54 -0
- package/extracted-skill/tracking-events-generator/agents/attribution-agent.md +1304 -0
- package/extracted-skill/tracking-events-generator/agents/bing-agent.md +76 -0
- package/extracted-skill/tracking-events-generator/agents/browser-tracking.md +264 -0
- package/extracted-skill/tracking-events-generator/agents/code-guardian-agent.md +149 -0
- package/extracted-skill/tracking-events-generator/agents/compliance-agent.md +2077 -0
- package/extracted-skill/tracking-events-generator/agents/crm-integration-agent.md +1419 -0
- package/extracted-skill/tracking-events-generator/agents/dashboard-agent.md +456 -0
- package/extracted-skill/tracking-events-generator/agents/database-agent.md +667 -0
- package/extracted-skill/tracking-events-generator/agents/debug-agent.md +1455 -0
- package/extracted-skill/tracking-events-generator/agents/domain-setup-agent.md +224 -0
- package/extracted-skill/tracking-events-generator/agents/email-agent.md +61 -0
- package/extracted-skill/tracking-events-generator/agents/fingerprint-agent.md +52 -0
- package/extracted-skill/tracking-events-generator/agents/google-agent.md +109 -0
- package/extracted-skill/tracking-events-generator/agents/intelligence-agent.md +365 -0
- package/extracted-skill/tracking-events-generator/agents/intelligence-scheduling.md +643 -0
- package/extracted-skill/tracking-events-generator/agents/linkedin-agent.md +62 -0
- package/extracted-skill/tracking-events-generator/agents/localization-agent.md +55 -0
- package/extracted-skill/tracking-events-generator/agents/ltv-predictor-agent.md +59 -0
- package/extracted-skill/tracking-events-generator/agents/master-feedback-loop.md +900 -0
- package/extracted-skill/tracking-events-generator/agents/master-orchestrator.md +1922 -0
- package/extracted-skill/tracking-events-generator/agents/memory-agent.json +109 -0
- package/extracted-skill/tracking-events-generator/agents/memory-agent.md +703 -0
- package/extracted-skill/tracking-events-generator/agents/meta-agent.md +110 -0
- package/extracted-skill/tracking-events-generator/agents/page-analyzer.md +255 -0
- package/extracted-skill/tracking-events-generator/agents/performance-agent.md +1157 -0
- package/extracted-skill/tracking-events-generator/agents/performance-optimization-agent.md +1432 -0
- package/extracted-skill/tracking-events-generator/agents/pinterest-agent.md +310 -0
- package/extracted-skill/tracking-events-generator/agents/premium-tracking-intelligence-agent.md +849 -0
- package/extracted-skill/tracking-events-generator/agents/r2-setup-agent.md +250 -0
- package/extracted-skill/tracking-events-generator/agents/reddit-agent.md +313 -0
- package/extracted-skill/tracking-events-generator/agents/security-enterprise-agent.md +1752 -0
- package/extracted-skill/tracking-events-generator/agents/server-tracking.md +1188 -0
- package/extracted-skill/tracking-events-generator/agents/spotify-agent.md +383 -0
- package/extracted-skill/tracking-events-generator/agents/tiktok-agent.md +111 -0
- package/extracted-skill/tracking-events-generator/agents/tracking-plan-agent.md +364 -0
- package/extracted-skill/tracking-events-generator/agents/validator-agent.md +267 -0
- package/extracted-skill/tracking-events-generator/agents/webhook-agent.md +69 -0
- package/extracted-skill/tracking-events-generator/agents/whatsapp-agent.md +76 -0
- package/extracted-skill/tracking-events-generator/agents/whatsapp-ctwa-setup-agent.md +699 -0
- package/extracted-skill/tracking-events-generator/agents/youtube-agent.md +422 -0
- package/extracted-skill/tracking-events-generator/anti-blocking.js +285 -0
- package/extracted-skill/tracking-events-generator/cdpTrack.js +641 -0
- package/extracted-skill/tracking-events-generator/contracts/api-versions.json +368 -0
- package/extracted-skill/tracking-events-generator/docs/guia-cloudflare-iniciante.md +107 -0
- package/extracted-skill/tracking-events-generator/engagement-scoring.js +226 -0
- package/extracted-skill/tracking-events-generator/evals/evals.json +235 -0
- package/extracted-skill/tracking-events-generator/integration-test.js +497 -0
- package/extracted-skill/tracking-events-generator/knowledge-base.md +2894 -0
- package/extracted-skill/tracking-events-generator/micro-events.js +992 -0
- package/extracted-skill/tracking-events-generator/models/captura-de-lead.md +78 -0
- package/extracted-skill/tracking-events-generator/models/captura-lead-evento-externo.md +99 -0
- package/extracted-skill/tracking-events-generator/models/checkout-proprio.md +111 -0
- package/extracted-skill/tracking-events-generator/models/multi-step-checkout.md +672 -0
- package/extracted-skill/tracking-events-generator/models/pagina-obrigado.md +55 -0
- package/extracted-skill/tracking-events-generator/models/pinterest/conversions-api-template.js +144 -0
- package/extracted-skill/tracking-events-generator/models/pinterest/event-mappings.json +48 -0
- package/extracted-skill/tracking-events-generator/models/pinterest/tag-template.js +28 -0
- package/extracted-skill/tracking-events-generator/models/quiz-funnel.md +68 -0
- package/extracted-skill/tracking-events-generator/models/reddit/conversions-api-template.js +205 -0
- package/extracted-skill/tracking-events-generator/models/reddit/event-mappings.json +56 -0
- package/extracted-skill/tracking-events-generator/models/reddit/pixel-template.js +19 -0
- package/extracted-skill/tracking-events-generator/models/scenarios/behavior-engine.js +425 -0
- package/extracted-skill/tracking-events-generator/models/scenarios/real-estate-logic.md +50 -0
- package/extracted-skill/tracking-events-generator/models/scenarios/sales-page-logic.md +50 -0
- package/extracted-skill/tracking-events-generator/models/trafego-direto.md +582 -0
- package/extracted-skill/tracking-events-generator/models/webinar-registration.md +63 -0
- package/extracted-skill/tracking-events-generator/tracking.config.js +46 -0
- package/extracted-skill/tracking-events-generator/walkthrough.md +26 -0
- package/package.json +75 -0
- package/server-edge-tracker/INSTALAR.md +328 -0
- package/server-edge-tracker/migrate-new-db.sql +137 -0
- package/server-edge-tracker/migrate-v2.sql +16 -0
- package/server-edge-tracker/migrate-v3.sql +6 -0
- package/server-edge-tracker/migrate-v4.sql +18 -0
- package/server-edge-tracker/migrate-v5.sql +17 -0
- package/server-edge-tracker/migrate-v6.sql +24 -0
- package/server-edge-tracker/migrate.sql +111 -0
- package/server-edge-tracker/schema.sql +265 -0
- package/server-edge-tracker/worker.js +2574 -0
- package/server-edge-tracker/wrangler.toml +85 -0
- package/templates/afiliado-sem-landing.md +312 -0
- package/templates/captura-de-lead.md +78 -0
- package/templates/captura-lead-evento-externo.md +99 -0
- package/templates/checkout-proprio.md +111 -0
- package/templates/install/.claude/commands/cdp.md +1 -0
- package/templates/install/CLAUDE.md +65 -0
- package/templates/linkedin/tag-template.js +46 -0
- package/templates/multi-step-checkout.md +673 -0
- package/templates/pagina-obrigado.md +55 -0
- package/templates/pinterest/conversions-api-template.js +144 -0
- package/templates/pinterest/event-mappings.json +48 -0
- package/templates/pinterest/tag-template.js +28 -0
- package/templates/quiz-funnel.md +68 -0
- package/templates/reddit/conversions-api-template.js +205 -0
- package/templates/reddit/event-mappings.json +56 -0
- package/templates/reddit/pixel-template.js +46 -0
- package/templates/scenarios/behavior-engine.js +402 -0
- package/templates/scenarios/real-estate-logic.md +50 -0
- package/templates/scenarios/sales-page-logic.md +50 -0
- package/templates/spotify/pixel-template.js +46 -0
- package/templates/trafego-direto.md +582 -0
- package/templates/vsl-page.md +292 -0
- package/templates/webinar-registration.md +63 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Instalação: CDP Edge (Quantum Tier)
|
|
2
|
+
|
|
3
|
+
O **CDP Edge** é um sistema de tracking digital completo que opera de forma nativa na Cloudflare. Ele analisa os arquivos do seu projeto, identifica formulários e botões automaticamente, e gera todo o código de tracking para Meta, Google, TikTok e mais — incluindo servidor na borda e banco de dados D1, garantindo alta precisão e soberania total de dados.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 🚀 PASSO A PASSO DA INSTALAÇÃO
|
|
8
|
+
|
|
9
|
+
### 1. Preparação da Conta Cloudflare
|
|
10
|
+
- Acesse [cloudflare.com](https://cloudflare.com).
|
|
11
|
+
- Ative o banco de dados **D1**.
|
|
12
|
+
- Crie um **Worker** para processamento de eventos.
|
|
13
|
+
|
|
14
|
+
### 2. Implantação do SDK (Site)
|
|
15
|
+
- Adicione o script `cdpTrack.js` ao `<head>` do seu site.
|
|
16
|
+
- Configure os IDs (Meta, TikTok, GA4) no `cdpConfig.js`.
|
|
17
|
+
|
|
18
|
+
### 3. Configuração do Servidor (Worker)
|
|
19
|
+
- Faça o deploy do código gerado pelo **Server Agent**.
|
|
20
|
+
- Conecte o banco D1 ao seu Worker via `wrangler.toml`.
|
|
21
|
+
- Configure as Variáveis de Ambiente (Tokens de API).
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## ⚡ ARQUITETURA TÉCNICA (Quantum Tier SUPREME)
|
|
26
|
+
| Componente | Função | Vantagem |
|
|
27
|
+
|---|---|---|
|
|
28
|
+
| **cdpTrack.js** | SDK do Site | Envio direto via Fetch para o Worker |
|
|
29
|
+
| **Workers** | Processamento | Execução na borda com baixa latência |
|
|
30
|
+
| **D1 Database** | Persistência | Armazenamento seguro de leads e eventos |
|
|
31
|
+
| **CAPI v22.0** | Despacho | Atribuição de alta qualidade via servidor |
|
|
32
|
+
|
|
33
|
+
### Plataformas Suportadas (Server-Side)
|
|
34
|
+
| Plataforma | Status | Protocolo |
|
|
35
|
+
|---|---|---|
|
|
36
|
+
| Meta / Facebook Pixel | ✅ | ✅ CAPI v22.0 |
|
|
37
|
+
| Google Analytics 4 | ✅ | ✅ Measurement Protocol |
|
|
38
|
+
| Google Ads | ✅ | ✅ Conversão + User-provided Data |
|
|
39
|
+
| TikTok Pixel | ✅ | ✅ Events API v1.3 |
|
|
40
|
+
| Pinterest Tag | ✅ | — |
|
|
41
|
+
| Bing / Microsoft Ads | ✅ | — |
|
|
42
|
+
|
|
43
|
+
### Tipos de página reconhecidos automaticamente
|
|
44
|
+
| Tipo | Quando usa |
|
|
45
|
+
|---|---|
|
|
46
|
+
| Captura de Lead | Formulário com email/nome/telefone |
|
|
47
|
+
| Lead + Evento Externo | Formulário + compra em plataforma externa (Hotmart/Kiwify) |
|
|
48
|
+
| Tráfego Direto | Página de vendas sem formulário → checkout externo |
|
|
49
|
+
| Checkout Próprio | Cartão/Stripe/MercadoPago na página |
|
|
50
|
+
| Página de Obrigado | Thank-you page pós-compra |
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## 🏁 INICIANDO O SETUP
|
|
55
|
+
Para começar, utilize o comando:
|
|
56
|
+
> "/setup"
|
|
57
|
+
|
|
58
|
+
O CDP Edge irá analisar seu site e gerar a infraestrutura necessária automaticamente.
|
|
@@ -0,0 +1,594 @@
|
|
|
1
|
+
# CDP Edge Premium Tracking Intelligence - Integração Completa (Quantum Tier)
|
|
2
|
+
|
|
3
|
+
## 📋 Índice
|
|
4
|
+
|
|
5
|
+
1. [Arquitetura Completa](#arquitetura-completa)
|
|
6
|
+
2. [Instalação](#instalação)
|
|
7
|
+
3. [Configuração do SDK](#configuração-do-sdk)
|
|
8
|
+
4. [Configuração do Worker](#configuração-do-worker)
|
|
9
|
+
5. [Fluxo End-to-End](#fluxo-end-to-end)
|
|
10
|
+
6. [Exemplos de Uso](#exemplos-de-uso)
|
|
11
|
+
7. [Validação e Testes](#validação-e-testes)
|
|
12
|
+
8. [Deployment](#deployment)
|
|
13
|
+
9. [Troubleshooting](#troubleshooting)
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 🏗️ Arquitetura Completa
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
21
|
+
│ BROWSER SDK (cdpTrack.js) │
|
|
22
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
23
|
+
│ 1. cdpTrack.js (SDK Principal) │
|
|
24
|
+
│ 2. micro-events.js (Scroll, Time, Video, Click, Hover) │
|
|
25
|
+
│ 3. engagement-scoring.js (Score 0-5.0 browser-side) │
|
|
26
|
+
│ 4. advanced-matching.js (Normalização de PII) │
|
|
27
|
+
│ 5. anti-blocking.js (Retry, Beacon, Ad-block detection) │
|
|
28
|
+
│ 6. behavior-engine.js (Rage click, Idle, A/B, VSL) │
|
|
29
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
30
|
+
│
|
|
31
|
+
▼ fetch('/api/tracking')
|
|
32
|
+
│ (same-domain)
|
|
33
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
34
|
+
│ CLOUDFLARE WORKER (worker.js) │
|
|
35
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
36
|
+
│ 1. Receiver (POST /api/tracking) │
|
|
37
|
+
│ 2. Identity Graph Sync (D1) │
|
|
38
|
+
│ 3. Advanced Matching (SHA256 PII + Meta AM) │
|
|
39
|
+
│ 4. Engagement Scoring Server-Side (0-5.0 final) │
|
|
40
|
+
│ 5. Dispatcher (Meta, Google, TikTok) │
|
|
41
|
+
│ 6. Retry System (Queue + Escalation) │
|
|
42
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
43
|
+
│
|
|
44
|
+
┌──────────┼──────────┬──────────┐
|
|
45
|
+
▼ ▼ ▼ ▼
|
|
46
|
+
┌────────┐ ┌────────┐ ┌─────────┐
|
|
47
|
+
│ Meta │ │ Google │ │ TikTok │
|
|
48
|
+
│ CAPI │ │ GA4 MP │ │ Events API│
|
|
49
|
+
│ v22.0 │ │ │ │ v1.3 │
|
|
50
|
+
└────────┘ └────────┘ └─────────┘
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 📦 Instalação
|
|
56
|
+
|
|
57
|
+
### Passo 1: Adicionar Scripts ao Site
|
|
58
|
+
|
|
59
|
+
```html
|
|
60
|
+
<!DOCTYPE html>
|
|
61
|
+
<html lang="pt-BR">
|
|
62
|
+
<head>
|
|
63
|
+
<meta charset="UTF-8">
|
|
64
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
65
|
+
|
|
66
|
+
<!-- 1. Configuração -->
|
|
67
|
+
<script type="module">
|
|
68
|
+
window.CDPEDGE_CONFIG = {
|
|
69
|
+
platforms: ['meta', 'google', 'tiktok'],
|
|
70
|
+
pixelId: 'SEU_PIXEL_ID_META',
|
|
71
|
+
ga4MeasurementId: 'G-XXXXXXXXXX',
|
|
72
|
+
tiktokPixelId: 'SEU_PIXEL_ID_TIKTOK',
|
|
73
|
+
enableAutoCapture: true,
|
|
74
|
+
enableMicroEvents: true,
|
|
75
|
+
enableEngagementScoring: true
|
|
76
|
+
};
|
|
77
|
+
</script>
|
|
78
|
+
|
|
79
|
+
<!-- 2. SDK Principal -->
|
|
80
|
+
<script type="module" src="/pb/cdpTrack.js"></script>
|
|
81
|
+
|
|
82
|
+
<!-- 3. Scripts de Suporte (opcional - para debug) -->
|
|
83
|
+
<script type="module" src="/pb/integration-test.js"></script>
|
|
84
|
+
</head>
|
|
85
|
+
<body>
|
|
86
|
+
<!-- Seu site aqui -->
|
|
87
|
+
|
|
88
|
+
<!-- 4. Tracking Automático (opcional) -->
|
|
89
|
+
<script type="module">
|
|
90
|
+
import { setupAutoFormCapture } from '/pb/cdpTrack.js';
|
|
91
|
+
|
|
92
|
+
// Capturar automaticamente formulários de lead
|
|
93
|
+
setupAutoFormCapture();
|
|
94
|
+
|
|
95
|
+
// Ou implementar manualmente:
|
|
96
|
+
document.querySelector('#lead-form')?.addEventListener('submit', async (e) => {
|
|
97
|
+
e.preventDefault();
|
|
98
|
+
|
|
99
|
+
const userData = {
|
|
100
|
+
email: e.target.email.value,
|
|
101
|
+
phone: e.target.phone.value,
|
|
102
|
+
first_name: e.target.name.value
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
await cdpTrack.trackLead(userData, e.target);
|
|
106
|
+
e.target.submit();
|
|
107
|
+
});
|
|
108
|
+
</script>
|
|
109
|
+
</body>
|
|
110
|
+
</html>
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Passo 2: Deploy do Worker
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
# 1. Criar arquivo tracking.config.js (se não existir)
|
|
117
|
+
cat > tracking.config.js << 'EOF'
|
|
118
|
+
export default {
|
|
119
|
+
pixelId: 'SEU_PIXEL_ID_META',
|
|
120
|
+
ga4MeasurementId: 'G-XXXXXXXXXX',
|
|
121
|
+
tiktokPixelId: 'SEU_PIXEL_ID_TIKTOK',
|
|
122
|
+
platforms: ['meta', 'google', 'tiktok'],
|
|
123
|
+
enableAutoCapture: true,
|
|
124
|
+
enableMicroEvents: true,
|
|
125
|
+
enableEngagementScoring: true
|
|
126
|
+
};
|
|
127
|
+
EOF
|
|
128
|
+
|
|
129
|
+
# 2. Criar schema D1
|
|
130
|
+
wrangler d1 execute cdp-edge-db --file=schema.sql
|
|
131
|
+
|
|
132
|
+
# 3. Configurar secrets
|
|
133
|
+
wrangler secret put META_ACCESS_TOKEN
|
|
134
|
+
wrangler secret put GA4_API_SECRET
|
|
135
|
+
wrangler secret put TIKTOK_ACCESS_TOKEN
|
|
136
|
+
|
|
137
|
+
# 4. Deploy
|
|
138
|
+
wrangler deploy
|
|
139
|
+
|
|
140
|
+
# 5. Testar
|
|
141
|
+
wrangler tail
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## ⚙️ Configuração do SDK
|
|
147
|
+
|
|
148
|
+
### tracking.config.js
|
|
149
|
+
|
|
150
|
+
```javascript
|
|
151
|
+
export default {
|
|
152
|
+
// Plataformas ativas
|
|
153
|
+
platforms: ['meta', 'google', 'tiktok'],
|
|
154
|
+
|
|
155
|
+
// IDs dos Pixels
|
|
156
|
+
pixelId: '123456789012345', // Meta Pixel ID
|
|
157
|
+
ga4MeasurementId: 'G-XXXXXXXXXX', // GA4 Measurement ID
|
|
158
|
+
tiktokPixelId: 'CAKJXXXXXX', // TikTok Pixel ID
|
|
159
|
+
|
|
160
|
+
// Configurações de funcionalidades
|
|
161
|
+
enableAutoCapture: true, // Auto-captura de formulários
|
|
162
|
+
enableMicroEvents: true, // Micro-events (scroll, time, video)
|
|
163
|
+
enableEngagementScoring: true, // Engagement scoring
|
|
164
|
+
enableBehaviorEngine: true, // Rage click, idle, A/B testing
|
|
165
|
+
enableAntiBlocking: true, // Anti-blocking (retry, beacon)
|
|
166
|
+
|
|
167
|
+
// Configurações de checkout pass-through
|
|
168
|
+
enableCheckoutPassThrough: true,
|
|
169
|
+
checkoutPlatforms: ['hotmart', 'kiwify', 'eduzz', 'monetizze', 'cartpanda'],
|
|
170
|
+
|
|
171
|
+
// Ambiente
|
|
172
|
+
environment: 'production', // 'development' | 'production'
|
|
173
|
+
debugMode: false // Mostra logs detalhados
|
|
174
|
+
};
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## 🌩 Configuração do Worker
|
|
180
|
+
|
|
181
|
+
### schema.sql (Atualizado com Premium Tracking)
|
|
182
|
+
|
|
183
|
+
```sql
|
|
184
|
+
-- TABELA DE EVENTOS
|
|
185
|
+
CREATE TABLE IF NOT EXISTS events_log (
|
|
186
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
187
|
+
event_id TEXT UNIQUE NOT NULL,
|
|
188
|
+
event_name TEXT NOT NULL,
|
|
189
|
+
platform TEXT,
|
|
190
|
+
session_id TEXT,
|
|
191
|
+
heat_score INTEGER DEFAULT 0,
|
|
192
|
+
user_data TEXT,
|
|
193
|
+
page_url TEXT,
|
|
194
|
+
utm_source TEXT,
|
|
195
|
+
utm_medium TEXT,
|
|
196
|
+
utm_campaign TEXT,
|
|
197
|
+
status TEXT DEFAULT 'pending',
|
|
198
|
+
error_msg TEXT,
|
|
199
|
+
created_at TEXT DEFAULT (datetime('now'))
|
|
200
|
+
);
|
|
201
|
+
|
|
202
|
+
-- IDENTITY GRAPH
|
|
203
|
+
CREATE TABLE IF NOT EXISTS identity_graph (
|
|
204
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
205
|
+
fingerprint TEXT UNIQUE,
|
|
206
|
+
fbp TEXT,
|
|
207
|
+
fbc TEXT,
|
|
208
|
+
ga_client_id TEXT,
|
|
209
|
+
external_id TEXT,
|
|
210
|
+
ttclid TEXT,
|
|
211
|
+
first_utm TEXT,
|
|
212
|
+
heat_score_avg INTEGER DEFAULT 0,
|
|
213
|
+
visit_count INTEGER DEFAULT 1,
|
|
214
|
+
last_seen TEXT DEFAULT (datetime('now')),
|
|
215
|
+
created_at TEXT DEFAULT (datetime('now'))
|
|
216
|
+
);
|
|
217
|
+
|
|
218
|
+
-- BEHAVIORAL EVENTS (Engagement Scoring)
|
|
219
|
+
CREATE TABLE IF NOT EXISTS behavioral_events (
|
|
220
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
221
|
+
event_id TEXT NOT NULL UNIQUE,
|
|
222
|
+
user_id TEXT,
|
|
223
|
+
session_id TEXT,
|
|
224
|
+
|
|
225
|
+
-- Browser-side score (0-5.0)
|
|
226
|
+
engagement_score REAL DEFAULT 0.0,
|
|
227
|
+
time_level TEXT,
|
|
228
|
+
scroll_score REAL DEFAULT 0.0,
|
|
229
|
+
click_score REAL DEFAULT 0.0,
|
|
230
|
+
video_score REAL DEFAULT 0.0,
|
|
231
|
+
hover_score REAL DEFAULT 0.0,
|
|
232
|
+
intention_level TEXT,
|
|
233
|
+
|
|
234
|
+
-- Server-side final score
|
|
235
|
+
server_engagement_score REAL DEFAULT 0.0,
|
|
236
|
+
final_intention_level TEXT,
|
|
237
|
+
|
|
238
|
+
-- Advanced Matching (hashes)
|
|
239
|
+
email_hash TEXT,
|
|
240
|
+
phone_hash TEXT,
|
|
241
|
+
first_name_hash TEXT,
|
|
242
|
+
last_name_hash TEXT,
|
|
243
|
+
|
|
244
|
+
-- Advanced Matching (não hashados - Meta AM)
|
|
245
|
+
city TEXT,
|
|
246
|
+
state TEXT,
|
|
247
|
+
zip TEXT,
|
|
248
|
+
country TEXT,
|
|
249
|
+
dob TEXT,
|
|
250
|
+
|
|
251
|
+
page_url TEXT,
|
|
252
|
+
utm_source TEXT,
|
|
253
|
+
utm_medium TEXT,
|
|
254
|
+
utm_campaign TEXT,
|
|
255
|
+
click_ids TEXT,
|
|
256
|
+
|
|
257
|
+
created_at TEXT DEFAULT (datetime('now'))
|
|
258
|
+
);
|
|
259
|
+
|
|
260
|
+
-- ÍNDICES
|
|
261
|
+
CREATE INDEX IF NOT EXISTS idx_events_id ON events_log(event_id);
|
|
262
|
+
CREATE INDEX IF NOT EXISTS idx_behavioral_session ON behavioral_events(session_id);
|
|
263
|
+
CREATE INDEX IF NOT EXISTS idx_behavioral_user ON behavioral_events(user_id);
|
|
264
|
+
CREATE INDEX IF NOT EXISTS idx_behavioral_engagement ON behavioral_events(server_engagement_score);
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## 🔄 Fluxo End-to-End
|
|
270
|
+
|
|
271
|
+
### 1. Page View (Carregamento)
|
|
272
|
+
|
|
273
|
+
```
|
|
274
|
+
Usuário acessa site
|
|
275
|
+
↓
|
|
276
|
+
cdpTrack.init() é chamado
|
|
277
|
+
↓
|
|
278
|
+
Anti-Blocking inicializado (detecção de ad-blocker)
|
|
279
|
+
↓
|
|
280
|
+
Micro-Events inicializados (scroll, time, video, click, hover)
|
|
281
|
+
↓
|
|
282
|
+
Engagement Scoring inicializado (score 0-5.0)
|
|
283
|
+
↓
|
|
284
|
+
Behavior Engine inicializado (A/B testing, rage click, idle)
|
|
285
|
+
↓
|
|
286
|
+
PageView event enviado para Worker
|
|
287
|
+
↓
|
|
288
|
+
Worker recebe payload
|
|
289
|
+
↓
|
|
290
|
+
Sync Identity Graph (D1)
|
|
291
|
+
↓
|
|
292
|
+
Calculate Server-Side Engagement Score (0-5.0 com histórico)
|
|
293
|
+
↓
|
|
294
|
+
Dispatch para Meta CAPI v22.0 (com engagement score + advanced matching)
|
|
295
|
+
↓
|
|
296
|
+
Dispatch para Google GA4 MP (com engagement score)
|
|
297
|
+
↓
|
|
298
|
+
Dispatch para TikTok Events API v1.3 (com engagement score)
|
|
299
|
+
↓
|
|
300
|
+
Log no D1 (behavioral_events + events_log)
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
### 2. Lead Capture (Formulário)
|
|
304
|
+
|
|
305
|
+
```
|
|
306
|
+
Usuário preenche formulário
|
|
307
|
+
↓
|
|
308
|
+
setupAutoFormCapture() intercepta submit
|
|
309
|
+
↓
|
|
310
|
+
extractFormPII() captura dados crus (email, phone, name, city, state, zip, dob)
|
|
311
|
+
↓
|
|
312
|
+
Normaliza dados (lowercase, remove acentos, DDI 55 no telefone)
|
|
313
|
+
↓
|
|
314
|
+
cdpTrack.trackLead(piiData) enviado para Worker
|
|
315
|
+
↓
|
|
316
|
+
Worker recebe dados PII CRUS
|
|
317
|
+
↓
|
|
318
|
+
Normaliza PII no servidor
|
|
319
|
+
↓
|
|
320
|
+
SHA256 de email, phone, first_name, last_name
|
|
321
|
+
↓
|
|
322
|
+
Cidade, estado, zip, dob NÃO são hashados (Meta AM)
|
|
323
|
+
↓
|
|
324
|
+
Calculate Engagement Score (com PII + histórico)
|
|
325
|
+
↓
|
|
326
|
+
Dispatch para Meta CAPI v22.0:
|
|
327
|
+
user_data: {
|
|
328
|
+
em: [sha256_email],
|
|
329
|
+
ph: [sha256_phone_ddi55],
|
|
330
|
+
fn: [sha256_first_name],
|
|
331
|
+
ln: [sha256_last_name],
|
|
332
|
+
ct: 'sao paulo', // Não hashado
|
|
333
|
+
st: 'sp', // Não hashado
|
|
334
|
+
zp: '01310100', // Não hashado
|
|
335
|
+
db: '19900101' // Não hashado
|
|
336
|
+
},
|
|
337
|
+
custom_data: {
|
|
338
|
+
engagement_score: 3.5,
|
|
339
|
+
intention_level: 'comprador',
|
|
340
|
+
value: 100,
|
|
341
|
+
currency: 'BRL'
|
|
342
|
+
}
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
---
|
|
346
|
+
|
|
347
|
+
## 📝 Exemplos de Uso
|
|
348
|
+
|
|
349
|
+
### Exemplo 1: Auto-Captura de Leads (Sem Código Manual)
|
|
350
|
+
|
|
351
|
+
```html
|
|
352
|
+
<script type="module" src="/pb/cdpTrack.js"></script>
|
|
353
|
+
|
|
354
|
+
<form id="lead-form">
|
|
355
|
+
<input type="email" name="email" placeholder="Seu e-mail" required>
|
|
356
|
+
<input type="tel" name="phone" placeholder="Seu telefone" required>
|
|
357
|
+
<input type="text" name="name" placeholder="Seu nome" required>
|
|
358
|
+
<input type="text" name="city" placeholder="Sua cidade">
|
|
359
|
+
<input type="text" name="state" placeholder="Seu estado">
|
|
360
|
+
<input type="text" name="zip" placeholder="Seu CEP">
|
|
361
|
+
<button type="submit">Enviar</button>
|
|
362
|
+
</form>
|
|
363
|
+
|
|
364
|
+
<script type="module">
|
|
365
|
+
import { setupAutoFormCapture } from '/pb/cdpTrack.js';
|
|
366
|
+
setupAutoFormCapture();
|
|
367
|
+
</script>
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
### Exemplo 2: Manual - Track Lead com PII
|
|
371
|
+
|
|
372
|
+
```javascript
|
|
373
|
+
document.querySelector('#lead-form')?.addEventListener('submit', async (e) => {
|
|
374
|
+
e.preventDefault();
|
|
375
|
+
|
|
376
|
+
const userData = {
|
|
377
|
+
email: e.target.email.value,
|
|
378
|
+
phone: e.target.phone.value,
|
|
379
|
+
first_name: e.target.name.value,
|
|
380
|
+
last_name: e.target.lastname.value,
|
|
381
|
+
city: e.target.city.value,
|
|
382
|
+
state: e.target.state.value,
|
|
383
|
+
zip: e.target.zip.value,
|
|
384
|
+
dob: e.target.dob.value
|
|
385
|
+
};
|
|
386
|
+
|
|
387
|
+
// Captura lead com Advanced Matching Maximum
|
|
388
|
+
await cdpTrack.trackLead(userData, e.target);
|
|
389
|
+
|
|
390
|
+
e.target.submit();
|
|
391
|
+
});
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
### Exemplo 3: Track Purchase
|
|
395
|
+
|
|
396
|
+
```javascript
|
|
397
|
+
document.querySelector('#checkout-form')?.addEventListener('submit', async (e) => {
|
|
398
|
+
e.preventDefault();
|
|
399
|
+
|
|
400
|
+
const orderData = {
|
|
401
|
+
order_id: 'ORDER_12345',
|
|
402
|
+
value: 297.00,
|
|
403
|
+
currency: 'BRL',
|
|
404
|
+
items: [
|
|
405
|
+
{ item_id: 'PROD_001', quantity: 1, price: 297.00 }
|
|
406
|
+
]
|
|
407
|
+
};
|
|
408
|
+
|
|
409
|
+
// Captura compra com PII do usuário
|
|
410
|
+
await cdpTrack.trackPurchase(orderData, e.target);
|
|
411
|
+
|
|
412
|
+
e.target.submit();
|
|
413
|
+
});
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
### Exemplo 4: Track Event Customizado
|
|
417
|
+
|
|
418
|
+
```javascript
|
|
419
|
+
// Track clique em botão CTA
|
|
420
|
+
document.querySelector('.cta-button')?.addEventListener('click', async () => {
|
|
421
|
+
await cdpTrack.track('CTA_Click', {
|
|
422
|
+
button_text: 'Comprar Agora',
|
|
423
|
+
button_location: 'hero_section'
|
|
424
|
+
});
|
|
425
|
+
});
|
|
426
|
+
|
|
427
|
+
// Track vídeo assistido
|
|
428
|
+
document.querySelector('video')?.addEventListener('ended', async () => {
|
|
429
|
+
await cdpTrack.track('Video_Complete', {
|
|
430
|
+
video_id: 'intro-vsl',
|
|
431
|
+
video_platform: 'youtube',
|
|
432
|
+
video_duration: 180,
|
|
433
|
+
watch_time: 180
|
|
434
|
+
});
|
|
435
|
+
});
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
### Exemplo 5: Passar Parâmetros para Checkout Externo
|
|
439
|
+
|
|
440
|
+
```javascript
|
|
441
|
+
import { passCheckoutParams } from '/pb/cdpTrack.js';
|
|
442
|
+
|
|
443
|
+
// Hotmart
|
|
444
|
+
passCheckoutParams({ platforms: ['hotmart'] });
|
|
445
|
+
|
|
446
|
+
// Todos os checkouts
|
|
447
|
+
passCheckoutParams({
|
|
448
|
+
platforms: ['hotmart', 'kiwify', 'eduzz', 'monetizze'],
|
|
449
|
+
domains: ['meusite.com/checkout']
|
|
450
|
+
});
|
|
451
|
+
|
|
452
|
+
// Links serão automaticamente atualizados:
|
|
453
|
+
// hotmart.com/?xcod=user123&sck=source|medium|campaign|content|term
|
|
454
|
+
// kiwify.com.br/?src=source&utm_medium=medium&utm_campaign=campaign
|
|
455
|
+
```
|
|
456
|
+
|
|
457
|
+
---
|
|
458
|
+
|
|
459
|
+
## ✅ Validação e Testes
|
|
460
|
+
|
|
461
|
+
### Teste 1: Health Check Rápido
|
|
462
|
+
|
|
463
|
+
```javascript
|
|
464
|
+
import { runQuickTest } from '/pb/integration-test.js';
|
|
465
|
+
|
|
466
|
+
const quickResult = await runQuickTest();
|
|
467
|
+
console.log('Status:', quickResult.status);
|
|
468
|
+
|
|
469
|
+
// Esperado: { status: 'ready', worker_online: true, all_modules_loaded: true }
|
|
470
|
+
```
|
|
471
|
+
|
|
472
|
+
### Teste 2: Suite Completa de Integração
|
|
473
|
+
|
|
474
|
+
Adicione `?cdp_test=true` à URL do site:
|
|
475
|
+
|
|
476
|
+
```
|
|
477
|
+
https://meusite.com/?cdp_test=true
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
Isso exibirá um painel de testes com:
|
|
481
|
+
- ✅ Status dos módulos
|
|
482
|
+
- ✅ Health check do Worker
|
|
483
|
+
- ✅ Teste de envio de eventos
|
|
484
|
+
- ✅ Validação de payload
|
|
485
|
+
- ✅ Validação de normalização de PII
|
|
486
|
+
- ✅ Validação de micro-events
|
|
487
|
+
|
|
488
|
+
### Teste 3: Verificar Worker Logs
|
|
489
|
+
|
|
490
|
+
```bash
|
|
491
|
+
wrangler tail
|
|
492
|
+
```
|
|
493
|
+
|
|
494
|
+
Procure por:
|
|
495
|
+
- ✅ Worker Online
|
|
496
|
+
- ✅ Evento {nome} enviado com sucesso
|
|
497
|
+
- ✅ Engagement Score calculado
|
|
498
|
+
- ✅ Meta CAPI enviado
|
|
499
|
+
- ✅ GA4 enviado
|
|
500
|
+
- ✅ TikTok enviado
|
|
501
|
+
|
|
502
|
+
---
|
|
503
|
+
|
|
504
|
+
## 🚀 Deployment
|
|
505
|
+
|
|
506
|
+
### Checklist de Deployment
|
|
507
|
+
|
|
508
|
+
- [ ] 1. Criar conta Cloudflare
|
|
509
|
+
- [ ] 2. Criar Worker
|
|
510
|
+
- [ ] 3. Criar banco D1
|
|
511
|
+
- [ ] 4. Executar migrations (schema.sql)
|
|
512
|
+
- [ ] 5. Configurar secrets (META_ACCESS_TOKEN, GA4_API_SECRET, TIKTOK_ACCESS_TOKEN)
|
|
513
|
+
- [ ] 6. Deploy do Worker (`wrangler deploy`)
|
|
514
|
+
- [ ] 7. Configurar custom domain
|
|
515
|
+
- [ ] 8. Configurar DNS (CNAME para Worker)
|
|
516
|
+
- [ ] 9. Adicionar scripts ao site
|
|
517
|
+
- [ ] 10. Testar integração end-to-end
|
|
518
|
+
- [ ] 11. Validar eventos no Meta Events Manager
|
|
519
|
+
- [ ] 12. Validar eventos no GA4 DebugView
|
|
520
|
+
- [ ] 13. Validar eventos no TikTok Events Manager
|
|
521
|
+
|
|
522
|
+
---
|
|
523
|
+
|
|
524
|
+
## 🔧 Troubleshooting
|
|
525
|
+
|
|
526
|
+
### Problema 1: Eventos não chegam ao Meta
|
|
527
|
+
|
|
528
|
+
**Solução:**
|
|
529
|
+
1. Verificar se `META_ACCESS_TOKEN` está configurado no Worker
|
|
530
|
+
2. Verificar se Pixel ID está correto
|
|
531
|
+
3. Verificar logs do Worker (`wrangler tail`)
|
|
532
|
+
4. Validar payload no Meta Events Manager
|
|
533
|
+
|
|
534
|
+
### Problema 2: Advanced Matching não funciona
|
|
535
|
+
|
|
536
|
+
**Solução:**
|
|
537
|
+
1. Verificar se dados PII estão sendo capturados
|
|
538
|
+
2. Verificar se `extractFormPII()` está funcionando
|
|
539
|
+
3. Verificar se Worker está fazendo SHA256 corretamente
|
|
540
|
+
4. Validar normalização (minusculas, sem acentos, DDI 55)
|
|
541
|
+
|
|
542
|
+
### Problema 3: Engagement Score sempre baixo
|
|
543
|
+
|
|
544
|
+
**Solução:**
|
|
545
|
+
1. Verificar se micro-events estão capturando dados
|
|
546
|
+
2. Verificar se engagement-scoring.js está calculando
|
|
547
|
+
3. Verificar se Worker está calculando score server-side
|
|
548
|
+
4. Verificar histórico de sessões no D1 (visit_count)
|
|
549
|
+
|
|
550
|
+
### Problema 4: Ad-blocker bloqueia tracking
|
|
551
|
+
|
|
552
|
+
**Solução:**
|
|
553
|
+
1. Verificar se endpoint está no mesmo domínio (`/api/tracking`)
|
|
554
|
+
2. Verificar se está usando first-party cookies
|
|
555
|
+
3. Verificar se `sendWithRetry()` está funcionando
|
|
556
|
+
4. Verificar logs de ad-blocker detection
|
|
557
|
+
|
|
558
|
+
---
|
|
559
|
+
|
|
560
|
+
## 📊 Performance Esperada
|
|
561
|
+
|
|
562
|
+
### Impacto no CPL
|
|
563
|
+
|
|
564
|
+
Com Premium Tracking Intelligence implementado:
|
|
565
|
+
|
|
566
|
+
- **Redução esperada no CPL:** 30-50%
|
|
567
|
+
- **Aumento na taxa de conversão:** 15-25%
|
|
568
|
+
- **Melhoria na qualidade dos leads:** 40-60%
|
|
569
|
+
- **Redução em fraudes:** 25-35%
|
|
570
|
+
|
|
571
|
+
### Fórmula de Sucesso
|
|
572
|
+
|
|
573
|
+
```
|
|
574
|
+
Score = 1 / (Event Match Quality × Signal Strength × Behavioral Intelligence)
|
|
575
|
+
```
|
|
576
|
+
|
|
577
|
+
Onde:
|
|
578
|
+
- **Event Match Quality**: Advanced Matching (0-8 campos PII)
|
|
579
|
+
- **Signal Strength**: Engagement Score (0-5.0)
|
|
580
|
+
- **Behavioral Intelligence**: Micro-Events + Histórico de Sessões
|
|
581
|
+
|
|
582
|
+
---
|
|
583
|
+
|
|
584
|
+
## 📞 Suporte
|
|
585
|
+
|
|
586
|
+
Para suporte, consulte:
|
|
587
|
+
- Documentação completa: `SKILL.md`
|
|
588
|
+
- Agentes especialistas: `agents/*.md`
|
|
589
|
+
- Casos de uso: `models/scenarios/*.md`
|
|
590
|
+
|
|
591
|
+
---
|
|
592
|
+
|
|
593
|
+
*CDP Edge Premium Tracking Intelligence - Integração Completa (Quantum Tier)*
|
|
594
|
+
*Versão 1.0.0 - Atualizado em 2026-03-27*
|