cdp-edge 1.21.0 → 1.21.1
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/extracted-skill/tracking-events-generator/agents/devops-agent.md +11 -0
- package/extracted-skill/tracking-events-generator/agents/intelligence-agent.md +27 -0
- package/extracted-skill/tracking-events-generator/agents/master-orchestrator.md +1 -1
- package/package.json +1 -1
- package/server-edge-tracker/schema-indexes.sql +7 -7
|
@@ -113,10 +113,21 @@ wrangler d1 execute cdp-edge-db --file=schema-ab-ltv.sql --remote
|
|
|
113
113
|
|
|
114
114
|
# Fase 4: Fraud Detection
|
|
115
115
|
wrangler d1 execute cdp-edge-db --file=schema-fraud.sql --remote
|
|
116
|
+
|
|
117
|
+
# Índices compostos de performance (queries D1)
|
|
118
|
+
wrangler d1 execute cdp-edge-db --file=schema-indexes.sql --remote
|
|
119
|
+
|
|
120
|
+
# Fase 5: LTV Model (regressão logística) + Match Quality Log
|
|
121
|
+
wrangler d1 execute cdp-edge-db --file=migrate-v7.sql --remote
|
|
116
122
|
```
|
|
117
123
|
|
|
118
124
|
Após cada migração: confirmar sucesso antes de prosseguir.
|
|
119
125
|
|
|
126
|
+
> **Fase 5 cria duas tabelas críticas:**
|
|
127
|
+
> - `ltv_model_weights` — pesos do modelo LTV treinado semanalmente pelo cron
|
|
128
|
+
> - `match_quality_log` — registra flags de qualidade de dados (has_email, has_fbp, etc.) a cada CAPI dispatch
|
|
129
|
+
> Sem essas tabelas: o modelo LTV não persiste e o Match Quality Alert não funciona.
|
|
130
|
+
|
|
120
131
|
---
|
|
121
132
|
|
|
122
133
|
## PROCEDURE `*rollback`
|
|
@@ -306,6 +306,33 @@ async function checkApiDepreciations(env) {
|
|
|
306
306
|
|
|
307
307
|
---
|
|
308
308
|
|
|
309
|
+
### MONITORAMENTO AUTOMÁTICO DE MATCH QUALITY (CRON SEMANAL)
|
|
310
|
+
|
|
311
|
+
O Intelligence Agent monitora a qualidade dos dados enviados ao Meta CAPI a cada execução do cron.
|
|
312
|
+
Os dados são lidos da tabela `match_quality_log` (populada automaticamente pelo Worker a cada dispatch).
|
|
313
|
+
|
|
314
|
+
**Thresholds obrigatórios — alertar via CallMeBot se:**
|
|
315
|
+
|
|
316
|
+
| Métrica | Threshold mínimo | Ação automática |
|
|
317
|
+
|---|---|---|
|
|
318
|
+
| `email_rate` | 40% dos eventos com email | Alerta ⚠️ — verificar Identity Graph |
|
|
319
|
+
| `fbp_rate` | 30% dos eventos com cookie fbp | Alerta ⚠️ — verificar cdpTrack.js |
|
|
320
|
+
| `composite_score` | 45% (email×0.4 + fbp×0.3 + phone×0.2 + fbc×0.1) | Alerta 🚨 CRÍTICO |
|
|
321
|
+
|
|
322
|
+
**O cron semanal executa automaticamente (sem intervenção manual):**
|
|
323
|
+
1. `_trainLtvModel(env)` — re-treina regressão logística com últimos 5000 leads do D1; pesos salvos em `ltv_model_weights` e cache KV invalidado
|
|
324
|
+
2. `_autoDecideAbWinner(env)` — declara winner de A/B LTV se melhoria ≥ 5pp vs controle; alerta WhatsApp automático
|
|
325
|
+
3. `_analyzeMatchQuality(env)` — analisa janela 2h; dispara alertas CallMeBot se abaixo dos thresholds
|
|
326
|
+
4. `syncMetaCustomAudience(env)` — sincroniza leads high_intent com Meta Custom Audience
|
|
327
|
+
|
|
328
|
+
**Auto-recuperação integrada ao dispatch:**
|
|
329
|
+
- Antes de cada envio ao Meta CAPI, o Worker tenta enriquecer automaticamente o payload consultando o Identity Graph pelo `userId` (recupera email, fbp, fbc, phone ausentes)
|
|
330
|
+
- Resultado de recuperação é logado em `match_quality_log.was_email_recovered`
|
|
331
|
+
|
|
332
|
+
**Pré-requisito de infraestrutura:** `migrate-v7.sql` deve estar aplicada no D1 (tabelas `ltv_model_weights` + `match_quality_log`).
|
|
333
|
+
|
|
334
|
+
---
|
|
335
|
+
|
|
309
336
|
### CHECK DE NOVOS PARÂMETROS DE EVENT MATCH QUALITY
|
|
310
337
|
|
|
311
338
|
O Intelligence Agent DEVE buscar novos parâmetros que melhoram a nota de atribuição:
|
|
@@ -1285,7 +1285,7 @@ Spawnar o **Intelligence Agent** para realizar auditoria completa da stack:
|
|
|
1285
1285
|
|
|
1286
1286
|
**2. Infraestrutura Cloudflare**
|
|
1287
1287
|
- `wrangler.toml` — bindings D1, KV, Queue, AI estão todos declarados
|
|
1288
|
-
- `schema.sql` e migrations — todas as fases
|
|
1288
|
+
- `schema.sql` e migrations — todas as fases aplicadas na ordem: core → segmentation → bidding → ab-ltv → fraud → schema-indexes → **migrate-v7** (LTV model + Match Quality)
|
|
1289
1289
|
- Worker.js — endpoints ativos correspondem à arquitetura esperada
|
|
1290
1290
|
|
|
1291
1291
|
**3. Conformidade e Qualidade de Sinal**
|
package/package.json
CHANGED
|
@@ -46,13 +46,13 @@ CREATE INDEX IF NOT EXISTS idx_profiles_email_updated
|
|
|
46
46
|
|
|
47
47
|
-- ── fraud_signals: dashboard e alertas ───────────────────────────────────────
|
|
48
48
|
|
|
49
|
-
-- handleFraudAlerts: filtra por ip + período
|
|
50
|
-
CREATE INDEX IF NOT EXISTS
|
|
51
|
-
ON fraud_signals(ip_address,
|
|
49
|
+
-- handleFraudAlerts: filtra por ip + período (coluna: detected_at)
|
|
50
|
+
CREATE INDEX IF NOT EXISTS idx_fraud_ip_detected
|
|
51
|
+
ON fraud_signals(ip_address, detected_at DESC);
|
|
52
52
|
|
|
53
53
|
-- handleFraudStats: fraud_score >= threshold ordenado por data
|
|
54
|
-
CREATE INDEX IF NOT EXISTS
|
|
55
|
-
ON fraud_signals(fraud_score DESC,
|
|
54
|
+
CREATE INDEX IF NOT EXISTS idx_fraud_score_detected
|
|
55
|
+
ON fraud_signals(fraud_score DESC, detected_at DESC);
|
|
56
56
|
|
|
57
57
|
-- ── ltv_ab_assignments: resultados de A/B test ───────────────────────────────
|
|
58
58
|
|
|
@@ -62,6 +62,6 @@ CREATE INDEX IF NOT EXISTS idx_ab_testid_class
|
|
|
62
62
|
|
|
63
63
|
-- ── ml_segment_members: join com leads para bidding ─────────────────────────
|
|
64
64
|
|
|
65
|
-
-- handleBiddingRecommend: segment_id lookup
|
|
65
|
+
-- handleBiddingRecommend: segment_id lookup (coluna: assigned_at)
|
|
66
66
|
CREATE INDEX IF NOT EXISTS idx_seg_members_segid
|
|
67
|
-
ON ml_segment_members(
|
|
67
|
+
ON ml_segment_members(cluster_id, assigned_at DESC);
|