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,359 @@
|
|
|
1
|
+
# CDP Edge — Events Reference
|
|
2
|
+
> Catálogo completo de todos os eventos, payloads e mapeamento por plataforma.
|
|
3
|
+
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Como enviar um evento
|
|
7
|
+
|
|
8
|
+
### Via SDK browser (cdpTrack.js)
|
|
9
|
+
```javascript
|
|
10
|
+
// Genérico
|
|
11
|
+
window.cdpTrack.track('EventName', { param1: 'valor', param2: 'valor' });
|
|
12
|
+
|
|
13
|
+
// Atalhos
|
|
14
|
+
window.cdpTrack.trackLead({ email: '...', phone: '...' });
|
|
15
|
+
window.cdpTrack.trackPurchase({ value: 97, currency: 'BRL', order_id: '...' });
|
|
16
|
+
window.cdpTrack.trackViewContent({ content_name: '...', value: 97 });
|
|
17
|
+
window.cdpTrack.trackAddToCart({ content_id: '...', value: 97 });
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### Via Worker direto (server-to-server)
|
|
21
|
+
```bash
|
|
22
|
+
curl -X POST https://track.seudominio.com.br/track \
|
|
23
|
+
-H "Content-Type: application/json" \
|
|
24
|
+
-d '{ "event": "Lead", "email": "fulano@exemplo.com", "phone": "11999998888" }'
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Eventos Principais
|
|
30
|
+
|
|
31
|
+
### PageView
|
|
32
|
+
Disparado automaticamente pelo SDK ao carregar qualquer página.
|
|
33
|
+
|
|
34
|
+
```json
|
|
35
|
+
{
|
|
36
|
+
"event": "PageView",
|
|
37
|
+
"url": "https://seudominio.com.br/pagina",
|
|
38
|
+
"title": "Título da Página"
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
| Plataforma | Nome do evento |
|
|
43
|
+
|---|---|
|
|
44
|
+
| Meta CAPI | `PageView` |
|
|
45
|
+
| GA4 | `page_view` |
|
|
46
|
+
| TikTok | `PageView` |
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
### Lead
|
|
51
|
+
Captura de lead com dados pessoais. O Worker faz SHA256 automaticamente — enviar dados crus.
|
|
52
|
+
|
|
53
|
+
```json
|
|
54
|
+
{
|
|
55
|
+
"event": "Lead",
|
|
56
|
+
"email": "fulano@exemplo.com",
|
|
57
|
+
"phone": "11999998888",
|
|
58
|
+
"firstName": "João",
|
|
59
|
+
"lastName": "Silva",
|
|
60
|
+
"city": "São Paulo",
|
|
61
|
+
"state": "SP",
|
|
62
|
+
"zip": "01310100",
|
|
63
|
+
"country": "BR"
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
| Plataforma | Nome do evento |
|
|
68
|
+
|---|---|
|
|
69
|
+
| Meta CAPI | `Lead` |
|
|
70
|
+
| GA4 | `generate_lead` |
|
|
71
|
+
| TikTok | `SubmitForm` |
|
|
72
|
+
| Pinterest | `lead` |
|
|
73
|
+
| Reddit | `Lead` |
|
|
74
|
+
| LinkedIn | `LEAD` |
|
|
75
|
+
|
|
76
|
+
**Campos obrigatórios:** pelo menos um entre `email` ou `phone`.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
### Purchase
|
|
81
|
+
Compra confirmada. Pode vir do browser ou do webhook de gateway.
|
|
82
|
+
|
|
83
|
+
```json
|
|
84
|
+
{
|
|
85
|
+
"event": "Purchase",
|
|
86
|
+
"value": 297.00,
|
|
87
|
+
"currency": "BRL",
|
|
88
|
+
"order_id": "ORD-12345",
|
|
89
|
+
"email": "fulano@exemplo.com",
|
|
90
|
+
"phone": "11999998888",
|
|
91
|
+
"content_name": "Curso XYZ",
|
|
92
|
+
"content_ids": ["SKU-001"]
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
| Plataforma | Nome do evento |
|
|
97
|
+
|---|---|
|
|
98
|
+
| Meta CAPI | `Purchase` |
|
|
99
|
+
| GA4 | `purchase` |
|
|
100
|
+
| TikTok | `CompletePayment` |
|
|
101
|
+
| Pinterest | `checkout` |
|
|
102
|
+
| Reddit | `Purchase` |
|
|
103
|
+
| LinkedIn | `PURCHASE` |
|
|
104
|
+
|
|
105
|
+
**Campos obrigatórios:** `value`, `currency`.
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
### InitiateCheckout
|
|
110
|
+
Clique no botão de compra ou entrada na página de checkout.
|
|
111
|
+
|
|
112
|
+
```json
|
|
113
|
+
{
|
|
114
|
+
"event": "InitiateCheckout",
|
|
115
|
+
"value": 297.00,
|
|
116
|
+
"currency": "BRL",
|
|
117
|
+
"content_name": "Curso XYZ",
|
|
118
|
+
"content_ids": ["SKU-001"]
|
|
119
|
+
}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
| Plataforma | Nome do evento |
|
|
123
|
+
|---|---|
|
|
124
|
+
| Meta CAPI | `InitiateCheckout` |
|
|
125
|
+
| GA4 | `begin_checkout` |
|
|
126
|
+
| TikTok | `InitiateCheckout` |
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
### ViewContent
|
|
131
|
+
Visualização de produto, oferta ou conteúdo de valor.
|
|
132
|
+
|
|
133
|
+
```json
|
|
134
|
+
{
|
|
135
|
+
"event": "ViewContent",
|
|
136
|
+
"content_name": "Página de Vendas — Curso XYZ",
|
|
137
|
+
"content_type": "product",
|
|
138
|
+
"value": 297.00,
|
|
139
|
+
"currency": "BRL",
|
|
140
|
+
"content_ids": ["SKU-001"]
|
|
141
|
+
}
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
| Plataforma | Nome do evento |
|
|
145
|
+
|---|---|
|
|
146
|
+
| Meta CAPI | `ViewContent` |
|
|
147
|
+
| GA4 | `view_item` |
|
|
148
|
+
| TikTok | `ViewContent` |
|
|
149
|
+
| Pinterest | `pagevisit` |
|
|
150
|
+
| Reddit | `ViewContent` |
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
### AddToCart
|
|
155
|
+
Adição ao carrinho (e-commerce ou checkout multi-produto).
|
|
156
|
+
|
|
157
|
+
```json
|
|
158
|
+
{
|
|
159
|
+
"event": "AddToCart",
|
|
160
|
+
"value": 97.00,
|
|
161
|
+
"currency": "BRL",
|
|
162
|
+
"content_name": "Produto XYZ",
|
|
163
|
+
"content_ids": ["SKU-002"],
|
|
164
|
+
"num_items": 1
|
|
165
|
+
}
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
| Plataforma | Nome do evento |
|
|
169
|
+
|---|---|
|
|
170
|
+
| Meta CAPI | `AddToCart` |
|
|
171
|
+
| GA4 | `add_to_cart` |
|
|
172
|
+
| TikTok | `AddToCart` |
|
|
173
|
+
| Pinterest | `addtocart` |
|
|
174
|
+
| Reddit | `AddToCart` |
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
### CompleteRegistration
|
|
179
|
+
Cadastro completo (criação de conta, inscrição em lista, acesso liberado).
|
|
180
|
+
|
|
181
|
+
```json
|
|
182
|
+
{
|
|
183
|
+
"event": "CompleteRegistration",
|
|
184
|
+
"email": "fulano@exemplo.com",
|
|
185
|
+
"content_name": "Webinar Gratuito XYZ"
|
|
186
|
+
}
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
| Plataforma | Nome do evento |
|
|
190
|
+
|---|---|
|
|
191
|
+
| Meta CAPI | `CompleteRegistration` |
|
|
192
|
+
| GA4 | `sign_up` |
|
|
193
|
+
| TikTok | `CompleteRegistration` |
|
|
194
|
+
| LinkedIn | `REGISTRATION` |
|
|
195
|
+
| Spotify | `SIGN_UP` |
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
### Contact
|
|
200
|
+
Contato via WhatsApp (CTWA — Click to WhatsApp). Disparado automaticamente pelo webhook.
|
|
201
|
+
|
|
202
|
+
```json
|
|
203
|
+
{
|
|
204
|
+
"event": "Contact",
|
|
205
|
+
"phone": "5511999998888",
|
|
206
|
+
"ctwa_clid": "ARAkLgFgg...",
|
|
207
|
+
"action_source": "chat"
|
|
208
|
+
}
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
| Plataforma | Nome do evento |
|
|
212
|
+
|---|---|
|
|
213
|
+
| Meta CAPI | `Contact` (action_source: "chat") |
|
|
214
|
+
|
|
215
|
+
**Nota:** Este evento é gerado automaticamente pelo `processWhatsAppWebhook()` — não precisa ser disparado manualmente.
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## Eventos de Micro-Engajamento
|
|
220
|
+
|
|
221
|
+
Gerados automaticamente pelo `micro-events.js`. Salvos no D1 (`behavioral_events`). Contribuem para o engagement score mas **não são enviados às plataformas de anúncio** individualmente.
|
|
222
|
+
|
|
223
|
+
### Scroll
|
|
224
|
+
```json
|
|
225
|
+
{
|
|
226
|
+
"event": "Scroll",
|
|
227
|
+
"scroll_depth": 75,
|
|
228
|
+
"scroll_percent": 78,
|
|
229
|
+
"signal_strength": 3.0,
|
|
230
|
+
"time_on_page": 45
|
|
231
|
+
}
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
### TimeOnPage
|
|
235
|
+
```json
|
|
236
|
+
{
|
|
237
|
+
"event": "TimeOnPage",
|
|
238
|
+
"time_on_page": 180,
|
|
239
|
+
"intention_level": "comprador",
|
|
240
|
+
"signal_strength": 4.0
|
|
241
|
+
}
|
|
242
|
+
```
|
|
243
|
+
**Níveis:** `curioso` (10s) → `interessado` (60s) → `comprador` (180s)
|
|
244
|
+
|
|
245
|
+
### VideoPlay / VideoProgress / VideoComplete
|
|
246
|
+
```json
|
|
247
|
+
{
|
|
248
|
+
"event": "VideoProgress",
|
|
249
|
+
"video_id": "vsl-principal",
|
|
250
|
+
"video_platform": "youtube",
|
|
251
|
+
"progress_percent": 75,
|
|
252
|
+
"progress_second": 423,
|
|
253
|
+
"engagement_score": 5.0,
|
|
254
|
+
"video_summary": {
|
|
255
|
+
"totalVideos": 1,
|
|
256
|
+
"startedCount": 1,
|
|
257
|
+
"completedCount": 0,
|
|
258
|
+
"maxProgress": 75
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
```
|
|
262
|
+
**Plataformas suportadas:** `html5`, `youtube`, `vimeo`
|
|
263
|
+
|
|
264
|
+
### VideoDropout
|
|
265
|
+
Registra o segundo exato em que o usuário parou de assistir.
|
|
266
|
+
```json
|
|
267
|
+
{
|
|
268
|
+
"event": "VideoDropout",
|
|
269
|
+
"video_id": "vsl-principal",
|
|
270
|
+
"dropout_percent": 62,
|
|
271
|
+
"dropout_second": 743,
|
|
272
|
+
"engagement_score": 2.5
|
|
273
|
+
}
|
|
274
|
+
```
|
|
275
|
+
**Disparado em:** pause sem retomada + `beforeunload` da página.
|
|
276
|
+
|
|
277
|
+
### Click
|
|
278
|
+
```json
|
|
279
|
+
{
|
|
280
|
+
"event": "Click",
|
|
281
|
+
"click_category": "cta",
|
|
282
|
+
"position": { "x": 640, "y": 980, "relativeX": 50, "relativeY": 72 },
|
|
283
|
+
"time_on_page": 120
|
|
284
|
+
}
|
|
285
|
+
```
|
|
286
|
+
**Categorias:** `button`, `link`, `input`, `cta`, `price`, `whatsapp`, `email`, `phone`, `generic`
|
|
287
|
+
|
|
288
|
+
### CTAHover
|
|
289
|
+
```json
|
|
290
|
+
{
|
|
291
|
+
"event": "CTAHover",
|
|
292
|
+
"cta_selector": "a[href*='checkout']",
|
|
293
|
+
"hover_time_seconds": 4,
|
|
294
|
+
"engagement_score": 3.0
|
|
295
|
+
}
|
|
296
|
+
```
|
|
297
|
+
Dispara apenas após 3 segundos de hover no botão de compra.
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
## Engagement Score
|
|
302
|
+
|
|
303
|
+
Calculado pelo Worker para cada evento recebido. Salvo em `leads.engagement_score`.
|
|
304
|
+
|
|
305
|
+
| Dimensão | Range | Descrição |
|
|
306
|
+
|---|---|---|
|
|
307
|
+
| `time_level` | 0–4.0 | Tempo na página |
|
|
308
|
+
| `scroll_score` | 0–4.0 | Profundidade de scroll |
|
|
309
|
+
| `click_score` | 0–2.5 | Cliques em CTAs |
|
|
310
|
+
| `video_score` | 0–5.0 | Progresso de vídeo |
|
|
311
|
+
| `hover_score` | 0–3.0 | Hover no botão de compra |
|
|
312
|
+
| **totalScore** | **0–5.0** | Média ponderada |
|
|
313
|
+
|
|
314
|
+
**Intention levels baseados no score:**
|
|
315
|
+
|
|
316
|
+
| Score | Label | Ação recomendada |
|
|
317
|
+
|---|---|---|
|
|
318
|
+
| 0.0–1.5 | `curioso` | Retargeting leve |
|
|
319
|
+
| 1.5–3.0 | `interessado` | Retargeting com oferta |
|
|
320
|
+
| 3.0–5.0 | `comprador` | Lookalike de alta qualidade |
|
|
321
|
+
|
|
322
|
+
---
|
|
323
|
+
|
|
324
|
+
## Webhooks de Gateway de Pagamento
|
|
325
|
+
|
|
326
|
+
Recebidos pelo Worker. Disparam `Purchase` automaticamente.
|
|
327
|
+
|
|
328
|
+
| Endpoint | Gateway | Autenticação |
|
|
329
|
+
|---|---|---|
|
|
330
|
+
| `POST /webhook/hotmart` | Hotmart | `HOTMART_HOTTOK` header |
|
|
331
|
+
| `POST /webhook/kiwify` | Kiwify | `KIWIFY_SECRET` HMAC |
|
|
332
|
+
| `POST /webhook/ticto` | Ticto | `TICTO_SECRET` HMAC-SHA256 |
|
|
333
|
+
|
|
334
|
+
---
|
|
335
|
+
|
|
336
|
+
## WhatsApp Webhook
|
|
337
|
+
|
|
338
|
+
| Endpoint | Método | Descrição |
|
|
339
|
+
|---|---|---|
|
|
340
|
+
| `/webhook/whatsapp` | `GET` | Verificação do Meta (challenge) |
|
|
341
|
+
| `/webhook/whatsapp` | `POST` | Recebe mensagens CTWA |
|
|
342
|
+
|
|
343
|
+
Configurar no Meta Business Suite → WhatsApp → Configuração → Webhook.
|
|
344
|
+
|
|
345
|
+
---
|
|
346
|
+
|
|
347
|
+
## Campos Normalizados Automaticamente
|
|
348
|
+
|
|
349
|
+
O Worker normaliza antes de fazer SHA256:
|
|
350
|
+
|
|
351
|
+
| Campo | Normalização |
|
|
352
|
+
|---|---|
|
|
353
|
+
| `email` | `lowercase` + `trim` |
|
|
354
|
+
| `phone` | Somente dígitos + DDI `55` (Brasil) |
|
|
355
|
+
| `firstName` / `lastName` | `Title Case` |
|
|
356
|
+
| `city` | `lowercase` + remove acentos |
|
|
357
|
+
| `state` | `uppercase` (ex: `SP`, `RJ`) |
|
|
358
|
+
| `zip` | Somente dígitos |
|
|
359
|
+
| `country` | `lowercase` (ex: `br`) |
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
# CDP Edge — Instalação em Projetos de Clientes
|
|
2
|
+
|
|
3
|
+
Como integrar o CDP Edge em qualquer projeto para que Claude Code, VS Code, Cursor e outras IDEs com IA o reconheçam automaticamente.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Estrutura recomendada
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
meu-projeto-cliente/ ← abrir esta pasta no Claude Code / VS Code
|
|
11
|
+
├── CLAUDE.md ← ⭐ faz o Claude Code ativar o CDP Edge automaticamente
|
|
12
|
+
├── .cursorrules ← (opcional) para Cursor IDE
|
|
13
|
+
├── cdp-edge/ ← CDP Edge instalado aqui
|
|
14
|
+
│ ├── extracted-skill/
|
|
15
|
+
│ ├── server-edge-tracker/
|
|
16
|
+
│ ├── templates/
|
|
17
|
+
│ └── docs/
|
|
18
|
+
├── src/ ← código do projeto do cliente
|
|
19
|
+
└── ...
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Passo 1 — Instalar o CDP Edge na pasta do projeto
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
# Dentro da pasta do projeto do cliente:
|
|
28
|
+
cd meu-projeto-cliente
|
|
29
|
+
|
|
30
|
+
# Opção A — clonar o CDP Edge como subpasta
|
|
31
|
+
git clone https://github.com/ricardosoli777/CDP-Edge-Premium cdp-edge
|
|
32
|
+
|
|
33
|
+
# Opção B — copiar manualmente
|
|
34
|
+
# Copiar a pasta CDP-Edge inteira e renomear para cdp-edge/
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Passo 2 — Criar o CLAUDE.md na raiz do projeto
|
|
40
|
+
|
|
41
|
+
Copiar o template de ativação:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
cp cdp-edge/templates/install/CLAUDE.md ./CLAUDE.md
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Editar o `CLAUDE.md` e substituir `[NOME DO PROJETO]` pelo nome real do projeto.
|
|
48
|
+
|
|
49
|
+
**Por que isso funciona:**
|
|
50
|
+
O Claude Code lê o `CLAUDE.md` da raiz do diretório aberto automaticamente. Quando encontra a instrução de leitura do `master-orchestrator.md`, ativa o sistema imediatamente na abertura da sessão.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Passo 3 — Abrir o projeto no Claude Code
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# Na pasta do projeto (não dentro do cdp-edge):
|
|
58
|
+
claude .
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
O Claude Code vai:
|
|
62
|
+
1. Ler o `CLAUDE.md` da raiz
|
|
63
|
+
2. Encontrar a instrução de ativação do CDP Edge
|
|
64
|
+
3. Carregar o `master-orchestrator.md`
|
|
65
|
+
4. Exibir a mensagem de boas-vindas automaticamente
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Para VS Code com extensão Claude
|
|
70
|
+
|
|
71
|
+
O mesmo mecanismo funciona. O `CLAUDE.md` é lido pela extensão Claude Code no VS Code quando você abre a pasta do projeto.
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
code meu-projeto-cliente/
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Para Cursor IDE
|
|
80
|
+
|
|
81
|
+
Criar adicionalmente um `.cursorrules` na raiz:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
cp cdp-edge/templates/install/CLAUDE.md .cursorrules
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
O Cursor lê `.cursorrules` automaticamente e aplica as instruções ao agente AI.
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Para qualquer outra IDE com AI
|
|
92
|
+
|
|
93
|
+
Qualquer IDE que suporte arquivos de instrução (`.aidioms`, `system-prompt.md`, etc.) pode usar o mesmo conteúdo do `CLAUDE.md` adaptado para o formato da IDE.
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Verificar se funcionou
|
|
98
|
+
|
|
99
|
+
Ao abrir o projeto no Claude Code, você deve ver imediatamente:
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
👋 Olá! Bem-vindo ao CDP Edge — Quantum Tracking.
|
|
103
|
+
|
|
104
|
+
Sou o seu Orquestrador de Rastreamento. Vou configurar toda a
|
|
105
|
+
infraestrutura de tracking server-side para o seu projeto...
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Se não aparecer automaticamente, digitar:
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
/cdp
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
ou simplesmente:
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
ative o master orchestrator do cdp edge
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Se o CDP Edge estiver em um caminho diferente
|
|
123
|
+
|
|
124
|
+
Editar o `CLAUDE.md` na raiz e ajustar o path:
|
|
125
|
+
|
|
126
|
+
```markdown
|
|
127
|
+
<!-- Padrão: -->
|
|
128
|
+
Leia o arquivo: `cdp-edge/extracted-skill/tracking-events-generator/agents/master-orchestrator.md`
|
|
129
|
+
|
|
130
|
+
<!-- Se instalado em outro lugar: -->
|
|
131
|
+
Leia o arquivo: `ferramentas/cdp/extracted-skill/tracking-events-generator/agents/master-orchestrator.md`
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## Estrutura de múltiplos projetos (workspace compartilhado)
|
|
137
|
+
|
|
138
|
+
Se você trabalha com vários clientes e quer uma instalação única do CDP Edge:
|
|
139
|
+
|
|
140
|
+
```
|
|
141
|
+
workspace/
|
|
142
|
+
├── cdp-edge/ ← instalação única compartilhada
|
|
143
|
+
├── cliente-1/
|
|
144
|
+
│ ├── CLAUDE.md ← aponta para ../cdp-edge/...
|
|
145
|
+
│ └── src/
|
|
146
|
+
├── cliente-2/
|
|
147
|
+
│ ├── CLAUDE.md ← aponta para ../cdp-edge/...
|
|
148
|
+
│ └── src/
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
No `CLAUDE.md` de cada cliente, usar path relativo:
|
|
152
|
+
|
|
153
|
+
```markdown
|
|
154
|
+
Leia o arquivo: `../cdp-edge/extracted-skill/tracking-events-generator/agents/master-orchestrator.md`
|
|
155
|
+
```
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
# CDP Edge — Quick Start
|
|
2
|
+
> Do zero ao primeiro evento em produção.
|
|
3
|
+
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Pré-requisitos
|
|
7
|
+
|
|
8
|
+
| Ferramenta | Instalar |
|
|
9
|
+
|---|---|
|
|
10
|
+
| Node.js 18+ | nodejs.org |
|
|
11
|
+
| Wrangler CLI | `npm install -g wrangler` |
|
|
12
|
+
| Conta Cloudflare | cloudflare.com (plano gratuito suficiente) |
|
|
13
|
+
| Conta Meta (Pixel + token CAPI) | business.facebook.com |
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 1. Autenticar no Cloudflare
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
wrangler login
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 2. Criar o banco D1
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
wrangler d1 create cdp-edge-db
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Copie o `database_id` retornado e cole no `wrangler.toml`:
|
|
32
|
+
|
|
33
|
+
```toml
|
|
34
|
+
[[d1_databases]]
|
|
35
|
+
binding = "DB"
|
|
36
|
+
database_name = "cdp-edge-db"
|
|
37
|
+
database_id = "COLE_O_ID_AQUI"
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 3. Aplicar o schema
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
cd server-edge-tracker
|
|
46
|
+
|
|
47
|
+
wrangler d1 execute cdp-edge-db --file=schema.sql --remote
|
|
48
|
+
wrangler d1 execute cdp-edge-db --file=migrate-v2.sql --remote
|
|
49
|
+
wrangler d1 execute cdp-edge-db --file=migrate-v3.sql --remote
|
|
50
|
+
wrangler d1 execute cdp-edge-db --file=migrate-v4.sql --remote
|
|
51
|
+
wrangler d1 execute cdp-edge-db --file=migrate-v5.sql --remote
|
|
52
|
+
wrangler d1 execute cdp-edge-db --file=migrate-v6.sql --remote
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## 4. Configurar secrets
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
wrangler secret put META_ACCESS_TOKEN
|
|
61
|
+
wrangler secret put GA4_API_SECRET
|
|
62
|
+
wrangler secret put TIKTOK_ACCESS_TOKEN
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Para WhatsApp CTWA (opcional):
|
|
66
|
+
```bash
|
|
67
|
+
wrangler secret put WA_WEBHOOK_VERIFY_TOKEN
|
|
68
|
+
wrangler secret put WHATSAPP_TOKEN
|
|
69
|
+
wrangler secret put WHATSAPP_PHONE_NUMBER_ID
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## 5. Atualizar variáveis públicas no wrangler.toml
|
|
75
|
+
|
|
76
|
+
```toml
|
|
77
|
+
[vars]
|
|
78
|
+
META_PIXEL_ID = "SEU_PIXEL_ID"
|
|
79
|
+
GA4_MEASUREMENT_ID = "G-XXXXXXXXXX"
|
|
80
|
+
TIKTOK_PIXEL_ID = "CXXXXXXXXXXXXXXX"
|
|
81
|
+
SITE_DOMAIN = "seudominio.com.br"
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## 6. Deploy
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
wrangler deploy
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
O Worker ficará disponível em:
|
|
93
|
+
```
|
|
94
|
+
https://server-edge-tracker.SEU-USUARIO.workers.dev
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## 7. Testar o Worker
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
# Health check
|
|
103
|
+
curl https://server-edge-tracker.SEU-USUARIO.workers.dev/health
|
|
104
|
+
|
|
105
|
+
# Evento de teste
|
|
106
|
+
curl -X POST https://server-edge-tracker.SEU-USUARIO.workers.dev/track \
|
|
107
|
+
-H "Content-Type: application/json" \
|
|
108
|
+
-d '{
|
|
109
|
+
"event": "PageView",
|
|
110
|
+
"url": "https://seudominio.com.br/",
|
|
111
|
+
"email": "teste@exemplo.com"
|
|
112
|
+
}'
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Resposta esperada: `{"success":true}`
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## 8. Instalar o SDK no site
|
|
120
|
+
|
|
121
|
+
```html
|
|
122
|
+
<!-- No <head> de todas as páginas -->
|
|
123
|
+
<script>
|
|
124
|
+
window.CDP_CONFIG = {
|
|
125
|
+
endpoint: 'https://server-edge-tracker.SEU-USUARIO.workers.dev/track',
|
|
126
|
+
pixelId: 'SEU_PIXEL_ID'
|
|
127
|
+
};
|
|
128
|
+
</script>
|
|
129
|
+
<script src="/js/cdpTrack.js" type="module" async></script>
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
O SDK inicializa automaticamente e dispara `PageView` ao carregar.
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## 9. Verificar no Meta Events Manager
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
Meta Business Suite
|
|
140
|
+
→ Gerenciador de Eventos
|
|
141
|
+
→ Seu Pixel
|
|
142
|
+
→ Atividade de Teste
|
|
143
|
+
→ Filtrar por "Servidor"
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Você deve ver o `PageView` chegando com `action_source: website`.
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## 10. (Opcional) Conectar domínio próprio
|
|
151
|
+
|
|
152
|
+
Para máxima eficácia (cookie first-party no domínio do cliente):
|
|
153
|
+
|
|
154
|
+
```
|
|
155
|
+
Cloudflare Dashboard → DNS → Add record
|
|
156
|
+
Type: CNAME
|
|
157
|
+
Name: track
|
|
158
|
+
Target: server-edge-tracker.SEU-USUARIO.workers.dev
|
|
159
|
+
Proxy: ✅ (nuvem laranja)
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Adicionar ao `wrangler.toml`:
|
|
163
|
+
```toml
|
|
164
|
+
[[routes]]
|
|
165
|
+
pattern = "track.seudominio.com.br/*"
|
|
166
|
+
zone_name = "seudominio.com.br"
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
wrangler deploy
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
Ver detalhes: `agents/domain-setup-agent.md`
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## Próximos passos
|
|
178
|
+
|
|
179
|
+
| O que fazer | Onde está |
|
|
180
|
+
|---|---|
|
|
181
|
+
| Configurar WhatsApp CTWA | `agents/whatsapp-ctwa-setup-agent.md` |
|
|
182
|
+
| Ativar R2 audit log | `agents/r2-setup-agent.md` |
|
|
183
|
+
| Configurar gateways de pagamento | `agents/webhook-agent.md` |
|
|
184
|
+
| Ver todos os eventos disponíveis | `docs/events-reference.md` |
|
|
185
|
+
| Ver API do SDK browser | `docs/sdk-reference.md` |
|