@datalyr/web 1.7.1 → 1.7.2
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/dist/attribution.d.ts +1 -0
- package/dist/attribution.d.ts.map +1 -1
- package/dist/datalyr.cjs.js +26 -2
- package/dist/datalyr.cjs.js.map +1 -1
- package/dist/datalyr.esm.js +26 -2
- package/dist/datalyr.esm.js.map +1 -1
- package/dist/datalyr.esm.min.js +1 -1
- package/dist/datalyr.esm.min.js.map +1 -1
- package/dist/datalyr.js +26 -2
- package/dist/datalyr.js.map +1 -1
- package/dist/datalyr.min.js +1 -1
- package/dist/datalyr.min.js.map +1 -1
- package/package.json +1 -1
package/dist/attribution.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attribution.d.ts","sourceRoot":"","sources":["../src/attribution.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEvD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,aAAa,CAAW;IAChC,OAAO,CAAC,gBAAgB,CAAuC;IAC/D,OAAO,CAAC,UAAU,CAA2E;IAE7F,OAAO,CAAC,SAAS,CAgBf;IAEF,OAAO,CAAC,sBAAsB,CAO5B;gBAEU,OAAO,GAAE;QACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB;IAMN;;;OAGG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,kBAAkB,IAAI,WAAW;
|
|
1
|
+
{"version":3,"file":"attribution.d.ts","sourceRoot":"","sources":["../src/attribution.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEvD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,aAAa,CAAW;IAChC,OAAO,CAAC,gBAAgB,CAAuC;IAC/D,OAAO,CAAC,UAAU,CAA2E;IAE7F,OAAO,CAAC,SAAS,CAgBf;IAMF,OAAO,CAAC,gBAAgB,CAGtB;IAEF,OAAO,CAAC,sBAAsB,CAO5B;gBAEU,OAAO,GAAE;QACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB;IAMN;;;OAGG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,kBAAkB,IAAI,WAAW;IAiFjC;;;;;OAKG;IACH,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAwB/C;;;OAGG;IACH,aAAa,IAAI,WAAW,GAAG,IAAI;IASnC;;OAEG;IACH,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAQ9C;;;OAGG;IACH,YAAY,IAAI,WAAW,GAAG,IAAI;IASlC;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI;IAqBhE;;OAEG;IACH,UAAU,IAAI,UAAU,EAAE;IAI1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAyExB;;;OAGG;IACH,OAAO,CAAC,UAAU;IAKlB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;OAEG;IACH,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAiFzC;;OAEG;IACH,OAAO,CAAC,eAAe;IAuDvB;;OAEG;IACH,OAAO,CAAC,eAAe;IA2BvB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAQvB;;OAEG;IACH,oBAAoB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO;IAKvD;;OAEG;IACH,uBAAuB,IAAI,IAAI;CAYhC"}
|
package/dist/datalyr.cjs.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @datalyr/web v1.7.
|
|
2
|
+
* @datalyr/web v1.7.2
|
|
3
3
|
* Datalyr Web SDK - Modern attribution tracking for web applications
|
|
4
4
|
* (c) 2026 Datalyr Inc.
|
|
5
5
|
* Released under the MIT License
|
|
@@ -1363,7 +1363,7 @@ class AttributionManager {
|
|
|
1363
1363
|
'msclkid', // Microsoft/Bing
|
|
1364
1364
|
'twclid', // Twitter/X
|
|
1365
1365
|
'li_fat_id', // LinkedIn
|
|
1366
|
-
'sclid', // Snapchat
|
|
1366
|
+
'sclid', // Snapchat (canonical internal name — see CLICK_ID_ALIASES)
|
|
1367
1367
|
'dclid', // Google Display/DoubleClick
|
|
1368
1368
|
'epik', // Pinterest
|
|
1369
1369
|
'rdt_cid', // Reddit
|
|
@@ -1371,6 +1371,15 @@ class AttributionManager {
|
|
|
1371
1371
|
'irclid', // Impact Radius
|
|
1372
1372
|
'ko_click_id' // Klaviyo
|
|
1373
1373
|
];
|
|
1374
|
+
// Real ad-platform URL params whose value we store under a canonical internal
|
|
1375
|
+
// name. Snapchat appends &ScCid= (alias `sccid`) to the landing URL — it does
|
|
1376
|
+
// NOT use `sclid`. Query-param lookup is case-sensitive, so capture the real
|
|
1377
|
+
// params and normalize to `sclid`, which ingest / the MV / server-side
|
|
1378
|
+
// attribution all key on. Without this, real Snap ad clicks captured nothing.
|
|
1379
|
+
this.CLICK_ID_ALIASES = {
|
|
1380
|
+
ScCid: 'sclid',
|
|
1381
|
+
sccid: 'sclid',
|
|
1382
|
+
};
|
|
1374
1383
|
// Default tracked params matching dl.js
|
|
1375
1384
|
this.DEFAULT_TRACKED_PARAMS = [
|
|
1376
1385
|
'lyr', // Datalyr partner tracking
|
|
@@ -1427,6 +1436,18 @@ class AttributionManager {
|
|
|
1427
1436
|
attribution[clickId] = value;
|
|
1428
1437
|
}
|
|
1429
1438
|
}
|
|
1439
|
+
// Aliased click IDs (e.g. Snap's ScCid/sccid → canonical sclid). Param lookup
|
|
1440
|
+
// above is case-sensitive and uses canonical names, so check the real params here.
|
|
1441
|
+
for (const [param, canonical] of Object.entries(this.CLICK_ID_ALIASES)) {
|
|
1442
|
+
const value = params[param];
|
|
1443
|
+
if (value && !attribution[canonical]) {
|
|
1444
|
+
if (!attribution.clickId) {
|
|
1445
|
+
attribution.clickId = value;
|
|
1446
|
+
attribution.clickIdType = canonical;
|
|
1447
|
+
}
|
|
1448
|
+
attribution[canonical] = value;
|
|
1449
|
+
}
|
|
1450
|
+
}
|
|
1430
1451
|
// Capture custom tracked parameters
|
|
1431
1452
|
for (const param of this.trackedParams) {
|
|
1432
1453
|
const value = params[param];
|
|
@@ -1551,6 +1572,9 @@ class AttributionManager {
|
|
|
1551
1572
|
// TikTok cookies
|
|
1552
1573
|
adCookies._ttp = cookies.get('_ttp');
|
|
1553
1574
|
adCookies._ttc = cookies.get('_ttc');
|
|
1575
|
+
// Snapchat first-party cookie (Snap Pixel sets _scid). Flows to the server as
|
|
1576
|
+
// cookies._scid and is sent on the Snap CAPI event as sc_cookie1 (raw).
|
|
1577
|
+
adCookies._scid = cookies.get('_scid');
|
|
1554
1578
|
// Generate _fbp if missing (Facebook browser ID)
|
|
1555
1579
|
if (!adCookies._fbp && (this.hasClickId('fbclid') || adCookies._fbc)) {
|
|
1556
1580
|
const timestamp = Date.now();
|