wai.video.stitched_presentation (extensions/stitched-presentation.md): a WPS1 claim names an ad by the marker the stream carries for it (an EXT-X-DATERANGE tag, an interstitial's asset, a DASH event) in the manifest it states the SHA-256 of; a WPI1 pod-input record, signed by the stitcher or a proxy in front of the ad server, binds the response digest, the chosen ads, their creatives and prices, the avail, the frame and the measurement terms; a verifier recomputes each ad's presentations, quartiles and the spend that counts by currency. A form-1 wai.video.ssai receipt gains a JSON carriage (its signed bytes unchanged) so it can be a record's response. live-compose gains the squeeze and double-box ad frames (§5.9). Corpus live-conformance/stitched/, its independent verifier stitched_presentation_verify.py, and the browser producer web/ads/stitched.js with tests against the corpus. Co-Authored-By: Claude Opus 5.5 <[email protected]>
23 lines
859 B
XML
23 lines
859 B
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<VAST version="4.3">
|
|
<Ad id="ad-s" sequence="1">
|
|
<InLine>
|
|
<AdSystem>example ad server</AdSystem>
|
|
<AdTitle>ad-s</AdTitle>
|
|
<AdServingId>srv-sq-1</AdServingId>
|
|
<Impression><![CDATA[https://ads.example/imp?ad=ad-s&s=[ADSERVINGID]]]></Impression>
|
|
<Pricing model="CPM" currency="USD">12.00</Pricing>
|
|
<Creatives>
|
|
<Creative id="cr-ad-s" sequence="1">
|
|
<UniversalAdId idRegistry="registry.example">UID-S</UniversalAdId>
|
|
<Linear>
|
|
<Duration>00:00:20.000</Duration>
|
|
<MediaFiles>
|
|
<MediaFile delivery="progressive" type="video/mp4" width="1920" height="1080"><![CDATA[https://cdn.example/ad-s.mp4]]></MediaFile>
|
|
</MediaFiles>
|
|
</Linear>
|
|
</Creative>
|
|
</Creatives>
|
|
</InLine>
|
|
</Ad>
|
|
</VAST>
|