Advertising and Ad Serving

Nishi adnet vs Google Ad Manager · Kevel · Revive Adserver · the 4chan self-serve model. Presence census 14/14 axes (1000 permil), 163 corpus attestations, liar-kill ARMED (grades are disk-fact functions, never self-scored; census re-run 2026-07-09). June exceed ladder: 4/6 MEASURED EXCEEDS with cited incumbent baselines.

The moat: sovereign FIRST-PARTY serving on our own HTTP+TLS stack — ad-block-resilient by same-origin construction, no AdSense gatekeeper, and privacy BY CONSTRUCTION: no cookie, no visitor id, no fingerprint, per-AD counters only, k-anonymity floor in the analytics lane.

Presence census (nx_adnet_census, corpus-grounded)

axisstatusgrounding
Sovereign ad server infraPARITYown HTTP server (nx_http_server) - no third-party gatekeeper
First-party servingPARITYsame-origin, ad-block-resilient (nx_dist_serve)
Banner ad unitPARITYnx_adnet inventory rows + 728x90 units
Rotation / inventoryPARITY1-of-N per section per view (nx_adnet ad_pick)
Impression trackingPARITYper-AD append-only served counters (no visitor key)
Click tracking + redirectPARITYfirst-party /ad/click/id 302 (gated fail-closed)
CPM/CPC billingPARITYnx_adnet_bill gate 6/6 - integer milli-units, REFUSES unpriced/unmeasured
Self-serve advertiserPARITYnx_adnet_selfserve gate 5/5 - staged-never-live intake, operator approve
Contextual targetingPARITYby page section only - privacy-respecting
Advertiser dashboardPARITYnx_adnet_dash gate 7/7 - aggregate-only, zero JS
Privacy-respectingPARITYno cross-site behavioral tracking anywhere
SITE-WIDE slot on every pagePARITYhr_serve3_slot gate 8/8 - edge injection, byte-identical when off
Time-rotation servingPARITYno per-user frequency state (capping-via-id REFUSED)
ads.txt transparencyPARITYDIRECT single-seller emission - zero reseller hops

Measured exceed ladder (nx_ad_exceed, June arc - cited head-to-heads)

axisstatusvs incumbent
Delivery (one ad per page)EXCEEDS0 third-party JS vs the GPT loader script tag
Privacy analyticsEXCEEDSaggregate + k-anon floor k=5 vs Plausible (cookieless but no k-floor)
Signup (pay-on-results)EXCEEDS0-dollar on miss vs CPM pay-regardless
TransparencyEXCEEDSDIRECT single-sponsor, zero reseller hops vs reseller chains
ViewabilityHELDMEASURED (MRC dwell rules in nx_ad_view); incumbents match - a beat claim would be overclaim
Bot filteringHELDMEASURED (aggregate GIVT); SIVT needs per-user fingerprinting we REFUSE

Universal placement (the July-2026 completion)

ONE labeled first-party slot on EVERY served HTML page of every ad-enabled host, injected at the edge file server (hr_serve3_slot): fail-closed per-host (@host directive), page opt-out marker honored, byte-identical serving when disabled (gated do-no-harm law), correct Content-Length by construction. Click redirects and served-impression counters are first-party and per-AD only. Rotation is time-based - deliberately NO per-user frequency state.

Navigate the estate: the LIVING CATALOGUE of digital / app / physical ad real estate · sitemap · live inventory.

Honest gaps and refusals

itemstatuswhy
Per-user frequency cappingREFUSEDrequires a visitor identifier - against the privacy law; time-rotation instead
SIVT-grade bot filteringREFUSEDrequires fingerprinting - GIVT aggregate lane only
RTB / programmatic exchangeHELDsingle-seller DIRECT model by design - no auction middlemen
OPAQUE advertiser portalMEASUREDdashboard organ gated; portal auth wiring = named follow-on
Root /ads.txt placementMEASUREDemitter gated; root-file publish lane = named follow-on

Every green above traces to a gate log in knowledge/status/ (adnet_slot 19/19 · hr_serve3_slot 8/8 · adnet_bill 6/6 · adnet_selfserve 5/5 · adnet_dash 7/7 · census GREEN liar-kill armed). Generated by nx_adnet_compare_page - regenerate, never hand-edit.

Back to the compare hub