demo · v130
B&A auction API probe
Call navigator.getInterestGroupAdAuctionData(), inspect the encrypted request payload the browser returns, and POST it to a local seller endpoint. The page does not fabricate a winning ad; a real Bidding & Auction service must return the server response bytes before navigator.runAdAuction() can render.
requires Privacy Sandbox + B&A services
Live B&A needs
chrome://flags/#enable-protected-audience-services-bidding-and-auction-server-api plus a configured Bidding & Auction server in a TEE. The local backend only records the encrypted request and returns a clear refusal instead of inventing an auction result.
1 — configure
2 — pipeline
1
collect IGs
browser gathers interest groups + bidding signals
2
encrypt
OHTTP-encrypted blob for the seller-side TEE
3
off-device auction
B&A service decrypts, scores, returns winner
4
render
browser opens fenced frame to winning ad
3 — log
the code
// 1. Browser collects interest-group ad-auction data.
const data = await navigator.getInterestGroupAdAuctionData({
seller: "https://ssp.example",
});
// 2. POST the OHTTP-encrypted bytes to the seller (forwards to B&A server).
const res = await fetch("https://ssp.example/auction", {
method: "POST", body: data.request,
});
const serverResponse = await res.arrayBuffer();
// 3. Browser finalises the auction and renders the winner.
const fencedFrameConfig = await navigator.runAdAuction({
seller: "https://ssp.example",
serverResponse,
requestId: data.requestId,
});
document.querySelector("fencedframe").config = fencedFrameConfig;