@beworke/pixel 0.1.0-rc.1 → 0.1.0-rc.10

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 (189) hide show
  1. package/CHANGELOG.md +303 -4
  2. package/README.md +90 -128
  3. package/RELEASE_CANDIDATE.md +218 -101
  4. package/dist/Pixel-BnN86r4X.d.ts +797 -0
  5. package/dist/Pixel-BoUGqCbP.d.mts +797 -0
  6. package/dist/{StorageFactory-CAkJJqVD.d.ts → StorageFactory-BfCArzMM.d.ts} +2 -2
  7. package/dist/{StorageFactory-BhpbB6Jj.d.mts → StorageFactory-C0prtNR7.d.mts} +2 -2
  8. package/dist/browser/index.cjs.js +3 -0
  9. package/dist/browser/index.cjs.js.map +1 -0
  10. package/dist/browser/index.d.mts +71 -0
  11. package/dist/browser/index.d.ts +71 -0
  12. package/dist/browser/index.esm.js +3 -0
  13. package/dist/browser/index.esm.js.map +1 -0
  14. package/dist/browser/pixel.buygoods-checkout.global.js +4 -0
  15. package/dist/browser/pixel.buygoods-checkout.global.js.map +1 -0
  16. package/dist/browser/pixel.buygoods-landing.global.js +4 -0
  17. package/dist/browser/pixel.buygoods-landing.global.js.map +1 -0
  18. package/dist/browser/pixel.global.js +4 -0
  19. package/dist/browser/pixel.global.js.map +1 -0
  20. package/dist/config/index.cjs.js +1 -1
  21. package/dist/config/index.cjs.js.map +1 -1
  22. package/dist/config/index.d.mts +16 -5
  23. package/dist/config/index.d.ts +16 -5
  24. package/dist/config/index.esm.js +1 -1
  25. package/dist/config/index.esm.js.map +1 -1
  26. package/dist/events/index.cjs.js +1 -1
  27. package/dist/events/index.cjs.js.map +1 -1
  28. package/dist/events/index.d.mts +2 -1
  29. package/dist/events/index.d.ts +2 -1
  30. package/dist/events/index.esm.js +1 -1
  31. package/dist/events/index.esm.js.map +1 -1
  32. package/dist/examples/html-script/README.md +21 -55
  33. package/dist/examples/html-script/RELEASE_CANDIDATE.md +39 -26
  34. package/dist/examples/html-script/add-payment-info/README.md +3 -3
  35. package/dist/examples/html-script/add-payment-info/example-add-payment-info-card-autocomplete.html +107 -96
  36. package/dist/examples/html-script/add-payment-info/example-add-payment-info-card-disabled.html +107 -96
  37. package/dist/examples/html-script/add-payment-info/example-add-payment-info-card-fields.html +106 -95
  38. package/dist/examples/html-script/add-payment-info/example-add-payment-info-data-track.html +114 -95
  39. package/dist/examples/html-script/add-payment-info/example-add-payment-info-dedupe.html +106 -95
  40. package/dist/examples/html-script/add-payment-info/example-add-payment-info-manual.html +97 -95
  41. package/dist/examples/html-script/add-payment-info/example-add-payment-info-rules-card.html +106 -95
  42. package/dist/examples/html-script/add-payment-info/example-add-payment-info-security.html +106 -95
  43. package/dist/examples/html-script/add-to-cart/README.md +9 -6
  44. package/dist/examples/html-script/add-to-cart/example-add-to-cart-attribute.html +133 -119
  45. package/dist/examples/html-script/add-to-cart/example-add-to-cart-auto.html +146 -130
  46. package/dist/examples/html-script/add-to-cart/example-add-to-cart-click.html +144 -127
  47. package/dist/examples/html-script/add-to-cart/example-add-to-cart-dedupe.html +133 -119
  48. package/dist/examples/html-script/add-to-cart/example-add-to-cart-link.html +590 -0
  49. package/dist/examples/html-script/add-to-cart/example-add-to-cart-manual.html +124 -116
  50. package/dist/examples/html-script/add-to-cart/example-add-to-cart-order-bump.html +133 -119
  51. package/dist/examples/html-script/add-to-cart/example-add-to-cart-text.html +147 -130
  52. package/dist/examples/html-script/behavior/example-behavior-engagement.html +489 -0
  53. package/dist/examples/html-script/behavior/example-behavior-heartbeat.html +350 -0
  54. package/dist/examples/html-script/behavior/example-behavior-runtime-intelligence.html +433 -0
  55. package/dist/examples/html-script/behavior/example-behavior-viewport.html +397 -0
  56. package/dist/examples/html-script/{example-behavior.html → behavior/example-behavior.html} +23 -17
  57. package/dist/examples/html-script/buygoods/example-buygoods-checkout.html +50 -0
  58. package/dist/examples/html-script/buygoods/ladding.html +184 -0
  59. package/dist/examples/html-script/example-basic.html +1 -1
  60. package/dist/examples/html-script/example-checkout-commerce.html +826 -0
  61. package/dist/examples/html-script/example-conversion.html +42 -49
  62. package/dist/examples/html-script/example-global-factory-classic.html +45 -0
  63. package/dist/examples/html-script/example-global-factory.html +40 -0
  64. package/dist/examples/html-script/example-integration.html +45 -51
  65. package/dist/examples/html-script/example-landing-commerce.html +416 -0
  66. package/dist/examples/html-script/example-runtime-diagnostics.html +108 -0
  67. package/dist/examples/html-script/example-transport.html +70 -63
  68. package/dist/examples/html-script/full-funnel/README.md +64 -0
  69. package/dist/examples/html-script/full-funnel/checkout.html +118 -0
  70. package/dist/examples/html-script/full-funnel/downsell.html +60 -0
  71. package/dist/examples/html-script/full-funnel/landing.html +153 -0
  72. package/dist/examples/html-script/full-funnel/thank-you.html +87 -0
  73. package/dist/examples/html-script/full-funnel/upsell.html +66 -0
  74. package/dist/examples/html-script/initiate-checkout/README.md +6 -6
  75. package/dist/examples/html-script/initiate-checkout/example-initiate-checkout-attribute.html +135 -122
  76. package/dist/examples/html-script/initiate-checkout/example-initiate-checkout-auto.html +143 -128
  77. package/dist/examples/html-script/initiate-checkout/example-initiate-checkout-click.html +144 -128
  78. package/dist/examples/html-script/initiate-checkout/example-initiate-checkout-manual.html +127 -120
  79. package/dist/examples/html-script/initiate-checkout/example-initiate-checkout-snapshot.html +136 -123
  80. package/dist/examples/html-script/initiate-checkout/example-initiate-checkout-submit.html +144 -131
  81. package/dist/examples/html-script/initiate-checkout/example-initiate-checkout-text.html +146 -130
  82. package/dist/examples/html-script/internal-checkout/example-cardioclear-checkout.html +103 -0
  83. package/dist/examples/html-script/internal-checkout/example-slimsoda-checkout.html +103 -0
  84. package/dist/examples/html-script/lead/README.md +9 -7
  85. package/dist/examples/html-script/lead/example-lead-trigger-attribute.html +107 -94
  86. package/dist/examples/html-script/lead/example-lead-trigger-auto.html +118 -103
  87. package/dist/examples/html-script/lead/example-lead-trigger-click.html +118 -102
  88. package/dist/examples/html-script/release-candidate.html +219 -107
  89. package/dist/examples/html-script/remove-from-cart/README.md +4 -4
  90. package/dist/examples/html-script/remove-from-cart/example-remove-from-cart-attribute.html +134 -121
  91. package/dist/examples/html-script/remove-from-cart/example-remove-from-cart-css.html +134 -121
  92. package/dist/examples/html-script/remove-from-cart/example-remove-from-cart-dedupe.html +141 -128
  93. package/dist/examples/html-script/remove-from-cart/example-remove-from-cart-manual.html +125 -118
  94. package/dist/examples/html-script/remove-from-cart/example-remove-from-cart-multi.html +135 -122
  95. package/dist/examples/html-script/remove-from-cart/example-remove-from-cart-state.html +136 -123
  96. package/dist/examples/html-script/remove-from-cart/example-remove-from-cart-text.html +139 -124
  97. package/dist/examples/html-script/search/README.md +1 -1
  98. package/dist/examples/html-script/search/example-search-attribute.html +107 -99
  99. package/dist/examples/html-script/search/example-search-button-sync.html +107 -99
  100. package/dist/examples/html-script/search/example-search-dedupe.html +107 -99
  101. package/dist/examples/html-script/search/example-search-input.html +108 -99
  102. package/dist/examples/html-script/search/example-search-manual.html +98 -96
  103. package/dist/examples/html-script/search/example-search-submit.html +107 -99
  104. package/dist/examples/html-script/search/example-search-text.html +112 -99
  105. package/dist/examples/html-script/url-context/example-url-context-allowed-domains.html +92 -0
  106. package/dist/examples/html-script/url-context/example-url-context-landing.html +110 -0
  107. package/dist/examples/html-script/url-context/example-url-context-upsell.html +105 -0
  108. package/dist/examples/html-script/url-context/example-url-context.html +205 -0
  109. package/dist/examples/html-script/view-content/README.md +1 -1
  110. package/dist/examples/html-script/view-content/example-view-content-attribute.html +126 -118
  111. package/dist/examples/html-script/view-content/example-view-content-css.html +126 -118
  112. package/dist/examples/html-script/view-content/example-view-content-dedupe.html +126 -118
  113. package/dist/examples/html-script/view-content/example-view-content-empty.html +126 -118
  114. package/dist/examples/html-script/view-content/example-view-content-manual.html +117 -115
  115. package/dist/examples/html-script/view-content/example-view-content-product-card.html +126 -118
  116. package/dist/examples/html-script/view-content/example-view-content-text.html +131 -121
  117. package/dist/examples/release-candidate/README.md +2 -1
  118. package/dist/examples/v2/README.md +16 -13
  119. package/dist/index-B8u_3PGG.d.ts +460 -0
  120. package/dist/index-BxT2d-TK.d.mts +460 -0
  121. package/dist/index.cjs.js +1 -1
  122. package/dist/index.cjs.js.map +1 -1
  123. package/dist/index.d.mts +23 -361
  124. package/dist/index.d.ts +23 -361
  125. package/dist/index.esm.js +1 -1
  126. package/dist/index.esm.js.map +1 -1
  127. package/dist/pixel-DNGbAN5C.d.ts +871 -0
  128. package/dist/pixel-_BSDpx4M.d.mts +871 -0
  129. package/dist/pixel-default-config-BMYaqs7i.d.ts +21 -0
  130. package/dist/pixel-default-config-DLRya1tl.d.mts +21 -0
  131. package/dist/pixel-settings-D-t9zQb4.d.ts +40 -0
  132. package/dist/pixel-settings-DGxl0MVm.d.mts +40 -0
  133. package/dist/runtime/index.cjs.js +1 -1
  134. package/dist/runtime/index.cjs.js.map +1 -1
  135. package/dist/runtime/index.d.mts +19 -26
  136. package/dist/runtime/index.d.ts +19 -26
  137. package/dist/runtime/index.esm.js +1 -1
  138. package/dist/runtime/index.esm.js.map +1 -1
  139. package/dist/services/index.cjs.js +1 -1
  140. package/dist/services/index.cjs.js.map +1 -1
  141. package/dist/services/index.d.mts +14 -6
  142. package/dist/services/index.d.ts +14 -6
  143. package/dist/services/index.esm.js +1 -1
  144. package/dist/services/index.esm.js.map +1 -1
  145. package/dist/types-B-Nzagpk.d.mts +19 -0
  146. package/dist/types-D0KVsgzs.d.mts +293 -0
  147. package/dist/types-D3kJ9bfT.d.ts +293 -0
  148. package/dist/types-Dfi9C49l.d.ts +19 -0
  149. package/dist/url-context-Ck2LK18V.d.mts +87 -0
  150. package/dist/url-context-Ck2LK18V.d.ts +87 -0
  151. package/dist/v2/global.global.js +1 -1
  152. package/dist/v2/global.global.js.map +1 -1
  153. package/dist/v2/index.cjs.js +1 -1
  154. package/dist/v2/index.cjs.js.map +1 -1
  155. package/dist/v2/index.d.mts +26 -6
  156. package/dist/v2/index.d.ts +26 -6
  157. package/dist/v2/index.esm.js +1 -1
  158. package/dist/v2/index.esm.js.map +1 -1
  159. package/docs/public/README.md +80 -0
  160. package/docs/public/api/exports.md +55 -0
  161. package/docs/public/api/pixel.md +86 -0
  162. package/docs/public/configuration/commerce.md +44 -0
  163. package/docs/public/configuration/modules.md +63 -0
  164. package/docs/public/configuration/overview.md +85 -0
  165. package/docs/public/configuration/transport.md +127 -0
  166. package/docs/public/events/catalog.md +67 -0
  167. package/docs/public/getting-started/installation.md +87 -0
  168. package/docs/public/getting-started/quick-start.md +142 -0
  169. package/docs/public/getting-started/react-nextjs.md +78 -0
  170. package/docs/public/getting-started/script-tag.md +94 -0
  171. package/docs/public/guides/funnel-checkout.md +52 -0
  172. package/docs/public/guides/funnel-downsell.md +53 -0
  173. package/docs/public/guides/funnel-full.md +64 -0
  174. package/docs/public/guides/funnel-landing.md +70 -0
  175. package/docs/public/guides/funnel-thank-you.md +48 -0
  176. package/docs/public/guides/funnel-upsell.md +72 -0
  177. package/docs/public/limitations.md +33 -0
  178. package/docs/public/privacy/limitations.md +33 -0
  179. package/docs/public/release-candidate/validation.md +42 -0
  180. package/docs/public/troubleshooting.md +56 -0
  181. package/package.json +38 -20
  182. package/dist/index-DUfFzniE.d.mts +0 -274
  183. package/dist/index-DUfFzniE.d.ts +0 -274
  184. package/dist/pixel-CbeF25mD.d.mts +0 -555
  185. package/dist/pixel-CbeF25mD.d.ts +0 -555
  186. package/dist/pixel-default-config-1VgLFOiL.d.mts +0 -5
  187. package/dist/pixel-default-config-Bxb-Vdd8.d.ts +0 -5
  188. package/dist/types-CTpRvFKZ.d.ts +0 -71
  189. package/dist/types-DGlBdsAy.d.mts +0 -71
@@ -177,7 +177,7 @@ code { font-size: 0.85em; }
177
177
  </div>
178
178
  </div>
179
179
 
180
- <script src="../../../dist/v2/global.global.js"></script>
180
+ <script src="../../../v2/global.global.js"></script>
181
181
  <script>
182
182
  const { Pixel, DEFAULT_PIXEL_CONFIG } = window.PixelV2;
183
183
  const API_ENDPOINT =
@@ -203,10 +203,19 @@ code { font-size: 0.85em; }
203
203
 
204
204
  function viewContentDetectorConfig() {
205
205
  return {
206
- enabled: true,
207
- selector: ['[data-track="view_content"]'],
208
- selectorType: 'css',
209
- };
206
+ enabled: true,
207
+ sources: [
208
+ {
209
+ name: 'viewContent-selector',
210
+ type: 'selector',
211
+ selector: [
212
+ '[data-track=\'view_content\']'
213
+ ],
214
+ selectorType: 'css',
215
+ trigger: 'click'
216
+ }
217
+ ]
218
+ };
210
219
  }
211
220
 
212
221
  function buildConfig() {
@@ -220,11 +229,106 @@ code { font-size: 0.85em; }
220
229
  debug: true,
221
230
  },
222
231
  transport: {
223
- ...DEFAULT_PIXEL_CONFIG.transport,
224
- apiEndpoint: API_ENDPOINT,
225
- timeoutMs: 10000,
232
+ ...base.transport,
233
+ enabled: true,
234
+ sender: { mode: 'internal', baseUrl: API_ENDPOINT },
235
+ persistence: { enabled: true },
236
+ replay: { enabled: true },
237
+ ordering: { enabled: true },
238
+ coordination: { enabled: true },
239
+ circuitBreaker: {
240
+ enabled: true,
241
+ failureThreshold: 5,
242
+ resetTimeoutMs: 30000,
243
+ halfOpenMaxAttempts: 2,
244
+ },
245
+ backpressure: {
246
+ enabled: true,
247
+ maxQueueSize: 500,
248
+ policy: 'drop_oldest',
249
+ sampleRate: 0.5,
250
+ },
251
+ deadLetter: { enabled: true, maxEntries: 200 },
252
+ compression: { enabled: true, strategy: 'identity' },
253
+ retry: {
254
+ enabled: true,
255
+ maxAttempts: 4,
256
+ baseDelayMs: 500,
257
+ maxDelayMs: 4000,
258
+ multiplier: 2,
259
+ },
260
+ batch: {
261
+ enabled: true,
262
+ batchSize: 10,
263
+ maxWaitMs: 5000,
264
+ },
265
+ timeout: { enabled: true, timeoutMs: 10000 },
266
+ offline: { enabled: true },
267
+ flush: {
268
+ enabled: true,
269
+ flushOnDestroy: true,
270
+ prepareUnloadHooks: true,
271
+ },
226
272
  },
227
273
  identity: { ...base.identity, pixelId: PIXEL_ID },
274
+ commerce: {
275
+ enabled: true,
276
+ currency: 'BRL',
277
+ catalog: {
278
+ products: [
279
+ {
280
+ id: 'main_offer',
281
+ name: 'Oferta Principal',
282
+ type: 'main',
283
+ price: 197,
284
+ currency: 'BRL',
285
+ quantity: 1,
286
+ },
287
+ {
288
+ id: 'sku_shoes_01',
289
+ name: 'Tênis Runner',
290
+ type: 'main',
291
+ price: 299,
292
+ currency: 'BRL',
293
+ quantity: 1,
294
+ },
295
+ ],
296
+ },
297
+ cart: {
298
+ mode: 'single_product',
299
+ initialItems: [],
300
+ calculateValueFrom: 'cart',
301
+ allowDynamicItems: true,
302
+ },
303
+ mappings: {
304
+ attributes: {
305
+ productId: ['data-product-id', 'data-sku', 'data-content-id', 'data-offer-id'],
306
+ productName: ['data-product-name', 'data-name'],
307
+ price: ['data-product-price', 'data-price', 'data-value'],
308
+ quantity: ['data-quantity', 'data-qty'],
309
+ currency: ['data-currency'],
310
+ },
311
+ fields: {
312
+ productId: ['productId', 'contentId', 'sku'],
313
+ productName: ['productName', 'name'],
314
+ price: ['price', 'value'],
315
+ quantity: ['quantity'],
316
+ currency: ['currency'],
317
+ email: ['email'],
318
+ phone: ['phone'],
319
+ },
320
+ },
321
+ enrichment: {
322
+ pageView: { enabled: false, source: 'cart' },
323
+ viewContent: { enabled: true, source: 'event_or_cart' },
324
+ lead: { enabled: false, source: 'event_or_cart' },
325
+ addToCart: { enabled: true, source: 'event_or_cart' },
326
+ removeFromCart: { enabled: true, source: 'event_or_cart' },
327
+ initiateCheckout: { enabled: true, source: 'cart' },
328
+ addPaymentInfo: { enabled: true, source: 'cart' },
329
+ purchase: { enabled: true, source: 'cart' },
330
+ }
331
+ },
228
332
  modules: {
229
333
  ...base.modules,
230
334
  core: {
@@ -239,126 +343,30 @@ code { font-size: 0.85em; }
239
343
  },
240
344
  behavior: { ...base.modules.behavior, enabled: false },
241
345
  privacy: { ...base.modules.privacy, enabled: false },
242
- transport: {
243
- enabled: true,
244
- mockSender: { enabled: false },
245
- sender: { mode: 'http' },
246
- persistence: { enabled: true },
247
- replay: { enabled: true },
248
- ordering: { enabled: true },
249
- coordination: { enabled: true },
250
- circuitBreaker: {
251
- enabled: true,
252
- failureThreshold: 5,
253
- resetTimeoutMs: 30000,
254
- halfOpenMaxAttempts: 2,
255
- },
256
- backpressure: {
257
- enabled: true,
258
- maxQueueSize: 500,
259
- policy: 'drop_oldest',
260
- sampleRate: 0.5,
261
- },
262
- deadLetter: { enabled: true, maxEntries: 200 },
263
- compression: { enabled: true, strategy: 'identity' },
264
- retry: {
265
- enabled: true,
266
- maxAttempts: 4,
267
- baseDelayMs: 500,
268
- maxDelayMs: 4000,
269
- multiplier: 2,
270
- },
271
- batch: {
272
- enabled: true,
273
- batchSize: 10,
274
- flushIntervalMs: 2000,
275
- maxWaitMs: 5000,
276
- },
277
- timeout: { enabled: true, timeoutMs: 10000 },
278
- offline: { enabled: true },
279
- flush: {
280
- enabled: true,
281
- flushIntervalMs: 2000,
282
- flushOnDestroy: true,
283
- prepareUnloadHooks: true,
284
- },
285
- },
286
346
  integrations: { ...base.modules.integrations, enabled: false },
287
347
  conversion: {
288
348
  enabled: true,
289
- commerce: {
290
- currency: 'BRL',
291
- catalog: {
292
- products: [
293
- {
294
- id: 'main_offer',
295
- name: 'Oferta Principal',
296
- type: 'main',
297
- price: 197,
298
- currency: 'BRL',
299
- quantity: 1,
300
- },
301
- {
302
- id: 'sku_shoes_01',
303
- name: 'Tênis Runner',
304
- type: 'main',
305
- price: 299,
306
- currency: 'BRL',
307
- quantity: 1,
308
- },
309
- ],
310
- },
311
- checkout: {
312
- mode: 'single_product',
313
- selectedItems: [],
314
- calculateValueFrom: 'selected_items',
315
- allowDynamicItems: true,
316
- },
317
- mappings: {
318
- attributes: {
319
- productId: ['data-product-id', 'data-sku', 'data-content-id', 'data-offer-id'],
320
- productName: ['data-product-name', 'data-name'],
321
- price: ['data-product-price', 'data-price', 'data-value'],
322
- quantity: ['data-quantity', 'data-qty'],
323
- currency: ['data-currency'],
324
- },
325
- fields: {
326
- productId: ['productId', 'contentId', 'sku'],
327
- productName: ['productName', 'name'],
328
- price: ['price', 'value'],
329
- quantity: ['quantity'],
330
- currency: ['currency'],
331
- email: ['email'],
332
- phone: ['phone'],
333
- },
334
- },
335
- },
336
349
  manual: {
337
350
  pageView: { enabled: false },
338
- purchase: { enabled: false },
339
- lead: { enabled: false },
340
- addToCart: { enabled: false },
341
- removeFromCart: { enabled: false },
342
- initiateCheckout: { enabled: false },
343
- addPaymentInfo: { enabled: false },
344
- search: { enabled: false },
351
+ purchase: { enabled: false, sources: [] },
352
+ lead: { enabled: false, sources: [] },
353
+ addToCart: { enabled: false, sources: [] },
354
+ removeFromCart: { enabled: false, sources: [] },
355
+ initiateCheckout: { enabled: false, sources: [] },
356
+ addPaymentInfo: { enabled: false, sources: [] },
357
+ search: { enabled: false, sources: [] },
345
358
  viewContent: { enabled: true },
346
359
  },
347
360
  auto: {
348
361
  enabled: true,
349
362
  detectors: {
350
- lead: { enabled: false },
351
- purchase: { enabled: false },
352
- addToCart: { enabled: false },
353
- removeFromCart: { enabled: false },
354
- initiateCheckout: { enabled: false },
355
- addPaymentInfo: {
356
- enabled: false,
357
- paymentMethod: 'CREDIT_CARD',
358
- cardDetection: false,
359
- autoDispatch: false,
360
- },
361
- search: { enabled: false },
363
+ lead: { enabled: false, sources: [] },
364
+ purchase: { enabled: false, sources: [] },
365
+ addToCart: { enabled: false, sources: [] },
366
+ removeFromCart: { enabled: false, sources: [] },
367
+ initiateCheckout: { enabled: false, sources: [] },
368
+ addPaymentInfo: { enabled: false, sources: [] },
369
+ search: { enabled: false, sources: [] },
362
370
  viewContent: viewContentDetectorConfig(),
363
371
  },
364
372
  },
@@ -156,7 +156,7 @@ code { font-size: 0.85em; }
156
156
  </div>
157
157
  </div>
158
158
 
159
- <script src="../../../dist/v2/global.global.js"></script>
159
+ <script src="../../../v2/global.global.js"></script>
160
160
  <script>
161
161
  const { Pixel, DEFAULT_PIXEL_CONFIG } = window.PixelV2;
162
162
  const API_ENDPOINT =
@@ -182,10 +182,19 @@ code { font-size: 0.85em; }
182
182
 
183
183
  function viewContentDetectorConfig() {
184
184
  return {
185
- enabled: true,
186
- selector: ['.view-content'],
187
- selectorType: 'css',
188
- };
185
+ enabled: true,
186
+ sources: [
187
+ {
188
+ name: 'viewContent-selector',
189
+ type: 'selector',
190
+ selector: [
191
+ '.view-content'
192
+ ],
193
+ selectorType: 'css',
194
+ trigger: 'click'
195
+ }
196
+ ]
197
+ };
189
198
  }
190
199
 
191
200
  function buildConfig() {
@@ -199,11 +208,106 @@ code { font-size: 0.85em; }
199
208
  debug: true,
200
209
  },
201
210
  transport: {
202
- ...DEFAULT_PIXEL_CONFIG.transport,
203
- apiEndpoint: API_ENDPOINT,
204
- timeoutMs: 10000,
211
+ ...base.transport,
212
+ enabled: true,
213
+ sender: { mode: 'internal', baseUrl: API_ENDPOINT },
214
+ persistence: { enabled: true },
215
+ replay: { enabled: true },
216
+ ordering: { enabled: true },
217
+ coordination: { enabled: true },
218
+ circuitBreaker: {
219
+ enabled: true,
220
+ failureThreshold: 5,
221
+ resetTimeoutMs: 30000,
222
+ halfOpenMaxAttempts: 2,
223
+ },
224
+ backpressure: {
225
+ enabled: true,
226
+ maxQueueSize: 500,
227
+ policy: 'drop_oldest',
228
+ sampleRate: 0.5,
229
+ },
230
+ deadLetter: { enabled: true, maxEntries: 200 },
231
+ compression: { enabled: true, strategy: 'identity' },
232
+ retry: {
233
+ enabled: true,
234
+ maxAttempts: 4,
235
+ baseDelayMs: 500,
236
+ maxDelayMs: 4000,
237
+ multiplier: 2,
238
+ },
239
+ batch: {
240
+ enabled: true,
241
+ batchSize: 10,
242
+ maxWaitMs: 5000,
243
+ },
244
+ timeout: { enabled: true, timeoutMs: 10000 },
245
+ offline: { enabled: true },
246
+ flush: {
247
+ enabled: true,
248
+ flushOnDestroy: true,
249
+ prepareUnloadHooks: true,
250
+ },
205
251
  },
206
252
  identity: { ...base.identity, pixelId: PIXEL_ID },
253
+ commerce: {
254
+ enabled: true,
255
+ currency: 'BRL',
256
+ catalog: {
257
+ products: [
258
+ {
259
+ id: 'main_offer',
260
+ name: 'Oferta Principal',
261
+ type: 'main',
262
+ price: 197,
263
+ currency: 'BRL',
264
+ quantity: 1,
265
+ },
266
+ {
267
+ id: 'sku_shoes_01',
268
+ name: 'Tênis Runner',
269
+ type: 'main',
270
+ price: 299,
271
+ currency: 'BRL',
272
+ quantity: 1,
273
+ },
274
+ ],
275
+ },
276
+ cart: {
277
+ mode: 'single_product',
278
+ initialItems: [],
279
+ calculateValueFrom: 'cart',
280
+ allowDynamicItems: true,
281
+ },
282
+ mappings: {
283
+ attributes: {
284
+ productId: ['data-product-id', 'data-sku', 'data-content-id', 'data-offer-id'],
285
+ productName: ['data-product-name', 'data-name'],
286
+ price: ['data-product-price', 'data-price', 'data-value'],
287
+ quantity: ['data-quantity', 'data-qty'],
288
+ currency: ['data-currency'],
289
+ },
290
+ fields: {
291
+ productId: ['productId', 'contentId', 'sku'],
292
+ productName: ['productName', 'name'],
293
+ price: ['price', 'value'],
294
+ quantity: ['quantity'],
295
+ currency: ['currency'],
296
+ email: ['email'],
297
+ phone: ['phone'],
298
+ },
299
+ },
300
+ enrichment: {
301
+ pageView: { enabled: false, source: 'cart' },
302
+ viewContent: { enabled: true, source: 'event_or_cart' },
303
+ lead: { enabled: false, source: 'event_or_cart' },
304
+ addToCart: { enabled: true, source: 'event_or_cart' },
305
+ removeFromCart: { enabled: true, source: 'event_or_cart' },
306
+ initiateCheckout: { enabled: true, source: 'cart' },
307
+ addPaymentInfo: { enabled: true, source: 'cart' },
308
+ purchase: { enabled: true, source: 'cart' },
309
+ }
310
+ },
207
311
  modules: {
208
312
  ...base.modules,
209
313
  core: {
@@ -218,126 +322,30 @@ code { font-size: 0.85em; }
218
322
  },
219
323
  behavior: { ...base.modules.behavior, enabled: false },
220
324
  privacy: { ...base.modules.privacy, enabled: false },
221
- transport: {
222
- enabled: true,
223
- mockSender: { enabled: false },
224
- sender: { mode: 'http' },
225
- persistence: { enabled: true },
226
- replay: { enabled: true },
227
- ordering: { enabled: true },
228
- coordination: { enabled: true },
229
- circuitBreaker: {
230
- enabled: true,
231
- failureThreshold: 5,
232
- resetTimeoutMs: 30000,
233
- halfOpenMaxAttempts: 2,
234
- },
235
- backpressure: {
236
- enabled: true,
237
- maxQueueSize: 500,
238
- policy: 'drop_oldest',
239
- sampleRate: 0.5,
240
- },
241
- deadLetter: { enabled: true, maxEntries: 200 },
242
- compression: { enabled: true, strategy: 'identity' },
243
- retry: {
244
- enabled: true,
245
- maxAttempts: 4,
246
- baseDelayMs: 500,
247
- maxDelayMs: 4000,
248
- multiplier: 2,
249
- },
250
- batch: {
251
- enabled: true,
252
- batchSize: 10,
253
- flushIntervalMs: 2000,
254
- maxWaitMs: 5000,
255
- },
256
- timeout: { enabled: true, timeoutMs: 10000 },
257
- offline: { enabled: true },
258
- flush: {
259
- enabled: true,
260
- flushIntervalMs: 2000,
261
- flushOnDestroy: true,
262
- prepareUnloadHooks: true,
263
- },
264
- },
265
325
  integrations: { ...base.modules.integrations, enabled: false },
266
326
  conversion: {
267
327
  enabled: true,
268
- commerce: {
269
- currency: 'BRL',
270
- catalog: {
271
- products: [
272
- {
273
- id: 'main_offer',
274
- name: 'Oferta Principal',
275
- type: 'main',
276
- price: 197,
277
- currency: 'BRL',
278
- quantity: 1,
279
- },
280
- {
281
- id: 'sku_shoes_01',
282
- name: 'Tênis Runner',
283
- type: 'main',
284
- price: 299,
285
- currency: 'BRL',
286
- quantity: 1,
287
- },
288
- ],
289
- },
290
- checkout: {
291
- mode: 'single_product',
292
- selectedItems: [],
293
- calculateValueFrom: 'selected_items',
294
- allowDynamicItems: true,
295
- },
296
- mappings: {
297
- attributes: {
298
- productId: ['data-product-id', 'data-sku', 'data-content-id', 'data-offer-id'],
299
- productName: ['data-product-name', 'data-name'],
300
- price: ['data-product-price', 'data-price', 'data-value'],
301
- quantity: ['data-quantity', 'data-qty'],
302
- currency: ['data-currency'],
303
- },
304
- fields: {
305
- productId: ['productId', 'contentId', 'sku'],
306
- productName: ['productName', 'name'],
307
- price: ['price', 'value'],
308
- quantity: ['quantity'],
309
- currency: ['currency'],
310
- email: ['email'],
311
- phone: ['phone'],
312
- },
313
- },
314
- },
315
328
  manual: {
316
329
  pageView: { enabled: false },
317
- purchase: { enabled: false },
318
- lead: { enabled: false },
319
- addToCart: { enabled: false },
320
- removeFromCart: { enabled: false },
321
- initiateCheckout: { enabled: false },
322
- addPaymentInfo: { enabled: false },
323
- search: { enabled: false },
330
+ purchase: { enabled: false, sources: [] },
331
+ lead: { enabled: false, sources: [] },
332
+ addToCart: { enabled: false, sources: [] },
333
+ removeFromCart: { enabled: false, sources: [] },
334
+ initiateCheckout: { enabled: false, sources: [] },
335
+ addPaymentInfo: { enabled: false, sources: [] },
336
+ search: { enabled: false, sources: [] },
324
337
  viewContent: { enabled: true },
325
338
  },
326
339
  auto: {
327
340
  enabled: true,
328
341
  detectors: {
329
- lead: { enabled: false },
330
- purchase: { enabled: false },
331
- addToCart: { enabled: false },
332
- removeFromCart: { enabled: false },
333
- initiateCheckout: { enabled: false },
334
- addPaymentInfo: {
335
- enabled: false,
336
- paymentMethod: 'CREDIT_CARD',
337
- cardDetection: false,
338
- autoDispatch: false,
339
- },
340
- search: { enabled: false },
342
+ lead: { enabled: false, sources: [] },
343
+ purchase: { enabled: false, sources: [] },
344
+ addToCart: { enabled: false, sources: [] },
345
+ removeFromCart: { enabled: false, sources: [] },
346
+ initiateCheckout: { enabled: false, sources: [] },
347
+ addPaymentInfo: { enabled: false, sources: [] },
348
+ search: { enabled: false, sources: [] },
341
349
  viewContent: viewContentDetectorConfig(),
342
350
  },
343
351
  },