Network overview
Panorama UGC Ad Network
Verifiable coordination for campaigns and creators: live display and video units, market-api ingestion, and RISC Zero–aligned proof readouts — with a clear line to production proving.
Panorama connects delivery, proof, and settlement with explicit protocol states instead of black-box reporting. The sections below describe the full network; the live module at the bottom is the same code path publishers embed: consent, viewability or playback rules, correlation scope, then ingestion and digest display.
Where we are today
- Shipped React surfaces: PanoramaAdProvider, PanoramaDisplayAd, PanoramaVideoAd, and AdNetworkProofStrip — this page runs display + video side by side.
- The /demo route centers one real-style display creative as the primary “live unit” story for booths and trust-first walkthroughs.
- Ingest uses the same HTTP contract documented on /docs; set NEXT_PUBLIC_API_URL to your market-api origin to see real POSTs from the browser.
- RISC Zero: the UI computes a deterministic journal digest and guest tags (VIEWABILITY_V1, PLAYBACK_QUARTILES_V1) in sim mode; exec mode documents the hand-off to the Rust prover service.
- Comment Protocol and marketplace paths link Panorama placements to adjacent UGC inventory without changing the core envelope.
For a display-only walkthrough, see /demo. Delivery milestones live on the roadmap.
What we are building next
- Attach verifier-facing zk bundles from risc0-prover for batches that opt into exec mode (market-api / proof-worker wiring).
- Publish an npm publisher SDK v0 so third-party sites get the same helpers as /demo without copying lib/ad-network.
- Introduce a minimal ad decision or auction stub in front of placements so creatives can rotate without a forked ingest schema.
- Ship CTV / SSAI reference emitters that sign the same fields as web for long-form and stick inventory.
Who participates
- Advertisers define goals, budgets, and targeting constraints.
- Publishers and creators expose inventory and deliver ad surfaces (web today; CTV / SSAI on the same contract next).
- Users opt into measurement where required; components respect a consent gate before network I/O.
- Data Unions aggregate cohort-level signal quality.
- Validators and verifier services confirm event integrity and proof outcomes.
Why this is different from Web2 ad networks
- Greater traceability from event ingestion to settlement intent.
- Proof-first delivery checks before payout logic executes.
- Composable economics across publishers, creators, and union-aligned flows.
- Cleaner separation between private user signal and public verification state.
How the network runs (plain language)
- 1) Inventory + campaign setup: Publishers register slots; advertisers configure campaigns. Demos use static placement and campaign IDs until a decision service lands.
- 2) Auction selection: Eligible bids compete under transparent rules. Full auction UX is upcoming; current pages prove ingestion + proof shape first.
- 3) Impression capture: Viewability-gated display and quartile-aware video emit signed payloads with correlation IDs to /ingest/impression when the API is configured.
- 4) Proof and verification: Journal digest (sim in-browser) matches the RISC Zero guest story; production proving runs in risc0-prover, not in Next.js.
- 5) Settlement + optimization: Verified outcomes feed payout intents and campaign tuning loops (optimizer path described in stack docs).
Connection to the rest of Panorama
This ad network layer sits under the marketplace, Proof of Impression model, Data Unions coordination, and dCommerce paths. It is the shared execution surface where campaign logic, verification, and payout logic meet.
RISC Zero and the trust boundary
Panorama uses RISC Zero as a trust computer: a guest program can attest viewability and playback rules over hashed inputs so verification does not require publishers to hand raw identity data to every counterparty. The live module below simulates the journal digest binding the verifier lane expects; it does not run the zkVM in your browser — keep proving in risc0-prover and attach bundles server-side for production buyers.
Loading live ad network components…