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

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