@dolby-optiview/ads-sdk 1.3.0 → 1.5.1

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.
@@ -9,6 +9,9 @@ of the public contract and are never renamed.
9
9
 
10
10
  | Code | Category | Level | Meaning |
11
11
  |---|---|---|---|
12
+ | `DA-SNAPBACK-APPLIED` | break | info | Viewer seek corrected to an unplayed VOD snapback break. context: breakId, target, resumePosition (seek-over only). |
13
+ | `DA-SNAPBACK-ABANDONED` | break | warn | VOD snapback correction abandoned after one retry or because the break became ineligible. context: breakId, reason. |
14
+ | `DA-SNAPBACK-NOT-APPLIED` | break | debug | Viewer seek was not eligible for VOD snapback. context: reason, breakId (when known). |
12
15
  | `DA-SESSION-STARTED` | session | info | Monetization session started; manifest polling began. context: manifestUrl (stitcherUrl in SSAI mode), reported verbatim. |
13
16
  | `DA-SESSION-ENDED` | session | info | Monetization session ended; polling and scheduling stopped. |
14
17
  | `DA-ASSET-PARAMETERS-UPDATED` | session | info | The break manifest's session-level asset parameters changed; the merged parameters were pushed to the active GAM stream. context: source ('manifest'), keys (parameter names only, never values). |
@@ -37,7 +40,7 @@ of the public contract and are never renamed.
37
40
  | `DA-BREAK-SUPPRESSED-OVERLAP` | break | warn | A break was suppressed because an ad was already playing. |
38
41
  | `DA-BREAK-TRANSITION` | break | info | Measured duration of a playback transition into an ad break, between two ads, between chained breaks, or back to content. A break-to-break switch runs from the outgoing ad's end to the incoming ad's first frame and adds path (queued, late-queued or cold) and, when the incoming ad was buffered, leadMs. On web an ad-to-ad switch adds path (queued or cold) and leadMs too. |
39
42
  | `DA-BREAK-CHAIN` | chaining | info | Summary of one chain of back-to-back breaks, emitted once when content plays again (or the chain is flushed): chainId, per break its id, scheduledStart, plannedDurationSec, beganAtMs, endedAtMs, playedSec, announcedDuringChain and path, per switch its gapMs and path, contentResumeMs and totalMs. |
40
- | `DA-AD-SURFACE-REVEALED` | break | info | The ad surface became visible: how long it was held back waiting for the ad's first frame, and whether it was revealed because that frame arrived or because the wait timed out. |
43
+ | `DA-AD-SURFACE-REVEALED` | break | info | The ad surface became visible: how long it was held back waiting for the ad's first frame, and whether it was revealed because that frame arrived or because the wait timed out. On web, an ad shown before its first frame reports reason shown-before-frame with visibleGapMs, the time on screen without a picture. |
41
44
  | `DA-BREAK-CUT-LATE` | break | warn | timebase: 'wallclock', all platforms — content was cut more than 0.5s after the break's manifest start on the stream's Program Date Time, so the viewer saw the stream's own break (slate) instead of the ad until then; typically the ad's first frame was not ready at the cut and content kept playing under the cross-fade. The replaced window is unaffected: the resume anchor is the content time of the manifest start whatever the cut landed on. Context carries breakId, lateSec (cut minus start on the PDT axis), start (the manifest start), cutPdt (the PDT at the cut), cutAt (currentTime at the cut) and anchor; iOS/Android add waitedForAdMs when the cut waited for the ad surface. |
42
45
  | `DA-PREROLL-CONTENT-HELD` | break | info | Content playback was held at session start until a pending pre-roll began, so no content is shown before the ad. |
43
46
  | `DA-PREROLL-CONTENT-WAIT-TIMEOUT` | break | info | A pending pre-roll began after content readiness was not reported within the wait timeout. |
@@ -12,6 +12,18 @@ the sequence leading up to a failure.
12
12
 
13
13
  ---
14
14
 
15
+ ## DA-SNAPBACK-APPLIED
16
+
17
+ Expected VOD seek protection: the first crossed unplayed playable snapback break was selected. Compare `target` with the break start and `resumePosition` with the original seek-over target. Confirm the landing and balanced break lifecycle; a correction request alone does not prove playback succeeded. Seek-into uses normal resume policy.
18
+
19
+ ## DA-SNAPBACK-ABANDONED
20
+
21
+ The content player did not land after one corrective retry, or the selected break became ineligible. Check the adapter's seek implementation, seekable range and competing host seeks. The SDK releases the correction instead of trapping playback in a loop.
22
+
23
+ ## DA-SNAPBACK-NOT-APPLIED
24
+
25
+ Check the diagnostic `reason`, VOD mediatime scheduling, `controls.snapback`, playable variants and whether the break already started in this session. Live, event-triggered, SSAI/SSB and excluded single-decoder web platforms are unchanged.
26
+
15
27
  ## DA-SESSION-STARTED
16
28
 
17
29
  Informational. The session started and manifest polling began. Use it to confirm
@@ -16,6 +16,8 @@ and creates the matching native adapter. See `react-native-overview.md`.
16
16
 
17
17
  ## Events
18
18
 
19
+ For VOD snapback, prefer the SDK's `seek()` entry point: it plans the correction before moving the player. External content seeks use `seeked`, or position jumps greater than two seconds when a host has no direct notification (AVPlayer host controls). Corrective seeks must land at the break start: Media3 uses exact seek parameters and AVPlayer uses zero tolerances. SDK corrections are suppressed as new viewer intent. Only playable mediatime-scheduled client-side VOD breaks participate; TV web, live, PTS/wallclock, event-triggered, SSAI and SSB are excluded. Seek-over resumes at the original target after the full break; seek-into uses normal resume policy.
20
+
19
21
  `PlayerAdapterEvent` is exactly these seven strings. An adapter MUST forward all
20
22
  of them to handlers registered via `on()`:
21
23
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dolby-optiview/ads-sdk",
3
- "version": "1.3.0",
3
+ "version": "1.5.1",
4
4
  "description": "OptiView Ads SDK entry package - OptiViewAds with a default HLS.js ad player (native fallback)",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -44,8 +44,8 @@
44
44
  },
45
45
  "sideEffects": false,
46
46
  "dependencies": {
47
- "@dolby-optiview/ads-sdk-adapter-hlsjs": "^1.3.0",
48
- "@dolby-optiview/ads-sdk-core": "^1.3.0"
47
+ "@dolby-optiview/ads-sdk-adapter-hlsjs": "^1.5.1",
48
+ "@dolby-optiview/ads-sdk-core": "^1.5.1"
49
49
  },
50
50
  "peerDependencies": {
51
51
  "hls.js": "^1.0.0"