@tagadapay/headless-sdk 1.22.0 → 1.24.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 (76) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/dist/core/client.d.ts.map +1 -1
  3. package/dist/core/client.js +1 -1
  4. package/dist/core/client.js.map +1 -1
  5. package/dist/core/helpers/checkoutRisk.d.ts +29 -0
  6. package/dist/core/helpers/checkoutRisk.d.ts.map +1 -0
  7. package/dist/core/helpers/checkoutRisk.js +107 -0
  8. package/dist/core/helpers/checkoutRisk.js.map +1 -0
  9. package/dist/core/helpers/paymentsApi.d.ts +5 -0
  10. package/dist/core/helpers/paymentsApi.d.ts.map +1 -1
  11. package/dist/core/helpers/paymentsApi.js +30 -0
  12. package/dist/core/helpers/paymentsApi.js.map +1 -1
  13. package/dist/core/modules/checkout.d.ts.map +1 -1
  14. package/dist/core/modules/checkout.js +3 -0
  15. package/dist/core/modules/checkout.js.map +1 -1
  16. package/dist/core/modules/offers.d.ts +2 -1
  17. package/dist/core/modules/offers.d.ts.map +1 -1
  18. package/dist/core/modules/offers.js +6 -2
  19. package/dist/core/modules/offers.js.map +1 -1
  20. package/dist/core/modules/payment.d.ts.map +1 -1
  21. package/dist/core/modules/payment.js +12 -0
  22. package/dist/core/modules/payment.js.map +1 -1
  23. package/dist/core/modules/track.d.ts +10 -1
  24. package/dist/core/modules/track.d.ts.map +1 -1
  25. package/dist/core/modules/track.js +89 -3
  26. package/dist/core/modules/track.js.map +1 -1
  27. package/dist/core/version.d.ts +1 -1
  28. package/dist/core/version.js +1 -1
  29. package/dist/pixels/engine.d.ts +3 -3
  30. package/dist/pixels/engine.d.ts.map +1 -1
  31. package/dist/pixels/engine.js +12 -8
  32. package/dist/pixels/engine.js.map +1 -1
  33. package/dist/pixels/index.d.ts +3 -3
  34. package/dist/pixels/index.d.ts.map +1 -1
  35. package/dist/pixels/index.js +1 -1
  36. package/dist/pixels/index.js.map +1 -1
  37. package/dist/pixels/pixelIdentity.d.ts +23 -0
  38. package/dist/pixels/pixelIdentity.d.ts.map +1 -1
  39. package/dist/pixels/pixelIdentity.js +23 -0
  40. package/dist/pixels/pixelIdentity.js.map +1 -1
  41. package/dist/pixels/pixelMapping.d.ts +50 -6
  42. package/dist/pixels/pixelMapping.d.ts.map +1 -1
  43. package/dist/pixels/pixelMapping.js +259 -11
  44. package/dist/pixels/pixelMapping.js.map +1 -1
  45. package/dist/pixels/pixelPurchaseHanded.d.ts +5 -0
  46. package/dist/pixels/pixelPurchaseHanded.d.ts.map +1 -0
  47. package/dist/pixels/pixelPurchaseHanded.js +135 -0
  48. package/dist/pixels/pixelPurchaseHanded.js.map +1 -0
  49. package/dist/pixels/pixelTracker.d.ts +26 -8
  50. package/dist/pixels/pixelTracker.d.ts.map +1 -1
  51. package/dist/pixels/pixelTracker.js +292 -28
  52. package/dist/pixels/pixelTracker.js.map +1 -1
  53. package/dist/pixels/types.d.ts +18 -2
  54. package/dist/pixels/types.d.ts.map +1 -1
  55. package/dist/pixels/types.js +1 -0
  56. package/dist/pixels/types.js.map +1 -1
  57. package/dist/tagada-headless-commerce.min.js +2 -2
  58. package/dist/tagada-headless-commerce.min.js.map +3 -3
  59. package/dist/tagada-headless-react.min.js +2 -2
  60. package/dist/tagada-headless-react.min.js.map +4 -4
  61. package/dist/tagada-headless.js +191 -11
  62. package/dist/tagada-headless.min.js +2 -2
  63. package/dist/tagada-headless.min.js.map +4 -4
  64. package/dist/tagada-pixels.min.js +2 -2
  65. package/dist/tagada-pixels.min.js.map +4 -4
  66. package/dist/tgd/contract/envelope.d.ts +1 -1
  67. package/dist/tgd/contract/envelope.d.ts.map +1 -1
  68. package/dist/tgd/contract/registry.d.ts +10 -3
  69. package/dist/tgd/contract/registry.d.ts.map +1 -1
  70. package/dist/tgd/contract/registry.js +3 -2
  71. package/dist/tgd/contract/registry.js.map +1 -1
  72. package/dist/tgd/contract/unions.d.ts +1 -1
  73. package/dist/tgd/contract/unions.d.ts.map +1 -1
  74. package/dist/tgd/contract/unions.js +1 -1
  75. package/dist/tgd/contract/unions.js.map +1 -1
  76. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/pixels/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/pixels/engine.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,9 @@ export { createPixelEngine, SDK_PIXEL_PROVIDERS } from './engine.js';
2
2
  export type { PixelEngine, PixelEngineConfig, PixelSignal, PixelSignalKind, SdkPixelProvider, } from './engine.js';
3
3
  export { makeMetaEventId } from './metaEventId.js';
4
4
  export { bootstrapPixelTrackerFromWindow, createPixelTracker, isSafePixelId } from './pixelTracker.js';
5
- export type { PixelTracker, TrackOptions } from './pixelTracker.js';
6
- export { buildGa4PurchasePayload, getEligiblePixels, isEventEnabled, pixelIdKeyOf, resolvePixelEvents } from './pixelMapping.js';
5
+ export type { PixelTracker, PurchaseTrace, TrackOptions } from './pixelTracker.js';
6
+ export { buildGa4PurchasePayload, getEligiblePixels, IDENTITY_HASHES_PARAM_KEY, isEventEnabled, pixelIdKeyOf, resolvePixelEvents, } from './pixelMapping.js';
7
7
  export type { PixelProviderKey, StandardPixelEvent } from './pixelMapping.js';
8
- export type { PixelRawIdentity } from './pixelIdentity.js';
8
+ export type { PixelRawIdentity, ServerIdentityHashes } from './pixelIdentity.js';
9
9
  export type { PixelConfig, PixelsConfig } from './types.js';
10
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pixels/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACrE,YAAY,EACV,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,GAC/E,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,+BAA+B,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvG,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACjI,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pixels/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACrE,YAAY,EACV,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,GAC/E,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,+BAA+B,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvG,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACnF,OAAO,EACL,uBAAuB,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,cAAc,EAAE,YAAY,EAAE,kBAAkB,GACxH,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACjF,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export { createPixelEngine, SDK_PIXEL_PROVIDERS } from './engine.js';
2
2
  export { makeMetaEventId } from './metaEventId.js';
3
3
  export { bootstrapPixelTrackerFromWindow, createPixelTracker, isSafePixelId } from './pixelTracker.js';
4
- export { buildGa4PurchasePayload, getEligiblePixels, isEventEnabled, pixelIdKeyOf, resolvePixelEvents } from './pixelMapping.js';
4
+ export { buildGa4PurchasePayload, getEligiblePixels, IDENTITY_HASHES_PARAM_KEY, isEventEnabled, pixelIdKeyOf, resolvePixelEvents, } from './pixelMapping.js';
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pixels/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAKrE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,+BAA+B,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvG,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pixels/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAKrE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,+BAA+B,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvG,OAAO,EACL,uBAAuB,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,cAAc,EAAE,YAAY,EAAE,kBAAkB,GACxH,MAAM,mBAAmB,CAAC"}
@@ -24,6 +24,29 @@ export interface PixelHashedIdentity {
24
24
  /** SHA-256 hex of the trimmed external id. */
25
25
  externalId?: string;
26
26
  }
27
+ /**
28
+ * The buyer's email and phone hashed by our server, per ad platform format, as
29
+ * the public order read returns them to the recognised buyer.
30
+ */
31
+ export interface ServerIdentityHashes {
32
+ meta?: IdentityHashPair;
33
+ tiktok?: IdentityHashPair;
34
+ snap?: IdentityHashPair;
35
+ google?: IdentityHashPair;
36
+ applovin?: IdentityHashPair;
37
+ }
38
+ export interface IdentityHashPair {
39
+ email?: string;
40
+ phone?: string;
41
+ }
42
+ export declare function isSha256Hex(value: unknown): value is string;
43
+ /**
44
+ * A masked value (`r***@gmail.com`, as the public order read returns it) is
45
+ * never hashed nor handed to a pixel: it would become a key that matches no one.
46
+ */
47
+ export declare function isMaskedValue(value: string | undefined): boolean;
48
+ /** The identity with every masked value removed. */
49
+ export declare function withoutMaskedValues(id: PixelRawIdentity): PixelRawIdentity;
27
50
  /** True when SubtleCrypto is usable (secure context). */
28
51
  export declare function canHashIdentity(): boolean;
29
52
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"pixelIdentity.d.ts","sourceRoot":"","sources":["../../src/pixels/pixelIdentity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA6BD,yDAAyD;AACzD,wBAAgB,eAAe,IAAI,OAAO,CAMzC;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAiB5F"}
1
+ {"version":3,"file":"pixelIdentity.d.ts","sourceRoot":"","sources":["../../src/pixels/pixelIdentity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAE3D;AAID;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEhE;AAED,oDAAoD;AACpD,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,gBAAgB,GAAG,gBAAgB,CAM1E;AA6BD,yDAAyD;AACzD,wBAAgB,eAAe,IAAI,OAAO,CAMzC;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAiB5F"}
@@ -8,6 +8,29 @@
8
8
  * the page — TikTok requires pre-hashed values anyway, and Snap/Meta accept
9
9
  * pre-hashed too.
10
10
  */
11
+ const SHA256_HEX_PATTERN = /^[a-f0-9]{64}$/;
12
+ export function isSha256Hex(value) {
13
+ return typeof value === 'string' && SHA256_HEX_PATTERN.test(value);
14
+ }
15
+ const MASKED_VALUE_PATTERN = /[*•]/;
16
+ /**
17
+ * A masked value (`r***@gmail.com`, as the public order read returns it) is
18
+ * never hashed nor handed to a pixel: it would become a key that matches no one.
19
+ */
20
+ export function isMaskedValue(value) {
21
+ return value != null && MASKED_VALUE_PATTERN.test(value);
22
+ }
23
+ /** The identity with every masked value removed. */
24
+ export function withoutMaskedValues(id) {
25
+ const out = {};
26
+ if (id.email && !isMaskedValue(id.email))
27
+ out.email = id.email;
28
+ if (id.phone && !isMaskedValue(id.phone))
29
+ out.phone = id.phone;
30
+ if (id.externalId && !isMaskedValue(id.externalId))
31
+ out.externalId = id.externalId;
32
+ return out;
33
+ }
11
34
  /** Lowercase + trim — the normalization Meta/Snap/TikTok all expect for email. */
12
35
  function normalizeEmail(email) {
13
36
  return email.trim().toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"file":"pixelIdentity.js","sourceRoot":"","sources":["../../src/pixels/pixelIdentity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAoBH,kFAAkF;AAClF,SAAS,cAAc,CAAC,KAAa;IACnC,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AACpC,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,KAAa;IACnC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;AACvC,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,KAAa;IACpC,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACxD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;SACnC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC3C,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,eAAe;IAC7B,OAAO,CACL,OAAO,MAAM,KAAK,WAAW;QAC7B,OAAO,MAAM,CAAC,MAAM,KAAK,WAAW;QACpC,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU,CAC3C,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,EAAoB;IAC5D,MAAM,GAAG,GAAwB,EAAE,CAAC;IAEpC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC;YAAE,GAAG,CAAC,KAAK,GAAG,MAAM,SAAS,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC;YAAE,GAAG,CAAC,KAAK,GAAG,MAAM,SAAS,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;QAClB,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC;YAAE,GAAG,CAAC,UAAU,GAAG,MAAM,SAAS,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"pixelIdentity.js","sourceRoot":"","sources":["../../src/pixels/pixelIdentity.ts"],"names":[],"mappings":"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"}
@@ -11,17 +11,20 @@
11
11
  * Pinterest: pintrk('track', 'checkout', { value, currency }) — help.pinterest.com/en/business/article/add-event-codes
12
12
  * GTM/GA4: gtag('event', 'purchase', { value, currency, items })
13
13
  * Clarity: clarity('event', 'Purchase') — learn.microsoft.com/en-us/clarity/setup-and-installation/clarity-api
14
+ * AppLovin: axon('track', 'purchase', { value, currency, items }) — support.axon.ai/en/growth/axon-pixel/events-and-objects
14
15
  */
15
- import type { GTMTrackingConfig, PixelConfig, PixelsConfig } from './types.js';
16
+ import type { GTMTrackingConfig, ApplovinTrackingConfig, PixelConfig, PixelsConfig } from './types.js';
17
+ import { type IdentityHashPair, type PixelRawIdentity, type ServerIdentityHashes } from './pixelIdentity.js';
16
18
  export type StandardPixelEvent = 'PageView' | 'ViewContent' | 'AddToCart' | 'AddToWishlist' | 'Search' | 'InitiateCheckout' | 'AddPaymentInfo' | 'Purchase' | 'Lead' | 'CompleteRegistration' | 'Conversion';
17
- export type PixelProviderKey = 'facebook' | 'tiktok' | 'snapchat' | 'pinterest' | 'gtm' | 'clarity';
19
+ export type PixelProviderKey = 'facebook' | 'tiktok' | 'snapchat' | 'pinterest' | 'gtm' | 'clarity' | 'applovin';
18
20
  /** The field a pixel entry carries its tracking id in. */
19
- export type PixelIdKey = 'pixelId' | 'containerId' | 'projectId';
21
+ export type PixelIdKey = 'pixelId' | 'containerId' | 'projectId' | 'eventKey';
20
22
  /**
21
23
  * Which key holds this entry's id: GTM stores a `containerId`, Clarity a
22
- * `projectId`, every other provider a `pixelId`. Callers that sanitize, split
23
- * or display an id go through here rather than testing the keys themselves,
24
- * so a new provider with its own field name is one edit, not six.
24
+ * `projectId`, AppLovin an `eventKey`, every other provider a `pixelId`.
25
+ * Callers that sanitize, split or display an id go through here rather than
26
+ * testing the keys themselves, so a new provider with its own field name is
27
+ * one edit, not six.
25
28
  */
26
29
  export declare function pixelIdKeyOf(pixel: unknown): PixelIdKey;
27
30
  export interface MappedEvent {
@@ -29,6 +32,8 @@ export interface MappedEvent {
29
32
  params: Record<string, unknown>;
30
33
  }
31
34
  export declare const GA4_PARAM_KEY: "_ga4";
35
+ /** Reserved key of the Purchase params carrying the server's `ServerIdentityHashes`; stripped from every payload. */
36
+ export declare const IDENTITY_HASHES_PARAM_KEY: "_identity_hashes";
32
37
  export interface Ga4UserData {
33
38
  email_address?: string;
34
39
  phone_number?: string;
@@ -42,6 +47,15 @@ export interface Ga4UserData {
42
47
  country?: string;
43
48
  };
44
49
  }
50
+ /**
51
+ * The server's hashes an event carries under `IDENTITY_HASHES_PARAM_KEY`, or undefined when no platform's pair holds a
52
+ * SHA-256 hash: a buyer the server did not recognise must not switch the tracker into server-hash mode with nothing.
53
+ */
54
+ export declare function serverIdentityHashesOf(parameters: Record<string, unknown>): ServerIdentityHashes | undefined;
55
+ /** Google's user data with the server's hashes in place of the email and the phone, the rest of the address kept. */
56
+ export declare function withGoogleServerHashes(ud: Ga4UserData | undefined, hashes: IdentityHashPair | undefined): Record<string, unknown>;
57
+ /** The user data without a masked email or phone. */
58
+ export declare function withoutMaskedUserData(ud: Ga4UserData): Ga4UserData;
45
59
  export interface Ga4Item {
46
60
  item_id?: string;
47
61
  item_name?: string;
@@ -154,6 +168,36 @@ export declare function mapSnapchatEvent(eventName: StandardPixelEvent, paramete
154
168
  export declare function mapPinterestEvent(eventName: StandardPixelEvent, parameters: Record<string, unknown>): MappedEvent;
155
169
  export declare function mapGTMEvent(eventName: StandardPixelEvent, parameters: Record<string, unknown>): MappedEvent;
156
170
  export declare function mapClarityEvent(eventName: StandardPixelEvent, parameters: Record<string, unknown>): MappedEvent;
171
+ export declare const APPLOVIN_EVENT_MAP: Partial<Record<StandardPixelEvent, string>>;
172
+ /** AppLovin's user data object. Raw values: the Axon script hashes them itself. */
173
+ export interface ApplovinUserData {
174
+ email?: string;
175
+ phone?: string;
176
+ user_id?: string;
177
+ }
178
+ /**
179
+ * Shape an identity as AppLovin's `user_data`: email lowercased, phone as
180
+ * digits only (leading zeros dropped, as AppLovin's normalisation does), and
181
+ * the external id as `user_id` only when it has the six characters AppLovin
182
+ * requires. A masked email or phone (`r***@gmail.com`, as some order reads
183
+ * return it) is dropped: AppLovin would hash it into a key that matches no one.
184
+ * Returns undefined when nothing usable is left.
185
+ */
186
+ export declare function toApplovinUserData(identity: PixelRawIdentity): ApplovinUserData | undefined;
187
+ /** AppLovin's `user_data` from the server's hashes, which the Axon script passes through unhashed. */
188
+ export declare function toApplovinServerUserData(hashes: IdentityHashPair | undefined, externalId: string | undefined): ApplovinUserData | undefined;
189
+ /**
190
+ * The entry a page loads: AppLovin's script takes one event key per page, so
191
+ * only the first enabled entry is initialised and only its toggles apply.
192
+ */
193
+ export declare function activeApplovinPixel(pixels: ApplovinTrackingConfig[] | undefined): ApplovinTrackingConfig | undefined;
194
+ /**
195
+ * Map a standard event to AppLovin's name and payload, or null when AppLovin
196
+ * has no such event. Amounts leave in major units. `value` is the subtotal
197
+ * AppLovin asks for on `begin_checkout` and `purchase`: the amount minus
198
+ * shipping and tax, never below zero.
199
+ */
200
+ export declare function mapApplovinEvent(eventName: StandardPixelEvent, parameters: Record<string, unknown>): MappedEvent | null;
157
201
  /**
158
202
  * Append Google Ads `send_to` parameter when conversion tracking is configured.
159
203
  */
@@ -1 +1 @@
1
- {"version":3,"file":"pixelMapping.d.ts","sourceRoot":"","sources":["../../src/pixels/pixelMapping.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pixelMapping.d.ts","sourceRoot":"","sources":["../../src/pixels/pixelMapping.ts"],"names":[],"mappings":"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"}
@@ -11,12 +11,15 @@
11
11
  * Pinterest: pintrk('track', 'checkout', { value, currency }) — help.pinterest.com/en/business/article/add-event-codes
12
12
  * GTM/GA4: gtag('event', 'purchase', { value, currency, items })
13
13
  * Clarity: clarity('event', 'Purchase') — learn.microsoft.com/en-us/clarity/setup-and-installation/clarity-api
14
+ * AppLovin: axon('track', 'purchase', { value, currency, items }) — support.axon.ai/en/growth/axon-pixel/events-and-objects
14
15
  */
16
+ import { isMaskedValue, isSha256Hex, } from './pixelIdentity.js';
15
17
  /**
16
18
  * Which key holds this entry's id: GTM stores a `containerId`, Clarity a
17
- * `projectId`, every other provider a `pixelId`. Callers that sanitize, split
18
- * or display an id go through here rather than testing the keys themselves,
19
- * so a new provider with its own field name is one edit, not six.
19
+ * `projectId`, AppLovin an `eventKey`, every other provider a `pixelId`.
20
+ * Callers that sanitize, split or display an id go through here rather than
21
+ * testing the keys themselves, so a new provider with its own field name is
22
+ * one edit, not six.
20
23
  */
21
24
  export function pixelIdKeyOf(pixel) {
22
25
  if (pixel && typeof pixel === 'object') {
@@ -24,6 +27,8 @@ export function pixelIdKeyOf(pixel) {
24
27
  return 'containerId';
25
28
  if ('projectId' in pixel)
26
29
  return 'projectId';
30
+ if ('eventKey' in pixel)
31
+ return 'eventKey';
27
32
  }
28
33
  return 'pixelId';
29
34
  }
@@ -39,6 +44,44 @@ export function pixelIdKeyOf(pixel) {
39
44
  // units here — mapGTMEvent converts to major via the same currency helpers.
40
45
  // ---------------------------------------------------------------------------
41
46
  export const GA4_PARAM_KEY = '_ga4';
47
+ /** Reserved key of the Purchase params carrying the server's `ServerIdentityHashes`; stripped from every payload. */
48
+ export const IDENTITY_HASHES_PARAM_KEY = '_identity_hashes';
49
+ function hasSha256Pair(pair) {
50
+ if (typeof pair !== 'object' || pair === null)
51
+ return false;
52
+ const { email, phone } = pair;
53
+ return isSha256Hex(email) || isSha256Hex(phone);
54
+ }
55
+ /**
56
+ * The server's hashes an event carries under `IDENTITY_HASHES_PARAM_KEY`, or undefined when no platform's pair holds a
57
+ * SHA-256 hash: a buyer the server did not recognise must not switch the tracker into server-hash mode with nothing.
58
+ */
59
+ export function serverIdentityHashesOf(parameters) {
60
+ const hashes = parameters[IDENTITY_HASHES_PARAM_KEY];
61
+ if (typeof hashes !== 'object' || hashes === null)
62
+ return undefined;
63
+ return Object.values(hashes).some(hasSha256Pair) ? hashes : undefined;
64
+ }
65
+ /** Google's user data with the server's hashes in place of the email and the phone, the rest of the address kept. */
66
+ export function withGoogleServerHashes(ud, hashes) {
67
+ const { email_address: _email, phone_number: _phone, ...rest } = ud ?? {};
68
+ const out = { ...rest };
69
+ if (isSha256Hex(hashes?.email))
70
+ out.sha256_email_address = hashes.email;
71
+ if (isSha256Hex(hashes?.phone))
72
+ out.sha256_phone_number = hashes.phone;
73
+ return out;
74
+ }
75
+ /** The user data without a masked email or phone. */
76
+ export function withoutMaskedUserData(ud) {
77
+ const { email_address, phone_number, ...rest } = ud;
78
+ const out = { ...rest };
79
+ if (email_address && !isMaskedValue(email_address))
80
+ out.email_address = email_address;
81
+ if (phone_number && !isMaskedValue(phone_number))
82
+ out.phone_number = phone_number;
83
+ return out;
84
+ }
42
85
  /**
43
86
  * Extract the distinct coupon codes applied to an order, comma-joined.
44
87
  * Returns undefined when the order carries no coded promotions (automatic
@@ -118,9 +161,9 @@ export function buildGa4PurchasePayload(order) {
118
161
  payload.user_id = order.customer.id;
119
162
  const addr = order.billingAddress ?? order.shippingAddress;
120
163
  const userData = {};
121
- if (order.customer?.email)
164
+ if (order.customer?.email && !isMaskedValue(order.customer.email))
122
165
  userData.email_address = order.customer.email;
123
- const phone = order.customer?.phone || addr?.phone;
166
+ const phone = [order.customer?.phone, addr?.phone].find((value) => value && !isMaskedValue(value));
124
167
  if (phone)
125
168
  userData.phone_number = phone;
126
169
  if (addr) {
@@ -240,9 +283,10 @@ function baseTransform(params) {
240
283
  p = convertContentsPricesToMajor(p);
241
284
  // Strip GA4-only enrichment so it never reaches Meta/TikTok/Snapchat/Pinterest
242
285
  // (those mappers spread all params). mapGTMEvent reads it from the raw input.
243
- if (GA4_PARAM_KEY in p) {
286
+ if (GA4_PARAM_KEY in p || IDENTITY_HASHES_PARAM_KEY in p) {
244
287
  p = { ...p };
245
288
  delete p[GA4_PARAM_KEY];
289
+ delete p[IDENTITY_HASHES_PARAM_KEY];
246
290
  }
247
291
  return p;
248
292
  }
@@ -310,9 +354,8 @@ export function mapTikTokEvent(eventName, parameters) {
310
354
  const ids = params.contents
311
355
  .map((i) => i.content_id)
312
356
  .filter(Boolean);
313
- // TikTok requires content_id (singular) at the top level for VSA
314
- if (!params.content_id && ids.length > 0) {
315
- params.content_id = ids.length === 1 ? ids[0] : JSON.stringify(ids);
357
+ if (!params.content_id && ids.length === 1) {
358
+ params.content_id = ids[0];
316
359
  }
317
360
  // Also keep content_ids for backwards compatibility
318
361
  if (!params.content_ids) {
@@ -469,8 +512,12 @@ export function mapGTMEvent(eventName, parameters) {
469
512
  const out = { ecommerce };
470
513
  if (ga4.user_id)
471
514
  out.user_id = ga4.user_id;
472
- if (ga4.user_data)
473
- out.user_data = ga4.user_data;
515
+ const serverHashes = serverIdentityHashesOf(parameters);
516
+ const userData = serverHashes
517
+ ? withGoogleServerHashes(ga4.user_data, serverHashes.google)
518
+ : ga4.user_data && withoutMaskedUserData(ga4.user_data);
519
+ if (userData && Object.keys(userData).length > 0)
520
+ out.user_data = userData;
474
521
  return { name, params: out };
475
522
  }
476
523
  const params = baseTransform(parameters);
@@ -519,6 +566,201 @@ export function mapClarityEvent(eventName, parameters) {
519
566
  const name = CLARITY_EVENT_MAP[eventName] ?? eventName;
520
567
  return { name, params: baseTransform(parameters) };
521
568
  }
569
+ // ---------------------------------------------------------------------------
570
+ // AppLovin (Axon pixel)
571
+ // Official: axon('track', 'purchase', { currency, items, shipping, tax,
572
+ // transaction_id, value, user_data }, { dedupe_id })
573
+ // Source: support.axon.ai/en/growth/axon-pixel/events-and-objects
574
+ // Event names are snake_case. Only the events below exist for a purchase site;
575
+ // any other standard event is not sent to AppLovin. Every payload is rebuilt
576
+ // from scratch, so a parameter AppLovin does not define never reaches it.
577
+ // ---------------------------------------------------------------------------
578
+ export const APPLOVIN_EVENT_MAP = {
579
+ PageView: 'page_view',
580
+ ViewContent: 'view_item',
581
+ AddToCart: 'add_to_cart',
582
+ InitiateCheckout: 'begin_checkout',
583
+ AddPaymentInfo: 'add_payment_info',
584
+ Purchase: 'purchase',
585
+ };
586
+ const APPLOVIN_MIN_USER_ID_LENGTH = 6;
587
+ const APPLOVIN_IMAGE_PATTERN = /\.(png|jpe?g)$/i;
588
+ /**
589
+ * Shape an identity as AppLovin's `user_data`: email lowercased, phone as
590
+ * digits only (leading zeros dropped, as AppLovin's normalisation does), and
591
+ * the external id as `user_id` only when it has the six characters AppLovin
592
+ * requires. A masked email or phone (`r***@gmail.com`, as some order reads
593
+ * return it) is dropped: AppLovin would hash it into a key that matches no one.
594
+ * Returns undefined when nothing usable is left.
595
+ */
596
+ export function toApplovinUserData(identity) {
597
+ const out = {};
598
+ const email = identity.email?.trim().toLowerCase();
599
+ if (email && !isMaskedValue(email))
600
+ out.email = email;
601
+ const rawPhone = identity.phone?.trim();
602
+ const phone = rawPhone && !isMaskedValue(rawPhone) && !/[a-z]/i.test(rawPhone)
603
+ ? rawPhone.replace(/[^0-9]/g, '').replace(/^0+/, '')
604
+ : undefined;
605
+ if (phone)
606
+ out.phone = phone;
607
+ const userId = identity.externalId?.trim();
608
+ if (userId && userId.length >= APPLOVIN_MIN_USER_ID_LENGTH)
609
+ out.user_id = userId;
610
+ return Object.keys(out).length > 0 ? out : undefined;
611
+ }
612
+ /** AppLovin's `user_data` from the server's hashes, which the Axon script passes through unhashed. */
613
+ export function toApplovinServerUserData(hashes, externalId) {
614
+ const out = {};
615
+ if (isSha256Hex(hashes?.email))
616
+ out.email = hashes.email;
617
+ if (isSha256Hex(hashes?.phone))
618
+ out.phone = hashes.phone;
619
+ const userId = toApplovinUserData({ externalId })?.user_id;
620
+ if (userId)
621
+ out.user_id = userId;
622
+ return Object.keys(out).length > 0 ? out : undefined;
623
+ }
624
+ /**
625
+ * The entry a page loads: AppLovin's script takes one event key per page, so
626
+ * only the first enabled entry is initialised and only its toggles apply.
627
+ */
628
+ export function activeApplovinPixel(pixels) {
629
+ return pixels?.find((pixel) => pixel.enabled);
630
+ }
631
+ function finiteNumber(value) {
632
+ if (value == null || value === '')
633
+ return undefined;
634
+ const n = Number(value);
635
+ return Number.isFinite(n) ? n : undefined;
636
+ }
637
+ function roundMoney(amount) {
638
+ return Math.round(amount * 1000) / 1000;
639
+ }
640
+ /**
641
+ * Our `content_id` is `<productId>-<variantId>`. A product id may hold dashes
642
+ * (`bpc157-10mg`), a variant id does not: the longest known product id that
643
+ * starts the content id wins, else the split is at the last dash.
644
+ */
645
+ function splitContentId(contentId, productIds) {
646
+ const productId = productIds
647
+ .filter((id) => contentId.startsWith(`${id}-`))
648
+ .reduce((longest, id) => (!longest || id.length > longest.length ? id : longest), undefined);
649
+ if (productId) {
650
+ const variantId = contentId.slice(productId.length + 1);
651
+ return variantId ? { itemId: productId, variantId } : { itemId: productId };
652
+ }
653
+ const dash = contentId.lastIndexOf('-');
654
+ if (dash === -1)
655
+ return { itemId: contentId };
656
+ const product = contentId.slice(0, dash);
657
+ const variant = contentId.slice(dash + 1);
658
+ if (!product)
659
+ return { itemId: variant };
660
+ return variant ? { itemId: product, variantId: variant } : { itemId: product };
661
+ }
662
+ function applovinImageUrl(value) {
663
+ if (typeof value !== 'string' || !value)
664
+ return undefined;
665
+ const path = value.split(/[?#]/)[0];
666
+ return APPLOVIN_IMAGE_PATTERN.test(path) ? value : undefined;
667
+ }
668
+ /**
669
+ * Reads `contents[]` after baseTransform, so `price` is already in major units.
670
+ * `productIds` are the order's own product ids, from its GA4 items.
671
+ */
672
+ function applovinItems(contents, productIds) {
673
+ if (!Array.isArray(contents))
674
+ return [];
675
+ return contents.flatMap((entry) => {
676
+ if (!entry || typeof entry !== 'object')
677
+ return [];
678
+ const item = entry;
679
+ const rawId = typeof item.content_id === 'string' && item.content_id ? item.content_id : item.id;
680
+ if (typeof rawId !== 'string' || !rawId)
681
+ return [];
682
+ const { itemId, variantId } = splitContentId(rawId, productIds);
683
+ if (!itemId)
684
+ return [];
685
+ const out = { item_id: itemId };
686
+ if (variantId)
687
+ out.item_variant_id = variantId;
688
+ if (typeof item.content_name === 'string' && item.content_name)
689
+ out.item_name = item.content_name;
690
+ const price = finiteNumber(item.price);
691
+ if (price != null)
692
+ out.price = price;
693
+ const quantity = finiteNumber(item.quantity);
694
+ if (quantity != null)
695
+ out.quantity = quantity;
696
+ const imageUrl = applovinImageUrl(item.image_url);
697
+ if (imageUrl)
698
+ out.image_url = imageUrl;
699
+ return [out];
700
+ });
701
+ }
702
+ /**
703
+ * Map a standard event to AppLovin's name and payload, or null when AppLovin
704
+ * has no such event. Amounts leave in major units. `value` is the subtotal
705
+ * AppLovin asks for on `begin_checkout` and `purchase`: the amount minus
706
+ * shipping and tax, never below zero.
707
+ */
708
+ export function mapApplovinEvent(eventName, parameters) {
709
+ const name = APPLOVIN_EVENT_MAP[eventName];
710
+ if (!name)
711
+ return null;
712
+ const ga4 = parameters[GA4_PARAM_KEY];
713
+ const params = {};
714
+ const serverHashes = serverIdentityHashesOf(parameters);
715
+ const userData = serverHashes
716
+ ? toApplovinServerUserData(serverHashes.applovin, ga4?.user_id)
717
+ : ga4
718
+ ? toApplovinUserData({
719
+ email: ga4.user_data?.email_address,
720
+ phone: ga4.user_data?.phone_number,
721
+ externalId: ga4.user_id,
722
+ })
723
+ : undefined;
724
+ if (eventName === 'PageView') {
725
+ if (userData)
726
+ params.user_data = userData;
727
+ return { name, params };
728
+ }
729
+ const p = baseTransform(parameters);
730
+ const currency = typeof p.currency === 'string' && p.currency ? p.currency : undefined;
731
+ const toMajor = (amount) => {
732
+ const n = finiteNumber(amount);
733
+ return n == null || !currency ? undefined : minorToMajor(n, currency);
734
+ };
735
+ if (currency)
736
+ params.currency = currency;
737
+ const productIds = (ga4?.items ?? [])
738
+ .map((item) => item.item_id)
739
+ .filter((id) => typeof id === 'string' && id.length > 0);
740
+ const items = applovinItems(p.contents, productIds);
741
+ if (items.length > 0)
742
+ params.items = items;
743
+ // Without a currency `value` is still in minor units, so it is left out.
744
+ const value = currency ? finiteNumber(p.value) ?? toMajor(ga4?.value) : undefined;
745
+ if (eventName === 'InitiateCheckout' || eventName === 'Purchase') {
746
+ const shipping = (currency ? finiteNumber(p.shipping) : undefined) ?? toMajor(ga4?.shipping) ?? 0;
747
+ const tax = (currency ? finiteNumber(p.tax) : undefined) ?? toMajor(ga4?.tax) ?? 0;
748
+ if (value != null)
749
+ params.value = Math.max(0, roundMoney(value - shipping - tax));
750
+ if (eventName === 'Purchase') {
751
+ params.shipping = shipping;
752
+ params.tax = tax;
753
+ if (p.transaction_id != null && p.transaction_id !== '')
754
+ params.transaction_id = String(p.transaction_id);
755
+ }
756
+ }
757
+ else if (value != null) {
758
+ params.value = value;
759
+ }
760
+ if (userData)
761
+ params.user_data = userData;
762
+ return { name, params };
763
+ }
522
764
  function googleAdsTag(id) {
523
765
  const text = String(id).trim();
524
766
  return /^\d+$/.test(text) ? `AW-${text}` : text;
@@ -569,6 +811,12 @@ export function resolvePixelEvents(pixels, eventName, parameters) {
569
811
  const mapped = mapClarityEvent(eventName, parameters);
570
812
  clarity.forEach((pixel) => results.push({ provider: 'clarity', mapped, pixel }));
571
813
  }
814
+ const applovin = activeApplovinPixel(pixels.applovin);
815
+ if (applovin && getEligiblePixels([applovin], eventName).length > 0) {
816
+ const mapped = mapApplovinEvent(eventName, parameters);
817
+ if (mapped)
818
+ results.push({ provider: 'applovin', mapped, pixel: applovin });
819
+ }
572
820
  const gtm = getEligiblePixels(pixels.gtm, eventName);
573
821
  if (gtm.length > 0) {
574
822
  const mapped = mapGTMEvent(eventName, parameters);