Platform · Ad Server

The Intelligent Ad Server

Contextual, signal-driven ad serving for physical retail. Every slot on every screen is decided in real time — no hand-binding campaigns to screens, no static loops.

The ad server's Right Now view: an iced-coffee campaign holds the slot while its stock condition is met
Before — the iced-coffee campaign holds the slot: its temperature and stock conditions are both met
stock signal flips
The same screen after the stock signal flips: the campaign is marked conditions failed and the next campaign takes the slot
After — the SKU sells out, the campaign drops out marked conditions failed, and the next eligible campaign takes the slot

Delivery modes

Pick a mode, or let the engine learn.

01

Rotation

Zero setup, predictable share of the loop. The safe default for house content and always-on campaigns.

02

Targeted

“Over 20°, near the chillers, while the SKU is in stock.” The creative plays exactly when its conditions hold — and never when they don't.

03

AI

Give the engine a goal — plays, impressions or attributed sales — and it learns when, where and how often the creative earns its slot.

Signals

137 signals, one decision engine.

A 137-signal catalogue feeds the decision engine: weather, stock and planogram, till and basket data, audience curves, time and local moments, venue context, programmatic demand. Conditions compose — and a missing or expired signal fails closed: the fallback chain plays, a screen never goes black.

  • 22° and rising → iced coffee takes the loop. Rain → hot chocolate.
  • SKU sells out → creative switches. Restocked → back in the loop.
  • Match night within two miles → pre- and post-match windows.
  • Energy-drink buyers co-buy protein bars → sell the pairing.
The signals catalogue in the Corner Collective console, listing every signal available to a campaign condition
Live product · the signal catalogue campaign conditions are written against, grouped by source

Demand & the tier ladder

Guaranteed can never be outbid.

Demand is ranked strictly by tier — price only competes within a tier. Direct guaranteed campaigns sit above PG and PMP deals, which sit above open exchange bidding at your floors, which sits above house content. Programmatic mediation is built in: parallel OpenRTB auctions with bids audience-weighted, reachable from the major DSPs. Nothing sold is ever bumped, and unsold slots fall through to house content.

The loop is protected the same way: share-of-voice commitments, frequency caps and competitive separation are enforced by the engine, to rules you set.

  • Tier 1 Guaranteed directnever outbid
  • Tier 2 PG / PMP dealsprice competes inside the tier
  • Tier 3 Open exchange, at or above your flooraudience-weighted bids
  • Tier 4 House & fillernothing goes unsold

Reachable from

The Trade DeskDV360and the major DOOH DSPs

Proof

How the numbers are counted.

<0.6s
p99 slot decision with live auctions in the loop
100%
Of billed plays device-confirmed and ledger-sealed
0
Personal data points used to decide what plays

Plays count only on device confirmation, MRC-aligned. Invalid traffic is filtered and disclosed. Impressions are modelled on an IAB DOOH-grounded methodology with an evidence grade per venue — published, versioned, with corrections logged in a public changelog.

Read the methodology →
The published measurement methodology page, showing the version number and the changelog of corrections
Live product · the published methodology, versioned, with every correction logged in the changelog

Works with your stack

Your stack. Our demand.

The ad server doesn't care whose CMS renders the loop. Register your inventory, request a decision per slot, confirm the play — the same three-step contract our own CMS uses. Keep your player, keep your CMS, and put this engine behind your screens.

Our CMSfirst client of the API
Your CMSsame endpoints
Your playersame endpoints

register · request · confirm

Three identical connectors into one public contract. Our own CMS gets no private shortcut.