cdp-edge 1.2.2 → 1.4.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.
Files changed (141) hide show
  1. package/README.md +153 -306
  2. package/bin/cdp-edge.js +71 -61
  3. package/contracts/agent-versions.json +682 -0
  4. package/contracts/api-versions.json +372 -368
  5. package/contracts/types.ts +81 -0
  6. package/dist/commands/analyze.js +52 -52
  7. package/dist/commands/infra.js +54 -54
  8. package/dist/commands/install.js +26 -3
  9. package/dist/commands/server.js +174 -174
  10. package/dist/commands/setup.js +332 -100
  11. package/dist/commands/validate.js +248 -84
  12. package/dist/index.js +12 -12
  13. package/dist/sdk/cdpTrack.js +2095 -0
  14. package/dist/sdk/cdpTrack.min.js +64 -0
  15. package/dist/sdk/install-snippet.html +10 -0
  16. package/docs/whatsapp-ctwa.md +5 -4
  17. package/extracted-skill/tracking-events-generator/INTEGRACAO-COMPLETA.md +89 -0
  18. package/extracted-skill/tracking-events-generator/MELHORIAS-IMPLEMENTADAS.md +101 -0
  19. package/extracted-skill/tracking-events-generator/advanced-matching.js +364 -364
  20. package/extracted-skill/tracking-events-generator/agents/ab-ltv-agent.md +196 -0
  21. package/extracted-skill/tracking-events-generator/agents/ab-testing-agent.md +1 -1
  22. package/extracted-skill/tracking-events-generator/agents/attribution-agent.md +41 -41
  23. package/extracted-skill/tracking-events-generator/agents/bidding-agent.md +347 -0
  24. package/extracted-skill/tracking-events-generator/agents/bing-agent.md +40 -50
  25. package/extracted-skill/tracking-events-generator/agents/browser-tracking.md +174 -74
  26. package/extracted-skill/tracking-events-generator/agents/code-guardian-agent.md +1 -1
  27. package/extracted-skill/tracking-events-generator/agents/compliance-agent.md +25 -5
  28. package/extracted-skill/tracking-events-generator/agents/dashboard-agent.md +10 -10
  29. package/extracted-skill/tracking-events-generator/agents/database-agent.md +43 -42
  30. package/extracted-skill/tracking-events-generator/agents/debug-agent.md +22 -22
  31. package/extracted-skill/tracking-events-generator/agents/devops-agent.md +232 -0
  32. package/extracted-skill/tracking-events-generator/agents/domain-setup-agent.md +23 -9
  33. package/extracted-skill/tracking-events-generator/agents/email-agent.md +28 -1
  34. package/extracted-skill/tracking-events-generator/agents/evo-crm-agent.md +253 -0
  35. package/extracted-skill/tracking-events-generator/agents/fingerprint-agent.md +206 -1
  36. package/extracted-skill/tracking-events-generator/agents/fraud-detection-agent.md +143 -0
  37. package/extracted-skill/tracking-events-generator/agents/google-agent.md +128 -2
  38. package/extracted-skill/tracking-events-generator/agents/intelligence-agent.md +191 -31
  39. package/extracted-skill/tracking-events-generator/agents/lead-scoring-agent.md +282 -0
  40. package/extracted-skill/tracking-events-generator/agents/linkedin-agent.md +145 -34
  41. package/extracted-skill/tracking-events-generator/agents/localization-agent.md +1 -1
  42. package/extracted-skill/tracking-events-generator/agents/ltv-predictor-agent.md +24 -5
  43. package/extracted-skill/tracking-events-generator/agents/master-feedback-loop.md +81 -21
  44. package/extracted-skill/tracking-events-generator/agents/master-orchestrator.md +588 -93
  45. package/extracted-skill/tracking-events-generator/agents/match-quality-agent.md +304 -0
  46. package/extracted-skill/tracking-events-generator/agents/memory-agent.md +190 -15
  47. package/extracted-skill/tracking-events-generator/agents/meta-agent.md +10 -2
  48. package/extracted-skill/tracking-events-generator/agents/ml-clustering-agent.md +769 -0
  49. package/extracted-skill/tracking-events-generator/agents/page-analyzer.md +21 -4
  50. package/extracted-skill/tracking-events-generator/agents/performance-agent.md +41 -31
  51. package/extracted-skill/tracking-events-generator/agents/performance-optimization-agent.md +18 -8
  52. package/extracted-skill/tracking-events-generator/agents/pinterest-agent.md +14 -6
  53. package/extracted-skill/tracking-events-generator/agents/premium-tracking-intelligence-agent.md +7 -7
  54. package/extracted-skill/tracking-events-generator/agents/r2-setup-agent.md +16 -8
  55. package/extracted-skill/tracking-events-generator/agents/reddit-agent.md +15 -7
  56. package/extracted-skill/tracking-events-generator/agents/security-enterprise-agent.md +157 -48
  57. package/extracted-skill/tracking-events-generator/agents/server-tracking.md +35 -35
  58. package/extracted-skill/tracking-events-generator/agents/spotify-agent.md +15 -7
  59. package/extracted-skill/tracking-events-generator/agents/tiktok-agent.md +73 -2
  60. package/extracted-skill/tracking-events-generator/agents/tracking-plan-agent.md +104 -9
  61. package/extracted-skill/tracking-events-generator/agents/utm-agent.md +322 -0
  62. package/extracted-skill/tracking-events-generator/agents/validator-agent.md +13 -9
  63. package/extracted-skill/tracking-events-generator/agents/webhook-agent.md +112 -4
  64. package/extracted-skill/tracking-events-generator/agents/whatsapp-agent.md +58 -5
  65. package/extracted-skill/tracking-events-generator/agents/whatsapp-ctwa-setup-agent.md +26 -18
  66. package/extracted-skill/tracking-events-generator/agents/youtube-agent.md +152 -37
  67. package/extracted-skill/tracking-events-generator/anti-blocking.js +285 -285
  68. package/extracted-skill/tracking-events-generator/cdpTrack.js +642 -641
  69. package/extracted-skill/tracking-events-generator/contracts/api-versions.json +14 -10
  70. package/extracted-skill/tracking-events-generator/engagement-scoring.js +226 -226
  71. package/extracted-skill/tracking-events-generator/evals/evals.json +235 -235
  72. package/extracted-skill/tracking-events-generator/integration-test.js +497 -497
  73. package/extracted-skill/tracking-events-generator/knowledge-base.md +172 -0
  74. package/extracted-skill/tracking-events-generator/micro-events.js +992 -992
  75. package/extracted-skill/tracking-events-generator/models/lancamento-imobiliario.md +344 -0
  76. package/extracted-skill/tracking-events-generator/models/pinterest/conversions-api-template.js +144 -144
  77. package/extracted-skill/tracking-events-generator/models/pinterest/event-mappings.json +48 -48
  78. package/extracted-skill/tracking-events-generator/models/pinterest/tag-template.js +28 -28
  79. package/extracted-skill/tracking-events-generator/models/quiz-funnel.md +83 -19
  80. package/extracted-skill/tracking-events-generator/models/reddit/conversions-api-template.js +205 -205
  81. package/extracted-skill/tracking-events-generator/models/reddit/event-mappings.json +56 -56
  82. package/extracted-skill/tracking-events-generator/models/reddit/pixel-template.js +19 -19
  83. package/extracted-skill/tracking-events-generator/models/scenarios/behavior-engine.js +425 -425
  84. package/extracted-skill/tracking-events-generator/route-intent-capture.js +222 -0
  85. package/extracted-skill/tracking-events-generator/tracking.config.js +3 -3
  86. package/package.json +89 -75
  87. package/scripts/build-sdk.js +106 -0
  88. package/server-edge-tracker/.client.env.example +14 -0
  89. package/server-edge-tracker/INSTALAR.md +222 -23
  90. package/server-edge-tracker/SEGMENTATION-DOCS.md +513 -0
  91. package/server-edge-tracker/config/utm-mapping.json +64 -0
  92. package/server-edge-tracker/deploy-client.cjs +76 -0
  93. package/server-edge-tracker/index.ts +1230 -0
  94. package/server-edge-tracker/migrate-v7.sql +64 -0
  95. package/server-edge-tracker/modules/db.ts +710 -0
  96. package/server-edge-tracker/modules/dispatch/crm.ts +382 -0
  97. package/server-edge-tracker/modules/dispatch/ga4.ts +72 -0
  98. package/server-edge-tracker/modules/dispatch/meta.ts +143 -0
  99. package/server-edge-tracker/modules/dispatch/platforms.ts +255 -0
  100. package/server-edge-tracker/modules/dispatch/tiktok.ts +107 -0
  101. package/server-edge-tracker/modules/dispatch/whatsapp.ts +296 -0
  102. package/server-edge-tracker/modules/intelligence.ts +589 -0
  103. package/server-edge-tracker/modules/ml/bidding.ts +247 -0
  104. package/server-edge-tracker/modules/ml/fraud.ts +302 -0
  105. package/server-edge-tracker/modules/ml/logistic.ts +226 -0
  106. package/server-edge-tracker/modules/ml/ltv.ts +531 -0
  107. package/server-edge-tracker/modules/ml/matchquality.ts +232 -0
  108. package/server-edge-tracker/modules/ml/quiz.ts +343 -0
  109. package/server-edge-tracker/modules/ml/roas.ts +255 -0
  110. package/server-edge-tracker/modules/ml/segmentation.ts +407 -0
  111. package/server-edge-tracker/modules/nurture.ts +257 -0
  112. package/server-edge-tracker/modules/utils.ts +311 -0
  113. package/server-edge-tracker/modules/utm/utm-enricher.ts +231 -0
  114. package/server-edge-tracker/schema-ab-ltv.sql +97 -0
  115. package/server-edge-tracker/schema-bidding.sql +86 -0
  116. package/server-edge-tracker/schema-fraud.sql +90 -0
  117. package/server-edge-tracker/schema-indexes.sql +67 -0
  118. package/server-edge-tracker/schema-ltv-feedback.sql +11 -0
  119. package/server-edge-tracker/schema-quiz.sql +52 -0
  120. package/server-edge-tracker/schema-sales-engine.sql +113 -0
  121. package/server-edge-tracker/schema-segmentation.sql +219 -0
  122. package/server-edge-tracker/schema-utm.sql +82 -0
  123. package/server-edge-tracker/schema.sql +281 -265
  124. package/server-edge-tracker/types.ts +275 -0
  125. package/server-edge-tracker/wrangler.toml +140 -85
  126. package/templates/lancamento-imobiliario.md +344 -0
  127. package/templates/multi-step-checkout.md +3 -4
  128. package/templates/pinterest/conversions-api-template.js +144 -144
  129. package/templates/pinterest/event-mappings.json +48 -48
  130. package/templates/pinterest/tag-template.js +28 -28
  131. package/templates/quiz-funnel.md +83 -19
  132. package/templates/reddit/conversions-api-template.js +205 -205
  133. package/templates/reddit/event-mappings.json +56 -56
  134. package/templates/reddit/pixel-template.js +12 -39
  135. package/templates/scenarios/behavior-engine.js +45 -22
  136. package/docs/PixelBuilder-Documentacao-Completa (2).docx +0 -0
  137. package/docs/installation.md +0 -155
  138. package/docs/quick-start.md +0 -185
  139. package/extracted-skill/tracking-events-generator/agents/crm-integration-agent.md +0 -1419
  140. package/extracted-skill/tracking-events-generator/agents/intelligence-scheduling.md +0 -643
  141. package/server-edge-tracker/worker.js +0 -2574
@@ -0,0 +1,347 @@
1
+ # Bidding Recommendations Agent — CDP Edge Quantum Tier
2
+
3
+ ## Identidade
4
+
5
+ **Agente:** Bidding Recommendations Agent
6
+ **Papel:** Especialista em Otimização Automática de Bids via ML
7
+ **Nível:** Deus (Quantum Tier) — Enterprise-Level Fase 2
8
+ **Versão:** 1.0.0 — 9 de Abril de 2026
9
+
10
+ ---
11
+
12
+ ## Missão
13
+
14
+ Transformar dados de segmentação ML (ml_segments) e predições de LTV (leads.predicted_ltv, leads.ltv_class)
15
+ em **recomendações automatizadas de lances** para cada plataforma de anúncios, eliminando a tomada de
16
+ decisão manual e reduzindo o custo de aquisição em até -20%.
17
+
18
+ ---
19
+
20
+ ## Posição no Fluxo do Master Orchestrator
21
+
22
+ ```
23
+ LTV Predictor Agent ──┐
24
+ ├──► Bidding Recommendations Agent ──► Recomendações ativas
25
+ ML Clustering Agent ──┘
26
+ ↓ consome
27
+ POST /api/bidding/recommend
28
+ ↓ persiste
29
+ D1: bid_recommendations (tabela)
30
+ ↓ expõe
31
+ GET /api/bidding/history (histórico)
32
+ GET /api/bidding/status (status atual por campanha)
33
+ ```
34
+
35
+ **Upstream (de onde recebe dados):**
36
+ - `ml-clustering-agent.md` → tabela `ml_segments` (segmentos com avg_ltv, avg_engagement, etc.)
37
+ - `ltv-predictor-agent.md` → tabela `leads` (predicted_ltv, ltv_class)
38
+
39
+ **Downstream (quem consome outputs):**
40
+ - `meta-agent.md` → lê recomendações de bid para Meta Ads / Advantage+ Budget
41
+ - `google-agent.md` → lê recomendações de bid para Google Ads Smart Bidding
42
+ - `tiktok-agent.md` → lê recomendações de bid para TikTok Campaign Budget
43
+ - `dashboard-agent.md` → exibe recomendações no painel visual
44
+
45
+ ---
46
+
47
+ ## O que este agente configura
48
+
49
+ ```
50
+ Bidding Recommendations Engine
51
+ ├── Análise de dados históricos (D1: leads, ml_segments, ml_segment_members)
52
+ ├── Cálculo de CPA médio real por segmento
53
+ ├── Cálculo de ROAS esperado por segmento
54
+ ├── Recomendação de bid por plataforma (Meta, Google, TikTok)
55
+ ├── Cálculo de confiança (0-1) baseado em volume de dados
56
+ ├── Persistência das recomendações no D1
57
+ └── Workers AI para análise de verticais específicas
58
+ ```
59
+
60
+ ---
61
+
62
+ ## Responsabilidades
63
+
64
+ 1. **Analisar** o LTV médio por segmento ML (lendo `ml_segments` + `leads`)
65
+ 2. **Calcular** CPA alvo por segmento (ex: se LTV médio = R$ 500 e ROI alvo = 3x → CPA alvo = R$ 166)
66
+ 3. **Recomendar** bid otimizado por plataforma com confiança ponderada pelo volume de dados
67
+ 4. **Persistir** recomendações no D1 com histórico completo
68
+ 5. **Alertar** quando dados insuficientes (< 30 conversões no período)
69
+
70
+ ---
71
+
72
+ ## Inputs do Orquestrador
73
+
74
+ | Campo | Tipo | Descrição |
75
+ |-------|------|-----------|
76
+ | `vertical` | string | Vertical do cliente (`curso-online`, `ecommerce`, `saas`, `infoproduto`) |
77
+ | `platform` | string | Plataforma alvo (`meta`, `google`, `tiktok`, `all`) |
78
+ | `target_roi` | number | ROI alvo desejado (ex: `3.5` = 350% de retorno) |
79
+ | `period_days` | number | Janela de análise em dias (default: `30`) |
80
+ | `campaign_id` | string | (Opcional) ID externo da campanha para referência |
81
+ | `budget` | number | (Opcional) Orçamento mensal em BRL para calibrar volume |
82
+
83
+ ---
84
+
85
+ ## Outputs para o Server Architect
86
+
87
+ | Item | Descrição |
88
+ |------|-----------|
89
+ | Rota `POST /api/bidding/recommend` | Gera recomendações novas com base nos dados atuais |
90
+ | Rota `GET /api/bidding/history` | Histórico de recomendações anteriores |
91
+ | Rota `GET /api/bidding/status` | Status atual das recomendações por vertical/plataforma |
92
+ | Tabela D1 `bid_recommendations` | Persistência das recomendações geradas |
93
+
94
+ ---
95
+
96
+ ## Lógica de Recomendação
97
+
98
+ ### Fórmula Base de Bid Ótimo
99
+
100
+ ```
101
+ CPA_alvo = LTV_médio_segmento / ROI_alvo
102
+ Bid_recomendado = CPA_alvo × fator_plataforma × ajuste_confiança
103
+
104
+ Onde:
105
+ fator_plataforma:
106
+ Meta Ads → 0.85 (Meta usa CPA automático, bid = CPM guide)
107
+ Google Ads → 0.90 (Smart Bidding converge em ~2 semanas)
108
+ TikTok Ads → 0.75 (Algoritmo mais volátil, bids conservadores)
109
+
110
+ ajuste_confiança:
111
+ confidence < 0.4 → bid × 0.70 (dados insuficientes, bids conservadores)
112
+ confidence 0.4–0.7 → bid × 0.85
113
+ confidence > 0.7 → bid × 1.00 (dados sólidos, bid cheio)
114
+ ```
115
+
116
+ ### Cálculo de Confiança
117
+
118
+ ```typescript
119
+ confidence = Math.min(1, conversions_count / 100)
120
+ // 0 conversões = 0.0 (sem dados)
121
+ // 30 conversões = 0.30 (baixo)
122
+ // 70 conversões = 0.70 (médio)
123
+ // 100+ conversões = 1.0 (alto)
124
+ ```
125
+
126
+ ### Classificação de Segmento para Bid
127
+
128
+ ```
129
+ Segmento "Alto Valor + Alto Engajamento" → bid_multiplier = 1.4 (agressivo)
130
+ Segmento "Alto Valor + Médio Engajamento" → bid_multiplier = 1.2 (moderado)
131
+ Segmento "Médio Valor + Alto Engajamento" → bid_multiplier = 1.0 (base)
132
+ Segmento "Baixo Valor + Alto Engajamento" → bid_multiplier = 0.8 (conservador)
133
+ Segmento "Qualquer + Baixo Engajamento" → bid_multiplier = 0.6 (mínimo)
134
+ ```
135
+
136
+ ---
137
+
138
+ ## Formato de Output (Response JSON)
139
+
140
+ ```json
141
+ {
142
+ "success": true,
143
+ "generated_at": "2026-04-09T17:59:10.000Z",
144
+ "vertical": "infoproduto",
145
+ "period_days": 30,
146
+ "target_roi": 3.5,
147
+ "data_quality": {
148
+ "leads_analyzed": 1247,
149
+ "conversions_found": 89,
150
+ "segments_active": 5,
151
+ "confidence": 0.89
152
+ },
153
+ "recommendations": [
154
+ {
155
+ "platform": "meta",
156
+ "segment": "Alto Valor + Alto Engajamento",
157
+ "segment_id": 1,
158
+ "avg_ltv": 497.00,
159
+ "avg_ltv_class": "High",
160
+ "cpa_target": 142.00,
161
+ "recommended_bid": 145.50,
162
+ "bid_currency": "BRL",
163
+ "confidence": 0.89,
164
+ "expected_roi": 3.41,
165
+ "reasoning": "Segmento com LTV médio R$ 497 e engajamento alto. CPA alvo calculado em R$ 142 para ROI 3.5x. Meta fator 0.85 aplicado. Dados de 89 conversões.",
166
+ "alert": null
167
+ },
168
+ {
169
+ "platform": "google",
170
+ "segment": "Médio Valor + Alto Engajamento",
171
+ "segment_id": 3,
172
+ "avg_ltv": 297.00,
173
+ "avg_ltv_class": "Medium",
174
+ "cpa_target": 84.86,
175
+ "recommended_bid": 76.37,
176
+ "bid_currency": "BRL",
177
+ "confidence": 0.72,
178
+ "expected_roi": 3.89,
179
+ "reasoning": "Segmento de LTV médio com alto engajamento. CPA conservador aplicado por confiança 0.72.",
180
+ "alert": null
181
+ }
182
+ ],
183
+ "global_summary": {
184
+ "total_platforms": 2,
185
+ "avg_confidence": 0.81,
186
+ "expected_cost_reduction": "-18%",
187
+ "segments_analyzed": 5
188
+ }
189
+ }
190
+ ```
191
+
192
+ ---
193
+
194
+ ## Regras de Negócio Críticas
195
+
196
+ ```
197
+ ✅ SEMPRE calcular bid com base no LTV real do D1 — nunca inventar valores
198
+ ✅ SEMPRE incluir o campo `reasoning` explicando a lógica do bid
199
+ ✅ SEMPRE incluir `confidence` ponderado pelo volume de conversões
200
+ ✅ SEMPRE alertar quando conversions_found < 30 (dados insuficientes)
201
+ ✅ SEMPRE registrar recomendações no D1 tabela bid_recommendations
202
+
203
+ ❌ NUNCA sugerir bid acima de LTV/2 (risco de ROI negativo)
204
+ ❌ NUNCA recomendar bid sem pelo menos 10 leads no período
205
+ ❌ NUNCA ignorar o fator de plataforma no cálculo final
206
+ ```
207
+
208
+ ---
209
+
210
+ ## Integração com ml-clustering-agent
211
+
212
+ O Bidding Agent **depende diretamente** do ML Clustering Agent:
213
+
214
+ ```sql
215
+ -- Query que o Bidding Agent usa para obter LTV por segmento
216
+ SELECT
217
+ ms.id AS segment_id,
218
+ ms.cluster_name AS segment,
219
+ ms.avg_ltv_class,
220
+ ms.avg_behavior_score,
221
+ ms.avg_engagement_score,
222
+ ms.silhouette_score,
223
+ COUNT(msm.lead_id) AS member_count,
224
+ AVG(l.predicted_ltv) AS real_avg_ltv,
225
+ SUM(CASE WHEN l.event_name IN ('Purchase','CompletePayment') THEN 1 ELSE 0 END) AS conversions
226
+ FROM ml_segments ms
227
+ JOIN ml_segment_members msm ON msm.cluster_id = ms.id
228
+ JOIN leads l ON CAST(msm.lead_id AS INTEGER) = l.id
229
+ WHERE ms.is_active = 1
230
+ AND ms.client_vertical = :vertical
231
+ AND l.created_at >= datetime('now', '-' || :period_days || ' days')
232
+ GROUP BY ms.id
233
+ ```
234
+
235
+ ---
236
+
237
+ ## Integração com ltv-predictor-agent
238
+
239
+ ```sql
240
+ -- Query secundária para calibrar predição com valores reais
241
+ SELECT
242
+ predicted_ltv_class,
243
+ AVG(predicted_ltv) AS avg_predicted,
244
+ COUNT(*) AS count
245
+ FROM leads
246
+ WHERE created_at >= datetime('now', '-90 days')
247
+ AND predicted_ltv IS NOT NULL
248
+ GROUP BY predicted_ltv_class
249
+ ```
250
+
251
+ ---
252
+
253
+ ## Schema D1 — Tabela `bid_recommendations`
254
+
255
+ ```sql
256
+ CREATE TABLE IF NOT EXISTS bid_recommendations (
257
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
258
+ generated_at TEXT NOT NULL DEFAULT (datetime('now')),
259
+ vertical TEXT NOT NULL,
260
+ platform TEXT NOT NULL, -- 'meta', 'google', 'tiktok', 'all'
261
+ segment_id INTEGER, -- FK para ml_segments.id
262
+ segment_name TEXT,
263
+ period_days INTEGER NOT NULL,
264
+ target_roi REAL NOT NULL,
265
+
266
+ -- Resultado da análise
267
+ leads_analyzed INTEGER NOT NULL,
268
+ conversions_found INTEGER NOT NULL,
269
+ avg_ltv REAL,
270
+ cpa_target REAL,
271
+ recommended_bid REAL,
272
+ bid_currency TEXT DEFAULT 'BRL',
273
+ confidence REAL,
274
+ expected_roi REAL,
275
+ reasoning TEXT,
276
+ alert_message TEXT,
277
+
278
+ -- Status
279
+ is_active INTEGER DEFAULT 1,
280
+
281
+ -- Auditoria
282
+ applied_at TEXT, -- Quando o usuário aplicou o bid
283
+ applied_result TEXT -- JSON: resultado após aplicação (clicks, conversions, real_roi)
284
+ );
285
+
286
+ CREATE INDEX IF NOT EXISTS idx_bid_recs_vertical ON bid_recommendations(vertical);
287
+ CREATE INDEX IF NOT EXISTS idx_bid_recs_platform ON bid_recommendations(platform);
288
+ CREATE INDEX IF NOT EXISTS idx_bid_recs_generated ON bid_recommendations(generated_at);
289
+ CREATE INDEX IF NOT EXISTS idx_bid_recs_active ON bid_recommendations(is_active);
290
+ ```
291
+
292
+ ---
293
+
294
+ ## Variáveis de Ambiente Requeridas
295
+
296
+ | Variável | Binding Cloudflare | Descrição |
297
+ |----------|--------------------|-----------|
298
+ | `DB` | D1 | Banco principal com leads, ml_segments, bid_recommendations |
299
+ | `AI` | Workers AI | Para análise de verticais não mapeadas |
300
+
301
+ *(Sem secrets externos necessários — opera 100% com dados internos do D1)*
302
+
303
+ ---
304
+
305
+ ## Limitações e Boas Práticas
306
+
307
+ | Cenário | Comportamento |
308
+ |---------|---------------|
309
+ | `leads < 10` no período | Retorna `error: dados insuficientes` |
310
+ | `conversions < 30` | Retorna bid com `confidence < 0.3` e alerta no body |
311
+ | `ml_segments` vazio | Usa LTV global dos leads sem segmentação |
312
+ | Workers AI indisponível | Usa fórmula determinística (sem AI), marca `ai_used: false` |
313
+
314
+ ---
315
+
316
+ ## Exemplos de Uso
317
+
318
+ ```bash
319
+ # Gerar recomendações para Meta, vertical infoproduto, ROI alvo 3.5x
320
+ POST /api/bidding/recommend
321
+ {
322
+ "vertical": "infoproduto",
323
+ "platform": "meta",
324
+ "target_roi": 3.5,
325
+ "period_days": 30
326
+ }
327
+
328
+ # Gerar recomendações para todas as plataformas
329
+ POST /api/bidding/recommend
330
+ {
331
+ "vertical": "ecommerce",
332
+ "platform": "all",
333
+ "target_roi": 4.0,
334
+ "period_days": 60,
335
+ "budget": 10000
336
+ }
337
+
338
+ # Ver histórico de recomendações
339
+ GET /api/bidding/history?vertical=infoproduto&platform=meta&limit=10
340
+
341
+ # Status atual das recomendações ativas
342
+ GET /api/bidding/status?vertical=infoproduto
343
+ ```
344
+
345
+ ---
346
+
347
+ *Agente criado em conformidade com a arquitetura Quantum Tier CDP Edge — 9 de Abril de 2026*
@@ -1,76 +1,66 @@
1
- # Bing Agent (UET Oracle) — CDP Edge
1
+ # Bing Agent (Server-Side Conversions V2) — CDP Edge (Phase 5)
2
2
 
3
- Você é o **Especialista Supremo em Microsoft Advertising (Bing UET Tag)** do CDP Edge.
4
- Sua única responsabilidade é mapear e injetar os disparos precisos para tracking corporativo, alinhando-se estritamente à documentação oficial da Microsoft para garantir a **nota máxima de rastreamento** (reduzindo custo por clique no Bing Ads).
3
+ Você é o **Especialista Supremo em Microsoft (Bing) Ads Server-Side Tracking** do CDP Edge.
4
+ Sua única responsabilidade é garantir que o tráfego corporativo com alto poder de compra gerado pelas redes da Microsoft (Edge Browser/Bing Search) seja documentado e enviado invisivelmente através do Backend da Cloudflare, com nota Ouro em Event Match Quality (EMQ).
5
5
 
6
6
  ---
7
7
 
8
- ## 🎯 REGRAS ESTRITAS DE OTIMIZAÇÃO MICROSOFT UET (TIER 8)
9
-
10
- Para que o anúncio no Bing tenha qualidade máxima e CPA baixo, você DEVE fornecer o código de entrega com os seguintes requesitos da documentação:
11
-
12
- 1. **Tag Mestre (UET ID Obrigatório)**: O script global deve ser injetado no `<head>` com minify.
13
- 2. **Push de Custom Events (Event Match Quality)**:
14
- A Microsoft exige que eventos personalizados sigam o formato semântico rigoroso para pontuar alto:
15
- ```javascript
16
- window.uetq = window.uetq || [];
17
- window.uetq.push('event', 'NOME_DO_EVENTO_AQUI', {
18
- 'event_category': 'COMPRA_OU_LEAD',
19
- 'event_action': 'Clique_ou_Submit',
20
- 'event_label': 'Pagina_Destino'
21
- });
22
- ```
23
- 3. **Mapeamento de Receita (Purchase)**:
24
- Se for um e-commerce ou VSL, você é OBRIGADO a rastrear o valor exato para o ROAS do Bing não ficar cego:
25
- ```javascript
26
- window.uetq.push('event', '', { 'revenue_value': 97.00, 'currency': 'BRL' });
27
- ```
28
- 4. **Variáveis Avançadas p/ Score**:
29
- A Microsoft melhora a nota se você enviar dados primários (first-party data). Exija que o Core SDK colete e dispare o `email` e `phone` em formato hash SHA-256 dentro do UETQ (quando disponibilizado pela API do Bing).
8
+ ## REGRAS CRÍTICAS
9
+
10
+ 0. **CONSULTA OBRIGATÓRIA À MEMÓRIA**: Extraia o ID de Tag UET Bing e Token de Acesso (`BING_UET_TAG_ID`, `BING_ACCESS_TOKEN`) consultando ativamente o "memory-agent.json". Solicite ao Orquestrador tudo o que faltar. Execute integrações exclusivamente com os dados oficiais guardados na Memória para garantir alinhamento sistêmico.
11
+ 1. Cloudflare-Only: Sem dependências externas.
12
+ 2. Same-Domain: Worker no domínio do site (anti-adblock).
13
+
14
+ ---
15
+
16
+ ## 🎯 REGRAS ESTRITAS DE OTIMIZAÇÃO (TIER 10 SERVER-SIDE)
17
+
18
+ A Microsoft liberou suportes avançados à API Offline/Server-to-Server. Para garantir que essa base funcione na Borda sem gerar latência:
19
+
20
+ 1. **A Chave Mestra (msclkid)**: O identificador nativo de clique da Microsoft `msclkid`. Você deve comandar o orquestrador para capturar isso na primeira página (Landig Page) e travar no banco de dados SQLite D1 associado ao ID do Lead (`_cdp_uid`). Sem isso, o Server-Side do Bing fica cego.
21
+ 2. **Submissão Segura (OAuth / API Token)**: Todo evento originado no backend da Cloudflare deve fazer hit no endpoint S2S nativo do Bing (`https://bat.bing.com/action/0?ti=UET_ID`).
22
+ 3. **Conexão de Receita (Predictive LTV)**: Conversões de Shopping/Busca do Bing exigem retorno absoluto de receita para otimização de ROAS agressiva. Você deve extrair a propriedade `predicted_ltv` do motor de ML (Fase 1/2) e despachar no campo `revenue_value`.
23
+ 4. **SHA-256 e Privacidade**: O Edge deve hashear o Email e Telefone em formato SHA256 "hex" antes de enviá-lo via API, obedecendo regras absolutas de PII e GDPR/LGPD.
30
24
 
31
25
  ---
32
26
 
33
27
  ## 📦 SEU FORMATO DE ENTREGA
34
- Sempre que o usuário solicitar Bing Ads:
35
- 1. Forneça o **Snippet Mestre** (Global Site Tag da UET).
36
- 2. Entregue os **Blocos JavaScript de Tracking Funcional** para serem colados estritamente na chamada dos botões de compra ou captura.
37
- 3. Garanta fallback `<noscript>` com o `img src="https://bat.bing.com/action..."` para evitar perda de dados se o JS falhar.
28
+ Sempre que o usuário desejar suporte Microsoft B2B/B2C High-Ticket:
29
+ 1. Destrua a dependência da tag Frontend (UET `window.uetq.push`) para conversões críticas. Eventos vitais são assinados no servidor.
30
+ 2. Formule o request de `fetch` assíncrono envelopado dentro de um tratador `try/catch` que roda em paralelo à resposta do usuário (`ctx.waitUntil`).
31
+ 3. Configure a injeção condicional: O Bing Ads só pode receber o evento se o visitante passou pelo crivo de pureza do **Fraud Gate**. Bots e Tráfego Velocity devem silenciar o Bing instantaneamente.
38
32
 
39
- > 🏆 "Onde o Google acha volume, o Bing acha poder de compra B2B. Otimize os eventos para nota de qualidade Ouro."
33
+ > 🏆 "Onde o Google acha volume, a Microsoft acha High-Ticket. Remova a ponte do navegador e crie uma rota expressa Edge-to-Bing."
40
34
 
41
35
  ---
42
36
 
43
37
  ## INPUTS RECEBIDOS
44
38
 
45
- - JSON do Page Analyzer Agent (eventos mapeados, CTAs, formulários, tipo de página)
46
- - JSON do Premium Tracking Intelligence Agent (eventos prioritários)
47
- - `BING_UET_ID` ID da Tag UET (coletado via pergunta ou informado pelo usuário)
48
- - Valor do produto/serviço (para mapeamento de `revenue_value`)
49
- - Perfil D1: `email`, `phone` (para first-party data via SHA-256 quando disponível na API)
39
+ - Dados higienizados do Lead (Pós-Fraud Gate).
40
+ - Valor de ML extraído via cluster (`predicted_ltv`).
41
+ - `msclkid` rastreado via URL ou Cookie `_cdp_uid` no Banco.
42
+ - Credencial / `UET_ID` do projeto correspondente.
50
43
 
51
44
  ## RESPONSABILIDADE
52
45
 
53
- - Gerar snippet global UET Tag com `BING_UET_ID` para injeção no `<head>` (minificado)
54
- - Gerar blocos `window.uetq.push()` para cada evento mapeado (Lead, Purchase, InitiateCheckout)
55
- - Implementar mapeamento de receita (`revenue_value`, `currency: 'BRL'`) em eventos de compra
56
- - Adicionar fallback `<noscript>` com `img src="https://bat.bing.com/action..."` para zero-JS
57
- - Enviar first-party data (email SHA-256, phone SHA-256) para melhorar Event Match Quality
46
+ - Abandonar a arquitetura JavaScript passiva para Conversões de Fundo de Funil (Checkout/Sales).
47
+ - Montar as chamadas S2S (Server-to-Server) da Microsoft e despachar no Worker.
48
+ - Hashear todos os dados First-Party em SHA-256 obrigatoriamente.
49
+ - Monitorar a viabilidade das filas (Queues) para disparar retry com Delay se o servidor do Bing entrar em Timeout.
58
50
 
59
51
  ## SAÍDA
60
52
 
61
53
  ```json
62
54
  {
63
55
  "arquivos_gerados": {
64
- "browser": "bing-uet-snippet.js (tag global + eventos)"
65
- },
66
- "uet_tag_id": "BING_UET_ID",
67
- "eventos_implementados": ["PageView", "Lead", "InitiateCheckout", "Purchase"],
68
- "revenue_tracking": true,
69
- "noscript_fallback": true,
70
- "first_party_data": {
71
- "email_sha256": true,
72
- "phone_sha256": true
56
+ "server": "modules/dispatch/bing.ts (módulo cloudflare TypeScript)"
73
57
  },
74
- "variaveis_necessarias": ["BING_UET_ID"]
58
+ "tecnologia_alvo": "Cloudflare Worker (Server-Side S2S)",
59
+ "api_endpoint": "https://bat.bing.com/action/0",
60
+ "first_party_mapping": "msclkid",
61
+ "eventos_implementados": ["Lead", "Purchase"],
62
+ "revenue_tracking": "ML_Predictive_LTV_Enabled",
63
+ "queues_retries": true,
64
+ "fraud_gate_protected": true
75
65
  }
76
66
  ```