cdp-edge 2.3.8 → 2.5.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.
Files changed (29) hide show
  1. package/README.md +304 -639
  2. package/bin/cdp-edge.js +3 -2
  3. package/dist/commands/validate.js +248 -84
  4. package/dist/sdk/cdpTrack.js +2095 -0
  5. package/dist/sdk/cdpTrack.min.js +64 -0
  6. package/dist/sdk/install-snippet.html +10 -0
  7. package/extracted-skill/tracking-events-generator/agents/devops-agent.md +22 -0
  8. package/extracted-skill/tracking-events-generator/agents/intelligence-agent.md +53 -0
  9. package/extracted-skill/tracking-events-generator/agents/lead-scoring-agent.md +282 -0
  10. package/extracted-skill/tracking-events-generator/agents/master-orchestrator.md +60 -6
  11. package/extracted-skill/tracking-events-generator/agents/match-quality-agent.md +304 -0
  12. package/extracted-skill/tracking-events-generator/agents/utm-agent.md +285 -154
  13. package/extracted-skill/tracking-events-generator/anti-blocking.js +1 -1
  14. package/extracted-skill/tracking-events-generator/cdpTrack.js +10 -18
  15. package/extracted-skill/tracking-events-generator/engagement-scoring.js +2 -2
  16. package/extracted-skill/tracking-events-generator/micro-events.js +1 -1
  17. package/extracted-skill/tracking-events-generator/models/quiz-funnel.md +83 -19
  18. package/extracted-skill/tracking-events-generator/tracking.config.js +3 -3
  19. package/package.json +5 -1
  20. package/scripts/build-sdk.js +106 -0
  21. package/server-edge-tracker/index.ts +174 -6
  22. package/server-edge-tracker/modules/intelligence.ts +155 -2
  23. package/server-edge-tracker/modules/ml/quiz.ts +343 -0
  24. package/server-edge-tracker/modules/ml/roas.ts +255 -0
  25. package/server-edge-tracker/modules/nurture.ts +257 -0
  26. package/server-edge-tracker/modules/utils.ts +2 -0
  27. package/server-edge-tracker/schema-quiz.sql +52 -0
  28. package/server-edge-tracker/schema-sales-engine.sql +113 -0
  29. package/templates/quiz-funnel.md +83 -19
@@ -1,15 +1,15 @@
1
1
  # Modelo: Quiz Funnel (Cloudflare Native)
2
2
 
3
- Este modelo é destinado a funis de quiz, onde o usuário responde a uma série de perguntas antes de ser redirecionado para a oferta final. O rastreamento foca na progressão do usuário e na captura de dados intermediários.
3
+ Este modelo é destinado a funis de quiz, onde o usuário responde a uma série de perguntas antes de ser redirecionado para a oferta final. O rastreamento foca na progressão do usuário e na **qualificação automática de intenção via Workers AI**.
4
4
 
5
5
  ---
6
6
 
7
7
  ## 🏗️ ARQUITETURA TÉCNICA (Quantum Tier)
8
8
 
9
- O rastreamento segue a lógica de micro-eventos:
9
+ O rastreamento segue a lógica de micro-eventos + scoring automático:
10
10
  1. **Página**: Dispara um evento a cada resposta dada no quiz via `cdpTrack.track()`.
11
- 2. **Servidor (Worker)**: Recebe e armazena o progresso no banco D1.
12
- 3. **Database (D1)**: Mantém o histórico de respostas vinculado ao `track_user_id`.
11
+ 2. **Servidor (Worker)**: Ao receber `QuizComplete`, envia as respostas ao **Quiz Scoring Engine** (Granite 4.0 Micro) que classifica o respondente.
12
+ 3. **Pipeline CDP**: A qualificação (`comprador | interessado | curioso | perdido`) é injetada como `intentionLevel` e flui automaticamente para LTV Prediction, Meta Signal Score, D1 e CAPI dispatch.
13
13
 
14
14
  ---
15
15
 
@@ -19,50 +19,114 @@ O rastreamento segue a lógica de micro-eventos:
19
19
  |---|---|---|
20
20
  | **QuizStart** | Início do quiz | `quiz_name`, `source` |
21
21
  | **QuizAnswer** | Resposta a uma pergunta | `question`, `answer`, `step` |
22
- | **QuizComplete** | Finalização do quiz | `result`, `completion_time` |
22
+ | **QuizComplete** | Finalização + qualificação AI | `quiz_name`, `quiz_answers[]`, `result` |
23
+
24
+ ---
25
+
26
+ ## 🤖 QUALIFICAÇÃO AUTOMÁTICA (Quiz Scoring Engine — Fase 6)
27
+
28
+ Ao receber `QuizComplete` com `quiz_answers`, o Worker classifica automaticamente:
29
+
30
+ | Qualificação | Significado | intent_score |
31
+ |---|---|---|
32
+ | **comprador** | Pronto para comprar agora | 0.80–1.00 |
33
+ | **interessado** | Interesse real, avaliando | 0.50–0.79 |
34
+ | **curioso** | Pesquisando, sem urgência | 0.20–0.49 |
35
+ | **perdido** | Fora do público, sem fit | 0.00–0.19 |
36
+
37
+ O `intent_score` resultante:
38
+ - Alimenta o **LTV Prediction** (comprador → LTV High automaticamente)
39
+ - Compõe o **Meta Signal Score** (pesos dinâmicos por funil)
40
+ - Persiste em `leads.intention_level` e `quiz_sessions` no D1
41
+ - É enviado como `custom_data` para Meta CAPI, GA4 e TikTok
23
42
 
24
43
  ---
25
44
 
26
45
  ## 🛠️ PASSO 1: CONFIGURAÇÃO DO SITE
27
46
 
28
47
  ### 1.1 Rastreamento de Respostas
29
- Integre este código na lógica de clique do seu quiz.
48
+ Acumule as respostas do quiz em um array local.
30
49
 
31
50
  ```javascript
32
- // Exemplo de captura de resposta
51
+ const quizAnswers = [];
52
+
33
53
  function onResponder(pergunta, resposta, etapa) {
54
+ // Armazena localmente para enviar no QuizComplete
55
+ quizAnswers.push({ question: pergunta, answer: resposta, step: etapa });
56
+
57
+ // Dispara micro-evento por resposta (opcional, para análise granular)
34
58
  cdpTrack.track('QuizAnswer', {
35
59
  question: pergunta,
36
60
  answer: resposta,
37
61
  step: etapa,
38
- event_id: cdpTrack.generateId()
62
+ event_id: cdpTrack.generateId(),
39
63
  });
40
64
  }
41
65
  ```
42
66
 
43
- ### 1.2 Finalização do Quiz
44
- Disparar ao chegar no resultado final ou na página de captura pós-quiz.
67
+ ### 1.2 Finalização do Quiz — com qualificação AI automática
68
+ Envie todas as respostas no `QuizComplete`. O Worker qualifica automaticamente.
45
69
 
46
70
  ```javascript
47
71
  cdpTrack.track('QuizComplete', {
48
- result: 'Perfil_A',
49
- event_id: cdpTrack.generateId()
72
+ quiz_name: 'Diagnóstico de Perfil', // nome para o dashboard
73
+ quiz_answers: quizAnswers, // array com todas as respostas
74
+ result: 'Perfil_A', // resultado exibido ao usuário (opcional)
75
+ event_id: cdpTrack.generateId(),
50
76
  });
51
77
  ```
52
78
 
79
+ ### 1.3 Resposta do Worker
80
+ O endpoint `/track` retorna a qualificação para uso imediato no front:
81
+
82
+ ```json
83
+ {
84
+ "ok": true,
85
+ "userProfile": {
86
+ "score": 87,
87
+ "user_id": "uuid-xxx"
88
+ },
89
+ "quiz_qualification": "comprador",
90
+ "quiz_confidence": 0.91,
91
+ "quiz_signals": ["quero comprar", "tenho budget", "agora"],
92
+ "intent_score": 0.92,
93
+ "intent_bucket": "high"
94
+ }
95
+ ```
96
+
97
+ Use esses campos para personalizar o redirecionamento pós-quiz no front-end.
98
+
53
99
  ---
54
100
 
55
101
  ## ⚡ PASSO 2: SERVIDOR (CLOUDFLARE WORKER)
56
102
 
57
- O Worker realiza:
58
- - **Agregação**: O `user_id` permite que todas as respostas sejam vinculadas a um único perfil no banco D1.
59
- - **Enriquecimento**: Se o usuário deixar o e-mail no final, todas as respostas anteriores são associadas ao e-mail para a CAPI.
60
- - **API Dispatch**: Envio de eventos customizados para Meta e TikTok para otimização de público.
103
+ O Worker realiza automaticamente na ordem:
104
+
105
+ 1. **Quiz Scoring Engine**: Granite 4.0 Micro classifica as respostas `qualification` + `intent_score`
106
+ 2. **LTV Prediction**: usa `intentionLevel = 'comprador'` LTV High valor previsto em BRL
107
+ 3. **Meta Signal Score**: `intent_score` compõe o score composto (intent × ltv × distância)
108
+ 4. **D1 Writes**: `quiz_sessions` + `leads.intention_level` + `user_profiles.cohort_label`
109
+ 5. **CAPI Dispatch**: Meta/GA4/TikTok recebem evento com `custom_data.intention = 'comprador'`
110
+
111
+ ---
112
+
113
+ ## 🔀 FALLBACK HEURÍSTICO
114
+
115
+ Se Workers AI estiver indisponível (timeout, cold start), o sistema usa correspondência de palavras-chave:
116
+
117
+ - `comprador`: "quero", "comprar", "agora", "tenho interesse", "quanto custa"
118
+ - `interessado`: "talvez", "pensando", "em breve", "estou avaliando"
119
+ - `curioso`: "só olhando", "pesquisando", "curiosidade"
120
+ - `perdido`: "não entendi", "errei aqui", "não é para mim"
121
+
122
+ O campo `quiz_source` indica `"ai"` ou `"heuristic"` para auditoria.
61
123
 
62
124
  ---
63
125
 
64
126
  ## ✅ VALIDAÇÃO TÉCNICA
65
127
 
66
- - **Persistência**: Verifique no banco D1 se a jornada do usuário está sendo gravada passo a passo.
67
- - **Deduplicação**: O `event_id` único por resposta evita contagens duplicadas.
68
- - **Match Quality**: A vinculação tardia do e-mail com as respostas iniciais aumenta a precisão da atribuição.
128
+ - **Persistência**: `quiz_sessions` no D1 jornada completa por `user_id`
129
+ - **Deduplicação**: `event_id` único por evento evita contagens duplicadas
130
+ - **Enriquecimento retroativo**: e-mail preenchido pós-quiz associa todas as respostas ao perfil
131
+ - **Match Quality**: `comprador` com e-mail → score máximo na CAPI Meta
132
+ - **VIEW de dashboard**: `v_quiz_qualification_summary` — distribuição de qualificações por quiz