surfads — play site

One surf-banner on account 00000 / site fndn1 / channel c5496 / zone 3bahh, location JOES_TESTING_SITE, keywords homepage. Web-component shape, no build step — the integration 474 of the 578 counted estate sites use.

zone: banner · surf-banner · 3bahh

Size:  8x1 (from markup)

width/height are an aspect ratio, not pixels, and both are observed attributes: each setAttribute mints a fresh totem and re-arms the per-instance _bounce, so two writes must still produce exactly one new auction. If 8x1 returns a 204 and 4x1 fills, the zone simply has no 8:1 creative — that is demand, not the SDK. 4x1 and 2x1 are what the live estate actually runs.

What a good run looks like on this account

Read off the panel on the right. Expected, in order: 1 wave-script, 1 sdk-script, 1 geo, 1–2 publisher-config, 1 category-config, 1 event-track, 1 bid-request, then — if the bid fills — 1 creative-asset, exactly 1 win, exactly 1 impression, and data-zones-rendered="1".

Facts read from this account's live publisher config on 2026-09-04, so you can tell a real fault from expected behaviour:

Query-string switches

?accountId= ?siteId= ?channelId= ?locationId= ?zoneId= override config/sites.json for one run, so a different zone needs a URL and not an edit. ?surf_debug=true turns on the SDK's own console logging — the only way to see the warn-level "No bids" and template-compile messages. ?attrTiming=late sets the zone attributes after r.js loads, exercising attributeChangedCallback/totem/_bounce instead of connectedCallback. ?watchdog=30000 lengthens the per-zone render deadline from 15s.

Reading a failure

The panel's per-kind HTTP statuses are the whole diagnosis. No bid-request at all means the attributes never completed or the bot filter no-opped the ads path — check ua in the status bar first. bid-request 204 is a handled no-fill, and Chrome reports that empty 204 to the page as net::ERR_ABORTED: misleading, not a transport failure. publisher-config 403 silently prevents the api initialising, so no bid is ever requested and nothing errors. A win without a matching impression, or either firing more than once per filled bid, is a tracker-arithmetic fault and the thing this page exists to catch.

[beta] booting…