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.
Files changed (128) hide show
  1. package/README.md +367 -0
  2. package/bin/cdp-edge.js +61 -0
  3. package/contracts/api-versions.json +368 -0
  4. package/dist/commands/analyze.js +52 -0
  5. package/dist/commands/infra.js +54 -0
  6. package/dist/commands/install.js +168 -0
  7. package/dist/commands/server.js +174 -0
  8. package/dist/commands/setup.js +123 -0
  9. package/dist/commands/validate.js +84 -0
  10. package/dist/index.js +12 -0
  11. package/docs/CI-CD-SETUP.md +217 -0
  12. package/docs/PixelBuilder-Documentacao-Completa (2).docx +0 -0
  13. package/docs/events-reference.md +359 -0
  14. package/docs/installation.md +155 -0
  15. package/docs/quick-start.md +185 -0
  16. package/docs/sdk-reference.md +371 -0
  17. package/docs/whatsapp-ctwa.md +209 -0
  18. package/extracted-skill/tracking-events-generator/INDEX.md +94 -0
  19. package/extracted-skill/tracking-events-generator/INSTALACAO-CDPEDGE.md +58 -0
  20. package/extracted-skill/tracking-events-generator/INTEGRACAO-COMPLETA.md +594 -0
  21. package/extracted-skill/tracking-events-generator/MELHORIAS-IMPLEMENTADAS.md +412 -0
  22. package/extracted-skill/tracking-events-generator/Premium-Tracking-Intelligence-Resumo.md +333 -0
  23. package/extracted-skill/tracking-events-generator/SKILL.md +257 -0
  24. package/extracted-skill/tracking-events-generator/advanced-matching.js +364 -0
  25. package/extracted-skill/tracking-events-generator/agents/ab-testing-agent.md +54 -0
  26. package/extracted-skill/tracking-events-generator/agents/attribution-agent.md +1304 -0
  27. package/extracted-skill/tracking-events-generator/agents/bing-agent.md +76 -0
  28. package/extracted-skill/tracking-events-generator/agents/browser-tracking.md +264 -0
  29. package/extracted-skill/tracking-events-generator/agents/code-guardian-agent.md +149 -0
  30. package/extracted-skill/tracking-events-generator/agents/compliance-agent.md +2077 -0
  31. package/extracted-skill/tracking-events-generator/agents/crm-integration-agent.md +1419 -0
  32. package/extracted-skill/tracking-events-generator/agents/dashboard-agent.md +456 -0
  33. package/extracted-skill/tracking-events-generator/agents/database-agent.md +667 -0
  34. package/extracted-skill/tracking-events-generator/agents/debug-agent.md +1455 -0
  35. package/extracted-skill/tracking-events-generator/agents/domain-setup-agent.md +224 -0
  36. package/extracted-skill/tracking-events-generator/agents/email-agent.md +61 -0
  37. package/extracted-skill/tracking-events-generator/agents/fingerprint-agent.md +52 -0
  38. package/extracted-skill/tracking-events-generator/agents/google-agent.md +109 -0
  39. package/extracted-skill/tracking-events-generator/agents/intelligence-agent.md +365 -0
  40. package/extracted-skill/tracking-events-generator/agents/intelligence-scheduling.md +643 -0
  41. package/extracted-skill/tracking-events-generator/agents/linkedin-agent.md +62 -0
  42. package/extracted-skill/tracking-events-generator/agents/localization-agent.md +55 -0
  43. package/extracted-skill/tracking-events-generator/agents/ltv-predictor-agent.md +59 -0
  44. package/extracted-skill/tracking-events-generator/agents/master-feedback-loop.md +900 -0
  45. package/extracted-skill/tracking-events-generator/agents/master-orchestrator.md +1922 -0
  46. package/extracted-skill/tracking-events-generator/agents/memory-agent.json +109 -0
  47. package/extracted-skill/tracking-events-generator/agents/memory-agent.md +703 -0
  48. package/extracted-skill/tracking-events-generator/agents/meta-agent.md +110 -0
  49. package/extracted-skill/tracking-events-generator/agents/page-analyzer.md +255 -0
  50. package/extracted-skill/tracking-events-generator/agents/performance-agent.md +1157 -0
  51. package/extracted-skill/tracking-events-generator/agents/performance-optimization-agent.md +1432 -0
  52. package/extracted-skill/tracking-events-generator/agents/pinterest-agent.md +310 -0
  53. package/extracted-skill/tracking-events-generator/agents/premium-tracking-intelligence-agent.md +849 -0
  54. package/extracted-skill/tracking-events-generator/agents/r2-setup-agent.md +250 -0
  55. package/extracted-skill/tracking-events-generator/agents/reddit-agent.md +313 -0
  56. package/extracted-skill/tracking-events-generator/agents/security-enterprise-agent.md +1752 -0
  57. package/extracted-skill/tracking-events-generator/agents/server-tracking.md +1188 -0
  58. package/extracted-skill/tracking-events-generator/agents/spotify-agent.md +383 -0
  59. package/extracted-skill/tracking-events-generator/agents/tiktok-agent.md +111 -0
  60. package/extracted-skill/tracking-events-generator/agents/tracking-plan-agent.md +364 -0
  61. package/extracted-skill/tracking-events-generator/agents/validator-agent.md +267 -0
  62. package/extracted-skill/tracking-events-generator/agents/webhook-agent.md +69 -0
  63. package/extracted-skill/tracking-events-generator/agents/whatsapp-agent.md +76 -0
  64. package/extracted-skill/tracking-events-generator/agents/whatsapp-ctwa-setup-agent.md +699 -0
  65. package/extracted-skill/tracking-events-generator/agents/youtube-agent.md +422 -0
  66. package/extracted-skill/tracking-events-generator/anti-blocking.js +285 -0
  67. package/extracted-skill/tracking-events-generator/cdpTrack.js +641 -0
  68. package/extracted-skill/tracking-events-generator/contracts/api-versions.json +368 -0
  69. package/extracted-skill/tracking-events-generator/docs/guia-cloudflare-iniciante.md +107 -0
  70. package/extracted-skill/tracking-events-generator/engagement-scoring.js +226 -0
  71. package/extracted-skill/tracking-events-generator/evals/evals.json +235 -0
  72. package/extracted-skill/tracking-events-generator/integration-test.js +497 -0
  73. package/extracted-skill/tracking-events-generator/knowledge-base.md +2894 -0
  74. package/extracted-skill/tracking-events-generator/micro-events.js +992 -0
  75. package/extracted-skill/tracking-events-generator/models/captura-de-lead.md +78 -0
  76. package/extracted-skill/tracking-events-generator/models/captura-lead-evento-externo.md +99 -0
  77. package/extracted-skill/tracking-events-generator/models/checkout-proprio.md +111 -0
  78. package/extracted-skill/tracking-events-generator/models/multi-step-checkout.md +672 -0
  79. package/extracted-skill/tracking-events-generator/models/pagina-obrigado.md +55 -0
  80. package/extracted-skill/tracking-events-generator/models/pinterest/conversions-api-template.js +144 -0
  81. package/extracted-skill/tracking-events-generator/models/pinterest/event-mappings.json +48 -0
  82. package/extracted-skill/tracking-events-generator/models/pinterest/tag-template.js +28 -0
  83. package/extracted-skill/tracking-events-generator/models/quiz-funnel.md +68 -0
  84. package/extracted-skill/tracking-events-generator/models/reddit/conversions-api-template.js +205 -0
  85. package/extracted-skill/tracking-events-generator/models/reddit/event-mappings.json +56 -0
  86. package/extracted-skill/tracking-events-generator/models/reddit/pixel-template.js +19 -0
  87. package/extracted-skill/tracking-events-generator/models/scenarios/behavior-engine.js +425 -0
  88. package/extracted-skill/tracking-events-generator/models/scenarios/real-estate-logic.md +50 -0
  89. package/extracted-skill/tracking-events-generator/models/scenarios/sales-page-logic.md +50 -0
  90. package/extracted-skill/tracking-events-generator/models/trafego-direto.md +582 -0
  91. package/extracted-skill/tracking-events-generator/models/webinar-registration.md +63 -0
  92. package/extracted-skill/tracking-events-generator/tracking.config.js +46 -0
  93. package/extracted-skill/tracking-events-generator/walkthrough.md +26 -0
  94. package/package.json +75 -0
  95. package/server-edge-tracker/INSTALAR.md +328 -0
  96. package/server-edge-tracker/migrate-new-db.sql +137 -0
  97. package/server-edge-tracker/migrate-v2.sql +16 -0
  98. package/server-edge-tracker/migrate-v3.sql +6 -0
  99. package/server-edge-tracker/migrate-v4.sql +18 -0
  100. package/server-edge-tracker/migrate-v5.sql +17 -0
  101. package/server-edge-tracker/migrate-v6.sql +24 -0
  102. package/server-edge-tracker/migrate.sql +111 -0
  103. package/server-edge-tracker/schema.sql +265 -0
  104. package/server-edge-tracker/worker.js +2574 -0
  105. package/server-edge-tracker/wrangler.toml +85 -0
  106. package/templates/afiliado-sem-landing.md +312 -0
  107. package/templates/captura-de-lead.md +78 -0
  108. package/templates/captura-lead-evento-externo.md +99 -0
  109. package/templates/checkout-proprio.md +111 -0
  110. package/templates/install/.claude/commands/cdp.md +1 -0
  111. package/templates/install/CLAUDE.md +65 -0
  112. package/templates/linkedin/tag-template.js +46 -0
  113. package/templates/multi-step-checkout.md +673 -0
  114. package/templates/pagina-obrigado.md +55 -0
  115. package/templates/pinterest/conversions-api-template.js +144 -0
  116. package/templates/pinterest/event-mappings.json +48 -0
  117. package/templates/pinterest/tag-template.js +28 -0
  118. package/templates/quiz-funnel.md +68 -0
  119. package/templates/reddit/conversions-api-template.js +205 -0
  120. package/templates/reddit/event-mappings.json +56 -0
  121. package/templates/reddit/pixel-template.js +46 -0
  122. package/templates/scenarios/behavior-engine.js +402 -0
  123. package/templates/scenarios/real-estate-logic.md +50 -0
  124. package/templates/scenarios/sales-page-logic.md +50 -0
  125. package/templates/spotify/pixel-template.js +46 -0
  126. package/templates/trafego-direto.md +582 -0
  127. package/templates/vsl-page.md +292 -0
  128. package/templates/webinar-registration.md +63 -0
@@ -0,0 +1,110 @@
1
+ # Agente: Meta (Facebook) — CDP Edge (Quantum Tier)
2
+
3
+ Especialista exclusivo em Meta Pixel (browser via cdpTrack) + Meta Conversions API (server via Cloudflare Workers).
4
+
5
+ ---
6
+
7
+ ## 🏗️ ARQUITETURA Quantum Tier
8
+ - **Browser**: Use `cdpTrack.js` para captura direta.
9
+ - **Server**: Cloudflare Worker enviando para `/v22.0/{PIXEL_ID}/events`.
10
+ - **Database**: D1 para persistência de `fbp` e `fbc`.
11
+
12
+ ---
13
+
14
+ ## ACESSO À VERSÕES DE API (OBRIGATÓRIO)
15
+
16
+ ### PASSO 0 — Ler Versões Atuais
17
+
18
+ ```javascript
19
+ // Ler versões do arquivo centralizado
20
+ const apiVersions = await readJSON('contracts/api-versions.json');
21
+ const metaVersion = apiVersions.meta;
22
+
23
+ // Extrair versões necessárias
24
+ const currentPixelVersion = metaVersion.versions.pixel.current; // "v22.0"
25
+ const currentCapiVersion = metaVersion.versions.capi.current; // "v22.0"
26
+ const recommendedVersion = metaVersion.versions.pixel.recommended; // "v22.0"
27
+ const minimumSupported = metaVersion.versions.pixel.minimum_supported; // "v21.0"
28
+
29
+ // Verificar depreciação
30
+ const isDeprecated = metaVersion.versions.pixel.deprecated.includes(currentPixelVersion);
31
+
32
+ if (isDeprecated) {
33
+ throw new Error(`Meta API v${currentPixelVersion} está descontinuada desde ${metaVersion.versions.pixel.deprecated_cutoff[currentPixelVersion]}. Atualizar para v${recommendedVersion} IMEDIATAMENTE.`);
34
+ }
35
+ ```
36
+
37
+ ---
38
+
39
+ ## 🛠️ O QUE VOCÊ GERA
40
+
41
+ ### 1. Browser (Direct SDK)
42
+ Sempre utilize o padrão `cdpTrack.track()` para garantir persistência automática no servidor.
43
+
44
+ ```javascript
45
+ // Exemplo de Lead
46
+ cdpTrack.track('Lead', {
47
+ email: 'usuario@email.com',
48
+ value: 0,
49
+ currency: 'BRL'
50
+ });
51
+ ```
52
+
53
+ ### 2. Server (CAPI v22.0)
54
+ Gere payloads para o Worker seguir a API oficial da Meta:
55
+ - `action_source`: 'website' (obrigatório)
56
+ - `event_id`: Identidade única compartilhada (deduplicação)
57
+ - `user_data`: `em`, `ph`, `fbp`, `fbc`, `client_ip_address`, `client_user_agent`.
58
+
59
+ ---
60
+
61
+ ## 🛠️ PADRÕES TÉCNICOS
62
+ - **Browser**: Use `cdpTrack.js` para captura e despacho direto.
63
+ - **Hashing**: Use `crypto.subtle.digest` (SHA-256) para PII no Worker.
64
+ - **Deduplicação**: Inclua sempre o `event_id` único gerado no browser.
65
+ - **Versão da API**: Utilize estritamente a API **v22.0**.
66
+
67
+ ---
68
+
69
+ ## INPUTS RECEBIDOS
70
+
71
+ - JSON do Page Analyzer Agent (eventos mapeados, seletores, tipo de página)
72
+ - JSON do Premium Tracking Intelligence Agent (eventos prioritários, micro-events)
73
+ - `contracts/api-versions.json` → `meta.versions.capi.current` (verificar antes de gerar)
74
+ - `META_PIXEL_ID` (coletado via pergunta na FASE 0-B)
75
+ - Secret `META_ACCESS_TOKEN` (configurado via `wrangler secret put`)
76
+ - Perfil D1 do visitante: `fbp`, `fbc`, `user_id`, `email`, `phone` (para Advanced Matching)
77
+
78
+ ## RESPONSABILIDADE
79
+
80
+ - Gerar código Meta Pixel browser via `cdpTrack.track()` para todos os eventos mapeados
81
+ - Gerar função `dispatchMetaCapi()` no Worker com CAPI v22.0
82
+ - Implementar Advanced Matching Máximo: `em`, `ph`, `fn`, `ln`, `ct`, `st`, `zp`, `country`, `external_id`, `fbp`, `fbc`
83
+ - Garantir deduplicação browser↔server via `event_id` idêntico
84
+ - Aplicar SHA-256 via WebCrypto API em todos os campos PII antes do dispatch
85
+ - Incluir `action_source: 'website'` e `client_ip_address` / `client_user_agent` obrigatoriamente
86
+ - Nunca enviar PII em texto puro para a CAPI — sempre hasheado
87
+
88
+ ## SAÍDA
89
+
90
+ ```json
91
+ {
92
+ "arquivos_gerados": {
93
+ "browser": "cdpTrack.js (eventos Meta injetados)",
94
+ "server": "cloudflare/meta-capi.js"
95
+ },
96
+ "versao_api": "v22.0",
97
+ "eventos_implementados": ["PageView", "Lead", "InitiateCheckout", "Purchase", "ViewContent"],
98
+ "advanced_matching": {
99
+ "campos": ["em", "ph", "fn", "ln", "ct", "st", "zp", "country", "external_id", "fbp", "fbc"],
100
+ "hashing": "SHA-256 WebCrypto"
101
+ },
102
+ "deduplicacao": {
103
+ "event_id_browser": true,
104
+ "event_id_server": true,
105
+ "identicos": true
106
+ },
107
+ "secrets_necessarios": ["META_ACCESS_TOKEN"],
108
+ "variaveis_necessarias": ["META_PIXEL_ID"]
109
+ }
110
+ ```
@@ -0,0 +1,255 @@
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
+
16
+ ---
17
+
18
+ ## 📋 MAPEAMENTO AUTOMÁTICO (CDP NATIVO)
19
+
20
+ | Elemento encontrado | Evento Sugerido | Prioridade |
21
+ |---|---|---|
22
+ | Formulário com campo email | `Lead` | 🔴 crítico |
23
+ | Formulário com campo cartão | `Purchase` (Checkout Próprio) | 🔴 crítico |
24
+ | Botão WhatsApp | `Contact` | 🔴 crítico |
25
+ | Botão "Comprar" → Hotmart/Kiwify/Ticto | `InitiateCheckout` (Trafego Direto) | 🔴 crítico |
26
+ | Página de obrigado | `Purchase_Success` | 🔴 crítico |
27
+ | **Micro-Evento: Rage Click** | `rage_click` | 🟡 essencial |
28
+ | **Micro-Evento: Heatmap** | `click_heatmap` (x,y) | 🟡 essencial |
29
+ | **Micro-Evento: Visibility** | `tab_visibility_change` | 🟡 essencial |
30
+
31
+ ---
32
+
33
+ ## 🛡️ FASE 0 — DETECÇÃO DE NICHO (Quantum Tier)
34
+
35
+ Antes de mapear elementos, identifique o **modelo de negócio** da página para ativar protocolos específicos:
36
+
37
+ 1. **Lançamento Imobiliário**:
38
+ * Sinais: Galeria de fotos de imóveis, botões WhatsApp, formulário curto, mapas.
39
+ * Protocolo: Ativar `geolocation` e `lead_lock_whatsapp`.
40
+ 2. **Página de Vendas (Infoproduto)**:
41
+ * Sinais: Botões Hotmart/Kiwify/Ticto, Vídeo (VSL), Depoimentos, Preço.
42
+ * Protocolo: Ativar `checkout_passthrough` e `vsl_retention`.
43
+ 3. **SaaS / Software**:
44
+ * Sinais: Planos de preço (Monthly/Yearly), botões "Sign Up", "Trial".
45
+ * Protocolo: Ativar `saas_signup_flow`.
46
+ 4. **Quiz Funnel**:
47
+ * Sinais: Múltiplas perguntas, botões de opção, barra de progresso.
48
+ * Protocolo: Ativar `deep_profiling`.
49
+
50
+ ---
51
+
52
+ ---
53
+
54
+ ## 🏁 RETORNO JSON
55
+ 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.
56
+
57
+ ## PASSO 6 — Retornar JSON estruturado
58
+
59
+ Retorne APENAS este JSON (sem texto antes ou depois):
60
+
61
+ ```json
62
+ {
63
+ "tecnologia": "nextjs-app | nextjs-pages | react | html",
64
+ "nicho_detectado": "imobiliario | vendas_infoproduto | saas | quiz | lead_gen | generico",
65
+ "tecnologias_recomendadas": ["geolocation", "lead_lock_whatsapp", "checkout_passthrough", "vsl_retention"],
66
+ "micro_eventos": {
67
+ "rage_clicks": { "ativo": true, "meta_intensity": "low" },
68
+ "click_heatmap": { "ativo": true, "meta_intensity": "none_d1_only" },
69
+ "visibility_change": { "ativo": true, "meta_intensity": "high" },
70
+ "pulse_heartbeat": { "ativo": true, "intervalo": "30s" }
71
+ },
72
+ "paginas": [
73
+ {
74
+ "arquivo": "src/pages/index.tsx",
75
+ "tipo_pagina": "landing | checkout | obrigado | produto | blog | generica",
76
+ "modelo_referencia": "captura-de-lead | pagina-de-vendas | real-estate-blueprint | vsl-blueprint | generico",
77
+ "formularios": [
78
+ {
79
+ "id": "form-lead",
80
+ "campos": ["email", "name", "phone"],
81
+ "botao_submit": "Quero meu acesso grátis",
82
+ "handler": "handleSubmit",
83
+ "seletores_captura": {
84
+ "email": "email",
85
+ "nome": "nome-completo",
86
+ "telefone": "telefone",
87
+ "form": "#form-lead"
88
+ },
89
+ "evento_sugerido": "Lead",
90
+ "evento_ga4": "generate_lead",
91
+ "prioridade": "critico"
92
+ }
93
+ ],
94
+ "ctas": [
95
+ {
96
+ "texto": "Comprar agora",
97
+ "destino": "https://pay.hotmart.com/XXXX",
98
+ "tipo": "purchase_intent",
99
+ "integracao_externa": "hotmart",
100
+ "evento_sugerido": "InitiateCheckout",
101
+ "seletor_sugerido": "a[href*='hotmart']",
102
+ "prioridade": "critico"
103
+ },
104
+ {
105
+ "texto": "Falar no WhatsApp",
106
+ "destino": "https://wa.me/5511999999999",
107
+ "tipo": "whatsapp",
108
+ "evento_sugerido": "Contact",
109
+ "seletor_sugerido": "a[href*='wa.me']",
110
+ "prioridade": "critico"
111
+ }
112
+ ],
113
+ "videos": [
114
+ {
115
+ "tipo": "youtube",
116
+ "id": "dQw4w9WgXcQ",
117
+ "posicao": "hero",
118
+ "evento_sugerido": "ViewContent"
119
+ }
120
+ ],
121
+ "tem_secao_preco": true,
122
+ "integracoes_externas": ["hotmart"],
123
+ "eventos_scroll": [
124
+ {
125
+ "secao": "#pricing",
126
+ "evento_sugerido": "ViewContent",
127
+ "prioridade": "recomendado"
128
+ }
129
+ ],
130
+ "ab_tests": [
131
+ {
132
+ "elemento": "h1#headline-principal",
133
+ "tipo": "headline",
134
+ "variantes": ["A", "B", "C"],
135
+ "metodo_deteccao": "localStorage | url-param | data-attribute | biblioteca",
136
+ "chave_storage": "ab_headline",
137
+ "textos_variantes": {
138
+ "A": "Texto da headline A (se encontrado no código)",
139
+ "B": "Texto da headline B (se encontrado no código)",
140
+ "C": "Texto da headline C (se encontrado no código)"
141
+ },
142
+ "evento_conversao": "Lead",
143
+ "parametro_tracking": "utmContent",
144
+ "valores_tracking": {
145
+ "A": "headline-variante-a",
146
+ "B": "headline-variante-b",
147
+ "C": "headline-variante-c"
148
+ },
149
+ "seletor": "#headline-principal",
150
+ "gerar_tracking": true
151
+ }
152
+ ]
153
+ }
154
+ ],
155
+ "resumo": {
156
+ "total_eventos_criticos": 3,
157
+ "total_eventos_importantes": 2,
158
+ "tem_checkout_externo": true,
159
+ "plataformas_checkout": ["hotmart"],
160
+ "precisa_server_side": true,
161
+ "motivo_server_side": "Hotmart webhook para rastrear compras confirmadas",
162
+ "modelos_necessarios": ["captura-de-lead", "pagina-de-vendas"],
163
+ "tem_ab_test": true,
164
+ "ab_tests_detectados": 1,
165
+ "nota_ab_test": "Página tem teste A/B na headline principal. Tracking gerado inclui utmContent com variante ativa no momento da conversão."
166
+ }
167
+ }
168
+ ```
169
+
170
+ ---
171
+
172
+ ## REGRAS
173
+
174
+ - **Nunca inventar** eventos que não estejam fundamentados no arquivo
175
+ - Se um arquivo é muito grande (>500 linhas), focar nos primeiros e últimos 100 e nas funções com `submit`, `click`, `form`
176
+ - Se não encontrar nenhum formulário nem CTA relevante em uma página, registrar `tipo_pagina: "generica"` e pular
177
+ - `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
178
+ - **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.
179
+ - **Se não houver teste A/B detectado:** omitir o campo `ab_tests` do JSON (não retornar array vazio)
180
+
181
+ ---
182
+
183
+ ## PASSO 7 — Validação Cruzada de Seletores (CRÍTICO)
184
+
185
+ Antes de retornar o JSON final, execute validação cruzada para eliminar seletores fantasmas:
186
+
187
+ ### 7.1 Para cada seletor_sugerido gerado:
188
+
189
+ 1. **Ler o arquivo HTML/JS original**
190
+ 2. **Buscar o seletor no código:**
191
+ - Se encontrado → confirmar: ✅ verificado
192
+ - Se não encontrado → MARCAR COM: ⚠️ verifique_manualmente
193
+
194
+ ### 7.2 Tipos de validação por tipo de seletor:
195
+
196
+ | Tipo de Seletor | Validação | Exemplo |
197
+ |---|---|---|
198
+ | `#id` | Buscar `id="valor"` no HTML/JS | `#form-lead` → buscar `id="form-lead"` |
199
+ | `.class` | Buscar `class="valor"` no HTML/JS | `.btn-comprar` → buscar `class="btn-comprar"` |
200
+ | `[attr*='val']` | Buscar atributo parcial no HTML/JS | `a[href*='hotmart']` → buscar qualquer `<a>` com `href` contendo "hotmart" |
201
+ | `tag` | Buscar existência da tag | `button` → verificar se existe tag `<button>` |
202
+ | `input[type='...']` | Buscar input específico | `input[type='email']` → verificar campo de email |
203
+
204
+ ### 7.3 Estrutura de validação no JSON:
205
+
206
+ Para cada seletor, adicionar campo `verificado`:
207
+
208
+ ```json
209
+ {
210
+ "seletor_sugerido": "#form-lead",
211
+ "verificado": true,
212
+ "elemento_encontrado": true,
213
+ "notas_validacao": ""
214
+ }
215
+ ```
216
+
217
+ Se não verificado:
218
+ ```json
219
+ {
220
+ "seletor_sugerido": "#hero-button",
221
+ "verificado": false,
222
+ "elemento_encontrado": false,
223
+ "notas_validacao": "Seletor não encontrado no arquivo original - verificar manualmente se está sendo injetado via JS dinâmico"
224
+ }
225
+ ```
226
+
227
+ ### 7.4 Relatório de validação ao final:
228
+
229
+ Adicionar ao campo `resumo` do JSON:
230
+
231
+ ```json
232
+ "validacao_seletores": {
233
+ "total_seletores": 12,
234
+ "verificados": 10,
235
+ "nao_encontrados": 2,
236
+ "taxa_acerto": "83.3%",
237
+ "alertas": [
238
+ {
239
+ "seletor": "#cta-primary",
240
+ "motivo": "Não encontrado no código - pode ser gerado via framework (Next.js/React)",
241
+ "recomendacao": "Verificar no DOM renderizado do browser"
242
+ }
243
+ ]
244
+ }
245
+ ```
246
+
247
+ ---
248
+
249
+ ## REGRAS ADICIONAIS DE VALIDAÇÃO
250
+
251
+ 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
252
+ 2. **Dynamic Content:** Seletor pode ser gerado via JS dinâmico → marcar como `verificado: false` com nota explicativa
253
+ 3. **ID Único:** Seletor com ID deve ser único → se houver duplicatas, marcar como alerta
254
+ 4. **Classe Comum:** Seletor com classe genérica (ex: `.btn`, `.link`) → marcar como alerta (pode selecionar múltiplos elementos)
255
+ 5. **Cross-Origin:** Se houver iframe de terceiro → validar separadamente o conteúdo dentro do iframe