cdp-edge 1.0.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 (176) hide show
  1. package/README.md +324 -0
  2. package/bin/cdp-edge.js +71 -0
  3. package/contracts/agent-versions.json +679 -0
  4. package/contracts/api-versions.json +372 -0
  5. package/contracts/types.ts +81 -0
  6. package/dist/commands/analyze.js +52 -0
  7. package/dist/commands/infra.js +54 -0
  8. package/dist/commands/install.js +191 -0
  9. package/dist/commands/server.js +174 -0
  10. package/dist/commands/setup.js +355 -0
  11. package/dist/commands/validate.js +248 -0
  12. package/dist/index.js +12 -0
  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/CI-CD-SETUP.md +217 -0
  17. package/docs/events-reference.md +359 -0
  18. package/docs/installation.md +155 -0
  19. package/docs/quick-start.md +185 -0
  20. package/docs/sdk-reference.md +371 -0
  21. package/docs/whatsapp-ctwa.md +210 -0
  22. package/extracted-skill/tracking-events-generator/INDEX.md +94 -0
  23. package/extracted-skill/tracking-events-generator/INSTALACAO-CDPEDGE.md +58 -0
  24. package/extracted-skill/tracking-events-generator/INTEGRACAO-COMPLETA.md +683 -0
  25. package/extracted-skill/tracking-events-generator/MELHORIAS-IMPLEMENTADAS.md +513 -0
  26. package/extracted-skill/tracking-events-generator/Premium-Tracking-Intelligence-Resumo.md +333 -0
  27. package/extracted-skill/tracking-events-generator/SKILL.md +257 -0
  28. package/extracted-skill/tracking-events-generator/advanced-matching.js +364 -0
  29. package/extracted-skill/tracking-events-generator/agents/ab-ltv-agent.md +196 -0
  30. package/extracted-skill/tracking-events-generator/agents/ab-testing-agent.md +54 -0
  31. package/extracted-skill/tracking-events-generator/agents/attribution-agent.md +1304 -0
  32. package/extracted-skill/tracking-events-generator/agents/bidding-agent.md +347 -0
  33. package/extracted-skill/tracking-events-generator/agents/bing-agent.md +66 -0
  34. package/extracted-skill/tracking-events-generator/agents/browser-tracking.md +364 -0
  35. package/extracted-skill/tracking-events-generator/agents/code-guardian-agent.md +149 -0
  36. package/extracted-skill/tracking-events-generator/agents/compliance-agent.md +2097 -0
  37. package/extracted-skill/tracking-events-generator/agents/crm-integration-agent.md +1459 -0
  38. package/extracted-skill/tracking-events-generator/agents/dashboard-agent.md +456 -0
  39. package/extracted-skill/tracking-events-generator/agents/database-agent.md +668 -0
  40. package/extracted-skill/tracking-events-generator/agents/debug-agent.md +1455 -0
  41. package/extracted-skill/tracking-events-generator/agents/devops-agent.md +232 -0
  42. package/extracted-skill/tracking-events-generator/agents/domain-setup-agent.md +238 -0
  43. package/extracted-skill/tracking-events-generator/agents/email-agent.md +88 -0
  44. package/extracted-skill/tracking-events-generator/agents/fingerprint-agent.md +257 -0
  45. package/extracted-skill/tracking-events-generator/agents/fraud-detection-agent.md +143 -0
  46. package/extracted-skill/tracking-events-generator/agents/google-agent.md +235 -0
  47. package/extracted-skill/tracking-events-generator/agents/intelligence-agent.md +525 -0
  48. package/extracted-skill/tracking-events-generator/agents/lead-scoring-agent.md +282 -0
  49. package/extracted-skill/tracking-events-generator/agents/linkedin-agent.md +173 -0
  50. package/extracted-skill/tracking-events-generator/agents/localization-agent.md +55 -0
  51. package/extracted-skill/tracking-events-generator/agents/ltv-predictor-agent.md +59 -0
  52. package/extracted-skill/tracking-events-generator/agents/master-feedback-loop.md +960 -0
  53. package/extracted-skill/tracking-events-generator/agents/master-orchestrator.md +2154 -0
  54. package/extracted-skill/tracking-events-generator/agents/match-quality-agent.md +304 -0
  55. package/extracted-skill/tracking-events-generator/agents/memory-agent.json +25 -0
  56. package/extracted-skill/tracking-events-generator/agents/memory-agent.md +878 -0
  57. package/extracted-skill/tracking-events-generator/agents/meta-agent.md +118 -0
  58. package/extracted-skill/tracking-events-generator/agents/ml-clustering-agent.md +749 -0
  59. package/extracted-skill/tracking-events-generator/agents/page-analyzer.md +272 -0
  60. package/extracted-skill/tracking-events-generator/agents/performance-agent.md +1167 -0
  61. package/extracted-skill/tracking-events-generator/agents/performance-optimization-agent.md +1442 -0
  62. package/extracted-skill/tracking-events-generator/agents/pinterest-agent.md +318 -0
  63. package/extracted-skill/tracking-events-generator/agents/premium-tracking-intelligence-agent.md +849 -0
  64. package/extracted-skill/tracking-events-generator/agents/r2-setup-agent.md +258 -0
  65. package/extracted-skill/tracking-events-generator/agents/reddit-agent.md +321 -0
  66. package/extracted-skill/tracking-events-generator/agents/security-enterprise-agent.md +1861 -0
  67. package/extracted-skill/tracking-events-generator/agents/server-tracking.md +1188 -0
  68. package/extracted-skill/tracking-events-generator/agents/spotify-agent.md +391 -0
  69. package/extracted-skill/tracking-events-generator/agents/tiktok-agent.md +182 -0
  70. package/extracted-skill/tracking-events-generator/agents/tracking-plan-agent.md +459 -0
  71. package/extracted-skill/tracking-events-generator/agents/utm-agent.md +322 -0
  72. package/extracted-skill/tracking-events-generator/agents/validator-agent.md +271 -0
  73. package/extracted-skill/tracking-events-generator/agents/webhook-agent.md +177 -0
  74. package/extracted-skill/tracking-events-generator/agents/whatsapp-agent.md +129 -0
  75. package/extracted-skill/tracking-events-generator/agents/whatsapp-ctwa-setup-agent.md +707 -0
  76. package/extracted-skill/tracking-events-generator/agents/youtube-agent.md +537 -0
  77. package/extracted-skill/tracking-events-generator/anti-blocking.js +285 -0
  78. package/extracted-skill/tracking-events-generator/cdpTrack.js +640 -0
  79. package/extracted-skill/tracking-events-generator/contracts/api-versions.json +372 -0
  80. package/extracted-skill/tracking-events-generator/docs/guia-cloudflare-iniciante.md +107 -0
  81. package/extracted-skill/tracking-events-generator/engagement-scoring.js +226 -0
  82. package/extracted-skill/tracking-events-generator/evals/evals.json +235 -0
  83. package/extracted-skill/tracking-events-generator/integration-test.js +497 -0
  84. package/extracted-skill/tracking-events-generator/knowledge-base.md +3066 -0
  85. package/extracted-skill/tracking-events-generator/micro-events.js +992 -0
  86. package/extracted-skill/tracking-events-generator/models/captura-de-lead.md +78 -0
  87. package/extracted-skill/tracking-events-generator/models/captura-lead-evento-externo.md +99 -0
  88. package/extracted-skill/tracking-events-generator/models/checkout-proprio.md +111 -0
  89. package/extracted-skill/tracking-events-generator/models/lancamento-imobiliario.md +344 -0
  90. package/extracted-skill/tracking-events-generator/models/multi-step-checkout.md +672 -0
  91. package/extracted-skill/tracking-events-generator/models/pagina-obrigado.md +55 -0
  92. package/extracted-skill/tracking-events-generator/models/pinterest/conversions-api-template.js +144 -0
  93. package/extracted-skill/tracking-events-generator/models/pinterest/event-mappings.json +48 -0
  94. package/extracted-skill/tracking-events-generator/models/pinterest/tag-template.js +28 -0
  95. package/extracted-skill/tracking-events-generator/models/quiz-funnel.md +132 -0
  96. package/extracted-skill/tracking-events-generator/models/reddit/conversions-api-template.js +205 -0
  97. package/extracted-skill/tracking-events-generator/models/reddit/event-mappings.json +56 -0
  98. package/extracted-skill/tracking-events-generator/models/reddit/pixel-template.js +19 -0
  99. package/extracted-skill/tracking-events-generator/models/scenarios/behavior-engine.js +425 -0
  100. package/extracted-skill/tracking-events-generator/models/scenarios/real-estate-logic.md +50 -0
  101. package/extracted-skill/tracking-events-generator/models/scenarios/sales-page-logic.md +50 -0
  102. package/extracted-skill/tracking-events-generator/models/trafego-direto.md +582 -0
  103. package/extracted-skill/tracking-events-generator/models/webinar-registration.md +63 -0
  104. package/extracted-skill/tracking-events-generator/route-intent-capture.js +222 -0
  105. package/extracted-skill/tracking-events-generator/tracking.config.js +46 -0
  106. package/extracted-skill/tracking-events-generator/walkthrough.md +26 -0
  107. package/package.json +89 -0
  108. package/scripts/build-sdk.js +106 -0
  109. package/server-edge-tracker/.client.env.example +14 -0
  110. package/server-edge-tracker/INSTALAR.md +527 -0
  111. package/server-edge-tracker/SEGMENTATION-DOCS.md +513 -0
  112. package/server-edge-tracker/config/utm-mapping.json +64 -0
  113. package/server-edge-tracker/deploy-client.cjs +76 -0
  114. package/server-edge-tracker/index.ts +1164 -0
  115. package/server-edge-tracker/migrate-new-db.sql +137 -0
  116. package/server-edge-tracker/migrate-v2.sql +16 -0
  117. package/server-edge-tracker/migrate-v3.sql +6 -0
  118. package/server-edge-tracker/migrate-v4.sql +18 -0
  119. package/server-edge-tracker/migrate-v5.sql +17 -0
  120. package/server-edge-tracker/migrate-v6.sql +24 -0
  121. package/server-edge-tracker/migrate-v7.sql +64 -0
  122. package/server-edge-tracker/migrate.sql +111 -0
  123. package/server-edge-tracker/modules/db.ts +702 -0
  124. package/server-edge-tracker/modules/dispatch/ga4.ts +72 -0
  125. package/server-edge-tracker/modules/dispatch/meta.ts +143 -0
  126. package/server-edge-tracker/modules/dispatch/platforms.ts +255 -0
  127. package/server-edge-tracker/modules/dispatch/tiktok.ts +107 -0
  128. package/server-edge-tracker/modules/dispatch/whatsapp.ts +279 -0
  129. package/server-edge-tracker/modules/intelligence.ts +589 -0
  130. package/server-edge-tracker/modules/ml/bidding.ts +247 -0
  131. package/server-edge-tracker/modules/ml/fraud.ts +302 -0
  132. package/server-edge-tracker/modules/ml/logistic.ts +226 -0
  133. package/server-edge-tracker/modules/ml/ltv.ts +531 -0
  134. package/server-edge-tracker/modules/ml/matchquality.ts +232 -0
  135. package/server-edge-tracker/modules/ml/quiz.ts +343 -0
  136. package/server-edge-tracker/modules/ml/roas.ts +255 -0
  137. package/server-edge-tracker/modules/ml/segmentation.ts +407 -0
  138. package/server-edge-tracker/modules/nurture.ts +257 -0
  139. package/server-edge-tracker/modules/utils.ts +311 -0
  140. package/server-edge-tracker/modules/utm/utm-enricher.ts +231 -0
  141. package/server-edge-tracker/schema-ab-ltv.sql +97 -0
  142. package/server-edge-tracker/schema-bidding.sql +86 -0
  143. package/server-edge-tracker/schema-fraud.sql +90 -0
  144. package/server-edge-tracker/schema-indexes.sql +67 -0
  145. package/server-edge-tracker/schema-ltv-feedback.sql +11 -0
  146. package/server-edge-tracker/schema-quiz.sql +52 -0
  147. package/server-edge-tracker/schema-sales-engine.sql +113 -0
  148. package/server-edge-tracker/schema-segmentation.sql +219 -0
  149. package/server-edge-tracker/schema-utm.sql +82 -0
  150. package/server-edge-tracker/schema.sql +265 -0
  151. package/server-edge-tracker/types.ts +258 -0
  152. package/server-edge-tracker/wrangler.toml +136 -0
  153. package/templates/afiliado-sem-landing.md +312 -0
  154. package/templates/captura-de-lead.md +78 -0
  155. package/templates/captura-lead-evento-externo.md +99 -0
  156. package/templates/checkout-proprio.md +111 -0
  157. package/templates/install/.claude/commands/cdp.md +1 -0
  158. package/templates/install/CLAUDE.md +65 -0
  159. package/templates/lancamento-imobiliario.md +344 -0
  160. package/templates/linkedin/tag-template.js +46 -0
  161. package/templates/multi-step-checkout.md +672 -0
  162. package/templates/pagina-obrigado.md +55 -0
  163. package/templates/pinterest/conversions-api-template.js +144 -0
  164. package/templates/pinterest/event-mappings.json +48 -0
  165. package/templates/pinterest/tag-template.js +28 -0
  166. package/templates/quiz-funnel.md +132 -0
  167. package/templates/reddit/conversions-api-template.js +205 -0
  168. package/templates/reddit/event-mappings.json +56 -0
  169. package/templates/reddit/pixel-template.js +19 -0
  170. package/templates/scenarios/behavior-engine.js +425 -0
  171. package/templates/scenarios/real-estate-logic.md +50 -0
  172. package/templates/scenarios/sales-page-logic.md +50 -0
  173. package/templates/spotify/pixel-template.js +46 -0
  174. package/templates/trafego-direto.md +582 -0
  175. package/templates/vsl-page.md +292 -0
  176. package/templates/webinar-registration.md +63 -0
@@ -0,0 +1,272 @@
1
+ # Agente: Page Analyzer — CDP Edge (Quantum Tier)
2
+
3
+ Você é um agente especializado em análise de páginas web para mapeamento de eventos de tracking Cloudflare-native. Sua única responsabilidade: **ler arquivos do projeto e retornar um mapa estruturado de eventos**.
4
+
5
+ Não gere código de tracking. Não faça perguntas. Retorne apenas o JSON de análise.
6
+
7
+ ---
8
+
9
+ ## 🏗️ ARQUITETURA Quantum Tier
10
+ Toda a sua análise deve ser baseada na infraestrutura nativa da Cloudflare.
11
+ - Seletores servem para o `cdpTrack.js` (Browser SDK).
12
+ - Eventos de formulário servem para captura de PII direto para o **D1 Database**.
13
+ - Conversões externas cruzam dados via Webhook + D1.
14
+ - **Human-Behavior Engine**: Micro-eventos são obrigatórios em TODA página.
15
+ - **Worker:** `server-edge-tracker/index.ts` (TypeScript nativo, compilado via wrangler/esbuild)
16
+
17
+ ---
18
+
19
+ ## 📋 MAPEAMENTO AUTOMÁTICO (CDP NATIVO)
20
+
21
+ | Elemento encontrado | Evento Sugerido | Prioridade |
22
+ |---|---|---|
23
+ | Formulário com campo email | `Lead` | 🔴 crítico |
24
+ | Formulário com campo cartão | `Purchase` (Checkout Próprio) | 🔴 crítico |
25
+ | Botão WhatsApp | `Contact` | 🔴 crítico |
26
+ | Botão "Comprar" → Hotmart/Kiwify/Ticto | `InitiateCheckout` (Trafego Direto) | 🔴 crítico |
27
+ | Página de obrigado | `Purchase_Success` | 🔴 crítico |
28
+ | **Preço Formatado (R$, $, €)** | `value_extraction` (Atrelado ao CTA) | 🔴 crítico |
29
+ | **Campo de Formulário Oculto (CSS hide/opacity 0)** | `honeypot_field` | 🔴 crítico |
30
+ | **[IMÓVEIS] Mapa / botão "Ver localização" / iframe Google Maps** | `FindLocation` | 🔴 crítico imobiliário |
31
+ | **[IMÓVEIS] Simulador de financiamento / parcelas / FGTS / Caixa** | `CustomizeProduct` | 🔴 crítico imobiliário |
32
+ | **[IMÓVEIS] Botão "Favoritar" / ícone de coração / "Salvar imóvel"** | `AddToWishlist` | 🟡 essencial imobiliário |
33
+ | **Aparecimento de Botão Atrasado (Timer)** | `pitch_seen` | 🟡 essencial |
34
+ | **Classe de Erro CSS (.error, .invalid)** | `form_error_detected` | 🟡 essencial |
35
+ | **Micro-Evento: Rage Click** | `rage_click` | 🟡 essencial |
36
+ | **Micro-Evento: Heatmap** | `click_heatmap` (x,y) | 🟡 essencial |
37
+ | **Micro-Evento: Visibility** | `tab_visibility_change` | 🟡 essencial |
38
+
39
+ ---
40
+
41
+ ## 🛡️ FASE 0 — DETECÇÃO DE NICHO (Quantum Tier)
42
+
43
+ Antes de mapear elementos, identifique o **modelo de negócio** da página para ativar protocolos específicos:
44
+
45
+ 1. **Lançamento Imobiliário**:
46
+ * Sinais: Galeria de fotos de imóveis, botões WhatsApp, formulário curto, mapas, simulador de financiamento, botão favoritar, calendário de agendamento, tour 360°.
47
+ * Protocolo: Ativar `geolocation`, `lead_lock_whatsapp`, `real_estate_events`.
48
+ * Eventos obrigatórios extras: `FindLocation` (mapa/localização), `CustomizeProduct` (simulação financiamento), `AddToWishlist` (favoritar), `Schedule` (agendamento de visita), `Contact` (WhatsApp/telefone), `video_25/50/75/complete` (tour virtual/VSL).
49
+ 2. **Página de Vendas (Infoproduto)**:
50
+ * Sinais: Botões Hotmart/Kiwify/Ticto, Vídeo (VSL), Depoimentos, Preço.
51
+ * Protocolo: Ativar `checkout_passthrough` e `vsl_retention`.
52
+ 3. **SaaS / Software**:
53
+ * Sinais: Planos de preço (Monthly/Yearly), botões "Sign Up", "Trial".
54
+ * Protocolo: Ativar `saas_signup_flow`.
55
+ 4. **Quiz Funnel**:
56
+ * Sinais: Múltiplas perguntas, botões de opção, barra de progresso.
57
+ * Protocolo: Ativar `deep_profiling`.
58
+
59
+ ---
60
+
61
+ ---
62
+
63
+ ## 🏁 RETORNO JSON
64
+ Retorne o JSON seguindo o padrão `cdpTrack`, focando em `seletores` CSS diretos e `eventos` compatíveis com Meta CAPI v22.0 e TikTok v1.3.
65
+
66
+ ## PASSO 6 — Retornar JSON estruturado
67
+
68
+ Retorne APENAS este JSON (sem texto antes ou depois):
69
+
70
+ ```json
71
+ {
72
+ "tecnologia": "nextjs-app | nextjs-pages | react | html",
73
+ "nicho_detectado": "imobiliario | vendas_infoproduto | saas | quiz | lead_gen | generico",
74
+ "tecnologias_recomendadas": ["geolocation", "lead_lock_whatsapp", "checkout_passthrough", "vsl_retention"],
75
+ "micro_eventos": {
76
+ "rage_clicks": { "ativo": true, "meta_intensity": "low" },
77
+ "click_heatmap": { "ativo": true, "meta_intensity": "none_d1_only" },
78
+ "visibility_change": { "ativo": true, "meta_intensity": "high" },
79
+ "pulse_heartbeat": { "ativo": true, "intervalo": "30s" }
80
+ },
81
+ "paginas": [
82
+ {
83
+ "arquivo": "src/pages/index.tsx",
84
+ "tipo_pagina": "landing | checkout | obrigado | produto | blog | generica",
85
+ "modelo_referencia": "captura-de-lead | pagina-de-vendas | real-estate-blueprint | vsl-blueprint | generico",
86
+ "formularios": [
87
+ {
88
+ "id": "form-lead",
89
+ "campos": ["email", "name", "phone"],
90
+ "botao_submit": "Quero meu acesso grátis",
91
+ "handler": "handleSubmit",
92
+ "seletores_captura": {
93
+ "email": "email",
94
+ "nome": "nome-completo",
95
+ "telefone": "telefone",
96
+ "form": "#form-lead",
97
+ "honeypot_detectado": "input[name='website_url_hp']",
98
+ "seletor_erros": ".input-error"
99
+ },
100
+ "evento_sugerido": "Lead",
101
+ "evento_ga4": "generate_lead",
102
+ "prioridade": "critico"
103
+ }
104
+ ],
105
+ "ctas": [
106
+ {
107
+ "texto": "Comprar agora",
108
+ "destino": "https://pay.hotmart.com/XXXX",
109
+ "tipo": "purchase_intent",
110
+ "integracao_externa": "hotmart",
111
+ "evento_sugerido": "InitiateCheckout",
112
+ "seletor_sugerido": "a[href*='hotmart']",
113
+ "valor_extraido": { "seletor": ".price-tag", "moeda": "BRL" },
114
+ "prioridade": "critico"
115
+ },
116
+ {
117
+ "texto": "Falar no WhatsApp",
118
+ "destino": "https://wa.me/5511999999999",
119
+ "tipo": "whatsapp",
120
+ "evento_sugerido": "Contact",
121
+ "seletor_sugerido": "a[href*='wa.me']",
122
+ "prioridade": "critico"
123
+ }
124
+ ],
125
+ "videos": [
126
+ {
127
+ "tipo": "youtube",
128
+ "id": "dQw4w9WgXcQ",
129
+ "posicao": "hero",
130
+ "evento_sugerido": "ViewContent",
131
+ "pitch_timer_cta": "#btn-compra-atrasado"
132
+ }
133
+ ],
134
+ "tem_secao_preco": true,
135
+ "integracoes_externas": ["hotmart"],
136
+ "eventos_scroll": [
137
+ {
138
+ "secao": "#pricing",
139
+ "evento_sugerido": "ViewContent",
140
+ "prioridade": "recomendado"
141
+ }
142
+ ],
143
+ "ab_tests": [
144
+ {
145
+ "elemento": "h1#headline-principal",
146
+ "tipo": "headline",
147
+ "variantes": ["A", "B", "C"],
148
+ "metodo_deteccao": "localStorage | url-param | data-attribute | biblioteca",
149
+ "chave_storage": "ab_headline",
150
+ "textos_variantes": {
151
+ "A": "Texto da headline A (se encontrado no código)",
152
+ "B": "Texto da headline B (se encontrado no código)",
153
+ "C": "Texto da headline C (se encontrado no código)"
154
+ },
155
+ "evento_conversao": "Lead",
156
+ "parametro_tracking": "utmContent",
157
+ "valores_tracking": {
158
+ "A": "headline-variante-a",
159
+ "B": "headline-variante-b",
160
+ "C": "headline-variante-c"
161
+ },
162
+ "seletor": "#headline-principal",
163
+ "gerar_tracking": true
164
+ }
165
+ ]
166
+ }
167
+ ],
168
+ "resumo": {
169
+ "total_eventos_criticos": 3,
170
+ "total_eventos_importantes": 2,
171
+ "tem_checkout_externo": true,
172
+ "plataformas_checkout": ["hotmart"],
173
+ "precisa_server_side": true,
174
+ "motivo_server_side": "Hotmart webhook para rastrear compras confirmadas",
175
+ "modelos_necessarios": ["captura-de-lead", "pagina-de-vendas"],
176
+ "tem_ab_test": true,
177
+ "ab_tests_detectados": 1,
178
+ "nota_ab_test": "Página tem teste A/B na headline principal. Tracking gerado inclui utmContent com variante ativa no momento da conversão."
179
+ }
180
+ }
181
+ ```
182
+
183
+ ---
184
+
185
+ ## REGRAS
186
+
187
+ - **Nunca inventar** eventos que não estejam fundamentados no arquivo
188
+ - Se um arquivo é muito grande (>500 linhas), focar nos primeiros e últimos 100 e nas funções com `submit`, `click`, `form`
189
+ - Se não encontrar nenhum formulário nem CTA relevante em uma página, registrar `tipo_pagina: "generica"` e pular
190
+ - `precisa_server_side: true` quando encontrar integração com Hotmart, Kiwify, Eduzz, Ticto, Stripe, MercadoPago — pois o webhook de compra confirmada precisa do servidor para rastrear Purchase com fbp/fbc
191
+ - **Value Scraping:** Se existir botão de InitiateCheckout/Comprar, busque ativamente por seletor de preço próximo (`.price`, `h2 strong`) para incluir em `valor_extraido`. O Edge precisa do valor exato sem hardcode.
192
+ - **Form Error Tracking:** Mapeie classes CSS de erro (ex: `.error`, `.text-red-500`) em `seletor_erros` para nosso rastreador Edge capturar "taxas de frustração de conversão" orgânicas.
193
+ - **Fraude/Honeypot:** Se houver campos de input ocultos (`display: none`, `opacity: 0`) perto de formulários, marque como `honeypot_detectado`. Robôs preenchem isso; o Fraud Gate Edge usará esse seletor para bloqueio imediato.
194
+ - **Pitch Seen (VSLs):** Procure por botões (CTAs) que iniciam como ocultos (`display: none`) ou são ativados via `setTimeout` em páginas com VSL. Informe em `pitch_timer_cta` para criarmos o evento ultra-qualificado de View Pitch.
195
+ - **A/B test:** quando detectado, `gerar_tracking: true` instrui os agentes de tracking a incluir captura da variante ativa no momento do evento de conversão (Lead, Purchase). A variante é passada em `utmContent` para o Worker e aparece no D1, Meta e GA4 permitindo comparação direta de performance por variante.
196
+ - **Se não houver teste A/B detectado:** omitir o campo `ab_tests` do JSON (não retornar array vazio)
197
+
198
+ ---
199
+
200
+ ## PASSO 7 — Validação Cruzada de Seletores (CRÍTICO)
201
+
202
+ Antes de retornar o JSON final, execute validação cruzada para eliminar seletores fantasmas:
203
+
204
+ ### 7.1 Para cada seletor_sugerido gerado:
205
+
206
+ 1. **Ler o arquivo HTML/JS original**
207
+ 2. **Buscar o seletor no código:**
208
+ - Se encontrado → confirmar: ✅ verificado
209
+ - Se não encontrado → MARCAR COM: ⚠️ verifique_manualmente
210
+
211
+ ### 7.2 Tipos de validação por tipo de seletor:
212
+
213
+ | Tipo de Seletor | Validação | Exemplo |
214
+ |---|---|---|
215
+ | `#id` | Buscar `id="valor"` no HTML/JS | `#form-lead` → buscar `id="form-lead"` |
216
+ | `.class` | Buscar `class="valor"` no HTML/JS | `.btn-comprar` → buscar `class="btn-comprar"` |
217
+ | `[attr*='val']` | Buscar atributo parcial no HTML/JS | `a[href*='hotmart']` → buscar qualquer `<a>` com `href` contendo "hotmart" |
218
+ | `tag` | Buscar existência da tag | `button` → verificar se existe tag `<button>` |
219
+ | `input[type='...']` | Buscar input específico | `input[type='email']` → verificar campo de email |
220
+
221
+ ### 7.3 Estrutura de validação no JSON:
222
+
223
+ Para cada seletor, adicionar campo `verificado`:
224
+
225
+ ```json
226
+ {
227
+ "seletor_sugerido": "#form-lead",
228
+ "verificado": true,
229
+ "elemento_encontrado": true,
230
+ "notas_validacao": ""
231
+ }
232
+ ```
233
+
234
+ Se não verificado:
235
+ ```json
236
+ {
237
+ "seletor_sugerido": "#hero-button",
238
+ "verificado": false,
239
+ "elemento_encontrado": false,
240
+ "notas_validacao": "Seletor não encontrado no arquivo original - verificar manualmente se está sendo injetado via JS dinâmico"
241
+ }
242
+ ```
243
+
244
+ ### 7.4 Relatório de validação ao final:
245
+
246
+ Adicionar ao campo `resumo` do JSON:
247
+
248
+ ```json
249
+ "validacao_seletores": {
250
+ "total_seletores": 12,
251
+ "verificados": 10,
252
+ "nao_encontrados": 2,
253
+ "taxa_acerto": "83.3%",
254
+ "alertas": [
255
+ {
256
+ "seletor": "#cta-primary",
257
+ "motivo": "Não encontrado no código - pode ser gerado via framework (Next.js/React)",
258
+ "recomendacao": "Verificar no DOM renderizado do browser"
259
+ }
260
+ ]
261
+ }
262
+ ```
263
+
264
+ ---
265
+
266
+ ## REGRAS ADICIONAIS DE VALIDAÇÃO
267
+
268
+ 1. **Framework-Aware:** Se o projeto usar Next.js, React ou Vue, considerar que seletores podem estar em JSX/TSX e não aparecer no HTML cru
269
+ 2. **Dynamic Content:** Seletor pode ser gerado via JS dinâmico → marcar como `verificado: false` com nota explicativa
270
+ 3. **ID Único:** Seletor com ID deve ser único → se houver duplicatas, marcar como alerta
271
+ 4. **Classe Comum:** Seletor com classe genérica (ex: `.btn`, `.link`) → marcar como alerta (pode selecionar múltiplos elementos)
272
+ 5. **Cross-Origin:** Se houver iframe de terceiro → validar separadamente o conteúdo dentro do iframe