@tagadapay/headless-sdk 1.21.0 → 1.23.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.
- package/CHANGELOG.md +34 -0
- package/README.md +23 -0
- package/dist/core/helpers/paymentsApi.d.ts +5 -0
- package/dist/core/helpers/paymentsApi.d.ts.map +1 -1
- package/dist/core/helpers/paymentsApi.js +34 -0
- package/dist/core/helpers/paymentsApi.js.map +1 -1
- package/dist/core/helpers/paymentsApiAnswer.d.ts +4 -0
- package/dist/core/helpers/paymentsApiAnswer.d.ts.map +1 -1
- package/dist/core/helpers/paymentsApiAnswer.js +6 -1
- package/dist/core/helpers/paymentsApiAnswer.js.map +1 -1
- package/dist/core/helpers/stripeJs.d.ts +15 -0
- package/dist/core/helpers/stripeJs.d.ts.map +1 -0
- package/dist/core/helpers/stripeJs.js +24 -0
- package/dist/core/helpers/stripeJs.js.map +1 -0
- package/dist/core/helpers/stripeRadar.d.ts +14 -0
- package/dist/core/helpers/stripeRadar.d.ts.map +1 -0
- package/dist/core/helpers/stripeRadar.js +34 -0
- package/dist/core/helpers/stripeRadar.js.map +1 -0
- package/dist/core/modules/payment.d.ts +5 -0
- package/dist/core/modules/payment.d.ts.map +1 -1
- package/dist/core/modules/payment.js +6 -23
- package/dist/core/modules/payment.js.map +1 -1
- package/dist/core/modules/track.d.ts.map +1 -1
- package/dist/core/modules/track.js +7 -1
- package/dist/core/modules/track.js.map +1 -1
- package/dist/core/version.d.ts +1 -1
- package/dist/core/version.js +1 -1
- package/dist/pixels/engine.d.ts +3 -3
- package/dist/pixels/engine.d.ts.map +1 -1
- package/dist/pixels/engine.js +12 -8
- package/dist/pixels/engine.js.map +1 -1
- package/dist/pixels/pixelMapping.d.ts +37 -6
- package/dist/pixels/pixelMapping.d.ts.map +1 -1
- package/dist/pixels/pixelMapping.js +194 -3
- package/dist/pixels/pixelMapping.js.map +1 -1
- package/dist/pixels/pixelTracker.d.ts +10 -4
- package/dist/pixels/pixelTracker.d.ts.map +1 -1
- package/dist/pixels/pixelTracker.js +164 -7
- package/dist/pixels/pixelTracker.js.map +1 -1
- package/dist/pixels/types.d.ts +18 -2
- package/dist/pixels/types.d.ts.map +1 -1
- package/dist/pixels/types.js +1 -0
- package/dist/pixels/types.js.map +1 -1
- package/dist/react/hooks/usePayment.d.ts +3 -0
- package/dist/react/hooks/usePayment.d.ts.map +1 -1
- package/dist/react/hooks/usePayment.js.map +1 -1
- package/dist/tagada-headless-commerce.min.js +1 -1
- package/dist/tagada-headless-react.min.js +2 -2
- package/dist/tagada-headless-react.min.js.map +4 -4
- package/dist/tagada-headless.js +48 -30
- package/dist/tagada-headless.min.js +2 -2
- package/dist/tagada-headless.min.js.map +4 -4
- package/dist/tagada-pixels.min.js +2 -2
- package/dist/tagada-pixels.min.js.map +3 -3
- package/dist/tgd/contract/registry.d.ts +1 -1
- package/dist/tgd/contract/registry.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -11,12 +11,14 @@
|
|
|
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
16
|
/**
|
|
16
17
|
* Which key holds this entry's id: GTM stores a `containerId`, Clarity a
|
|
17
|
-
* `projectId`, every other provider a `pixelId`.
|
|
18
|
-
* or display an id go through here rather than
|
|
19
|
-
* so a new provider with its own field name is
|
|
18
|
+
* `projectId`, AppLovin an `eventKey`, every other provider a `pixelId`.
|
|
19
|
+
* Callers that sanitize, split or display an id go through here rather than
|
|
20
|
+
* testing the keys themselves, so a new provider with its own field name is
|
|
21
|
+
* one edit, not six.
|
|
20
22
|
*/
|
|
21
23
|
export function pixelIdKeyOf(pixel) {
|
|
22
24
|
if (pixel && typeof pixel === 'object') {
|
|
@@ -24,6 +26,8 @@ export function pixelIdKeyOf(pixel) {
|
|
|
24
26
|
return 'containerId';
|
|
25
27
|
if ('projectId' in pixel)
|
|
26
28
|
return 'projectId';
|
|
29
|
+
if ('eventKey' in pixel)
|
|
30
|
+
return 'eventKey';
|
|
27
31
|
}
|
|
28
32
|
return 'pixelId';
|
|
29
33
|
}
|
|
@@ -519,6 +523,187 @@ export function mapClarityEvent(eventName, parameters) {
|
|
|
519
523
|
const name = CLARITY_EVENT_MAP[eventName] ?? eventName;
|
|
520
524
|
return { name, params: baseTransform(parameters) };
|
|
521
525
|
}
|
|
526
|
+
// ---------------------------------------------------------------------------
|
|
527
|
+
// AppLovin (Axon pixel)
|
|
528
|
+
// Official: axon('track', 'purchase', { currency, items, shipping, tax,
|
|
529
|
+
// transaction_id, value, user_data }, { dedupe_id })
|
|
530
|
+
// Source: support.axon.ai/en/growth/axon-pixel/events-and-objects
|
|
531
|
+
// Event names are snake_case. Only the events below exist for a purchase site;
|
|
532
|
+
// any other standard event is not sent to AppLovin. Every payload is rebuilt
|
|
533
|
+
// from scratch, so a parameter AppLovin does not define never reaches it.
|
|
534
|
+
// ---------------------------------------------------------------------------
|
|
535
|
+
export const APPLOVIN_EVENT_MAP = {
|
|
536
|
+
PageView: 'page_view',
|
|
537
|
+
ViewContent: 'view_item',
|
|
538
|
+
AddToCart: 'add_to_cart',
|
|
539
|
+
InitiateCheckout: 'begin_checkout',
|
|
540
|
+
AddPaymentInfo: 'add_payment_info',
|
|
541
|
+
Purchase: 'purchase',
|
|
542
|
+
};
|
|
543
|
+
const APPLOVIN_MIN_USER_ID_LENGTH = 6;
|
|
544
|
+
const APPLOVIN_IMAGE_PATTERN = /\.(png|jpe?g)$/i;
|
|
545
|
+
const MASKED_VALUE_PATTERN = /[*•]/;
|
|
546
|
+
/**
|
|
547
|
+
* Shape an identity as AppLovin's `user_data`: email lowercased, phone as
|
|
548
|
+
* digits only (leading zeros dropped, as AppLovin's normalisation does), and
|
|
549
|
+
* the external id as `user_id` only when it has the six characters AppLovin
|
|
550
|
+
* requires. A masked email or phone (`r***@gmail.com`, as some order reads
|
|
551
|
+
* return it) is dropped: AppLovin would hash it into a key that matches no one.
|
|
552
|
+
* Returns undefined when nothing usable is left.
|
|
553
|
+
*/
|
|
554
|
+
export function toApplovinUserData(identity) {
|
|
555
|
+
const out = {};
|
|
556
|
+
const email = identity.email?.trim().toLowerCase();
|
|
557
|
+
if (email && !MASKED_VALUE_PATTERN.test(email))
|
|
558
|
+
out.email = email;
|
|
559
|
+
const rawPhone = identity.phone?.trim();
|
|
560
|
+
const phone = rawPhone && !MASKED_VALUE_PATTERN.test(rawPhone) && !/[a-z]/i.test(rawPhone)
|
|
561
|
+
? rawPhone.replace(/[^0-9]/g, '').replace(/^0+/, '')
|
|
562
|
+
: undefined;
|
|
563
|
+
if (phone)
|
|
564
|
+
out.phone = phone;
|
|
565
|
+
const userId = identity.externalId?.trim();
|
|
566
|
+
if (userId && userId.length >= APPLOVIN_MIN_USER_ID_LENGTH)
|
|
567
|
+
out.user_id = userId;
|
|
568
|
+
return Object.keys(out).length > 0 ? out : undefined;
|
|
569
|
+
}
|
|
570
|
+
/**
|
|
571
|
+
* The entry a page loads: AppLovin's script takes one event key per page, so
|
|
572
|
+
* only the first enabled entry is initialised and only its toggles apply.
|
|
573
|
+
*/
|
|
574
|
+
export function activeApplovinPixel(pixels) {
|
|
575
|
+
return pixels?.find((pixel) => pixel.enabled);
|
|
576
|
+
}
|
|
577
|
+
function finiteNumber(value) {
|
|
578
|
+
if (value == null || value === '')
|
|
579
|
+
return undefined;
|
|
580
|
+
const n = Number(value);
|
|
581
|
+
return Number.isFinite(n) ? n : undefined;
|
|
582
|
+
}
|
|
583
|
+
function roundMoney(amount) {
|
|
584
|
+
return Math.round(amount * 1000) / 1000;
|
|
585
|
+
}
|
|
586
|
+
/**
|
|
587
|
+
* Our `content_id` is `<productId>-<variantId>`. A product id may hold dashes
|
|
588
|
+
* (`bpc157-10mg`), a variant id does not: the longest known product id that
|
|
589
|
+
* starts the content id wins, else the split is at the last dash.
|
|
590
|
+
*/
|
|
591
|
+
function splitContentId(contentId, productIds) {
|
|
592
|
+
const productId = productIds
|
|
593
|
+
.filter((id) => contentId.startsWith(`${id}-`))
|
|
594
|
+
.reduce((longest, id) => (!longest || id.length > longest.length ? id : longest), undefined);
|
|
595
|
+
if (productId) {
|
|
596
|
+
const variantId = contentId.slice(productId.length + 1);
|
|
597
|
+
return variantId ? { itemId: productId, variantId } : { itemId: productId };
|
|
598
|
+
}
|
|
599
|
+
const dash = contentId.lastIndexOf('-');
|
|
600
|
+
if (dash === -1)
|
|
601
|
+
return { itemId: contentId };
|
|
602
|
+
const product = contentId.slice(0, dash);
|
|
603
|
+
const variant = contentId.slice(dash + 1);
|
|
604
|
+
if (!product)
|
|
605
|
+
return { itemId: variant };
|
|
606
|
+
return variant ? { itemId: product, variantId: variant } : { itemId: product };
|
|
607
|
+
}
|
|
608
|
+
function applovinImageUrl(value) {
|
|
609
|
+
if (typeof value !== 'string' || !value)
|
|
610
|
+
return undefined;
|
|
611
|
+
const path = value.split(/[?#]/)[0];
|
|
612
|
+
return APPLOVIN_IMAGE_PATTERN.test(path) ? value : undefined;
|
|
613
|
+
}
|
|
614
|
+
/**
|
|
615
|
+
* Reads `contents[]` after baseTransform, so `price` is already in major units.
|
|
616
|
+
* `productIds` are the order's own product ids, from its GA4 items.
|
|
617
|
+
*/
|
|
618
|
+
function applovinItems(contents, productIds) {
|
|
619
|
+
if (!Array.isArray(contents))
|
|
620
|
+
return [];
|
|
621
|
+
return contents.flatMap((entry) => {
|
|
622
|
+
if (!entry || typeof entry !== 'object')
|
|
623
|
+
return [];
|
|
624
|
+
const item = entry;
|
|
625
|
+
const rawId = typeof item.content_id === 'string' && item.content_id ? item.content_id : item.id;
|
|
626
|
+
if (typeof rawId !== 'string' || !rawId)
|
|
627
|
+
return [];
|
|
628
|
+
const { itemId, variantId } = splitContentId(rawId, productIds);
|
|
629
|
+
if (!itemId)
|
|
630
|
+
return [];
|
|
631
|
+
const out = { item_id: itemId };
|
|
632
|
+
if (variantId)
|
|
633
|
+
out.item_variant_id = variantId;
|
|
634
|
+
if (typeof item.content_name === 'string' && item.content_name)
|
|
635
|
+
out.item_name = item.content_name;
|
|
636
|
+
const price = finiteNumber(item.price);
|
|
637
|
+
if (price != null)
|
|
638
|
+
out.price = price;
|
|
639
|
+
const quantity = finiteNumber(item.quantity);
|
|
640
|
+
if (quantity != null)
|
|
641
|
+
out.quantity = quantity;
|
|
642
|
+
const imageUrl = applovinImageUrl(item.image_url);
|
|
643
|
+
if (imageUrl)
|
|
644
|
+
out.image_url = imageUrl;
|
|
645
|
+
return [out];
|
|
646
|
+
});
|
|
647
|
+
}
|
|
648
|
+
/**
|
|
649
|
+
* Map a standard event to AppLovin's name and payload, or null when AppLovin
|
|
650
|
+
* has no such event. Amounts leave in major units. `value` is the subtotal
|
|
651
|
+
* AppLovin asks for on `begin_checkout` and `purchase`: the amount minus
|
|
652
|
+
* shipping and tax, never below zero.
|
|
653
|
+
*/
|
|
654
|
+
export function mapApplovinEvent(eventName, parameters) {
|
|
655
|
+
const name = APPLOVIN_EVENT_MAP[eventName];
|
|
656
|
+
if (!name)
|
|
657
|
+
return null;
|
|
658
|
+
const ga4 = parameters[GA4_PARAM_KEY];
|
|
659
|
+
const params = {};
|
|
660
|
+
const userData = ga4
|
|
661
|
+
? toApplovinUserData({
|
|
662
|
+
email: ga4.user_data?.email_address,
|
|
663
|
+
phone: ga4.user_data?.phone_number,
|
|
664
|
+
externalId: ga4.user_id,
|
|
665
|
+
})
|
|
666
|
+
: undefined;
|
|
667
|
+
if (eventName === 'PageView') {
|
|
668
|
+
if (userData)
|
|
669
|
+
params.user_data = userData;
|
|
670
|
+
return { name, params };
|
|
671
|
+
}
|
|
672
|
+
const p = baseTransform(parameters);
|
|
673
|
+
const currency = typeof p.currency === 'string' && p.currency ? p.currency : undefined;
|
|
674
|
+
const toMajor = (amount) => {
|
|
675
|
+
const n = finiteNumber(amount);
|
|
676
|
+
return n == null || !currency ? undefined : minorToMajor(n, currency);
|
|
677
|
+
};
|
|
678
|
+
if (currency)
|
|
679
|
+
params.currency = currency;
|
|
680
|
+
const productIds = (ga4?.items ?? [])
|
|
681
|
+
.map((item) => item.item_id)
|
|
682
|
+
.filter((id) => typeof id === 'string' && id.length > 0);
|
|
683
|
+
const items = applovinItems(p.contents, productIds);
|
|
684
|
+
if (items.length > 0)
|
|
685
|
+
params.items = items;
|
|
686
|
+
// Without a currency `value` is still in minor units, so it is left out.
|
|
687
|
+
const value = currency ? finiteNumber(p.value) ?? toMajor(ga4?.value) : undefined;
|
|
688
|
+
if (eventName === 'InitiateCheckout' || eventName === 'Purchase') {
|
|
689
|
+
const shipping = (currency ? finiteNumber(p.shipping) : undefined) ?? toMajor(ga4?.shipping) ?? 0;
|
|
690
|
+
const tax = (currency ? finiteNumber(p.tax) : undefined) ?? toMajor(ga4?.tax) ?? 0;
|
|
691
|
+
if (value != null)
|
|
692
|
+
params.value = Math.max(0, roundMoney(value - shipping - tax));
|
|
693
|
+
if (eventName === 'Purchase') {
|
|
694
|
+
params.shipping = shipping;
|
|
695
|
+
params.tax = tax;
|
|
696
|
+
if (p.transaction_id != null && p.transaction_id !== '')
|
|
697
|
+
params.transaction_id = String(p.transaction_id);
|
|
698
|
+
}
|
|
699
|
+
}
|
|
700
|
+
else if (value != null) {
|
|
701
|
+
params.value = value;
|
|
702
|
+
}
|
|
703
|
+
if (userData)
|
|
704
|
+
params.user_data = userData;
|
|
705
|
+
return { name, params };
|
|
706
|
+
}
|
|
522
707
|
function googleAdsTag(id) {
|
|
523
708
|
const text = String(id).trim();
|
|
524
709
|
return /^\d+$/.test(text) ? `AW-${text}` : text;
|
|
@@ -569,6 +754,12 @@ export function resolvePixelEvents(pixels, eventName, parameters) {
|
|
|
569
754
|
const mapped = mapClarityEvent(eventName, parameters);
|
|
570
755
|
clarity.forEach((pixel) => results.push({ provider: 'clarity', mapped, pixel }));
|
|
571
756
|
}
|
|
757
|
+
const applovin = activeApplovinPixel(pixels.applovin);
|
|
758
|
+
if (applovin && getEligiblePixels([applovin], eventName).length > 0) {
|
|
759
|
+
const mapped = mapApplovinEvent(eventName, parameters);
|
|
760
|
+
if (mapped)
|
|
761
|
+
results.push({ provider: 'applovin', mapped, pixel: applovin });
|
|
762
|
+
}
|
|
572
763
|
const gtm = getEligiblePixels(pixels.gtm, eventName);
|
|
573
764
|
if (gtm.length > 0) {
|
|
574
765
|
const mapped = mapGTMEvent(eventName, parameters);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pixelMapping.js","sourceRoot":"","sources":["../../src/pixels/pixelMapping.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pixelMapping.js","sourceRoot":"","sources":["../../src/pixels/pixelMapping.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Framework-agnostic pixel tracker.
|
|
3
3
|
*
|
|
4
|
-
* Init / fire logic for Meta, TikTok, Snapchat, Pinterest, GTM/GA4
|
|
5
|
-
* Microsoft Clarity pixels —
|
|
4
|
+
* Init / fire logic for Meta, TikTok, Snapchat, Pinterest, GTM/GA4,
|
|
5
|
+
* Microsoft Clarity and AppLovin pixels —
|
|
6
6
|
* extracted from `react/hooks/usePixelTracking.tsx` so non-React entry points
|
|
7
7
|
* (Studio islands hydrator, full-SPA runtime) can fire pixel events from
|
|
8
8
|
* `window.__TGD_STEP_CONFIG__.pixels`.
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* The React provider is a thin adapter on top of this module.
|
|
11
11
|
*/
|
|
12
12
|
import type { PixelsConfig } from './types.js';
|
|
13
|
-
import { type Ga4UserData, type StandardPixelEvent } from './pixelMapping.js';
|
|
13
|
+
import { type Ga4UserData, type PixelProviderKey, type StandardPixelEvent } from './pixelMapping.js';
|
|
14
14
|
import { type PixelRawIdentity } from './pixelIdentity.js';
|
|
15
15
|
/**
|
|
16
16
|
* Optional per-event tracking metadata. `eventId` is the cross-channel dedup
|
|
@@ -21,6 +21,11 @@ import { type PixelRawIdentity } from './pixelIdentity.js';
|
|
|
21
21
|
*/
|
|
22
22
|
export interface TrackOptions {
|
|
23
23
|
eventId?: string;
|
|
24
|
+
/**
|
|
25
|
+
* When set, only the pixels of these providers receive the event; the
|
|
26
|
+
* others are left untouched. Unset, every configured provider receives it.
|
|
27
|
+
*/
|
|
28
|
+
providers?: readonly PixelProviderKey[];
|
|
24
29
|
}
|
|
25
30
|
export interface PixelTracker {
|
|
26
31
|
/** Resolves once all pixel scripts have loaded (or hit their load timeout). */
|
|
@@ -33,7 +38,8 @@ export interface PixelTracker {
|
|
|
33
38
|
* Feed customer identifiers for advanced matching. Applies to Meta (fbq init,
|
|
34
39
|
* raw — Meta hashes in-browser), Google (gtag set user_data, raw — enhanced
|
|
35
40
|
* conversions), Snapchat (re-init) + TikTok (identify), the last two with
|
|
36
|
-
* client-side SHA-256 hashing
|
|
41
|
+
* client-side SHA-256 hashing, and AppLovin (raw `user_data` added to each
|
|
42
|
+
* of its events — the Axon script hashes it). Each provider persists the keys onto
|
|
37
43
|
* subsequent events, so call this as soon as the email is known to lift
|
|
38
44
|
* match quality on InitiateCheckout + Purchase. Idempotent per identity; safe
|
|
39
45
|
* to call repeatedly.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pixelTracker.d.ts","sourceRoot":"","sources":["../../src/pixels/pixelTracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAyD,YAAY,EAAE,MAAM,YAAY,CAAC;AACtG,OAAO,
|
|
1
|
+
{"version":3,"file":"pixelTracker.d.ts","sourceRoot":"","sources":["../../src/pixels/pixelTracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAyD,YAAY,EAAE,MAAM,YAAY,CAAC;AACtG,OAAO,EAQL,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,oBAAoB,CAAC;AAM5B;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,YAAY;IAC3B,+EAA+E;IAC/E,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,yCAAyC;IACzC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,gEAAgE;IAChE,KAAK,CACH,SAAS,EAAE,kBAAkB,EAC7B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,OAAO,CAAC,EAAE,YAAY,GACrB,IAAI,CAAC;IACR;;;;;;;;;OASG;IACH,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAC5C;AAoKD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,WAAW,QA0B1D;AA0ZD,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAE7D;AA8ED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,YAAY,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,YAAY,CAkMvH;AAMD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,qBAAqB,CAAC,EAAE,YAAY,CAAC;QACrC,mBAAmB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACxD;CACF;AAeD;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,IAAI,YAAY,GAAG,IAAI,CAUrE"}
|
|
@@ -1,26 +1,28 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Framework-agnostic pixel tracker.
|
|
3
3
|
*
|
|
4
|
-
* Init / fire logic for Meta, TikTok, Snapchat, Pinterest, GTM/GA4
|
|
5
|
-
* Microsoft Clarity pixels —
|
|
4
|
+
* Init / fire logic for Meta, TikTok, Snapchat, Pinterest, GTM/GA4,
|
|
5
|
+
* Microsoft Clarity and AppLovin pixels —
|
|
6
6
|
* extracted from `react/hooks/usePixelTracking.tsx` so non-React entry points
|
|
7
7
|
* (Studio islands hydrator, full-SPA runtime) can fire pixel events from
|
|
8
8
|
* `window.__TGD_STEP_CONFIG__.pixels`.
|
|
9
9
|
*
|
|
10
10
|
* The React provider is a thin adapter on top of this module.
|
|
11
11
|
*/
|
|
12
|
-
import { resolvePixelEvents, pixelIdKeyOf, GA4_PARAM_KEY, } from './pixelMapping.js';
|
|
12
|
+
import { resolvePixelEvents, pixelIdKeyOf, activeApplovinPixel, toApplovinUserData, GA4_PARAM_KEY, } from './pixelMapping.js';
|
|
13
13
|
import { buildHashedIdentity, canHashIdentity, } from './pixelIdentity.js';
|
|
14
14
|
// ---------------------------------------------------------------------------
|
|
15
15
|
// Duplicate guard (time-window based)
|
|
16
16
|
// ---------------------------------------------------------------------------
|
|
17
17
|
function createDuplicateGuard(windowMs) {
|
|
18
18
|
const lastEvents = new Map();
|
|
19
|
-
return (eventName, parameters, eventId) => {
|
|
19
|
+
return (eventName, parameters, eventId, providers) => {
|
|
20
20
|
try {
|
|
21
21
|
// Include eventId in the dedup key so two distinct logical events with the
|
|
22
22
|
// same name+params (e.g. two Purchases) are not collapsed by the guard.
|
|
23
|
-
|
|
23
|
+
// The provider scope too: a call aimed at one provider must not swallow
|
|
24
|
+
// the same event sent to all of them.
|
|
25
|
+
const key = JSON.stringify({ eventName, parameters, eventId, providers });
|
|
24
26
|
const now = Date.now();
|
|
25
27
|
const last = lastEvents.get(key);
|
|
26
28
|
if (last && now - last < windowMs)
|
|
@@ -113,6 +115,17 @@ function fire(provider, name, params, pixel, options = {}) {
|
|
|
113
115
|
case 'clarity':
|
|
114
116
|
w.clarity?.('event', name);
|
|
115
117
|
break;
|
|
118
|
+
case 'applovin': {
|
|
119
|
+
// AppLovin dedup: the order id for a purchase, else the caller's event id.
|
|
120
|
+
const dedupeId = name === 'purchase' && typeof params.transaction_id === 'string' && params.transaction_id
|
|
121
|
+
? params.transaction_id
|
|
122
|
+
: eventId;
|
|
123
|
+
if (dedupeId)
|
|
124
|
+
w.axon?.('track', name, params, { dedupe_id: dedupeId });
|
|
125
|
+
else
|
|
126
|
+
w.axon?.('track', name, params);
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
116
129
|
}
|
|
117
130
|
}
|
|
118
131
|
/**
|
|
@@ -430,6 +443,117 @@ function initClarity(projectId) {
|
|
|
430
443
|
(document.head || document.getElementsByTagName('head')[0])?.appendChild(s);
|
|
431
444
|
return waitForScriptLoad(s);
|
|
432
445
|
}
|
|
446
|
+
/**
|
|
447
|
+
* True when an AppLovin tag this SDK did not load is already on the page (a
|
|
448
|
+
* merchant's pasted snippet). AppLovin's script takes one event key per page,
|
|
449
|
+
* so ours stays off rather than send its events to that tag.
|
|
450
|
+
*/
|
|
451
|
+
function hasForeignApplovin() {
|
|
452
|
+
return Boolean(win?.axon) && win.axon.tgdManaged !== true;
|
|
453
|
+
}
|
|
454
|
+
/**
|
|
455
|
+
* Load the AppLovin Axon pixel, as AppLovin's own snippet does: a queueing
|
|
456
|
+
* stub carrying the event key, both of its scripts, then `axon('init')`. A
|
|
457
|
+
* stub already loaded by this SDK (another tracker on the page) is reused.
|
|
458
|
+
*/
|
|
459
|
+
let _applovinScriptEl = null;
|
|
460
|
+
function initApplovin(eventKey) {
|
|
461
|
+
if (!win || !eventKey || win.axon)
|
|
462
|
+
return Promise.resolve();
|
|
463
|
+
const a = function (...args) {
|
|
464
|
+
if (a.performOperation)
|
|
465
|
+
a.performOperation.apply(a, args);
|
|
466
|
+
else
|
|
467
|
+
a.operationQueue.push(args);
|
|
468
|
+
};
|
|
469
|
+
a.operationQueue = [];
|
|
470
|
+
a.ts = Date.now();
|
|
471
|
+
a.eventKey = eventKey;
|
|
472
|
+
a.tgdManaged = true;
|
|
473
|
+
win.axon = a;
|
|
474
|
+
const first = document.getElementsByTagName('script')[0];
|
|
475
|
+
const scripts = ['https://s.axon.ai/pixel.js', 'https://res4.applovin.com/p/l/loader.iife.js'].map((src) => {
|
|
476
|
+
const s = document.createElement('script');
|
|
477
|
+
s.async = true;
|
|
478
|
+
s.src = src;
|
|
479
|
+
if (first?.parentNode)
|
|
480
|
+
first.parentNode.insertBefore(s, first);
|
|
481
|
+
else
|
|
482
|
+
(document.head || document.getElementsByTagName('head')[0])?.appendChild(s);
|
|
483
|
+
return s;
|
|
484
|
+
});
|
|
485
|
+
_applovinScriptEl = scripts[0];
|
|
486
|
+
win.axon('init');
|
|
487
|
+
return Promise.all(scripts.map(waitForScriptLoad)).then(() => undefined);
|
|
488
|
+
}
|
|
489
|
+
/** AppLovin's script defines `performOperation` on the stub once it runs: a call is then really handed to it. */
|
|
490
|
+
function isApplovinLoaded() {
|
|
491
|
+
return typeof window !== 'undefined' && typeof window.axon?.performOperation === 'function';
|
|
492
|
+
}
|
|
493
|
+
/**
|
|
494
|
+
* Remember an order once AppLovin's script holds it: at once when the script
|
|
495
|
+
* already took the stub over, else when its script finishes loading and takes
|
|
496
|
+
* over the queue the order waits in. A script that fails or never takes over
|
|
497
|
+
* leaves the order to the next page.
|
|
498
|
+
*/
|
|
499
|
+
function rememberApplovinPurchaseWhenReceived(transactionId) {
|
|
500
|
+
if (isApplovinLoaded()) {
|
|
501
|
+
markApplovinPurchaseSent(transactionId);
|
|
502
|
+
return;
|
|
503
|
+
}
|
|
504
|
+
_applovinScriptEl?.addEventListener('load', () => {
|
|
505
|
+
if (isApplovinLoaded())
|
|
506
|
+
markApplovinPurchaseSent(transactionId);
|
|
507
|
+
}, { once: true });
|
|
508
|
+
}
|
|
509
|
+
/**
|
|
510
|
+
* AppLovin's once-only purchase memory, kept across reloads of the same
|
|
511
|
+
* browser: one entry mapping each order id to when it was sent, bounded to
|
|
512
|
+
* the last 30 days and the 50 most recent orders.
|
|
513
|
+
*/
|
|
514
|
+
const APPLOVIN_PURCHASES_KEY = 'tgd_applovin_purchases';
|
|
515
|
+
/** Orders handed to `axon` on this page, received or still queued: the page never sends one twice. */
|
|
516
|
+
const applovinPurchasesOnPage = new Set();
|
|
517
|
+
const APPLOVIN_PURCHASE_MEMORY_MS = 30 * 24 * 60 * 60 * 1000;
|
|
518
|
+
const APPLOVIN_PURCHASE_MEMORY_SIZE = 50;
|
|
519
|
+
function readApplovinPurchases() {
|
|
520
|
+
const memory = {};
|
|
521
|
+
try {
|
|
522
|
+
const parsed = JSON.parse(window.localStorage?.getItem(APPLOVIN_PURCHASES_KEY) || '{}');
|
|
523
|
+
if (parsed && typeof parsed === 'object') {
|
|
524
|
+
const record = parsed;
|
|
525
|
+
for (const id of Object.keys(record)) {
|
|
526
|
+
const sentAt = record[id];
|
|
527
|
+
if (typeof sentAt === 'number')
|
|
528
|
+
memory[id] = sentAt;
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
catch {
|
|
533
|
+
/* unreadable memory: start from an empty one */
|
|
534
|
+
}
|
|
535
|
+
return memory;
|
|
536
|
+
}
|
|
537
|
+
function wasApplovinPurchaseSent(transactionId) {
|
|
538
|
+
const sentAt = readApplovinPurchases()[transactionId];
|
|
539
|
+
return sentAt !== undefined && Date.now() - sentAt < APPLOVIN_PURCHASE_MEMORY_MS;
|
|
540
|
+
}
|
|
541
|
+
function markApplovinPurchaseSent(transactionId) {
|
|
542
|
+
const now = Date.now();
|
|
543
|
+
const sent = { ...readApplovinPurchases(), [transactionId]: now };
|
|
544
|
+
const memory = {};
|
|
545
|
+
Object.keys(sent)
|
|
546
|
+
.filter((id) => now - sent[id] < APPLOVIN_PURCHASE_MEMORY_MS)
|
|
547
|
+
.sort((a, b) => sent[b] - sent[a])
|
|
548
|
+
.slice(0, APPLOVIN_PURCHASE_MEMORY_SIZE)
|
|
549
|
+
.forEach((id) => { memory[id] = sent[id]; });
|
|
550
|
+
try {
|
|
551
|
+
window.localStorage?.setItem(APPLOVIN_PURCHASES_KEY, JSON.stringify(memory));
|
|
552
|
+
}
|
|
553
|
+
catch {
|
|
554
|
+
/* storage unavailable: the order is simply not remembered */
|
|
555
|
+
}
|
|
556
|
+
}
|
|
433
557
|
function initGTM(containerId) {
|
|
434
558
|
if (!win || !containerId)
|
|
435
559
|
return Promise.resolve();
|
|
@@ -598,6 +722,7 @@ export function createPixelTracker(rawPixels, opts) {
|
|
|
598
722
|
const pixels = rawPixels ? sanitizePixels(rawPixels) : rawPixels;
|
|
599
723
|
const shouldTrackEvent = createDuplicateGuard(5000);
|
|
600
724
|
let pixelsInitialized = false;
|
|
725
|
+
let applovinStoodDown = false;
|
|
601
726
|
const initPromise = (async () => {
|
|
602
727
|
if (!pixels || typeof window === 'undefined')
|
|
603
728
|
return;
|
|
@@ -617,6 +742,14 @@ export function createPixelTracker(rawPixels, opts) {
|
|
|
617
742
|
loadPromises.push(initGTM(px.containerId)); });
|
|
618
743
|
pixels.clarity?.forEach((px) => { if (px.enabled && px.projectId)
|
|
619
744
|
loadPromises.push(initClarity(px.projectId)); });
|
|
745
|
+
const applovin = activeApplovinPixel(pixels.applovin);
|
|
746
|
+
if (applovin?.eventKey && hasForeignApplovin()) {
|
|
747
|
+
applovinStoodDown = true;
|
|
748
|
+
console.warn('[SDK Pixels] An AppLovin pixel is already on the page: the configured AppLovin pixel stays off.');
|
|
749
|
+
}
|
|
750
|
+
else if (applovin?.eventKey) {
|
|
751
|
+
loadPromises.push(initApplovin(applovin.eventKey));
|
|
752
|
+
}
|
|
620
753
|
await Promise.all(loadPromises);
|
|
621
754
|
}
|
|
622
755
|
catch (error) {
|
|
@@ -633,11 +766,16 @@ export function createPixelTracker(rawPixels, opts) {
|
|
|
633
766
|
// before Snap/TikTok events fire so the hashed keys are attached in time.
|
|
634
767
|
let _identityKey = null;
|
|
635
768
|
let _identityReady = null;
|
|
769
|
+
// AppLovin has no identify call: its user_data rides on every event.
|
|
770
|
+
let _applovinUserData;
|
|
636
771
|
const applyIdentity = (id) => {
|
|
637
772
|
if (!pixels)
|
|
638
773
|
return null;
|
|
639
774
|
if (!id.email && !id.phone && !id.externalId)
|
|
640
775
|
return null;
|
|
776
|
+
const applovinUserData = toApplovinUserData(id);
|
|
777
|
+
if (applovinUserData)
|
|
778
|
+
_applovinUserData = { ..._applovinUserData, ...applovinUserData };
|
|
641
779
|
const key = `${id.email ?? ''}|${id.phone ?? ''}|${id.externalId ?? ''}`;
|
|
642
780
|
if (_identityKey === key && _identityReady)
|
|
643
781
|
return _identityReady;
|
|
@@ -701,13 +839,13 @@ export function createPixelTracker(rawPixels, opts) {
|
|
|
701
839
|
const track = (eventName, parameters = {}, options = {}) => {
|
|
702
840
|
if (!pixels || !pixelsInitialized)
|
|
703
841
|
return;
|
|
704
|
-
if (!shouldTrackEvent(eventName, parameters, options.eventId))
|
|
842
|
+
if (!shouldTrackEvent(eventName, parameters, options.eventId, options.providers))
|
|
705
843
|
return;
|
|
706
844
|
try {
|
|
707
845
|
// Apply advanced matching before firing so Snap/TikTok carry the match
|
|
708
846
|
// keys on this event. Other providers fire immediately (unaffected).
|
|
709
847
|
const identityReady = applyIdentityFromParams(parameters);
|
|
710
|
-
const events = resolvePixelEvents(pixels, eventName, parameters);
|
|
848
|
+
const events = resolvePixelEvents(pixels, eventName, parameters).filter(({ provider }) => !options.providers || options.providers.includes(provider));
|
|
711
849
|
// Deduplicate by provider: the Snapchat/Pinterest SDKs broadcast to all
|
|
712
850
|
// registered pixel IDs internally, so we only need to fire once per
|
|
713
851
|
// provider. GTM, TikTok and Meta need per-pixel firing (GTM for Google Ads
|
|
@@ -733,6 +871,25 @@ export function createPixelTracker(rawPixels, opts) {
|
|
|
733
871
|
firedPixels.add(pixelKey);
|
|
734
872
|
emit(() => fire(provider, mapped.name, mapped.params, pixel, options));
|
|
735
873
|
}
|
|
874
|
+
else if (provider === 'applovin') {
|
|
875
|
+
if (applovinStoodDown || firedProviders.has(provider))
|
|
876
|
+
continue;
|
|
877
|
+
firedProviders.add(provider);
|
|
878
|
+
const params = _applovinUserData
|
|
879
|
+
? {
|
|
880
|
+
...mapped.params,
|
|
881
|
+
user_data: { ..._applovinUserData, ...mapped.params.user_data },
|
|
882
|
+
}
|
|
883
|
+
: mapped.params;
|
|
884
|
+
const transactionId = mapped.name === 'purchase' && typeof params.transaction_id === 'string' ? params.transaction_id : '';
|
|
885
|
+
if (transactionId && (applovinPurchasesOnPage.has(transactionId) || wasApplovinPurchaseSent(transactionId)))
|
|
886
|
+
continue;
|
|
887
|
+
fire(provider, mapped.name, params, undefined, options);
|
|
888
|
+
if (transactionId) {
|
|
889
|
+
applovinPurchasesOnPage.add(transactionId);
|
|
890
|
+
rememberApplovinPurchaseWhenReceived(transactionId);
|
|
891
|
+
}
|
|
892
|
+
}
|
|
736
893
|
else {
|
|
737
894
|
if (!firedProviders.has(provider)) {
|
|
738
895
|
emit(() => fire(provider, mapped.name, mapped.params, undefined, options));
|