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

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 (135) hide show
  1. package/CHANGELOG.md +251 -4
  2. package/README.md +89 -111
  3. package/RELEASE_CANDIDATE.md +181 -36
  4. package/dist/{StorageFactory-BhpbB6Jj.d.mts → StorageFactory-CPghDPBj.d.mts} +2 -2
  5. package/dist/{StorageFactory-CAkJJqVD.d.ts → StorageFactory-tjfzk57c.d.ts} +2 -2
  6. package/dist/config/index.cjs.js +1 -1
  7. package/dist/config/index.cjs.js.map +1 -1
  8. package/dist/config/index.d.mts +4 -3
  9. package/dist/config/index.d.ts +4 -3
  10. package/dist/config/index.esm.js +1 -1
  11. package/dist/config/index.esm.js.map +1 -1
  12. package/dist/events/index.cjs.js +1 -1
  13. package/dist/events/index.cjs.js.map +1 -1
  14. package/dist/events/index.d.mts +2 -1
  15. package/dist/events/index.d.ts +2 -1
  16. package/dist/events/index.esm.js +1 -1
  17. package/dist/events/index.esm.js.map +1 -1
  18. package/dist/examples/html-script/README.md +24 -2
  19. package/dist/examples/html-script/RELEASE_CANDIDATE.md +20 -6
  20. package/dist/examples/html-script/add-payment-info/README.md +3 -3
  21. package/dist/examples/html-script/add-payment-info/example-add-payment-info-card-autocomplete.html +66 -48
  22. package/dist/examples/html-script/add-payment-info/example-add-payment-info-card-disabled.html +66 -48
  23. package/dist/examples/html-script/add-payment-info/example-add-payment-info-card-fields.html +65 -47
  24. package/dist/examples/html-script/add-payment-info/example-add-payment-info-data-track.html +73 -47
  25. package/dist/examples/html-script/add-payment-info/example-add-payment-info-dedupe.html +65 -47
  26. package/dist/examples/html-script/add-payment-info/example-add-payment-info-manual.html +56 -47
  27. package/dist/examples/html-script/add-payment-info/example-add-payment-info-rules-card.html +65 -47
  28. package/dist/examples/html-script/add-payment-info/example-add-payment-info-security.html +65 -47
  29. package/dist/examples/html-script/add-to-cart/README.md +3 -3
  30. package/dist/examples/html-script/add-to-cart/example-add-to-cart-attribute.html +90 -70
  31. package/dist/examples/html-script/add-to-cart/example-add-to-cart-auto.html +103 -81
  32. package/dist/examples/html-script/add-to-cart/example-add-to-cart-click.html +101 -78
  33. package/dist/examples/html-script/add-to-cart/example-add-to-cart-dedupe.html +90 -70
  34. package/dist/examples/html-script/add-to-cart/example-add-to-cart-manual.html +81 -67
  35. package/dist/examples/html-script/add-to-cart/example-add-to-cart-order-bump.html +90 -70
  36. package/dist/examples/html-script/add-to-cart/example-add-to-cart-text.html +104 -81
  37. package/dist/examples/html-script/behavior/example-behavior-engagement.html +489 -0
  38. package/dist/examples/html-script/behavior/example-behavior-heartbeat.html +350 -0
  39. package/dist/examples/html-script/behavior/example-behavior-runtime-intelligence.html +433 -0
  40. package/dist/examples/html-script/behavior/example-behavior-viewport.html +397 -0
  41. package/dist/examples/html-script/{example-behavior.html → behavior/example-behavior.html} +23 -17
  42. package/dist/examples/html-script/example-checkout-commerce.html +825 -0
  43. package/dist/examples/html-script/example-integration.html +5 -5
  44. package/dist/examples/html-script/example-landing-commerce.html +380 -0
  45. package/dist/examples/html-script/example-runtime-diagnostics.html +108 -0
  46. package/dist/examples/html-script/example-transport.html +5 -5
  47. package/dist/examples/html-script/full-funnel/README.md +64 -0
  48. package/dist/examples/html-script/full-funnel/checkout.html +116 -0
  49. package/dist/examples/html-script/full-funnel/downsell.html +58 -0
  50. package/dist/examples/html-script/full-funnel/landing.html +99 -0
  51. package/dist/examples/html-script/full-funnel/thank-you.html +85 -0
  52. package/dist/examples/html-script/full-funnel/upsell.html +64 -0
  53. package/dist/examples/html-script/initiate-checkout/README.md +6 -6
  54. package/dist/examples/html-script/initiate-checkout/example-initiate-checkout-attribute.html +94 -74
  55. package/dist/examples/html-script/initiate-checkout/example-initiate-checkout-auto.html +102 -80
  56. package/dist/examples/html-script/initiate-checkout/example-initiate-checkout-click.html +103 -80
  57. package/dist/examples/html-script/initiate-checkout/example-initiate-checkout-manual.html +86 -72
  58. package/dist/examples/html-script/initiate-checkout/example-initiate-checkout-snapshot.html +95 -75
  59. package/dist/examples/html-script/initiate-checkout/example-initiate-checkout-submit.html +103 -83
  60. package/dist/examples/html-script/initiate-checkout/example-initiate-checkout-text.html +105 -82
  61. package/dist/examples/html-script/lead/README.md +9 -7
  62. package/dist/examples/html-script/lead/example-lead-trigger-attribute.html +67 -47
  63. package/dist/examples/html-script/lead/example-lead-trigger-auto.html +78 -56
  64. package/dist/examples/html-script/lead/example-lead-trigger-click.html +78 -55
  65. package/dist/examples/html-script/release-candidate.html +187 -76
  66. package/dist/examples/html-script/remove-from-cart/README.md +1 -1
  67. package/dist/examples/html-script/remove-from-cart/example-remove-from-cart-attribute.html +93 -73
  68. package/dist/examples/html-script/remove-from-cart/example-remove-from-cart-css.html +93 -73
  69. package/dist/examples/html-script/remove-from-cart/example-remove-from-cart-dedupe.html +93 -73
  70. package/dist/examples/html-script/remove-from-cart/example-remove-from-cart-manual.html +84 -70
  71. package/dist/examples/html-script/remove-from-cart/example-remove-from-cart-multi.html +94 -74
  72. package/dist/examples/html-script/remove-from-cart/example-remove-from-cart-state.html +95 -75
  73. package/dist/examples/html-script/remove-from-cart/example-remove-from-cart-text.html +98 -76
  74. package/dist/examples/html-script/search/README.md +1 -1
  75. package/dist/examples/html-script/search/example-search-attribute.html +66 -51
  76. package/dist/examples/html-script/search/example-search-button-sync.html +66 -51
  77. package/dist/examples/html-script/search/example-search-dedupe.html +66 -51
  78. package/dist/examples/html-script/search/example-search-input.html +67 -51
  79. package/dist/examples/html-script/search/example-search-manual.html +57 -48
  80. package/dist/examples/html-script/search/example-search-submit.html +66 -51
  81. package/dist/examples/html-script/search/example-search-text.html +71 -51
  82. package/dist/examples/html-script/url-context/example-url-context-allowed-domains.html +63 -0
  83. package/dist/examples/html-script/url-context/example-url-context-landing.html +70 -0
  84. package/dist/examples/html-script/url-context/example-url-context-upsell.html +67 -0
  85. package/dist/examples/html-script/url-context/example-url-context.html +171 -0
  86. package/dist/examples/html-script/view-content/README.md +1 -1
  87. package/dist/examples/html-script/view-content/example-view-content-attribute.html +85 -70
  88. package/dist/examples/html-script/view-content/example-view-content-css.html +85 -70
  89. package/dist/examples/html-script/view-content/example-view-content-dedupe.html +85 -70
  90. package/dist/examples/html-script/view-content/example-view-content-empty.html +85 -70
  91. package/dist/examples/html-script/view-content/example-view-content-manual.html +76 -67
  92. package/dist/examples/html-script/view-content/example-view-content-product-card.html +85 -70
  93. package/dist/examples/html-script/view-content/example-view-content-text.html +90 -73
  94. package/dist/examples/v2/README.md +4 -1
  95. package/dist/{index-DUfFzniE.d.ts → index-CQAyT5Od.d.ts} +170 -3
  96. package/dist/{index-DUfFzniE.d.mts → index-JlKPz4pp.d.mts} +170 -3
  97. package/dist/index.cjs.js +1 -1
  98. package/dist/index.cjs.js.map +1 -1
  99. package/dist/index.d.mts +435 -12
  100. package/dist/index.d.ts +435 -12
  101. package/dist/index.esm.js +1 -1
  102. package/dist/index.esm.js.map +1 -1
  103. package/dist/{pixel-CbeF25mD.d.mts → pixel-BxZZx8l5.d.ts} +248 -72
  104. package/dist/{pixel-CbeF25mD.d.ts → pixel-CKc4OQUx.d.mts} +248 -72
  105. package/dist/{pixel-default-config-1VgLFOiL.d.mts → pixel-default-config-CJl-eypl.d.mts} +1 -1
  106. package/dist/{pixel-default-config-Bxb-Vdd8.d.ts → pixel-default-config-aAOujzwp.d.ts} +1 -1
  107. package/dist/runtime/index.cjs.js +1 -1
  108. package/dist/runtime/index.cjs.js.map +1 -1
  109. package/dist/runtime/index.d.mts +19 -26
  110. package/dist/runtime/index.d.ts +19 -26
  111. package/dist/runtime/index.esm.js +1 -1
  112. package/dist/runtime/index.esm.js.map +1 -1
  113. package/dist/services/index.cjs.js +1 -1
  114. package/dist/services/index.cjs.js.map +1 -1
  115. package/dist/services/index.d.mts +14 -6
  116. package/dist/services/index.d.ts +14 -6
  117. package/dist/services/index.esm.js +1 -1
  118. package/dist/services/index.esm.js.map +1 -1
  119. package/dist/types-BP8dz1gP.d.mts +19 -0
  120. package/dist/types-C75pQP31.d.ts +19 -0
  121. package/dist/types-DMhzHSVC.d.mts +293 -0
  122. package/dist/types-D_SsCur9.d.ts +293 -0
  123. package/dist/url-context-BjAsQoVl.d.mts +85 -0
  124. package/dist/url-context-BjAsQoVl.d.ts +85 -0
  125. package/dist/v2/global.global.js +1 -1
  126. package/dist/v2/global.global.js.map +1 -1
  127. package/dist/v2/index.cjs.js +1 -1
  128. package/dist/v2/index.cjs.js.map +1 -1
  129. package/dist/v2/index.d.mts +8 -6
  130. package/dist/v2/index.d.ts +8 -6
  131. package/dist/v2/index.esm.js +1 -1
  132. package/dist/v2/index.esm.js.map +1 -1
  133. package/package.json +12 -1
  134. package/dist/types-CTpRvFKZ.d.ts +0 -71
  135. package/dist/types-DGlBdsAy.d.mts +0 -71
@@ -186,7 +186,10 @@ code { font-size: 0.85em; }
186
186
  const counts = {};
187
187
 
188
188
  function searchDetectorConfig() {
189
- return { enabled: false };
189
+ return {
190
+ enabled: false,
191
+ sources: []
192
+ };
190
193
  }
191
194
 
192
195
  function buildConfig() {
@@ -205,6 +208,45 @@ code { font-size: 0.85em; }
205
208
  timeoutMs: 10000,
206
209
  },
207
210
  identity: { ...base.identity, pixelId: PIXEL_ID },
211
+ commerce: {
212
+ enabled: true,
213
+ currency: 'BRL',
214
+ catalog: { products: [] },
215
+ cart: {
216
+ mode: 'single_product',
217
+ initialItems: [],
218
+ calculateValueFrom: 'cart',
219
+ allowDynamicItems: true,
220
+ },
221
+ mappings: {
222
+ attributes: {
223
+ productId: ['data-product-id'],
224
+ productName: ['data-product-name'],
225
+ price: ['data-product-price'],
226
+ quantity: ['data-quantity'],
227
+ currency: ['data-currency'],
228
+ },
229
+ fields: {
230
+ email: ['email'],
231
+ phone: ['phone'],
232
+ productId: ['productId'],
233
+ productName: ['productName'],
234
+ price: ['price'],
235
+ quantity: ['quantity'],
236
+ currency: ['currency'],
237
+ },
238
+ },
239
+ enrichment: {
240
+ pageView: { enabled: false, source: 'cart' },
241
+ viewContent: { enabled: true, source: 'event_or_cart' },
242
+ lead: { enabled: false, source: 'event_or_cart' },
243
+ addToCart: { enabled: true, source: 'event_or_cart' },
244
+ removeFromCart: { enabled: true, source: 'event_or_cart' },
245
+ initiateCheckout: { enabled: true, source: 'cart' },
246
+ addPaymentInfo: { enabled: true, source: 'cart' },
247
+ purchase: { enabled: true, source: 'cart' },
248
+ }
249
+ },
208
250
  modules: {
209
251
  ...base.modules,
210
252
  core: {
@@ -266,61 +308,28 @@ code { font-size: 0.85em; }
266
308
  integrations: { ...base.modules.integrations, enabled: false },
267
309
  conversion: {
268
310
  enabled: true,
269
- commerce: {
270
- currency: 'BRL',
271
- catalog: { products: [] },
272
- checkout: {
273
- mode: 'single_product',
274
- selectedItems: [],
275
- calculateValueFrom: 'selected_items',
276
- allowDynamicItems: true,
277
- },
278
- mappings: {
279
- attributes: {
280
- productId: ['data-product-id'],
281
- productName: ['data-product-name'],
282
- price: ['data-product-price'],
283
- quantity: ['data-quantity'],
284
- currency: ['data-currency'],
285
- },
286
- fields: {
287
- email: ['email'],
288
- phone: ['phone'],
289
- productId: ['productId'],
290
- productName: ['productName'],
291
- price: ['price'],
292
- quantity: ['quantity'],
293
- currency: ['currency'],
294
- },
295
- },
296
- },
297
311
  manual: {
298
312
  pageView: { enabled: false },
299
- purchase: { enabled: false },
300
- lead: { enabled: false },
301
- addToCart: { enabled: false },
302
- removeFromCart: { enabled: false },
303
- initiateCheckout: { enabled: false },
304
- addPaymentInfo: { enabled: false },
313
+ purchase: { enabled: false, sources: [] },
314
+ lead: { enabled: false, sources: [] },
315
+ addToCart: { enabled: false, sources: [] },
316
+ removeFromCart: { enabled: false, sources: [] },
317
+ initiateCheckout: { enabled: false, sources: [] },
318
+ addPaymentInfo: { enabled: false, sources: [] },
305
319
  search: { enabled: true },
306
- viewContent: { enabled: false },
320
+ viewContent: { enabled: false, sources: [] },
307
321
  },
308
322
  auto: {
309
323
  enabled: true,
310
324
  detectors: {
311
- lead: { enabled: false },
312
- purchase: { enabled: false },
313
- addToCart: { enabled: false },
314
- removeFromCart: { enabled: false },
315
- initiateCheckout: { enabled: false },
316
- addPaymentInfo: {
317
- enabled: false,
318
- paymentMethod: 'CREDIT_CARD',
319
- cardDetection: false,
320
- autoDispatch: false,
321
- },
325
+ lead: { enabled: false, sources: [] },
326
+ purchase: { enabled: false, sources: [] },
327
+ addToCart: { enabled: false, sources: [] },
328
+ removeFromCart: { enabled: false, sources: [] },
329
+ initiateCheckout: { enabled: false, sources: [] },
330
+ addPaymentInfo: { enabled: false, sources: [] },
322
331
  search: searchDetectorConfig(),
323
- viewContent: { enabled: false },
332
+ viewContent: { enabled: false, sources: [] },
324
333
  },
325
334
  },
326
335
  rules: {
@@ -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() {
@@ -197,6 +206,45 @@ code { font-size: 0.85em; }
197
206
  timeoutMs: 10000,
198
207
  },
199
208
  identity: { ...base.identity, pixelId: PIXEL_ID },
209
+ commerce: {
210
+ enabled: true,
211
+ currency: 'BRL',
212
+ catalog: { products: [] },
213
+ cart: {
214
+ mode: 'single_product',
215
+ initialItems: [],
216
+ calculateValueFrom: 'cart',
217
+ allowDynamicItems: true,
218
+ },
219
+ mappings: {
220
+ attributes: {
221
+ productId: ['data-product-id'],
222
+ productName: ['data-product-name'],
223
+ price: ['data-product-price'],
224
+ quantity: ['data-quantity'],
225
+ currency: ['data-currency'],
226
+ },
227
+ fields: {
228
+ email: ['email'],
229
+ phone: ['phone'],
230
+ productId: ['productId'],
231
+ productName: ['productName'],
232
+ price: ['price'],
233
+ quantity: ['quantity'],
234
+ currency: ['currency'],
235
+ },
236
+ },
237
+ enrichment: {
238
+ pageView: { enabled: false, source: 'cart' },
239
+ viewContent: { enabled: true, source: 'event_or_cart' },
240
+ lead: { enabled: false, source: 'event_or_cart' },
241
+ addToCart: { enabled: true, source: 'event_or_cart' },
242
+ removeFromCart: { enabled: true, source: 'event_or_cart' },
243
+ initiateCheckout: { enabled: true, source: 'cart' },
244
+ addPaymentInfo: { enabled: true, source: 'cart' },
245
+ purchase: { enabled: true, source: 'cart' },
246
+ }
247
+ },
200
248
  modules: {
201
249
  ...base.modules,
202
250
  core: {
@@ -258,61 +306,28 @@ code { font-size: 0.85em; }
258
306
  integrations: { ...base.modules.integrations, enabled: false },
259
307
  conversion: {
260
308
  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
309
  manual: {
290
310
  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 },
311
+ purchase: { enabled: false, sources: [] },
312
+ lead: { enabled: false, sources: [] },
313
+ addToCart: { enabled: false, sources: [] },
314
+ removeFromCart: { enabled: false, sources: [] },
315
+ initiateCheckout: { enabled: false, sources: [] },
316
+ addPaymentInfo: { enabled: false, sources: [] },
297
317
  search: { enabled: true },
298
- viewContent: { enabled: false },
318
+ viewContent: { enabled: false, sources: [] },
299
319
  },
300
320
  auto: {
301
321
  enabled: true,
302
322
  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
- },
323
+ lead: { enabled: false, sources: [] },
324
+ purchase: { enabled: false, sources: [] },
325
+ addToCart: { enabled: false, sources: [] },
326
+ removeFromCart: { enabled: false, sources: [] },
327
+ initiateCheckout: { enabled: false, sources: [] },
328
+ addPaymentInfo: { enabled: false, sources: [] },
314
329
  search: searchDetectorConfig(),
315
- viewContent: { enabled: false },
330
+ viewContent: { enabled: false, sources: [] },
316
331
  },
317
332
  },
318
333
  rules: {
@@ -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() {
@@ -197,6 +211,45 @@ code { font-size: 0.85em; }
197
211
  timeoutMs: 10000,
198
212
  },
199
213
  identity: { ...base.identity, pixelId: PIXEL_ID },
214
+ commerce: {
215
+ enabled: true,
216
+ currency: 'BRL',
217
+ catalog: { products: [] },
218
+ cart: {
219
+ mode: 'single_product',
220
+ initialItems: [],
221
+ calculateValueFrom: 'cart',
222
+ allowDynamicItems: true,
223
+ },
224
+ mappings: {
225
+ attributes: {
226
+ productId: ['data-product-id'],
227
+ productName: ['data-product-name'],
228
+ price: ['data-product-price'],
229
+ quantity: ['data-quantity'],
230
+ currency: ['data-currency'],
231
+ },
232
+ fields: {
233
+ email: ['email'],
234
+ phone: ['phone'],
235
+ productId: ['productId'],
236
+ productName: ['productName'],
237
+ price: ['price'],
238
+ quantity: ['quantity'],
239
+ currency: ['currency'],
240
+ },
241
+ },
242
+ enrichment: {
243
+ pageView: { enabled: false, source: 'cart' },
244
+ viewContent: { enabled: true, source: 'event_or_cart' },
245
+ lead: { enabled: false, source: 'event_or_cart' },
246
+ addToCart: { enabled: true, source: 'event_or_cart' },
247
+ removeFromCart: { enabled: true, source: 'event_or_cart' },
248
+ initiateCheckout: { enabled: true, source: 'cart' },
249
+ addPaymentInfo: { enabled: true, source: 'cart' },
250
+ purchase: { enabled: true, source: 'cart' },
251
+ }
252
+ },
200
253
  modules: {
201
254
  ...base.modules,
202
255
  core: {
@@ -258,61 +311,28 @@ code { font-size: 0.85em; }
258
311
  integrations: { ...base.modules.integrations, enabled: false },
259
312
  conversion: {
260
313
  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
314
  manual: {
290
315
  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 },
316
+ purchase: { enabled: false, sources: [] },
317
+ lead: { enabled: false, sources: [] },
318
+ addToCart: { enabled: false, sources: [] },
319
+ removeFromCart: { enabled: false, sources: [] },
320
+ initiateCheckout: { enabled: false, sources: [] },
321
+ addPaymentInfo: { enabled: false, sources: [] },
297
322
  search: { enabled: true },
298
- viewContent: { enabled: false },
323
+ viewContent: { enabled: false, sources: [] },
299
324
  },
300
325
  auto: {
301
326
  enabled: true,
302
327
  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
- },
328
+ lead: { enabled: false, sources: [] },
329
+ purchase: { enabled: false, sources: [] },
330
+ addToCart: { enabled: false, sources: [] },
331
+ removeFromCart: { enabled: false, sources: [] },
332
+ initiateCheckout: { enabled: false, sources: [] },
333
+ addPaymentInfo: { enabled: false, sources: [] },
314
334
  search: searchDetectorConfig(),
315
- viewContent: { enabled: false },
335
+ viewContent: { enabled: false, sources: [] },
316
336
  },
317
337
  },
318
338
  rules: {
@@ -0,0 +1,63 @@
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 { font-family: system-ui, sans-serif; max-width: 720px; margin: 2rem auto; padding: 0 1rem; }
9
+ a { display: block; margin: 0.5rem 0; }
10
+ pre { background: #0f172a; color: #e2e8f0; padding: 0.75rem; border-radius: 8px; font-size: 0.75rem; overflow: auto; }
11
+ </style>
12
+ </head>
13
+ <body>
14
+ <h1>allowedDomains = só checkout.bemony.com</h1>
15
+ <p>Esperado: apenas o link de checkout recebe <code>sid</code>.</p>
16
+
17
+ <a id="checkout" href="https://checkout.bemony.com/pay">Checkout Bemony</a>
18
+ <a id="security" href="https://security.bemony.com/upsell/accept">Security Bemony</a>
19
+ <a id="mine" href="https://meusite.com/pagina">Meu site</a>
20
+
21
+ <pre id="out">init…</pre>
22
+
23
+ <script src="../../dist/v2/global.global.js"></script>
24
+ <script>
25
+ (async function () {
26
+ var { Pixel, DEFAULT_PIXEL_CONFIG } = window.PixelV2;
27
+ var pixel = new Pixel({
28
+ ...DEFAULT_PIXEL_CONFIG,
29
+ app: { ...DEFAULT_PIXEL_CONFIG.app, debug: true },
30
+ identity: { ...DEFAULT_PIXEL_CONFIG.identity, pixelId: 'pix_uc_domains' },
31
+ modules: {
32
+ ...DEFAULT_PIXEL_CONFIG.modules,
33
+ core: {
34
+ ...DEFAULT_PIXEL_CONFIG.modules.core,
35
+ urlContext: {
36
+ enabled: true,
37
+ linkDecoration: {
38
+ enabled: true,
39
+ strategy: 'both',
40
+ allowedDomains: ['checkout.bemony.com'],
41
+ },
42
+ },
43
+ },
44
+ transport: { ...DEFAULT_PIXEL_CONFIG.modules.transport, enabled: false },
45
+ integrations: { ...DEFAULT_PIXEL_CONFIG.modules.integrations, enabled: false },
46
+ conversion: { ...DEFAULT_PIXEL_CONFIG.modules.conversion, enabled: false },
47
+ },
48
+ });
49
+ await pixel.init();
50
+ document.getElementById('out').textContent = JSON.stringify(
51
+ {
52
+ checkout: document.getElementById('checkout').href,
53
+ security: document.getElementById('security').href,
54
+ mine: document.getElementById('mine').href,
55
+ snapshot: pixel.getDebugServices().urlContext.getSnapshot(),
56
+ },
57
+ null,
58
+ 2
59
+ );
60
+ })();
61
+ </script>
62
+ </body>
63
+ </html>
@@ -0,0 +1,70 @@
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 Landing</title>
7
+ <style>
8
+ body { font-family: system-ui, sans-serif; max-width: 720px; margin: 2rem auto; padding: 0 1rem; }
9
+ a { display: block; margin: 0.5rem 0; }
10
+ pre { background: #0f172a; color: #e2e8f0; padding: 0.75rem; border-radius: 8px; font-size: 0.75rem; overflow: auto; }
11
+ .hint { color: #64748b; font-size: 0.9rem; }
12
+ </style>
13
+ </head>
14
+ <body>
15
+ <h1>Landing + UrlContext</h1>
16
+ <p class="hint">
17
+ Abra com query, ex.:
18
+ <code>?utm_source=facebook&amp;affid=aff_123&amp;src=redtrack_abc</code>
19
+ <br />
20
+ Debug: console mostra snapshot; href do checkout deve ganhar <code>sid</code> + UTMs sem duplicar params.
21
+ </p>
22
+ <p>Esperado: gera <code>sid</code>, preserva UTMs/affid/src, decora checkout (abs + relativo).</p>
23
+
24
+ <a id="c1" href="https://checkout.bemony.com/pay">Checkout absoluto</a>
25
+ <a id="c2" href="https://checkout.bemony.com/pay?product=main">Checkout + product</a>
26
+ <a id="c3" href="/checkout#step">Checkout relativo + hash</a>
27
+ <a href="https://facebook.com/x">Externo (não decorar)</a>
28
+
29
+ <pre id="out">init…</pre>
30
+
31
+ <script src="../../dist/v2/global.global.js"></script>
32
+ <script>
33
+ (async function () {
34
+ var { Pixel, DEFAULT_PIXEL_CONFIG } = window.PixelV2;
35
+ var pixel = new Pixel({
36
+ ...DEFAULT_PIXEL_CONFIG,
37
+ app: { ...DEFAULT_PIXEL_CONFIG.app, debug: true },
38
+ identity: { ...DEFAULT_PIXEL_CONFIG.identity, pixelId: 'pix_uc_landing' },
39
+ modules: {
40
+ ...DEFAULT_PIXEL_CONFIG.modules,
41
+ core: {
42
+ ...DEFAULT_PIXEL_CONFIG.modules.core,
43
+ urlContext: {
44
+ enabled: true,
45
+ linkDecoration: {
46
+ enabled: true,
47
+ strategy: 'both',
48
+ allowedDomains: ['checkout.bemony.com'],
49
+ },
50
+ },
51
+ },
52
+ transport: { ...DEFAULT_PIXEL_CONFIG.modules.transport, enabled: false },
53
+ integrations: { ...DEFAULT_PIXEL_CONFIG.modules.integrations, enabled: false },
54
+ conversion: { ...DEFAULT_PIXEL_CONFIG.modules.conversion, enabled: false },
55
+ },
56
+ });
57
+ await pixel.init();
58
+ var debug = {
59
+ href: location.href,
60
+ snapshot: pixel.getDebugServices().urlContext.getSnapshot(),
61
+ checkout1: document.getElementById('c1').getAttribute('href'),
62
+ checkout2: document.getElementById('c2').getAttribute('href'),
63
+ checkoutRelative: document.getElementById('c3').getAttribute('href'),
64
+ };
65
+ document.getElementById('out').textContent = JSON.stringify(debug, null, 2);
66
+ console.debug('[UrlContext landing]', debug);
67
+ })();
68
+ </script>
69
+ </body>
70
+ </html>
@@ -0,0 +1,67 @@
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 Upsell</title>
7
+ <style>
8
+ body { font-family: system-ui, sans-serif; max-width: 720px; margin: 2rem auto; padding: 0 1rem; }
9
+ a { display: inline-block; margin: 0.5rem 0.5rem 0 0; padding: 0.5rem 0.85rem; background: #0f766e; color: #fff; border-radius: 8px; text-decoration: none; }
10
+ pre { background: #0f172a; color: #e2e8f0; padding: 0.75rem; border-radius: 8px; font-size: 0.75rem; overflow: auto; }
11
+ .hint { color: #64748b; font-size: 0.9rem; }
12
+ </style>
13
+ </head>
14
+ <body>
15
+ <h1>Upsell / Downsell + UrlContext</h1>
16
+ <p class="hint">
17
+ Abra com
18
+ <code>?sid=sid_abc&amp;order_id=ord_123&amp;utm_source=facebook</code>.
19
+ Token sensível NÃO deve estar na URL — só no backend (HttpOnly).
20
+ </p>
21
+
22
+ <a id="accept" href="https://security.bemony.com/upsell/accept">Sim</a>
23
+ <a id="decline" href="https://security.bemony.com/upsell/decline">Não</a>
24
+
25
+ <pre id="out">init…</pre>
26
+
27
+ <script src="../../dist/v2/global.global.js"></script>
28
+ <script>
29
+ (async function () {
30
+ var { Pixel, DEFAULT_PIXEL_CONFIG } = window.PixelV2;
31
+ var pixel = new Pixel({
32
+ ...DEFAULT_PIXEL_CONFIG,
33
+ app: { ...DEFAULT_PIXEL_CONFIG.app, debug: true },
34
+ identity: { ...DEFAULT_PIXEL_CONFIG.identity, pixelId: 'pix_uc_upsell' },
35
+ modules: {
36
+ ...DEFAULT_PIXEL_CONFIG.modules,
37
+ core: {
38
+ ...DEFAULT_PIXEL_CONFIG.modules.core,
39
+ urlContext: {
40
+ enabled: true,
41
+ linkDecoration: {
42
+ enabled: true,
43
+ strategy: 'both',
44
+ allowedDomains: ['security.bemony.com', 'checkout.bemony.com'],
45
+ },
46
+ },
47
+ },
48
+ transport: { ...DEFAULT_PIXEL_CONFIG.modules.transport, enabled: false },
49
+ integrations: { ...DEFAULT_PIXEL_CONFIG.modules.integrations, enabled: false },
50
+ conversion: { ...DEFAULT_PIXEL_CONFIG.modules.conversion, enabled: false },
51
+ },
52
+ });
53
+ await pixel.init();
54
+ document.getElementById('out').textContent = JSON.stringify(
55
+ {
56
+ href: location.href,
57
+ snapshot: pixel.getDebugServices().urlContext.getSnapshot(),
58
+ accept: document.getElementById('accept').href,
59
+ decline: document.getElementById('decline').href,
60
+ },
61
+ null,
62
+ 2
63
+ );
64
+ })();
65
+ </script>
66
+ </body>
67
+ </html>