saltfish 0.3.62 → 0.3.64
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/managers/InteractionManager.d.ts.map +1 -1
- package/dist/player.js +2 -2
- package/dist/player.min.js +2 -2
- package/dist/saltfish-playlist-player.es.js +100 -4
- package/dist/saltfish-playlist-player.umd.js +1 -1
- package/dist/utils/urlParams.d.ts +18 -0
- package/dist/utils/urlParams.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -8434,6 +8434,101 @@ class CursorManager {
|
|
|
8434
8434
|
}
|
|
8435
8435
|
}
|
|
8436
8436
|
}
|
|
8437
|
+
const TRACKING_PARAMS = [
|
|
8438
|
+
// UTM parameters (Google Analytics standard)
|
|
8439
|
+
"utm_source",
|
|
8440
|
+
"utm_medium",
|
|
8441
|
+
"utm_campaign",
|
|
8442
|
+
"utm_term",
|
|
8443
|
+
"utm_content",
|
|
8444
|
+
"utm_id",
|
|
8445
|
+
// Google Ads
|
|
8446
|
+
"gclid",
|
|
8447
|
+
// Google Click ID
|
|
8448
|
+
"gclsrc",
|
|
8449
|
+
// Google Click Source
|
|
8450
|
+
"gad_source",
|
|
8451
|
+
// Google Ads source
|
|
8452
|
+
"dclid",
|
|
8453
|
+
// Google Display Click ID
|
|
8454
|
+
"gbraid",
|
|
8455
|
+
// Google iOS App campaign ID (for privacy)
|
|
8456
|
+
"wbraid",
|
|
8457
|
+
// Google Web-to-App campaign ID (for privacy)
|
|
8458
|
+
// Facebook/Meta Ads
|
|
8459
|
+
"fbclid",
|
|
8460
|
+
// Facebook Click ID
|
|
8461
|
+
// Microsoft Ads
|
|
8462
|
+
"msclkid",
|
|
8463
|
+
// Microsoft Click ID
|
|
8464
|
+
// LinkedIn Ads
|
|
8465
|
+
"li_fat_id",
|
|
8466
|
+
// LinkedIn First-Party Ad Tracking ID
|
|
8467
|
+
// Twitter/X Ads
|
|
8468
|
+
"twclid",
|
|
8469
|
+
// Twitter Click ID
|
|
8470
|
+
// TikTok Ads
|
|
8471
|
+
"ttclid",
|
|
8472
|
+
// TikTok Click ID
|
|
8473
|
+
// Other common tracking params
|
|
8474
|
+
"ref",
|
|
8475
|
+
// Referral parameter
|
|
8476
|
+
"_ga",
|
|
8477
|
+
// Google Analytics client ID
|
|
8478
|
+
"_gl"
|
|
8479
|
+
// Google cross-domain linker
|
|
8480
|
+
];
|
|
8481
|
+
function getCurrentTrackingParams() {
|
|
8482
|
+
const params = /* @__PURE__ */ new Map();
|
|
8483
|
+
try {
|
|
8484
|
+
const currentUrl = new URL(window.location.href);
|
|
8485
|
+
for (const param of TRACKING_PARAMS) {
|
|
8486
|
+
const value = currentUrl.searchParams.get(param);
|
|
8487
|
+
if (value !== null) {
|
|
8488
|
+
params.set(param, value);
|
|
8489
|
+
}
|
|
8490
|
+
}
|
|
8491
|
+
if (params.size > 0) {
|
|
8492
|
+
log(`urlParams: Found ${params.size} tracking params in current URL: ${Array.from(params.keys()).join(", ")}`);
|
|
8493
|
+
}
|
|
8494
|
+
} catch (error2) {
|
|
8495
|
+
}
|
|
8496
|
+
return params;
|
|
8497
|
+
}
|
|
8498
|
+
function appendTrackingParams(targetUrl) {
|
|
8499
|
+
if (!targetUrl) {
|
|
8500
|
+
return targetUrl;
|
|
8501
|
+
}
|
|
8502
|
+
try {
|
|
8503
|
+
let url;
|
|
8504
|
+
if (targetUrl.startsWith("/") || !targetUrl.includes("://")) {
|
|
8505
|
+
url = new URL(targetUrl, window.location.origin);
|
|
8506
|
+
} else {
|
|
8507
|
+
url = new URL(targetUrl);
|
|
8508
|
+
}
|
|
8509
|
+
const trackingParams = getCurrentTrackingParams();
|
|
8510
|
+
if (trackingParams.size === 0) {
|
|
8511
|
+
log("urlParams: No tracking params to append");
|
|
8512
|
+
return targetUrl;
|
|
8513
|
+
}
|
|
8514
|
+
let addedParams = 0;
|
|
8515
|
+
for (const [key, value] of trackingParams) {
|
|
8516
|
+
if (!url.searchParams.has(key)) {
|
|
8517
|
+
url.searchParams.set(key, value);
|
|
8518
|
+
addedParams++;
|
|
8519
|
+
} else {
|
|
8520
|
+
log(`urlParams: Skipping ${key} - already exists in target URL`);
|
|
8521
|
+
}
|
|
8522
|
+
}
|
|
8523
|
+
if (addedParams > 0) {
|
|
8524
|
+
log(`urlParams: Appended ${addedParams} tracking params to URL`);
|
|
8525
|
+
return url.toString();
|
|
8526
|
+
}
|
|
8527
|
+
return targetUrl;
|
|
8528
|
+
} catch (error2) {
|
|
8529
|
+
return targetUrl;
|
|
8530
|
+
}
|
|
8531
|
+
}
|
|
8437
8532
|
class InteractionManager {
|
|
8438
8533
|
constructor() {
|
|
8439
8534
|
__publicField(this, "container", null);
|
|
@@ -8701,8 +8796,8 @@ class InteractionManager {
|
|
|
8701
8796
|
}
|
|
8702
8797
|
}
|
|
8703
8798
|
}
|
|
8704
|
-
|
|
8705
|
-
window.location.href =
|
|
8799
|
+
const redirectUrl = appendTrackingParams(buttonConfig.action.url);
|
|
8800
|
+
window.location.href = redirectUrl;
|
|
8706
8801
|
} else {
|
|
8707
8802
|
log(`InteractionManager: Goto button clicked, going to step "${buttonConfig.action.target}"`);
|
|
8708
8803
|
store.goToStep(buttonConfig.action.target);
|
|
@@ -8721,7 +8816,8 @@ class InteractionManager {
|
|
|
8721
8816
|
await new Promise((resolve) => setTimeout(resolve, TIMING.STATE_PROCESSING_DELAY_MS));
|
|
8722
8817
|
}
|
|
8723
8818
|
}
|
|
8724
|
-
|
|
8819
|
+
const openUrl = appendTrackingParams(buttonConfig.action.target);
|
|
8820
|
+
window.open(openUrl, "_blank");
|
|
8725
8821
|
const { SaltfishPlayer: SaltfishPlayer2 } = await Promise.resolve().then(() => SaltfishPlayer$1);
|
|
8726
8822
|
const player = SaltfishPlayer2.getInstance();
|
|
8727
8823
|
if (player) {
|
|
@@ -12469,7 +12565,7 @@ const SaltfishPlayer$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.de
|
|
|
12469
12565
|
__proto__: null,
|
|
12470
12566
|
SaltfishPlayer
|
|
12471
12567
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
12472
|
-
const version = "0.3.
|
|
12568
|
+
const version = "0.3.64";
|
|
12473
12569
|
const packageJson = {
|
|
12474
12570
|
version
|
|
12475
12571
|
};
|