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]>
39 lines
1.4 KiB
JSON
39 lines
1.4 KiB
JSON
{
|
|
"form": 1,
|
|
"avail_id": "f1-break",
|
|
"manifest_hash": "e3ca1172f496bbc0dfa72abe61540b05091e8fb799d19ceddc31fac875aa33b4",
|
|
"pod_hash": "a8002ba9cab3b3c148f8092550600405825346ee2376c33aa703a56ceb5e36a4",
|
|
"impressions": [
|
|
{
|
|
"slot": 0,
|
|
"ad_id": "ad-f1",
|
|
"creative_hash": "9300e637c151e8585af0813f477696c97bebc09d94472b61109841d8fdb22135",
|
|
"duration_ms": 15000,
|
|
"price_micros": 3000000,
|
|
"quartiles_reached": 5
|
|
},
|
|
{
|
|
"slot": 1,
|
|
"ad_id": "ad-f2",
|
|
"creative_hash": "6556c8bc5c8c5e27f028eef55945ef4dd80e88422c8f761aed913fb815818d7e",
|
|
"duration_ms": 15000,
|
|
"price_micros": 2000000,
|
|
"quartiles_reached": 1
|
|
}
|
|
],
|
|
"merkle_root": "567832e10c49897fd3d7baaa4031e6de3a46c01c702b8779d3e6cc21b401c707",
|
|
"budget_spent_micros": 5000000,
|
|
"work_decide_ops": 2,
|
|
"joules_micro": 0,
|
|
"energy_provenance": null,
|
|
"grant": {
|
|
"grant_hash": "a44f5e5c71bf3d1c33767885a870d6726d31fc78be0dca85535e27e26b02a86a",
|
|
"capability": "video.ssai",
|
|
"joule_ceiling_micro": 1000000,
|
|
"funds_ceiling": 10000000
|
|
},
|
|
"parent_receipt_hash": null,
|
|
"signer_pubkey": "d51eb97a22c66a85da121af9af5c97cf47f1cf4839b9dc60ec3f17e2c589d356",
|
|
"signer_id": "did:example:stitcher",
|
|
"sig": "81ed4d1369a099504f2ac0aa7a41f23498d2f760ab8f7a60a774c28d977e8bdbd7414f0fb1b09378c897ad4e83b9edb7f8b85854db536946d1b8a3d09a0bed09"
|
|
}
|