stormcloud-video-player 0.8.59 → 0.8.61

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 (82) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +1369 -1369
  3. package/dist/stormcloud-vp.min.js +3 -1
  4. package/lib/Player.cjs +548 -0
  5. package/lib/Player.cjs.map +1 -0
  6. package/lib/Player.d.cts +146 -0
  7. package/lib/{index.js → StormcloudPlayer.cjs} +1193 -1908
  8. package/lib/StormcloudPlayer.cjs.map +1 -0
  9. package/lib/{index.d.ts → StormcloudPlayer.d.cts} +7 -400
  10. package/lib/index.cjs +1064 -280
  11. package/lib/index.cjs.map +1 -1
  12. package/lib/index.d.cts +18 -4032
  13. package/lib/patterns.cjs +111 -0
  14. package/lib/patterns.cjs.map +1 -0
  15. package/lib/patterns.d.cts +14 -0
  16. package/lib/player/AdBreakOrchestrator.cjs +51 -16
  17. package/lib/player/AdBreakOrchestrator.cjs.map +1 -1
  18. package/lib/player/AdBreakOrchestrator.d.cts +3 -1
  19. package/lib/player/AdConfigManager.cjs +206 -26
  20. package/lib/player/AdConfigManager.cjs.map +1 -1
  21. package/lib/player/AdConfigManager.d.cts +1 -1
  22. package/lib/player/AdTimingService.cjs.map +1 -1
  23. package/lib/player/AdTimingService.d.cts +1 -1
  24. package/lib/player/HlsEngine.cjs.map +1 -1
  25. package/lib/player/HlsEngine.d.cts +1 -1
  26. package/lib/player/PlaceholderLayer.cjs.map +1 -1
  27. package/lib/player/PlayerControls.cjs.map +1 -1
  28. package/lib/player/PlayerControls.d.cts +1 -1
  29. package/lib/player/Scte35CueManager.cjs.map +1 -1
  30. package/lib/player/Scte35CueManager.d.cts +1 -1
  31. package/lib/player/Scte35Parser.cjs.map +1 -1
  32. package/lib/player/Scte35Parser.d.cts +1 -1
  33. package/lib/player/StormcloudVideoPlayer.cjs +1060 -278
  34. package/lib/player/StormcloudVideoPlayer.cjs.map +1 -1
  35. package/lib/player/StormcloudVideoPlayer.d.cts +1 -1
  36. package/lib/player/playerTypes.cjs.map +1 -1
  37. package/lib/player/playerTypes.d.cts +1 -1
  38. package/lib/players/FilePlayer.cjs.map +1 -1
  39. package/lib/players/HlsPlayer.cjs +1060 -278
  40. package/lib/players/HlsPlayer.cjs.map +1 -1
  41. package/lib/players/HlsPlayer.d.cts +1 -1
  42. package/lib/players/index.cjs +1060 -278
  43. package/lib/players/index.cjs.map +1 -1
  44. package/lib/props.cjs +186 -0
  45. package/lib/props.cjs.map +1 -0
  46. package/lib/props.d.cts +62 -0
  47. package/lib/sdk/hlsAdPlayer.cjs +884 -234
  48. package/lib/sdk/hlsAdPlayer.cjs.map +1 -1
  49. package/lib/sdk/hlsAdPlayer.d.cts +1 -1
  50. package/lib/sdk/pal.cjs +9 -5
  51. package/lib/sdk/pal.cjs.map +1 -1
  52. package/lib/sdk/pal.d.cts +1 -0
  53. package/lib/types.cjs +49 -0
  54. package/lib/types.cjs.map +1 -0
  55. package/lib/{types-52ASml2N.d.cts → types.d.cts} +48 -1
  56. package/lib/ui/StormcloudVideoPlayer.cjs +1064 -280
  57. package/lib/ui/StormcloudVideoPlayer.cjs.map +1 -1
  58. package/lib/ui/StormcloudVideoPlayer.d.cts +1 -1
  59. package/lib/utils/browserCompat.cjs.map +1 -1
  60. package/lib/utils/ctvVastSignals.cjs +178 -19
  61. package/lib/utils/ctvVastSignals.cjs.map +1 -1
  62. package/lib/utils/devUrl.cjs.map +1 -1
  63. package/lib/utils/polyfills.cjs.map +1 -1
  64. package/lib/utils/tracking.cjs +45 -16
  65. package/lib/utils/tracking.cjs.map +1 -1
  66. package/lib/utils/tracking.d.cts +1 -1
  67. package/lib/utils/trackingIngest.cjs.map +1 -1
  68. package/lib/utils/vastEnvironmentSignals.cjs +192 -20
  69. package/lib/utils/vastEnvironmentSignals.cjs.map +1 -1
  70. package/lib/utils/vastEnvironmentSignals.d.cts +13 -2
  71. package/lib/utils/vastMacros.cjs +50 -4
  72. package/lib/utils/vastMacros.cjs.map +1 -1
  73. package/lib/utils/vastMacros.d.cts +2 -0
  74. package/lib/utils/vastTrackingMacros.cjs +5 -0
  75. package/lib/utils/vastTrackingMacros.cjs.map +1 -1
  76. package/lib/utils/vastTrackingMacros.d.cts +2 -0
  77. package/lib/utils.cjs +292 -0
  78. package/lib/utils.cjs.map +1 -0
  79. package/lib/utils.d.cts +17 -0
  80. package/package.json +91 -91
  81. package/rollup.config.js +90 -90
  82. package/lib/index.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { S as Scte35Marker, a as StormcloudVideoPlayerConfig, A as AdController } from '../types-52ASml2N.cjs';
1
+ import { Scte35Marker, StormcloudVideoPlayerConfig, AdController } from '../types.cjs';
2
2
  import { AdTimingService } from './AdTimingService.cjs';
3
3
  import { AdConfigManager } from './AdConfigManager.cjs';
4
4
  import { Scte35CueManager } from './Scte35CueManager.cjs';
@@ -21,6 +21,8 @@ interface AdBreakOrchestratorHost {
21
21
  recoverMediaError(): void;
22
22
  requiresMediaPipelineResetAfterAds(): boolean;
23
23
  generatePodVastUrl(baseUrl: string, breakDurationMs?: number): string;
24
+ onAdClick(): void;
25
+ onAdInteraction(event: MouseEvent | TouchEvent): void;
24
26
  }
25
27
  declare class AdBreakOrchestrator {
26
28
  inAdBreak: boolean;
@@ -310,6 +310,8 @@ __export(AdConfigManager_exports, {
310
310
  module.exports = __toCommonJS(AdConfigManager_exports);
311
311
  // src/utils/vastEnvironmentSignals.ts
312
312
  var CTV_SESSION_STORAGE_KEY = "stormcloud.ctv.sid";
313
+ var WEB_SESSION_STORAGE_KEY = "stormcloud.web.sid";
314
+ var inMemoryWebSessionId;
313
315
  var PLAYER_ID_STORAGE_KEY = "stormcloud.player.id";
314
316
  var DEVICE_ID_STORAGE_KEYS = [
315
317
  "rdid",
@@ -331,7 +333,7 @@ function resolveVastEnvironmentSignals(isCtv) {
331
333
  var _ref;
332
334
  var bridgeSignals = readNativeBridgeSignals();
333
335
  var platformDevice = readPlatformNativeDeviceId();
334
- var realDeviceId = bridgeSignals.deviceId || readStoredDeviceId() || platformDevice.deviceId;
336
+ var realDeviceId = bridgeSignals.deviceId || (isCtv ? readStoredDeviceId() : void 0) || platformDevice.deviceId;
335
337
  var deviceId = realDeviceId;
336
338
  var deviceIdType = bridgeSignals.deviceIdType || readStoredString("deviceIdType") || readStoredString("idtype") || platformDevice.deviceIdType || inferDeviceIdType();
337
339
  var platformLat = bridgeSignals.deviceId ? bridgeSignals.limitAdTracking : platformDevice.limitAdTracking;
@@ -345,6 +347,7 @@ function resolveVastEnvironmentSignals(isCtv) {
345
347
  limitAdTracking = (_ref1 = platformLat !== null && platformLat !== void 0 ? platformLat : readStoredLimitAdTracking()) !== null && _ref1 !== void 0 ? _ref1 : false;
346
348
  }
347
349
  }
350
+ var deviceTypeHint = resolveDeviceTypeHint(isCtv);
348
351
  if (isCtv) {
349
352
  return _object_spread_props(_object_spread({
350
353
  isCtv: true,
@@ -356,18 +359,157 @@ function resolveVastEnvironmentSignals(isCtv) {
356
359
  } : {}, deviceId && limitAdTracking != null ? {
357
360
  limitAdTracking: limitAdTracking
358
361
  } : {}), {
359
- deviceTypeHint: 5
362
+ deviceTypeHint: deviceTypeHint
360
363
  });
361
364
  }
362
- return _object_spread({
365
+ var webSessionId = getOrCreateWebSessionId();
366
+ return _object_spread_props(_object_spread({
363
367
  isCtv: false
364
- }, deviceId ? {
368
+ }, webSessionId ? {
369
+ sessionId: webSessionId
370
+ } : {}, deviceId ? {
365
371
  deviceId: deviceId
366
372
  } : {}, deviceId && deviceIdType ? {
367
373
  deviceIdType: deviceIdType
368
374
  } : {}, deviceId && limitAdTracking != null ? {
369
375
  limitAdTracking: limitAdTracking
370
- } : {});
376
+ } : {}), {
377
+ deviceTypeHint: deviceTypeHint
378
+ });
379
+ }
380
+ var DEVICE_TYPE_HINT = {
381
+ FEATURE_PHONE: 1,
382
+ SMARTPHONE: 2,
383
+ DESKTOP: 3,
384
+ TABLET: 4,
385
+ CONNECTED_TV: 5,
386
+ GAME_CONSOLE: 6,
387
+ SET_TOP_BOX: 7
388
+ };
389
+ var DEVICE_TYPE_HINT_ALIASES = {
390
+ featurephone: DEVICE_TYPE_HINT.FEATURE_PHONE,
391
+ smartphone: DEVICE_TYPE_HINT.SMARTPHONE,
392
+ mobile: DEVICE_TYPE_HINT.SMARTPHONE,
393
+ phone: DEVICE_TYPE_HINT.SMARTPHONE,
394
+ desktop: DEVICE_TYPE_HINT.DESKTOP,
395
+ pc: DEVICE_TYPE_HINT.DESKTOP,
396
+ tablet: DEVICE_TYPE_HINT.TABLET,
397
+ ctv: DEVICE_TYPE_HINT.CONNECTED_TV,
398
+ tv: DEVICE_TYPE_HINT.CONNECTED_TV,
399
+ connectedtv: DEVICE_TYPE_HINT.CONNECTED_TV,
400
+ smarttv: DEVICE_TYPE_HINT.CONNECTED_TV,
401
+ console: DEVICE_TYPE_HINT.GAME_CONSOLE,
402
+ gameconsole: DEVICE_TYPE_HINT.GAME_CONSOLE,
403
+ stb: DEVICE_TYPE_HINT.SET_TOP_BOX,
404
+ settopbox: DEVICE_TYPE_HINT.SET_TOP_BOX
405
+ };
406
+ var SET_TOP_BOX_UA = /LGSTB|\bSTB\b|STB\d|Set-?Top|SetTopBox|TV ?Box|Kaon|Humax|Arris|Technicolor|Sagemcom|Infomir|MAG\d{3}|KreaTV|Amino|Formuler|Dune ?HD|TiVo|MiBOX|Mi Box|SHIELD Android TV|\bAFT[A-Z]|Roku|AppleTV|Apple TV|CrKey/i;
407
+ var GAME_CONSOLE_UA = /PlayStation|Xbox|Nintendo/i;
408
+ var CONNECTED_TV_UA = /Web0S|webOS|Tizen|SMART-TV|SmartTV|NetCast|BRAVIA|HbbTV|VIDAA|Hisense|Philips|Viera|AQUOS|Android TV|Google TV|\bTV\b/i;
409
+ var FEATURE_PHONE_UA = /KAIOS|MIDP|J2ME|Series40|Opera Mini/i;
410
+ function resolveDeviceTypeHint(isCtv) {
411
+ var override = readDeviceTypeHintOverride(isCtv);
412
+ if (override != null) return override;
413
+ return inferDeviceTypeHint(isCtv);
414
+ }
415
+ function inferDeviceTypeHint(isCtv) {
416
+ var fallback = isCtv ? DEVICE_TYPE_HINT.CONNECTED_TV : DEVICE_TYPE_HINT.DESKTOP;
417
+ if (typeof navigator === "undefined") return fallback;
418
+ var ua = navigator.userAgent || "";
419
+ var maxTouchPoints = navigator.maxTouchPoints || 0;
420
+ if (SET_TOP_BOX_UA.test(ua)) return DEVICE_TYPE_HINT.SET_TOP_BOX;
421
+ if (GAME_CONSOLE_UA.test(ua)) return DEVICE_TYPE_HINT.GAME_CONSOLE;
422
+ if (CONNECTED_TV_UA.test(ua) && !/Mobile/i.test(ua)) {
423
+ return DEVICE_TYPE_HINT.CONNECTED_TV;
424
+ }
425
+ if (FEATURE_PHONE_UA.test(ua)) return DEVICE_TYPE_HINT.FEATURE_PHONE;
426
+ if (/iPad/i.test(ua) || /Macintosh/i.test(ua) && maxTouchPoints > 1) {
427
+ return DEVICE_TYPE_HINT.TABLET;
428
+ }
429
+ if (/iPhone|iPod/i.test(ua)) return DEVICE_TYPE_HINT.SMARTPHONE;
430
+ if (/Android/i.test(ua)) {
431
+ if (/Mobile/i.test(ua)) return DEVICE_TYPE_HINT.SMARTPHONE;
432
+ if (maxTouchPoints === 0) return DEVICE_TYPE_HINT.SET_TOP_BOX;
433
+ return DEVICE_TYPE_HINT.TABLET;
434
+ }
435
+ if (/Mobile|Windows Phone|BlackBerry/i.test(ua)) return DEVICE_TYPE_HINT.SMARTPHONE;
436
+ return fallback;
437
+ }
438
+ function readDeviceTypeHintOverride(isCtv) {
439
+ if (typeof window === "undefined") return void 0;
440
+ var keys = [
441
+ "dth",
442
+ "deviceTypeHint"
443
+ ];
444
+ var fromGlobal = normalizeDeviceTypeHint(window.__STORMCLOUD_DTH__);
445
+ if (fromGlobal != null) return fromGlobal;
446
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
447
+ try {
448
+ for(var _iterator = getNativeBridgeSources()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
449
+ var source = _step.value;
450
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
451
+ try {
452
+ for(var _iterator1 = keys[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
453
+ var key = _step1.value;
454
+ var value = source === null || source === void 0 ? void 0 : source[key];
455
+ var normalized = normalizeDeviceTypeHint(typeof value === "function" ? safeCall(value, source) : value);
456
+ if (normalized != null) return normalized;
457
+ }
458
+ } catch (err) {
459
+ _didIteratorError1 = true;
460
+ _iteratorError1 = err;
461
+ } finally{
462
+ try {
463
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
464
+ _iterator1.return();
465
+ }
466
+ } finally{
467
+ if (_didIteratorError1) {
468
+ throw _iteratorError1;
469
+ }
470
+ }
471
+ }
472
+ }
473
+ } catch (err) {
474
+ _didIteratorError = true;
475
+ _iteratorError = err;
476
+ } finally{
477
+ try {
478
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
479
+ _iterator.return();
480
+ }
481
+ } finally{
482
+ if (_didIteratorError) {
483
+ throw _iteratorError;
484
+ }
485
+ }
486
+ }
487
+ if (!isCtv) return void 0;
488
+ for(var _i = 0, _iter = [
489
+ "stormcloud.dth",
490
+ "dth"
491
+ ]; _i < _iter.length; _i++){
492
+ var key1 = _iter[_i];
493
+ var normalized1 = normalizeDeviceTypeHint(readStoredString(key1));
494
+ if (normalized1 != null) return normalized1;
495
+ }
496
+ return void 0;
497
+ }
498
+ function normalizeDeviceTypeHint(value) {
499
+ if (typeof value === "number") {
500
+ return Number.isInteger(value) && value >= 1 && value <= 7 ? value : void 0;
501
+ }
502
+ if (typeof value !== "string") return void 0;
503
+ var trimmed = value.trim();
504
+ if (/^[1-7]$/.test(trimmed)) return parseInt(trimmed, 10);
505
+ return DEVICE_TYPE_HINT_ALIASES[trimmed.toLowerCase().replace(/[\s_-]/g, "")];
506
+ }
507
+ function safeCall(fn, thisArg) {
508
+ try {
509
+ return fn.call(thisArg);
510
+ } catch (unused) {
511
+ return void 0;
512
+ }
371
513
  }
372
514
  function inferDeviceIdType() {
373
515
  if (typeof navigator === "undefined") {
@@ -391,9 +533,10 @@ function isEquivalentDeviceIdType(tagType, runtimeType) {
391
533
  return ANDROID_ID_TYPES.has(tag) && ANDROID_ID_TYPES.has(runtime);
392
534
  }
393
535
  function resolveNativeDeviceId() {
536
+ var includeStored = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
394
537
  var bridgeSignals = readNativeBridgeSignals();
395
538
  var platformDevice = readPlatformNativeDeviceId();
396
- var deviceId = bridgeSignals.deviceId || readStoredDeviceId() || platformDevice.deviceId;
539
+ var deviceId = bridgeSignals.deviceId || (includeStored ? readStoredDeviceId() : void 0) || platformDevice.deviceId;
397
540
  if (!deviceId || isMacroPlaceholder(deviceId) || isZeroedAdId(deviceId)) {
398
541
  return void 0;
399
542
  }
@@ -422,6 +565,21 @@ function getOrCreateCtvSessionId() {
422
565
  writePersistentId(CTV_SESSION_STORAGE_KEY, sessionId);
423
566
  return sessionId;
424
567
  }
568
+ function getOrCreateWebSessionId() {
569
+ if (typeof window === "undefined") return void 0;
570
+ try {
571
+ var _window_sessionStorage;
572
+ var existing = (_window_sessionStorage = window.sessionStorage) === null || _window_sessionStorage === void 0 ? void 0 : _window_sessionStorage.getItem(WEB_SESSION_STORAGE_KEY);
573
+ if (existing && !isMacroPlaceholder(existing)) return existing;
574
+ } catch (unused) {}
575
+ var sessionId = inMemoryWebSessionId || createUuid();
576
+ inMemoryWebSessionId = sessionId;
577
+ try {
578
+ var _window_sessionStorage1;
579
+ (_window_sessionStorage1 = window.sessionStorage) === null || _window_sessionStorage1 === void 0 ? void 0 : _window_sessionStorage1.setItem(WEB_SESSION_STORAGE_KEY, sessionId);
580
+ } catch (unused) {}
581
+ return sessionId;
582
+ }
425
583
  function readPersistentId(storageKey) {
426
584
  return readStoredString(storageKey) || readCookie(storageKey);
427
585
  }
@@ -573,22 +731,9 @@ function isZeroedAdId(value) {
573
731
  return ZEROED_AD_ID_PATTERNS.has(value.trim().toLowerCase());
574
732
  }
575
733
  function readNativeBridgeSignals() {
576
- if (typeof window === "undefined") {
577
- return {};
578
- }
579
- var candidates = [
580
- window.__STORMCLOUD_CTV_AD_INFO__,
581
- window.__STORMCLOUD_CTV__,
582
- window.stormcloudCtv,
583
- window.AiryTV,
584
- window.Android,
585
- window.webOS,
586
- window.tizen,
587
- window.amazon
588
- ].filter(Boolean);
589
734
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
590
735
  try {
591
- for(var _iterator = candidates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
736
+ for(var _iterator = getNativeBridgeSources()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
592
737
  var source = _step.value;
593
738
  var contentUrl = readBridgeValue(source, [
594
739
  "contentUrl",
@@ -663,6 +808,21 @@ function readNativeBridgeSignals() {
663
808
  }
664
809
  return {};
665
810
  }
811
+ function getNativeBridgeSources() {
812
+ if (typeof window === "undefined") {
813
+ return [];
814
+ }
815
+ return [
816
+ window.__STORMCLOUD_CTV_AD_INFO__,
817
+ window.__STORMCLOUD_CTV__,
818
+ window.stormcloudCtv,
819
+ window.AiryTV,
820
+ window.Android,
821
+ window.webOS,
822
+ window.tizen,
823
+ window.amazon
824
+ ].filter(Boolean);
825
+ }
666
826
  function readBridgeValue(source, keys) {
667
827
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
668
828
  try {
@@ -961,6 +1121,12 @@ function applyDeviceIdentityParams(params, ctx) {
961
1121
  params.set("is_lat", latValue !== null && latValue !== void 0 ? latValue : isMacroPlaceholder2(tagLat) ? "0" : tagLat);
962
1122
  return;
963
1123
  }
1124
+ if (!ctx.isCtv) {
1125
+ params.delete("rdid");
1126
+ params.delete("idtype");
1127
+ params.delete("is_lat");
1128
+ return;
1129
+ }
964
1130
  var tagRdidValid = Boolean(tagRdid && !isMacroPlaceholder2(tagRdid));
965
1131
  var tagTypeValid = Boolean(tagType && !isMacroPlaceholder2(tagType));
966
1132
  if (tagRdidValid && tagTypeValid && runtimeType && !isEquivalentDeviceIdType(tagType, runtimeType)) {
@@ -1115,15 +1281,24 @@ function applyVastMacros(baseUrl, ctx) {
1115
1281
  if (ctx.podMaxAds != null) {
1116
1282
  params.set("pmad", String(Math.max(1, Math.round(ctx.podMaxAds))));
1117
1283
  }
1118
- if (!ctx.isCtv && ctx.pageUrl) {
1119
- params.set("url", ctx.pageUrl);
1120
- params.set("description_url", ctx.pageUrl);
1121
- }
1122
1284
  var existingUrl = params.get("url") || "";
1123
1285
  if (EXAMPLE_COM_URL.test(existingUrl)) {
1124
1286
  params.delete("url");
1125
1287
  params.delete("description_url");
1126
1288
  }
1289
+ if (!ctx.isCtv && ctx.pageUrl) {
1290
+ if (isMacroPlaceholder2(params.get("url"))) {
1291
+ params.set("url", ctx.pageUrl);
1292
+ }
1293
+ if (isMacroPlaceholder2(params.get("description_url"))) {
1294
+ params.set("description_url", params.get("url") || ctx.pageUrl);
1295
+ }
1296
+ }
1297
+ if (!ctx.isCtv) {
1298
+ params.delete("an");
1299
+ params.delete("msid");
1300
+ params.delete("sid");
1301
+ }
1127
1302
  if (ctx.adWillPlayMuted != null) {
1128
1303
  params.set("vpmute", ctx.adWillPlayMuted ? "1" : "0");
1129
1304
  }
@@ -1157,6 +1332,9 @@ function applyVastMacros(baseUrl, ctx) {
1157
1332
  if (ctx.programTitle) {
1158
1333
  params.set("ct_ti", ctx.programTitle);
1159
1334
  }
1335
+ if (ctx.channelName) {
1336
+ params.set("ct_ch", ctx.channelName);
1337
+ }
1160
1338
  var staleKeys = [];
1161
1339
  params.forEach(function(value, key) {
1162
1340
  if (isMacroPlaceholder2(value)) {
@@ -1537,7 +1715,7 @@ function sha256Hex(input) {
1537
1715
  })();
1538
1716
  }
1539
1717
  function resolvePlayerIdentitySeed(clientInfo) {
1540
- var nativeDeviceId = resolveNativeDeviceId();
1718
+ var nativeDeviceId = resolveNativeDeviceId(clientInfo.isSmartTV);
1541
1719
  if (nativeDeviceId) {
1542
1720
  return "device:".concat(nativeDeviceId);
1543
1721
  }
@@ -2201,7 +2379,7 @@ var AdConfigManager = /*#__PURE__*/ function() {
2201
2379
  pageUrl: !envSignals.isCtv && typeof window !== "undefined" ? toDevSafeUrl(window.location.href) : void 0,
2202
2380
  adWillPlayMuted: adWillPlayMuted,
2203
2381
  adWillAutoPlay: !!this.config.autoplay,
2204
- sessionId: envSignals.sessionId,
2382
+ sessionId: envSignals.isCtv || this.consentSignals.storageAllowed !== false ? envSignals.sessionId : void 0,
2205
2383
  deviceId: envSignals.deviceId,
2206
2384
  deviceIdType: envSignals.deviceIdType,
2207
2385
  limitAdTracking: envSignals.limitAdTracking,
@@ -2209,6 +2387,8 @@ var AdConfigManager = /*#__PURE__*/ function() {
2209
2387
  adTest: this.config.adTest
2210
2388
  }, this.config.programTitle ? {
2211
2389
  programTitle: this.config.programTitle
2390
+ } : {}, this.config.channelName ? {
2391
+ channelName: this.config.channelName
2212
2392
  } : {}), {
2213
2393
  consent: this.consentSignals
2214
2394
  }));