cdp-edge 1.2.2 → 1.3.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 +244 -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 +5 -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 +313 -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 +749 -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
@@ -1,368 +1,372 @@
1
- {
2
- "metadata": {
3
- "version": "1.0.0",
4
- "created_at": "2026-03-28T14:00:00.000Z",
5
- "updated_at": "2026-03-28T14:00:00.000Z",
6
- "maintained_by": "Intelligence Agent (CDP Edge Quantum Tier)",
7
- "purpose": "Fonte única da verdade para versões de API em todo o ecossistema CDP Edge"
8
- },
9
-
10
- "meta": {
11
- "platform": "meta",
12
- "name": "Meta (Facebook)",
13
- "documentation": "https://developers.facebook.com/docs/marketing-api/conversions-api/",
14
- "changelog": "https://developers.facebook.com/docs/graph-changelog/",
15
-
16
- "versions": {
17
- "pixel": {
18
- "current": "v22.0",
19
- "minimum_supported": "v21.0",
20
- "recommended": "v22.0",
21
- "deprecated": ["v20.0", "v21.0"],
22
- "deprecated_cutoff": {
23
- "v20.0": "2024-01-01T00:00:00.000Z",
24
- "v21.0": "2024-06-01T00:00:00.000Z"
25
- }
26
- },
27
-
28
- "capi": {
29
- "current": "v22.0",
30
- "minimum_supported": "v21.0",
31
- "recommended": "v22.0",
32
- "endpoint_pattern": "https://graph.facebook.com/{VERSION}/{PIXEL_ID}/events",
33
- "authentication": "Bearer token (META_ACCESS_TOKEN)",
34
- "rate_limits": {
35
- "requests_per_hour": 200,
36
- "events_per_batch": 10,
37
- "batches_per_hour": 20
38
- }
39
- },
40
-
41
- "messenger": {
42
- "current": "v22.0",
43
- "minimum_supported": "v21.0",
44
- "recommended": "v22.0",
45
- "whatsapp_cloud_api": "v22.0"
46
- }
47
- }
48
- },
49
-
50
- "google": {
51
- "platform": "google",
52
- "name": "Google (GA4 + Google Ads)",
53
- "versions": {
54
- "ga4": {
55
- "current": "latest",
56
- "minimum_supported": "v2",
57
- "recommended": "latest",
58
- "endpoint_pattern": "https://www.google-analytics.com/mp/collect?measurement_id={MEASUREMENT_ID}&api_secret={SECRET}",
59
- "authentication": "API Secret (GA4_API_SECRET)"
60
- },
61
- "google_ads": {
62
- "current": "latest",
63
- "minimum_supported": "v2",
64
- "recommended": "latest",
65
- "uet_tag": "latest"
66
- },
67
- "consent_mode": {
68
- "current": "v2",
69
- "minimum_supported": "v2",
70
- "required_parameters": [
71
- "ad_storage",
72
- "analytics_storage",
73
- "ad_user_data",
74
- "ad_personalization"
75
- ],
76
- "default_values": {
77
- "ad_storage": "denied",
78
- "analytics_storage": "denied",
79
- "ad_user_data": "denied",
80
- "ad_personalization": "denied"
81
- },
82
- "flags": {
83
- "url_passthrough": true,
84
- "wait_for_update": 500
85
- }
86
- }
87
- }
88
- },
89
-
90
- "tiktok": {
91
- "platform": "tiktok",
92
- "name": "TikTok (Pixel + Events API)",
93
- "documentation": "https://ads.tiktok.com/marketing_api/docs?id=1740465605569281",
94
- "versions": {
95
- "pixel": {
96
- "current": "v1.3",
97
- "minimum_supported": "v1.2",
98
- "recommended": "v1.3",
99
- "deprecated": [
100
- "v1.2"
101
- ],
102
- "deprecated_cutoff": {
103
- "v1.2": "2024-03-01T00:00:00.000Z"
104
- },
105
- "endpoint_pattern": "https://analytics.tiktok.com/v1/pixel"
106
- },
107
- "events_api": {
108
- "current": "v1.3",
109
- "minimum_supported": "v1.2",
110
- "recommended": "v1.3",
111
- "endpoint_pattern": "https://business-api.tiktok.com/open_api/{VERSION}/event/track/",
112
- "authentication": "Bearer token (TIKTOK_ACCESS_TOKEN)",
113
- "rate_limits": {
114
- "requests_per_minute": 10,
115
- "events_per_batch": 5,
116
- "batches_per_minute": 2
117
- }
118
- }
119
- }
120
- },
121
-
122
- "pinterest": {
123
- "platform": "pinterest",
124
- "name": "Pinterest (Tag + Conversions API)",
125
- "documentation": "https://developers.pinterest.com/docs/conversions/",
126
- "versions": {
127
- "tag": {
128
- "current": "3.0",
129
- "minimum_supported": "2.0",
130
- "recommended": "3.0",
131
- "endpoint_pattern": "https://s.pinimg.com/ct/core.js",
132
- "enhanced_match": {
133
- "supports_email_hashing": true,
134
- "supports_phone_hashing": true,
135
- "auto_hash_by_pixel": true
136
- }
137
- },
138
- "conversions_api": {
139
- "current": "v5",
140
- "minimum_supported": "v4.0",
141
- "recommended": "v5",
142
- "deprecated": [
143
- "v4"
144
- ],
145
- "deprecated_cutoff": {
146
- "v4": "2024-01-01T00:00:00.000Z"
147
- },
148
- "endpoint_pattern": "https://api.pinterest.com/v5/ad_accounts/{AD_ACCOUNT_ID}/events",
149
- "authentication": "Bearer token (PINTEREST_ACCESS_TOKEN)",
150
- "rate_limits": {
151
- "requests_per_hour": 100,
152
- "events_per_batch": 10,
153
- "batches_per_hour": 10
154
- }
155
- }
156
- }
157
- },
158
-
159
- "reddit": {
160
- "platform": "reddit",
161
- "name": "Reddit (Pixel + Conversions API)",
162
- "documentation": "https://ads.reddit.com/help/article/reddit-pixel",
163
- "versions": {
164
- "pixel": {
165
- "current": "v2",
166
- "minimum_supported": "v1.0",
167
- "recommended": "v2",
168
- "endpoint_pattern": "https://www.redditstatic.com/ads/v2.js",
169
- "advanced_matching": {
170
- "supports_email_hashing": true,
171
- "auto_hash_by_pixel": true,
172
- "supports_external_id": true
173
- }
174
- },
175
- "conversions_api": {
176
- "current": "v2.0",
177
- "minimum_supported": "v1.0",
178
- "recommended": "v2.0",
179
- "deprecated": [
180
- "v1.0"
181
- ],
182
- "deprecated_cutoff": {
183
- "v1.0": "2024-06-01T00:00:00.000Z"
184
- },
185
- "endpoint_pattern": "https://ads-api.reddit.com/api/{VERSION}/conversions/events/{AD_ACCOUNT_ID}",
186
- "authentication": "Bearer token (REDDIT_ACCESS_TOKEN)",
187
- "rate_limits": {
188
- "requests_per_minute": 5,
189
- "events_per_batch": 10,
190
- "batches_per_minute": 1
191
- }
192
- }
193
- }
194
- },
195
-
196
- "linkedin": {
197
- "platform": "linkedin",
198
- "name": "LinkedIn (Insight Tag + Conversions API)",
199
- "documentation": "https://learn.microsoft.com/en-us/linkedin/marketing/conversions-api/",
200
- "versions": {
201
- "insight_tag": {
202
- "current": "v2",
203
- "minimum_supported": "v1",
204
- "recommended": "v2",
205
- "endpoint_pattern": "https://snap.licdn.com/li.lms-analytics/insight.beta.min.js",
206
- "consent_mode_required": true,
207
- "data_attributes": [
208
- "conversion_id",
209
- "text",
210
- "currency",
211
- "value"
212
- ]
213
- },
214
- "conversions_api": {
215
- "current": "v2",
216
- "minimum_supported": "v1",
217
- "recommended": "v2",
218
- "endpoint_pattern": "https://api.linkedin.com/rest/attributionConversions/{VERSION}",
219
- "authentication": "Bearer token (LINKEDIN_ACCESS_TOKEN)",
220
- "rate_limits": {
221
- "requests_per_second": 10,
222
- "events_per_batch": 100
223
- }
224
- }
225
- }
226
- },
227
-
228
- "bing": {
229
- "platform": "bing",
230
- "name": "Microsoft Advertising (UET Tag + Clarity)",
231
- "documentation": "https://learn.microsoft.com/en-us/advertising/guides/event-tracking",
232
- "versions": {
233
- "uet_tag": {
234
- "current": "latest",
235
- "minimum_supported": "v1",
236
- "recommended": "latest",
237
- "endpoint_pattern": "https://bat.bing.com/bat.js",
238
- "enhanced_conversions": {
239
- "supports_email_hashing": true,
240
- "supports_phone_hashing": true,
241
- "requires_sha256": true
242
- }
243
- },
244
- "clarity": {
245
- "current": "latest",
246
- "minimum_supported": "v1",
247
- "recommended": "latest",
248
- "endpoint_pattern": "https://clarity.ms/tag/s/{CLARITY_PROJECT_ID}/clarity.js"
249
- }
250
- }
251
- },
252
-
253
- "youtube": {
254
- "platform": "youtube",
255
- "name": "YouTube Ads (Video Campaigns)",
256
- "documentation": "https://developers.google.com/youtube/v3/guides/auth/server-side-web-apps",
257
- "versions": {
258
- "video_campaigns": {
259
- "current": "latest",
260
- "minimum_supported": "v1",
261
- "recommended": "latest",
262
- "campaign_types": ["TrueView In-Stream", "Bumper Ads", "Non-skip In-Stream", "Video Discovery"],
263
- "click_ids": ["gclid", "wbraid", "gbraid"],
264
- "conversion_window_vtc_days": 7
265
- },
266
- "iframe_api": {
267
- "current": "latest",
268
- "endpoint_pattern": "https://www.youtube.com/embed/{VIDEO_ID}?enablejsapi=1",
269
- "events": ["video_start", "video_progress", "video_complete"],
270
- "milestones_percent": [25, 50, 75, 100]
271
- },
272
- "customer_match": {
273
- "current": "latest",
274
- "hash_required": true,
275
- "hash_algorithm": "SHA-256",
276
- "accepted_fields": ["email", "phone", "first_name", "last_name"]
277
- }
278
- }
279
- },
280
-
281
- "spotify": {
282
- "platform": "spotify",
283
- "name": "Spotify Ads (Pixel + Conversions API)",
284
- "documentation": "https://advertising-api.spotify.com/docs/",
285
- "versions": {
286
- "pixel": {
287
- "current": "v1",
288
- "minimum_supported": "v1",
289
- "recommended": "v1",
290
- "endpoint_pattern": "Spotify Pixel SDK (custom)"
291
- },
292
- "conversions_api": {
293
- "current": "v1",
294
- "minimum_supported": "v1",
295
- "recommended": "v1",
296
- "endpoint_pattern": "https://advertising-api.spotify.com/conversion/v1/accounts/{ACCOUNT_ID}/events",
297
- "authentication": "Bearer token (SPOTIFY_ACCESS_TOKEN)",
298
- "rate_limits": {
299
- "requests_per_minute": 30,
300
- "events_per_batch": 10
301
- }
302
- }
303
- }
304
- },
305
-
306
- "validation_rules": {
307
- "deprecation_policy": "APIs marcadas como deprecated devem ser atualizadas IMEDIATAMENTE",
308
- "minimum_version_policy": "Versões abaixo do minimum_supported NÃO são suportadas",
309
- "recommended_version_policy": "Usar sempre a recommended version para máxima compatibilidade",
310
- "endpoint_validation": "Endpoints devem seguir exatamente o padrão especificado",
311
- "authentication_validation": "Tokens devem ser obtidos via wrangler secret (NUNCA hardcoded)",
312
- "rate_limit_policy": "Respeitar rate_limits para evitar bloqueios"
313
- },
314
-
315
- "migration_guidelines": {
316
- "meta_v20_to_v22": {
317
- "breaking_changes": [],
318
- "new_parameters": [],
319
- "deprecated_parameters": [],
320
- "migration_steps": [
321
- "Atualizar endpoint de /v20.0/ para /v22.0/",
322
- "Verificar novos parâmetros obrigatórios",
323
- "Testar em ambiente de sandbox"
324
- ]
325
- },
326
-
327
- "tiktok_v1.2_to_v1.3": {
328
- "breaking_changes": [],
329
- "new_parameters": [],
330
- "deprecated_parameters": [],
331
- "migration_steps": [
332
- "Atualizar endpoint de /v1.2/ para /v1.3/",
333
- "Verificar compatibilidade de event names",
334
- "Atualizar rate limits"
335
- ]
336
- },
337
-
338
- "pinterest_v4_to_v5": {
339
- "breaking_changes": ["ad_account_id agora obrigatório na URL"],
340
- "new_parameters": ["external_data", "action_source"],
341
- "deprecated_parameters": [],
342
- "migration_steps": [
343
- "Adicionar ad_account_id ao endpoint",
344
- "Atualizar estrutura de payload",
345
- "Verificar novos campos obrigatórios"
346
- ]
347
- },
348
-
349
- "reddit_v1.0_to_v2.0": {
350
- "breaking_changes": ["URL mudou de /api/v1.0/ para /api/v2.0/"],
351
- "new_parameters": ["conversion_type", "ip_address", "user_agent"],
352
- "deprecated_parameters": [],
353
- "migration_steps": [
354
- "Atualizar todos os endpoints para v2.0",
355
- "Adicionar novos campos de user data",
356
- "Verificar compatibilidade de event names"
357
- ]
358
- }
359
- },
360
-
361
- "last_updated_by": {
362
- "agent": "Intelligence Agent",
363
- "session_id": "CDP_2026-03-27_implementation",
364
- "timestamp": "2026-03-27T00:00:00.000Z"
365
- },
366
-
367
- "next_review_date": "2026-04-27T00:00:00.000Z"
368
- }
1
+ {
2
+ "metadata": {
3
+ "version": "1.1.0",
4
+ "created_at": "2026-03-28T14:00:00.000Z",
5
+ "updated_at": "2026-04-14T00:00:00.000Z",
6
+ "maintained_by": "Intelligence Agent (CDP Edge Quantum Tier)",
7
+ "purpose": "Fonte única da verdade para versões de API em todo o ecossistema CDP Edge"
8
+ },
9
+
10
+ "meta": {
11
+ "platform": "meta",
12
+ "name": "Meta (Facebook)",
13
+ "documentation": "https://developers.facebook.com/docs/marketing-api/conversions-api/",
14
+ "changelog": "https://developers.facebook.com/docs/graph-changelog/",
15
+
16
+ "versions": {
17
+ "pixel": {
18
+ "current": "v22.0",
19
+ "minimum_supported": "v21.0",
20
+ "recommended": "v22.0",
21
+ "deprecated": ["v20.0", "v21.0"],
22
+ "deprecated_cutoff": {
23
+ "v20.0": "2024-01-01T00:00:00.000Z",
24
+ "v21.0": "2024-06-01T00:00:00.000Z"
25
+ }
26
+ },
27
+
28
+ "capi": {
29
+ "current": "v22.0",
30
+ "minimum_supported": "v21.0",
31
+ "recommended": "v22.0",
32
+ "endpoint_pattern": "https://graph.facebook.com/{VERSION}/{PIXEL_ID}/events",
33
+ "authentication": "Bearer token (META_ACCESS_TOKEN)",
34
+ "rate_limits": {
35
+ "requests_per_hour": 200,
36
+ "events_per_batch": 10,
37
+ "batches_per_hour": 20
38
+ }
39
+ },
40
+
41
+ "messenger": {
42
+ "current": "v22.0",
43
+ "minimum_supported": "v21.0",
44
+ "recommended": "v22.0",
45
+ "whatsapp_cloud_api": "v22.0"
46
+ }
47
+ }
48
+ },
49
+
50
+ "google": {
51
+ "platform": "google",
52
+ "name": "Google (GA4 + Google Ads)",
53
+ "versions": {
54
+ "ga4": {
55
+ "current": "latest",
56
+ "minimum_supported": "v2",
57
+ "recommended": "latest",
58
+ "endpoint_pattern": "https://www.google-analytics.com/mp/collect?measurement_id={MEASUREMENT_ID}&api_secret={SECRET}",
59
+ "authentication": "API Secret (GA4_API_SECRET)"
60
+ },
61
+ "google_ads": {
62
+ "current": "latest",
63
+ "minimum_supported": "v2",
64
+ "recommended": "latest",
65
+ "uet_tag": "latest"
66
+ },
67
+ "consent_mode": {
68
+ "current": "v2",
69
+ "minimum_supported": "v2",
70
+ "required_parameters": [
71
+ "ad_storage",
72
+ "analytics_storage",
73
+ "ad_user_data",
74
+ "ad_personalization"
75
+ ],
76
+ "default_values": {
77
+ "ad_storage": "denied",
78
+ "analytics_storage": "denied",
79
+ "ad_user_data": "denied",
80
+ "ad_personalization": "denied"
81
+ },
82
+ "flags": {
83
+ "url_passthrough": true,
84
+ "wait_for_update": 500
85
+ }
86
+ }
87
+ }
88
+ },
89
+
90
+ "tiktok": {
91
+ "platform": "tiktok",
92
+ "name": "TikTok (Pixel + Events API)",
93
+ "documentation": "https://ads.tiktok.com/marketing_api/docs?id=1740465605569281",
94
+ "versions": {
95
+ "pixel": {
96
+ "current": "v1.3",
97
+ "minimum_supported": "v1.2",
98
+ "recommended": "v1.3",
99
+ "deprecated": [
100
+ "v1.2"
101
+ ],
102
+ "deprecated_cutoff": {
103
+ "v1.2": "2024-03-01T00:00:00.000Z"
104
+ },
105
+ "endpoint_pattern": "https://analytics.tiktok.com/v1/pixel"
106
+ },
107
+ "events_api": {
108
+ "current": "v1.3",
109
+ "minimum_supported": "v1.2",
110
+ "recommended": "v1.3",
111
+ "endpoint_pattern": "https://business-api.tiktok.com/open_api/{VERSION}/event/track/",
112
+ "authentication": "Bearer token (TIKTOK_ACCESS_TOKEN)",
113
+ "rate_limits": {
114
+ "requests_per_minute": 10,
115
+ "events_per_batch": 5,
116
+ "batches_per_minute": 2
117
+ }
118
+ }
119
+ }
120
+ },
121
+
122
+ "pinterest": {
123
+ "platform": "pinterest",
124
+ "name": "Pinterest (Tag + Conversions API)",
125
+ "documentation": "https://developers.pinterest.com/docs/conversions/",
126
+ "versions": {
127
+ "tag": {
128
+ "current": "3.0",
129
+ "minimum_supported": "2.0",
130
+ "recommended": "3.0",
131
+ "endpoint_pattern": "https://s.pinimg.com/ct/core.js",
132
+ "enhanced_match": {
133
+ "supports_email_hashing": true,
134
+ "supports_phone_hashing": true,
135
+ "auto_hash_by_pixel": true
136
+ }
137
+ },
138
+ "conversions_api": {
139
+ "current": "v5",
140
+ "minimum_supported": "v4.0",
141
+ "recommended": "v5",
142
+ "deprecated": [
143
+ "v4"
144
+ ],
145
+ "deprecated_cutoff": {
146
+ "v4": "2024-01-01T00:00:00.000Z"
147
+ },
148
+ "endpoint_pattern": "https://api.pinterest.com/v5/ad_accounts/{AD_ACCOUNT_ID}/events",
149
+ "authentication": "Bearer token (PINTEREST_ACCESS_TOKEN)",
150
+ "rate_limits": {
151
+ "requests_per_hour": 100,
152
+ "events_per_batch": 10,
153
+ "batches_per_hour": 10
154
+ }
155
+ }
156
+ }
157
+ },
158
+
159
+ "reddit": {
160
+ "platform": "reddit",
161
+ "name": "Reddit (Pixel + Conversions API)",
162
+ "documentation": "https://ads.reddit.com/help/article/reddit-pixel",
163
+ "versions": {
164
+ "pixel": {
165
+ "current": "v2",
166
+ "minimum_supported": "v1.0",
167
+ "recommended": "v2",
168
+ "endpoint_pattern": "https://www.redditstatic.com/ads/v2.js",
169
+ "advanced_matching": {
170
+ "supports_email_hashing": true,
171
+ "auto_hash_by_pixel": true,
172
+ "supports_external_id": true
173
+ }
174
+ },
175
+ "conversions_api": {
176
+ "current": "v2.0",
177
+ "minimum_supported": "v1.0",
178
+ "recommended": "v2.0",
179
+ "deprecated": [
180
+ "v1.0"
181
+ ],
182
+ "deprecated_cutoff": {
183
+ "v1.0": "2024-06-01T00:00:00.000Z"
184
+ },
185
+ "endpoint_pattern": "https://ads-api.reddit.com/api/{VERSION}/conversions/events/{AD_ACCOUNT_ID}",
186
+ "authentication": "Bearer token (REDDIT_ACCESS_TOKEN)",
187
+ "rate_limits": {
188
+ "requests_per_minute": 5,
189
+ "events_per_batch": 10,
190
+ "batches_per_minute": 1
191
+ }
192
+ }
193
+ }
194
+ },
195
+
196
+ "linkedin": {
197
+ "platform": "linkedin",
198
+ "name": "LinkedIn (Insight Tag + Conversions API)",
199
+ "documentation": "https://learn.microsoft.com/en-us/linkedin/marketing/conversions-api/",
200
+ "versions": {
201
+ "insight_tag": {
202
+ "current": "v2",
203
+ "minimum_supported": "v1",
204
+ "recommended": "v2",
205
+ "endpoint_pattern": "https://snap.licdn.com/li.lms-analytics/insight.beta.min.js",
206
+ "consent_mode_required": true,
207
+ "data_attributes": [
208
+ "conversion_id",
209
+ "text",
210
+ "currency",
211
+ "value"
212
+ ]
213
+ },
214
+ "conversions_api": {
215
+ "current": "202401",
216
+ "minimum_supported": "202401",
217
+ "recommended": "202401",
218
+ "endpoint_pattern": "https://api.linkedin.com/rest/conversionEvents",
219
+ "required_headers": {
220
+ "LinkedIn-Version": "202401",
221
+ "X-Restli-Protocol-Version": "2.0.0"
222
+ },
223
+ "authentication": "Bearer token (LINKEDIN_ACCESS_TOKEN)",
224
+ "rate_limits": {
225
+ "requests_per_second": 10,
226
+ "events_per_batch": 100
227
+ }
228
+ }
229
+ }
230
+ },
231
+
232
+ "bing": {
233
+ "platform": "bing",
234
+ "name": "Microsoft Advertising (UET Tag + Clarity)",
235
+ "documentation": "https://learn.microsoft.com/en-us/advertising/guides/event-tracking",
236
+ "versions": {
237
+ "uet_tag": {
238
+ "current": "latest",
239
+ "minimum_supported": "v1",
240
+ "recommended": "latest",
241
+ "endpoint_pattern": "https://bat.bing.com/bat.js",
242
+ "enhanced_conversions": {
243
+ "supports_email_hashing": true,
244
+ "supports_phone_hashing": true,
245
+ "requires_sha256": true
246
+ }
247
+ },
248
+ "clarity": {
249
+ "current": "latest",
250
+ "minimum_supported": "v1",
251
+ "recommended": "latest",
252
+ "endpoint_pattern": "https://clarity.ms/tag/s/{CLARITY_PROJECT_ID}/clarity.js"
253
+ }
254
+ }
255
+ },
256
+
257
+ "youtube": {
258
+ "platform": "youtube",
259
+ "name": "YouTube Ads (Video Campaigns)",
260
+ "documentation": "https://developers.google.com/youtube/v3/guides/auth/server-side-web-apps",
261
+ "versions": {
262
+ "video_campaigns": {
263
+ "current": "latest",
264
+ "minimum_supported": "v1",
265
+ "recommended": "latest",
266
+ "campaign_types": ["TrueView In-Stream", "Bumper Ads", "Non-skip In-Stream", "Video Discovery"],
267
+ "click_ids": ["gclid", "wbraid", "gbraid"],
268
+ "conversion_window_vtc_days": 7
269
+ },
270
+ "iframe_api": {
271
+ "current": "latest",
272
+ "endpoint_pattern": "https://www.youtube.com/embed/{VIDEO_ID}?enablejsapi=1",
273
+ "events": ["video_start", "video_progress", "video_complete"],
274
+ "milestones_percent": [25, 50, 75, 100]
275
+ },
276
+ "customer_match": {
277
+ "current": "latest",
278
+ "hash_required": true,
279
+ "hash_algorithm": "SHA-256",
280
+ "accepted_fields": ["email", "phone", "first_name", "last_name"]
281
+ }
282
+ }
283
+ },
284
+
285
+ "spotify": {
286
+ "platform": "spotify",
287
+ "name": "Spotify Ads (Pixel + Conversions API)",
288
+ "documentation": "https://advertising-api.spotify.com/docs/",
289
+ "versions": {
290
+ "pixel": {
291
+ "current": "v1",
292
+ "minimum_supported": "v1",
293
+ "recommended": "v1",
294
+ "endpoint_pattern": "Spotify Pixel SDK (custom)"
295
+ },
296
+ "conversions_api": {
297
+ "current": "v1",
298
+ "minimum_supported": "v1",
299
+ "recommended": "v1",
300
+ "endpoint_pattern": "https://advertising-api.spotify.com/conversion/v1/accounts/{ACCOUNT_ID}/events",
301
+ "authentication": "Bearer token (SPOTIFY_ACCESS_TOKEN)",
302
+ "rate_limits": {
303
+ "requests_per_minute": 30,
304
+ "events_per_batch": 10
305
+ }
306
+ }
307
+ }
308
+ },
309
+
310
+ "validation_rules": {
311
+ "deprecation_policy": "APIs marcadas como deprecated devem ser atualizadas IMEDIATAMENTE",
312
+ "minimum_version_policy": "Versões abaixo do minimum_supported NÃO são suportadas",
313
+ "recommended_version_policy": "Usar sempre a recommended version para máxima compatibilidade",
314
+ "endpoint_validation": "Endpoints devem seguir exatamente o padrão especificado",
315
+ "authentication_validation": "Tokens devem ser obtidos via wrangler secret (NUNCA hardcoded)",
316
+ "rate_limit_policy": "Respeitar rate_limits para evitar bloqueios"
317
+ },
318
+
319
+ "migration_guidelines": {
320
+ "meta_v20_to_v22": {
321
+ "breaking_changes": [],
322
+ "new_parameters": [],
323
+ "deprecated_parameters": [],
324
+ "migration_steps": [
325
+ "Atualizar endpoint de /v20.0/ para /v22.0/",
326
+ "Verificar novos parâmetros obrigatórios",
327
+ "Testar em ambiente de sandbox"
328
+ ]
329
+ },
330
+
331
+ "tiktok_v1.2_to_v1.3": {
332
+ "breaking_changes": [],
333
+ "new_parameters": [],
334
+ "deprecated_parameters": [],
335
+ "migration_steps": [
336
+ "Atualizar endpoint de /v1.2/ para /v1.3/",
337
+ "Verificar compatibilidade de event names",
338
+ "Atualizar rate limits"
339
+ ]
340
+ },
341
+
342
+ "pinterest_v4_to_v5": {
343
+ "breaking_changes": ["ad_account_id agora obrigatório na URL"],
344
+ "new_parameters": ["external_data", "action_source"],
345
+ "deprecated_parameters": [],
346
+ "migration_steps": [
347
+ "Adicionar ad_account_id ao endpoint",
348
+ "Atualizar estrutura de payload",
349
+ "Verificar novos campos obrigatórios"
350
+ ]
351
+ },
352
+
353
+ "reddit_v1.0_to_v2.0": {
354
+ "breaking_changes": ["URL mudou de /api/v1.0/ para /api/v2.0/"],
355
+ "new_parameters": ["conversion_type", "ip_address", "user_agent"],
356
+ "deprecated_parameters": [],
357
+ "migration_steps": [
358
+ "Atualizar todos os endpoints para v2.0",
359
+ "Adicionar novos campos de user data",
360
+ "Verificar compatibilidade de event names"
361
+ ]
362
+ }
363
+ },
364
+
365
+ "last_updated_by": {
366
+ "agent": "Intelligence Agent — CDP Edge v2.3.8",
367
+ "session_id": "CDP_2026-04-14_release",
368
+ "timestamp": "2026-04-14T00:00:00.000Z"
369
+ },
370
+
371
+ "next_review_date": "2026-05-14T00:00:00.000Z"
372
+ }