stormcloud-video-player 0.3.60 → 0.3.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.
@@ -2696,40 +2696,66 @@ function getBrowserID(clientInfo) {
2696
2696
  });
2697
2697
  })();
2698
2698
  }
2699
- function sendInitialTracking(licenseKey) {
2699
+ var PLAYER_TRACKING_BASE_URL = "https://adstorm.co/api-adstorm-dev/adstorm/player-tracking";
2700
+ var TRACK_URL = "".concat(PLAYER_TRACKING_BASE_URL, "/metrics/ingest");
2701
+ var HEARTBEAT_URL = "".concat(PLAYER_TRACKING_BASE_URL, "/heartbeat");
2702
+ var IMPRESSIONS_URL = "".concat(PLAYER_TRACKING_BASE_URL, "/impressions/ingest");
2703
+ function buildHeaders(licenseKey) {
2704
+ var headers = {
2705
+ "Content-Type": "application/json"
2706
+ };
2707
+ if (licenseKey) {
2708
+ headers["Authorization"] = "Bearer ".concat(licenseKey);
2709
+ }
2710
+ return headers;
2711
+ }
2712
+ function sendTrackRequest(licenseKey, body) {
2700
2713
  return _async_to_generator(function() {
2701
- var clientInfo, browserId, trackingData, headers, response, error;
2714
+ var response;
2702
2715
  return _ts_generator(this, function(_state) {
2703
2716
  switch(_state.label){
2704
2717
  case 0:
2705
- _state.trys.push([
2706
- 0,
2707
- 4,
2708
- ,
2709
- 5
2710
- ]);
2711
- clientInfo = getClientInfo();
2712
2718
  return [
2713
2719
  4,
2714
- getBrowserID(clientInfo)
2720
+ fetch(TRACK_URL, {
2721
+ method: "POST",
2722
+ headers: buildHeaders(licenseKey),
2723
+ body: JSON.stringify(body)
2724
+ })
2715
2725
  ];
2716
2726
  case 1:
2717
- browserId = _state.sent();
2718
- trackingData = _object_spread({
2719
- browserId: browserId
2720
- }, clientInfo);
2721
- headers = {
2722
- "Content-Type": "application/json"
2723
- };
2727
+ response = _state.sent();
2728
+ if (!response.ok) {
2729
+ throw new Error("HTTP error! status: ".concat(response.status));
2730
+ }
2724
2731
  return [
2725
2732
  4,
2726
- fetch("https://adstorm.co/api-adstorm-dev/adstorm/player-tracking/track", {
2733
+ response.json()
2734
+ ];
2735
+ case 2:
2736
+ _state.sent();
2737
+ return [
2738
+ 2
2739
+ ];
2740
+ }
2741
+ });
2742
+ })();
2743
+ }
2744
+ function postJson(url, licenseKey, body) {
2745
+ return _async_to_generator(function() {
2746
+ var response;
2747
+ return _ts_generator(this, function(_state) {
2748
+ switch(_state.label){
2749
+ case 0:
2750
+ return [
2751
+ 4,
2752
+ fetch(url, {
2727
2753
  method: "POST",
2728
- headers: headers,
2729
- body: JSON.stringify(trackingData)
2754
+ headers: buildHeaders(licenseKey),
2755
+ body: JSON.stringify(body)
2730
2756
  })
2731
2757
  ];
2732
- case 2:
2758
+ case 1:
2733
2759
  response = _state.sent();
2734
2760
  if (!response.ok) {
2735
2761
  throw new Error("HTTP error! status: ".concat(response.status));
@@ -2738,35 +2764,63 @@ function sendInitialTracking(licenseKey) {
2738
2764
  4,
2739
2765
  response.json()
2740
2766
  ];
2741
- case 3:
2767
+ case 2:
2742
2768
  _state.sent();
2743
2769
  return [
2744
- 3,
2745
- 5
2770
+ 2
2746
2771
  ];
2747
- case 4:
2748
- error = _state.sent();
2749
- console.error("[StormcloudVideoPlayer] Error sending initial tracking data:", error);
2772
+ }
2773
+ });
2774
+ })();
2775
+ }
2776
+ function buildPlayerMetricEvent(_0) {
2777
+ return _async_to_generator(function(licenseKey) {
2778
+ var context, flags, _flags_captureAt, clientInfo, browserId, captureAt;
2779
+ var _arguments = arguments;
2780
+ return _ts_generator(this, function(_state) {
2781
+ switch(_state.label){
2782
+ case 0:
2783
+ context = _arguments.length > 1 && _arguments[1] !== void 0 ? _arguments[1] : {}, flags = _arguments.length > 2 && _arguments[2] !== void 0 ? _arguments[2] : {};
2784
+ clientInfo = getClientInfo();
2750
2785
  return [
2751
- 3,
2752
- 5
2786
+ 4,
2787
+ getBrowserID(clientInfo)
2753
2788
  ];
2754
- case 5:
2789
+ case 1:
2790
+ browserId = _state.sent();
2791
+ captureAt = (_flags_captureAt = flags.captureAt) !== null && _flags_captureAt !== void 0 ? _flags_captureAt : /* @__PURE__ */ new Date().toISOString();
2755
2792
  return [
2756
- 2
2793
+ 2,
2794
+ {
2795
+ player_id: browserId,
2796
+ browserId: browserId,
2797
+ device_type: clientInfo.deviceType,
2798
+ deviceType: clientInfo.deviceType,
2799
+ input_stream_type: context.inputStreamType,
2800
+ os: clientInfo.os,
2801
+ ad_loaded: flags.adLoaded,
2802
+ ad_detect: flags.adDetect,
2803
+ license_key: licenseKey,
2804
+ capture_at: captureAt,
2805
+ timestamp: captureAt
2806
+ }
2757
2807
  ];
2758
2808
  }
2759
2809
  });
2760
- })();
2810
+ }).apply(this, arguments);
2761
2811
  }
2762
- function sendHeartbeat(licenseKey) {
2763
- return _async_to_generator(function() {
2764
- var clientInfo, browserId, heartbeatData, headers, response, error;
2812
+ function sendInitialTracking(_0) {
2813
+ return _async_to_generator(function(licenseKey) {
2814
+ var context, clientInfo, browserId, trackingData, error;
2815
+ var _arguments = arguments;
2765
2816
  return _ts_generator(this, function(_state) {
2766
2817
  switch(_state.label){
2767
2818
  case 0:
2819
+ context = _arguments.length > 1 && _arguments[1] !== void 0 ? _arguments[1] : {};
2820
+ _state.label = 1;
2821
+ case 1:
2768
2822
  _state.trys.push([
2769
- 0,
2823
+ 1,
2770
2824
  4,
2771
2825
  ,
2772
2826
  5
@@ -2776,35 +2830,29 @@ function sendHeartbeat(licenseKey) {
2776
2830
  4,
2777
2831
  getBrowserID(clientInfo)
2778
2832
  ];
2779
- case 1:
2833
+ case 2:
2780
2834
  browserId = _state.sent();
2781
- heartbeatData = {
2782
- browserId: browserId,
2783
- timestamp: /* @__PURE__ */ new Date().toISOString()
2784
- };
2785
- headers = {
2786
- "Content-Type": "application/json"
2787
- };
2788
- if (licenseKey) {
2789
- headers["Authorization"] = "Bearer ".concat(licenseKey);
2790
- }
2835
+ trackingData = _object_spread({
2836
+ browserId: browserId
2837
+ }, clientInfo);
2791
2838
  return [
2792
2839
  4,
2793
- fetch("https://adstorm.co/api-adstorm-dev/adstorm/player-tracking/heartbeat", {
2794
- method: "POST",
2795
- headers: headers,
2796
- body: JSON.stringify(heartbeatData)
2840
+ sendTrackRequest(licenseKey, {
2841
+ events: [
2842
+ {
2843
+ player_id: browserId,
2844
+ device_type: clientInfo.deviceType,
2845
+ input_stream_type: context.inputStreamType,
2846
+ os: clientInfo.os,
2847
+ ad_loaded: false,
2848
+ ad_detect: false,
2849
+ license_key: licenseKey,
2850
+ capture_at: /* @__PURE__ */ new Date().toISOString()
2851
+ }
2852
+ ],
2853
+ trackingData: trackingData
2797
2854
  })
2798
2855
  ];
2799
- case 2:
2800
- response = _state.sent();
2801
- if (!response.ok) {
2802
- throw new Error("HTTP error! status: ".concat(response.status));
2803
- }
2804
- return [
2805
- 4,
2806
- response.json()
2807
- ];
2808
2856
  case 3:
2809
2857
  _state.sent();
2810
2858
  return [
@@ -2813,7 +2861,7 @@ function sendHeartbeat(licenseKey) {
2813
2861
  ];
2814
2862
  case 4:
2815
2863
  error = _state.sent();
2816
- console.error("[StormcloudVideoPlayer] Error sending heartbeat:", error);
2864
+ console.error("[StormcloudVideoPlayer] Error sending initial tracking data:", error);
2817
2865
  return [
2818
2866
  3,
2819
2867
  5
@@ -2824,95 +2872,74 @@ function sendHeartbeat(licenseKey) {
2824
2872
  ];
2825
2873
  }
2826
2874
  });
2827
- })();
2828
- }
2829
- var TRACK_API_URL = "https://adstorm.co/api-adstorm-dev/adstorm/player-tracking/track";
2830
- function mapToAdTrackingSource(source, adPlayerType) {
2831
- if (source === "prebid" || source === "ima" || source === "hls") {
2832
- return source;
2833
- }
2834
- if (source === "preload" || source === "ssp") {
2835
- return source === "ssp" ? "prebid" : "ima";
2836
- }
2837
- return adPlayerType === "hls" ? "hls" : "ima";
2875
+ }).apply(this, arguments);
2838
2876
  }
2839
- function postAdTracking(licenseKey, body) {
2840
- return _async_to_generator(function() {
2841
- var headers, response;
2877
+ function sendAdDetectTracking(_0, _1) {
2878
+ return _async_to_generator(function(licenseKey, adDetectInfo) {
2879
+ var context, error;
2880
+ var _arguments = arguments;
2842
2881
  return _ts_generator(this, function(_state) {
2843
2882
  switch(_state.label){
2844
2883
  case 0:
2845
- headers = {
2846
- "Content-Type": "application/json"
2847
- };
2848
- if (licenseKey) {
2849
- headers["Authorization"] = "Bearer ".concat(licenseKey);
2850
- }
2851
- return [
2852
- 4,
2853
- fetch(TRACK_API_URL, {
2854
- method: "POST",
2855
- headers: headers,
2856
- body: JSON.stringify(body)
2857
- })
2858
- ];
2884
+ context = _arguments.length > 2 && _arguments[2] !== void 0 ? _arguments[2] : {};
2885
+ _state.label = 1;
2859
2886
  case 1:
2860
- response = _state.sent();
2861
- if (!response.ok) {
2862
- throw new Error("HTTP error! status: ".concat(response.status));
2863
- }
2887
+ _state.trys.push([
2888
+ 1,
2889
+ 3,
2890
+ ,
2891
+ 4
2892
+ ]);
2864
2893
  return [
2865
2894
  4,
2866
- response.json()
2895
+ sendHeartbeat(licenseKey, context, {
2896
+ adDetect: true,
2897
+ captureAt: adDetectInfo.timestamp
2898
+ })
2867
2899
  ];
2868
2900
  case 2:
2869
2901
  _state.sent();
2902
+ return [
2903
+ 3,
2904
+ 4
2905
+ ];
2906
+ case 3:
2907
+ error = _state.sent();
2908
+ console.error("[StormcloudVideoPlayer] Error sending ad detect tracking:", error);
2909
+ return [
2910
+ 3,
2911
+ 4
2912
+ ];
2913
+ case 4:
2870
2914
  return [
2871
2915
  2
2872
2916
  ];
2873
2917
  }
2874
2918
  });
2875
- })();
2919
+ }).apply(this, arguments);
2876
2920
  }
2877
- function sendAdDetectTracking(licenseKey, payload) {
2878
- return _async_to_generator(function() {
2879
- var _payload_source, _payload_timestamp, clientInfo, browserId, adDetectInfo, body, error;
2921
+ function sendAdLoadedTracking(_0, _1) {
2922
+ return _async_to_generator(function(licenseKey, adLoadedInfo) {
2923
+ var context, error;
2924
+ var _arguments = arguments;
2880
2925
  return _ts_generator(this, function(_state) {
2881
2926
  switch(_state.label){
2882
2927
  case 0:
2928
+ context = _arguments.length > 2 && _arguments[2] !== void 0 ? _arguments[2] : {};
2929
+ _state.label = 1;
2930
+ case 1:
2883
2931
  _state.trys.push([
2884
- 0,
2932
+ 1,
2885
2933
  3,
2886
2934
  ,
2887
2935
  4
2888
2936
  ]);
2889
- clientInfo = getClientInfo();
2890
- return [
2891
- 4,
2892
- getBrowserID(clientInfo)
2893
- ];
2894
- case 1:
2895
- browserId = _state.sent();
2896
- adDetectInfo = _object_spread({
2897
- source: (_payload_source = payload.source) !== null && _payload_source !== void 0 ? _payload_source : "scte35",
2898
- timestamp: (_payload_timestamp = payload.timestamp) !== null && _payload_timestamp !== void 0 ? _payload_timestamp : /* @__PURE__ */ new Date().toISOString()
2899
- }, payload.durationSeconds != null && {
2900
- durationSeconds: payload.durationSeconds
2901
- }, payload.ptsSeconds != null && {
2902
- ptsSeconds: payload.ptsSeconds
2903
- }, payload.detectedAtFragmentSn != null && {
2904
- detectedAtFragmentSn: payload.detectedAtFragmentSn
2905
- });
2906
- body = _object_spread_props(_object_spread({
2907
- browserId: browserId
2908
- }, clientInfo, licenseKey && {
2909
- licenseKey: licenseKey
2910
- }), {
2911
- adDetectInfo: adDetectInfo
2912
- });
2913
2937
  return [
2914
2938
  4,
2915
- postAdTracking(licenseKey, body)
2939
+ sendHeartbeat(licenseKey, context, {
2940
+ adLoaded: true,
2941
+ captureAt: adLoadedInfo.timestamp
2942
+ })
2916
2943
  ];
2917
2944
  case 2:
2918
2945
  _state.sent();
@@ -2922,7 +2949,7 @@ function sendAdDetectTracking(licenseKey, payload) {
2922
2949
  ];
2923
2950
  case 3:
2924
2951
  error = _state.sent();
2925
- console.error("[StormcloudVideoPlayer] Error sending ad-detect tracking:", error);
2952
+ console.error("[StormcloudVideoPlayer] Error sending ad loaded tracking:", error);
2926
2953
  return [
2927
2954
  3,
2928
2955
  4
@@ -2933,126 +2960,116 @@ function sendAdDetectTracking(licenseKey, payload) {
2933
2960
  ];
2934
2961
  }
2935
2962
  });
2936
- })();
2963
+ }).apply(this, arguments);
2937
2964
  }
2938
- function sendAdLoadedTracking(licenseKey, payload, adPlayerType) {
2939
- return _async_to_generator(function() {
2940
- var clientInfo, browserId, source, adLoadedInfo, body, error;
2965
+ function sendAdImpressionTracking(_0, _1) {
2966
+ return _async_to_generator(function(licenseKey, adImpressionInfo) {
2967
+ var context, metricEvent, error;
2968
+ var _arguments = arguments;
2941
2969
  return _ts_generator(this, function(_state) {
2942
2970
  switch(_state.label){
2943
2971
  case 0:
2972
+ context = _arguments.length > 2 && _arguments[2] !== void 0 ? _arguments[2] : {};
2973
+ _state.label = 1;
2974
+ case 1:
2944
2975
  _state.trys.push([
2945
- 0,
2946
- 3,
2976
+ 1,
2977
+ 4,
2947
2978
  ,
2948
- 4
2979
+ 5
2949
2980
  ]);
2950
- clientInfo = getClientInfo();
2951
2981
  return [
2952
2982
  4,
2953
- getBrowserID(clientInfo)
2983
+ buildPlayerMetricEvent(licenseKey, context, {
2984
+ captureAt: adImpressionInfo.timestamp
2985
+ })
2954
2986
  ];
2955
- case 1:
2956
- browserId = _state.sent();
2957
- source = mapToAdTrackingSource(payload.source, adPlayerType);
2958
- adLoadedInfo = _object_spread({
2959
- source: source,
2960
- timestamp: /* @__PURE__ */ new Date().toISOString()
2961
- }, payload.vastUrl != null && {
2962
- vastUrl: payload.vastUrl
2963
- }, payload.durationSeconds != null && {
2964
- durationSeconds: payload.durationSeconds
2965
- });
2966
- body = _object_spread_props(_object_spread({
2967
- browserId: browserId
2968
- }, clientInfo, licenseKey && {
2969
- licenseKey: licenseKey
2970
- }), {
2971
- adLoadedInfo: adLoadedInfo
2972
- });
2987
+ case 2:
2988
+ metricEvent = _state.sent();
2973
2989
  return [
2974
2990
  4,
2975
- postAdTracking(licenseKey, body)
2991
+ Promise.all([
2992
+ postJson(HEARTBEAT_URL, licenseKey, metricEvent),
2993
+ postJson(IMPRESSIONS_URL, licenseKey, {
2994
+ events: [
2995
+ {
2996
+ player_id: metricEvent.player_id,
2997
+ ad_played_count: 1,
2998
+ ad_url: adImpressionInfo.adUrl,
2999
+ license_key: licenseKey,
3000
+ capture_at: adImpressionInfo.timestamp
3001
+ }
3002
+ ]
3003
+ })
3004
+ ])
2976
3005
  ];
2977
- case 2:
3006
+ case 3:
2978
3007
  _state.sent();
2979
3008
  return [
2980
3009
  3,
2981
- 4
3010
+ 5
2982
3011
  ];
2983
- case 3:
3012
+ case 4:
2984
3013
  error = _state.sent();
2985
- console.error("[StormcloudVideoPlayer] Error sending ad-loaded tracking:", error);
3014
+ console.error("[StormcloudVideoPlayer] Error sending ad impression tracking:", error);
2986
3015
  return [
2987
3016
  3,
2988
- 4
3017
+ 5
2989
3018
  ];
2990
- case 4:
3019
+ case 5:
2991
3020
  return [
2992
3021
  2
2993
3022
  ];
2994
3023
  }
2995
3024
  });
2996
- })();
3025
+ }).apply(this, arguments);
2997
3026
  }
2998
- function sendAdImpressionTracking(licenseKey, payload, adPlayerType) {
2999
- return _async_to_generator(function() {
3000
- var clientInfo, browserId, source, adImpressionInfo, body, error;
3027
+ function sendHeartbeat(_0) {
3028
+ return _async_to_generator(function(licenseKey) {
3029
+ var context, flags, heartbeatData, error;
3030
+ var _arguments = arguments;
3001
3031
  return _ts_generator(this, function(_state) {
3002
3032
  switch(_state.label){
3003
3033
  case 0:
3034
+ context = _arguments.length > 1 && _arguments[1] !== void 0 ? _arguments[1] : {}, flags = _arguments.length > 2 && _arguments[2] !== void 0 ? _arguments[2] : {};
3035
+ _state.label = 1;
3036
+ case 1:
3004
3037
  _state.trys.push([
3005
- 0,
3006
- 3,
3038
+ 1,
3039
+ 4,
3007
3040
  ,
3008
- 4
3041
+ 5
3009
3042
  ]);
3010
- clientInfo = getClientInfo();
3011
3043
  return [
3012
3044
  4,
3013
- getBrowserID(clientInfo)
3045
+ buildPlayerMetricEvent(licenseKey, context, flags)
3014
3046
  ];
3015
- case 1:
3016
- browserId = _state.sent();
3017
- source = mapToAdTrackingSource(payload.source, adPlayerType);
3018
- adImpressionInfo = _object_spread({
3019
- source: source,
3020
- adIndex: payload.adIndex,
3021
- timestamp: /* @__PURE__ */ new Date().toISOString()
3022
- }, payload.durationSeconds != null && {
3023
- durationSeconds: payload.durationSeconds
3024
- });
3025
- body = _object_spread_props(_object_spread({
3026
- browserId: browserId
3027
- }, clientInfo, licenseKey && {
3028
- licenseKey: licenseKey
3029
- }), {
3030
- adImpressionInfo: adImpressionInfo
3031
- });
3047
+ case 2:
3048
+ heartbeatData = _state.sent();
3032
3049
  return [
3033
3050
  4,
3034
- postAdTracking(licenseKey, body)
3051
+ postJson(HEARTBEAT_URL, licenseKey, heartbeatData)
3035
3052
  ];
3036
- case 2:
3053
+ case 3:
3037
3054
  _state.sent();
3038
3055
  return [
3039
3056
  3,
3040
- 4
3057
+ 5
3041
3058
  ];
3042
- case 3:
3059
+ case 4:
3043
3060
  error = _state.sent();
3044
- console.error("[StormcloudVideoPlayer] Error sending ad-impression tracking:", error);
3061
+ console.error("[StormcloudVideoPlayer] Error sending heartbeat:", error);
3045
3062
  return [
3046
3063
  3,
3047
- 4
3064
+ 5
3048
3065
  ];
3049
- case 4:
3066
+ case 5:
3050
3067
  return [
3051
3068
  2
3052
3069
  ];
3053
3070
  }
3054
3071
  });
3055
- })();
3072
+ }).apply(this, arguments);
3056
3073
  }
3057
3074
  // src/utils/polyfills.ts
3058
3075
  function polyfillURLSearchParams() {
@@ -3845,8 +3862,10 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
3845
3862
  var _this = this;
3846
3863
  this.ima.on("all_ads_completed", function() {
3847
3864
  sendAdImpressionTracking(_this.config.licenseKey, {
3848
- adIndex: _this.currentAdIndex
3849
- }, _this.config.adPlayerType).catch(function() {});
3865
+ source: "ima",
3866
+ adIndex: _this.currentAdIndex,
3867
+ timestamp: /* @__PURE__ */ new Date().toISOString()
3868
+ }).catch(function() {});
3850
3869
  var remaining = _this.getRemainingAdMs();
3851
3870
  _this.consecutiveFailures = 0;
3852
3871
  if (_this.config.debugAdTiming) {
@@ -3907,8 +3926,10 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
3907
3926
  });
3908
3927
  this.ima.on("content_resume", function() {
3909
3928
  sendAdImpressionTracking(_this.config.licenseKey, {
3910
- adIndex: _this.currentAdIndex
3911
- }, _this.config.adPlayerType).catch(function() {});
3929
+ source: "ima",
3930
+ adIndex: _this.currentAdIndex,
3931
+ timestamp: /* @__PURE__ */ new Date().toISOString()
3932
+ }).catch(function() {});
3912
3933
  if (!_this.video.muted) {
3913
3934
  _this.video.muted = true;
3914
3935
  _this.video.volume = 0;
@@ -4542,7 +4563,10 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
4542
4563
  var detectPayload = {};
4543
4564
  if (marker.durationSeconds != null) detectPayload.durationSeconds = marker.durationSeconds;
4544
4565
  if (marker.ptsSeconds != null) detectPayload.ptsSeconds = marker.ptsSeconds;
4545
- sendAdDetectTracking(this.config.licenseKey, detectPayload).catch(function() {});
4566
+ sendAdDetectTracking(this.config.licenseKey, _object_spread({
4567
+ source: "scte35",
4568
+ timestamp: /* @__PURE__ */ new Date().toISOString()
4569
+ }, detectPayload)).catch(function() {});
4546
4570
  }
4547
4571
  var hasPrefetchedAds = this.pendingAdBreak && this.pendingAdBreak.vastUrls.length > 0;
4548
4572
  var durationMs = marker.durationSeconds != null ? marker.durationSeconds * 1e3 : ((_this_pendingAdBreak = this.pendingAdBreak) === null || _this_pendingAdBreak === void 0 ? void 0 : _this_pendingAdBreak.marker.durationSeconds) != null ? this.pendingAdBreak.marker.durationSeconds * 1e3 : void 0;
@@ -5784,7 +5808,10 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
5784
5808
  if (marker.durationSeconds != null) detectPayload.durationSeconds = marker.durationSeconds;
5785
5809
  if (marker.ptsSeconds != null) detectPayload.ptsSeconds = marker.ptsSeconds;
5786
5810
  if (fragmentSn !== void 0) detectPayload.detectedAtFragmentSn = fragmentSn;
5787
- sendAdDetectTracking(this.config.licenseKey, detectPayload).catch(function() {});
5811
+ sendAdDetectTracking(this.config.licenseKey, _object_spread({
5812
+ source: "scte35",
5813
+ timestamp: /* @__PURE__ */ new Date().toISOString()
5814
+ }, detectPayload)).catch(function() {});
5788
5815
  if (this.config.debugAdTiming) {
5789
5816
  console.log("[PREFETCH] \uD83D\uDD04 Starting ad prefetch for upcoming ad break");
5790
5817
  console.log("[PREFETCH] \uD83D\uDCCB Pre-generated ".concat(generatedUrls.length, " VAST URLs"));
@@ -6265,9 +6292,10 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
6265
6292
  preloadedController = preloaded.imaController;
6266
6293
  usePreloadedAd = true;
6267
6294
  sendAdLoadedTracking(this.config.licenseKey, {
6268
- source: "preload",
6269
- vastUrl: firstAdUrl
6270
- }, this.config.adPlayerType).catch(function() {});
6295
+ source: "ima",
6296
+ vastUrl: firstAdUrl,
6297
+ timestamp: /* @__PURE__ */ new Date().toISOString()
6298
+ }).catch(function() {});
6271
6299
  if (this.config.debugAdTiming) {
6272
6300
  console.log("[CONTINUOUS-FETCH] \uD83D\uDE80 Using preloaded ad from pool (preloaded in advance, ready immediately!)");
6273
6301
  console.log("[CONTINUOUS-FETCH] Pool still has ".concat(this.preloadPool.length, " preloaded ads ready"));
@@ -6357,9 +6385,10 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
6357
6385
  case 5:
6358
6386
  _state.sent();
6359
6387
  sendAdLoadedTracking(this.config.licenseKey, {
6360
- source: "ssp",
6361
- vastUrl: firstAdUrl
6362
- }, this.config.adPlayerType).catch(function() {});
6388
+ source: "ima",
6389
+ vastUrl: firstAdUrl,
6390
+ timestamp: /* @__PURE__ */ new Date().toISOString()
6391
+ }).catch(function() {});
6363
6392
  if (this.config.debugAdTiming) {
6364
6393
  console.log("[CONTINUOUS-FETCH] \u2705 First ad request successful, starting playback");
6365
6394
  }
@@ -6755,9 +6784,10 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
6755
6784
  console.log("[CONTINUOUS-FETCH] \uD83C\uDFAF Using preloaded ad from pool (".concat(this.preloadPool.length, " remaining in pool)"));
6756
6785
  }
6757
6786
  sendAdLoadedTracking(this.config.licenseKey, {
6758
- source: "preload",
6759
- vastUrl: preloaded.vastUrl
6760
- }, this.config.adPlayerType).catch(function() {});
6787
+ source: "ima",
6788
+ vastUrl: preloaded.vastUrl,
6789
+ timestamp: /* @__PURE__ */ new Date().toISOString()
6790
+ }).catch(function() {});
6761
6791
  _state.label = 1;
6762
6792
  case 1:
6763
6793
  _state.trys.push([
@@ -7509,9 +7539,10 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
7509
7539
  case 3:
7510
7540
  _state.sent();
7511
7541
  sendAdLoadedTracking(this.config.licenseKey, {
7512
- source: "ssp",
7513
- vastUrl: vastTagUrl
7514
- }, this.config.adPlayerType).catch(function() {});
7542
+ source: "ima",
7543
+ vastUrl: vastTagUrl,
7544
+ timestamp: /* @__PURE__ */ new Date().toISOString()
7545
+ }).catch(function() {});
7515
7546
  this.clearAdRequestWatchdog();
7516
7547
  if (this.activeAdRequestToken !== requestToken) {
7517
7548
  return [