Media portal
Turn a screen network into sellable media
Campaigns booked once, played everywhere, proven per play. The impressBox Media portal gives screen owners, sales houses and retailers one place to sell ad breaks, a planner that puts a signed plan on every screen, and proof of play that does not depend on the venue’s Wi-Fi.
What a competitor cannot repeat
Most advertising platforms are an ad server with a sales front end. The Media portal is built the other way round: from the screen up, from the data you already have, and in the open. Open any card for how it works.
The engine runs on the screen
Every screen holds a signed plan and decides itself which campaign fills the next ad break. When the venue’s network drops, breaks keep playing beside the venue’s own loop and every play is recorded on the device. Reports and invoices do not depend on the Wi-Fi.
Read more…Show less
What you do: book the campaign. What the planner does: it builds one plan document per screen, as a pure function of the campaigns, the screen’s break settings, its opening hours and the listings it belongs to. The plan carries the leases (which campaign may play, when, how often), the creatives in the right size for that screen, the venue’s own filler items, the separation rules and a signature. The screen verifies the signature before it executes anything.
On the screen, the player runs the scheduling engine at every ad break: it checks each lease’s window, pace and quota, keeps competing brands apart, picks the slot order and plays. The same engine runs in your browser for the plan preview and the per-screen forecast, so what the form shows is what the screen does. A new plan is swapped in at a break boundary, never in the middle of one.
When the connection drops, nothing changes on the screen: the plan is valid for days, the files are already there, and every play is written to a local queue with its timestamp, duration, slot, whether the panel was on and whether the clock was trusted. The queue is uploaded in batches when the link is back; the server deduplicates on the play id. The proof is the record from the screen, not a server’s assumption.
Zero-config inventory
Nothing is retyped. Screens, sizes, orientation, location tags and opening hours come from the devices and the tag tree you already maintain; every screen is sellable by default with sensible break rules.
Read more…Show less
The sellable unit is the screen face. A face is created for every device automatically; its width, height and orientation come from the device’s display settings after rotation, its venue from the device’s location tag, its opening hours from the display schedule, and its break settings from the account default (after how many seconds of own content a break comes, how many slots of how many seconds, the longest break). A screen without a location tag is grouped by its address and flagged, so it can still be sold while you tidy the tags.
Whether a screen is sellable right now is derived, not typed: player version, last contact, a display schedule, no block period. The reason is shown next to every screen that is not sellable. Every derived value is rendered read-only with a note that says where it comes from and where to change it, so there is one owner per fact and nothing drifts.
The seller’s inventory is its own faces plus every face whose owner adopted one of its channels. Each account gets a private “My screens” channel on day one, with an automatic product “All screens, standard frequency”, so a campaign can be booked before anybody configures anything.
Preview with your real data before go-live
A shadow copy of your account: your screens, tags, playlists and current advertising as campaigns, with simulated players running the real player software. You book, check the plan and read the reports before a single real screen changes.
Read more…Show less
The shadow platform is a copy of your account taken on a date: the same people and sign-ins, the same screens, tags and playlists, and your current advertising imported as campaigns with a thumbnail per clip so nothing has to be converted. A banner on every page says it is a preview and that no real screen is controlled.
For every real screen a headless player runs on our servers: the real player software without a display, fetching plans, timing breaks against real clip durations and sending proof of play. The screens therefore show as online, the Ads panel forecasts the next hours, the alerts fire and the reports fill up, all from the real plans.
You use it like the real thing: create a campaign, check conflicts, read the plan preview, schedule, watch the plays arrive by hour. Remarks go into a feedback register and become tickets. Go-live is a separate decision, taken when every account says the screens, the campaigns, the form, the Ads panel and the report are right.
AI agents that operate real campaigns
The impressBox AI agent already runs screens, content and devices from a chat or through the MCP server. On the Media portal the same agent reads the campaign objects and answers “why is this clip not in the 14:00 break on that screen” with the scheduler’s own reasons.
Read more…Show less
The agent acts with the permissions of the person asking and sees the same records: campaigns, lines, creatives, listings, plans, plays and alerts. Asked why a creative did not play on a screen at a given time, it reads the plan the screen held, the lease, the separation rules, the device state and the play records, and answers with the engine’s own reason codes in plain words.
Anything that books capacity, spends money, pushes a plan or sends something to an outside party is a proposal: the agent shows what, why and the impact, and a person accepts, edits or rejects. Accepted proposals are recorded as the person’s action, marked as made through the agent. Reads, explanations and digests run without a confirmation.
The same tools are available through the MCP server, so an AI client of your choice books, checks and reports with your account’s role, and every call is logged with the decision and the object it touched.
Open contract, API and MCP
The plan a screen receives is a documented contract, the portal is an OpenAPI service, and the same tools are exposed over MCP for agents. Programmatic speaks OpenRTB 2.6, VAST 4.2 and the OpenOOH venue taxonomy at every boundary, never a private dialect.
Read more…Show less
The plan document, the control messages and the proof-of-play rows are specified field by field, with a schema version the player checks and refuses when it is too new. A plan built twice from the same inputs is byte-identical, so a diff between two versions is meaningful and can be shown to a person.
Every object the portal manages (customers, brands, campaigns, lines, creatives, listings, products, plays, alerts) is reachable through a documented REST API with the same help texts the user interface shows as tooltips. The MCP server exposes the same operations as tools, with the caller’s permissions, so an agent does not get a side door.
Where a standard exists, the boundary speaks it: VAST 4.2 for an ad from an exchange, OpenRTB 2.6 with the DOOH object for a bid request, the OpenOOH venue taxonomy for venue types, the IAB taxonomies for categories, and VAST universal ad ids for creatives, so a partner integrates against a published specification rather than against us.
Migration without a big-bang day
The portal shadows your current system first: content imported, a headless player per real screen running the real plans, proof of play visible before anything touches a real screen. The switch happens screen by screen, when you are confident.
Read more…Show less
The current system stays as it is. The portal is set up beside it, your content and campaigns are imported, and a shadow fleet of headless players, one per real screen, runs the plans the portal builds. You see the Ads panel, the alerts and the reports fill up from the shadow fleet while your real screens keep playing from the old system.
The shadow fleet can mirror the network’s real conditions: the opening hours, the loop lengths, the internet and power interruptions recorded on the existing devices, so you see how the engine behaves when a venue drops offline and when it comes back, and what the proof of play looks like for those hours.
Then screens switch one at a time, or venue by venue, at the pace you choose; a switched screen can be returned to the old system with one action. There is no cut-over weekend and no period of entering campaigns twice: the portal is the system of record for the screens that have switched, the old system for the rest, until the last one moves.
How it works, in five steps
From a product to a proven play. The person types the campaign; everything else is derived or computed.
Step 1: Products with a default frequency
A product is a package of screens with a default frequency, for example “Standard 30/h” or “Double 60/h”. Every channel also has an automatic product, “All screens, standard frequency”, so a seller never has to work the frequency out.
Step 2: One campaign form
Customer, brand, creatives, dates, targeting by tags or venues, and variants per screen group (a portrait version for portrait screens, a city-specific offer). Billing mode where the account shows it: planned, delivered, or planned with credits.
Step 3: Check conflicts, preview the plan
Check conflicts compares the creatives with the other campaigns on the same screens and breaks: competing brands, exclusive categories, owner rules. The plan preview is computed in the browser with the same scheduling engine the players run: plays per screen per day, breaks that would be full, and why. Nothing is sent to the screens.
Step 4: Schedule: a signed plan per screen
Save and schedule books the screens, all or nothing. The planner builds a signed plan for each affected screen; the player fetches it, downloads the files, confirms it, and fills its breaks from the plan beside the venue’s own loop.
Step 5: Proof per play, reports, billing
Every play is recorded on the screen and uploaded every few minutes. Reports show ordered, played and counted plays by screen and by hour, download as CSV and open for the customer through a share link without a login. Planned and delivered billing modes use the same numbers.
After scheduling nobody has to do anything. The planner builds a plan per screen, the gateway tells the screen a new plan is waiting, the player fetches it, downloads the files and confirms it; breaks then fill from the plan beside the screen’s own content, and the campaign moves from Scheduled to Active on its first day and to Completed after its last.
What the Media portal does today
Selling, running, proving and administering campaigns, from the first customer record to the invoicing basis. Open any card for what you do, what the engine does and what the proof is.
Multi-channel inventory
A private “My screens” channel for every account, and public seller channels: a sales house lists an owner’s screens with the share of break slots it may sell and the device rights the owner grants.
Read more…Show less
A channel is something a seller sells through. Every account has a private channel for its own screens. A seller that sells other owners’ screens has a public channel; each screen in it is a listing with a quota (a share of the break slots, or a number of slots per break) and the rights the seller has on the device: status and screenshot by default, reboot, display power or loop switching only when the owner grants them.
The sum of all channels’ quotas on one screen can never exceed the screen’s slots, so two sellers cannot overbook the same break. Products, capacity and the planner treat a listed screen exactly like an own screen; the plan goes to the owner’s device, and every play record carries the listing, so revenue per owner falls out of the same rows as the advertiser’s report.
Listings and owner consent
An owner adopts a seller’s channel by putting it into the house loop; the listing appears, the owner keeps the break settings and can end the listing at any time. The seller never sees the owner’s other playlists or customers.
Read more…Show less
There is one mechanism, no copies: the owner places the seller’s channel item into its own playlist or schedule, and the listing is created from that act. Removing the item ends the listing; ending it stops the seller’s leases on those screens from the next plan and proposes a make-good to the seller.
Consent per campaign is decline-only: the owner is told what will play on its screens and when, with a countdown to the first play, and can decline with a reason before or after the first play. There is no approve button to wait for, because a waiting click is what stalls campaigns. Owners who prefer standing rules write them once (see “Rules in the owner’s own words”).
Zero-config inventory
Every screen is sellable by default: size and orientation from the device, venue from the location tag, break rules from the account default, with the reason shown whenever a screen is not sellable right now.
Read more…Show less
A face is created for every device and kept in sync by signals: a changed resolution or rotation, a moved tag or a new display schedule rebuilds the affected plans the same cycle, so a campaign never keeps playing the wrong size on a screen that changed.
The migration sets a break profile per account from the cadence its screens play today, so a network that switches keeps its number of plays; the account can change the profile later without a deploy, and a single screen can be given its own break settings by an admin when a venue needs it.
Customers and brands
Customers are who orders and who is invoiced. Brands are shared platform-wide, so two competing brands stay out of the same break even when two sellers book the same screen.
Read more…Show less
A customer carries legal name, kind (advertiser, agency, partner, own), company code, VAT number, country, payment terms and contacts; you can create one from the campaign form. A customer page shows contacts, brands, campaigns, lines, plays and pace.
A brand is one record for everybody on the platform, with your own alias if you call it differently. Its advertiser domains and categories feed the competitor check, so a sales house and a venue owner selling the same screen cannot put two car makers in one break by accident.
Creative readiness and conversion
Drop several files at once. For every screen size the campaign reaches, the form says whether a file is ready, needs a converted copy, is converting or failed. Pictures fit every screen; non-standard sizes get fit, pad or crop.
Read more…Show less
Each file becomes a creative with a preview and a play button. For every screen size the targeting reaches, the form shows one of: measuring the file, ready, needs a converted copy (press Transcode), converting, conversion failed (try again or upload another file), not adaptable (the file is far too small for the screen). A campaign cannot be scheduled while a creative is not ready for a screen it will play on.
A picture fits every screen type and needs no copy; you set the seconds on screen. For LED strips, old 1366×768 TVs and other non-standard sizes you choose how the file is adapted: fit inside without bars, pad with black, crop to fill, or stretch; the converted copy is a normal rendition and the plan carries the right file for each screen size.
Variants per tag group
Different creatives for screens chosen by tags: portrait screens, a city, a venue type. A screen matching several groups takes the one with the most matching tags.
Read more…Show less
In the campaign form, “Add a variant for a group of screens” lets you upload separate creatives for screens carrying a set of tags. Those screens play only that group’s creatives; every other screen plays the main creatives. Screens matching no group and without a main creative are left out, and the form says how many.
The planner resolves the set per screen when it builds the plan, so the screen receives only the creatives it will play, in its own size.
Rotation modes
Take turns, take turns by weight, story (a fixed order across breaks), and different creatives on synchronized screens in the same slot.
Read more…Show less
Rotation decides how several creatives share a line’s plays. Take turns plays them in order; take turns by weight lets you set a weight per creative; story keeps a fixed order across consecutive breaks so a three-part message is seen in sequence; different creatives on synchronized screens shows a different creative on each screen of a synchronized group at the same moment, for a video wall or a row of screens in one aisle.
The engine on the screen applies the mode locally, so the rotation holds even when the connection is down, and every play record names the creative that actually played.
Per-screen Ads panel
What the screen holds, what is on its way, what the player reports, and a forecast of the next hours break by break, with the reason every campaign that is not in a break was left out.
Read more…Show less
Open it with the Ads button on any screen. It shows whether the screen is online, its player release and break settings in force; the plan it has confirmed (version, number of campaigns, valid until); a newer plan on its way (made, sent, confirmed, refused or replaced); what the player reports (a missed control message, no own content so breaks are timed by the clock, an untrusted clock, files not on the screen yet, play records held back).
The forecast is computed in your browser from the plan the screen holds, with the same engine the player runs: break by break, slot by slot, what plays, and for every campaign that is not in a break, why: outside its time window, paused, daily or hourly ceiling reached, ahead of its pace, no file for this screen type, kept apart from a competitor, break full, a higher-priority campaign took the slots, screen off. Nothing is sent to the screen.
Alerts
Plan not acknowledged, screen offline, base loop empty, resolution assumed, no location, possible conflict, delivery behind plan, online but not playing ads, screen off during opening hours.
Read more…Show less
Alerts are raised from what the screens report and from what the plans expect: a plan sent but not confirmed, a screen silent beyond the account’s threshold, a loop so empty that breaks are timed by the clock, a screen whose size had to be assumed, a delivery that falls behind its pace, a screen online that has not played an ad in an hour, a panel off during opening hours.
Each alert carries urgency, first and last seen, and the object it is about; routing (e-mail, chat, webhook) is set per account. The list is the operations team’s morning page and the agent’s input for triage.
Deliverability reports
Ordered, played, counted and on-plan per campaign; by screen or by hour for chosen dates; CSV; share links for customers. Reports count plays, not people.
Read more…Show less
Played counts every play the screens recorded; counted only those with the panel on and the device online; due by now is what should have played so far. Open a campaign to see it by screen or by hour, pick the dates and download the CSV. You always see planned and delivered numbers, whatever the billing mode.
Share report makes a link the customer opens without logging in; under planned billing the delivery counts are hidden on that link, under delivered billing they are shown. Every number can be traced to the play records behind it.
Task execution
Operational tasks on campaigns and screens: a creative that needs a portrait version, a screen offline since morning, a venue without a location tag. Assigned, tracked, closed.
Read more…Show less
Tasks come from three places: alerts that need a person (a plan not confirmed, a delivery behind plan), checks the platform runs itself (a screen without a listing, a spec change, a creative whose licence ends soon), and people. Each task has a priority, an assignee, a due date, a lifecycle from new through assigned and in progress to resolved and closed, and a corrective action.
A task is tied to its object, so the campaign page shows its open tasks and the screen page shows its own; closing a task that came from an alert closes the alert. The agent can open tasks from what it finds, run the safe reads (screenshot, logs) and propose the fix; a person confirms anything that touches a device.
CRM-lite
Customers, brands, contacts, a pipeline with stages and probabilities, and a forecast from it, next to the campaigns they turn into.
Read more…Show less
Each customer has a 360 page: master data, contacts, opportunities and quotes, campaigns and their delivery, activities (notes, calls, meetings, e-mails, tasks), documents and KPIs. The pipeline board shows stages with probabilities and cards with value, close date and owner, with flags for an overdue activity, an expiring quote or a suspected duplicate.
A quote turns into a campaign without retyping: the lines, screens and dates carry over, and the campaign keeps the link back to the opportunity. The forecast is the pipeline weighted by stage probability next to the booked campaigns, and it is versioned when a person locks it.
Customer portal
Advertisers and agencies see their own campaigns, creatives, offers, orders and reports, and sign in with their own accounts; the seller decides what is shown.
Read more…Show less
The portal is the seller’s site for its customers, white-labelled per channel. Home lists what needs the customer (an offer waiting for a decision, a creative that needs a portrait version, a campaign that ends in three days) and what is live now. Campaigns show where and when, expected plays, delivery by hour where the billing mode allows it, the creatives with their readiness per screen group, the order and the activity history.
Offers are accepted or declined with a reason, and acceptance is recorded with date, name and page as evidence. Orders show lines, VAT and the invoices with their payment status. An agency sees its advertisers side by side. An assistant drawer answers questions over the customer’s own objects only.
Owner portal
Venue owners see what plays on their screens and when, decline a campaign with a reason, see their screens’ status, and, where the contract says so, their earnings.
Read more…Show less
The owner’s shell shows upcoming and running campaigns on its screens with a countdown to the first play, a single action (decline with a reason), the screens with online state and connection details the venue’s IT asks for, documents (consent records, screenshots, listing agreement) and settings for the venue, people and notifications.
Money is a switch per owner account: off, and no amount appears anywhere in the owner portal, only plays and slots; on, and the owner sees earnings, revenue share and statements. Owners who want standing rules instead of per-campaign notices write them in their own words.
Invoicing basis to accounting
Ordered and delivered figures per campaign, in the mode the contract uses, exported to your accounting system; the platform itself never issues an invoice.
Read more…Show less
For every campaign and billing period the portal produces the billing basis: ordered plays, delivered plays, counted plays, the mode (planned, planned with credits, delivered), the resulting units and the campaign reference. The accounting system issues the invoice; its number and payment status come back and are shown on the order, never typed by hand.
Anomalies are flagged before the export: plays above capacity, a large provisional share, pending make-goods. The reconciliation report compares what was exported with what the accounting system holds, so finance sees one list of differences instead of two spreadsheets.
Rules in the owner’s own words
The screen owner writes what may and may not play on its screens in plain language; the platform turns it into rules, shows them back for confirmation and enforces them.
Read more…Show less
The owner types a policy as a sentence: no alcohol, no other gyms, no political ads, fast food only after 11:00, nothing with strobes. The platform compiles it into structured rules (categories, competitor sets, time windows, creative attributes), shows them back as cards in plain words, and the owner confirms the version. A test box answers “would this campaign pass?”, and a backtest over past campaigns shows what would have been rejected or sent to review.
Rules are enforced the moment a campaign, a lease proposal or a creative touches the owner’s screens: a hard match (a category, a named competitor, a time window) is rejected with the reason; a semantic match goes to review unless the owner switched on “reject without review”. Every decision is logged with the rule and the evidence, shown to the seller and the advertiser as a reason without exposing other advertisers, and the owner can overturn it in one click.
A policy can only narrow, never force-accept; it cannot override legal or platform rules; the seller’s channel rules stack with the owner’s and the strictest wins. Advertisers can write their own placement policy the same way: never next to another coffee brand, not in the same break as alcohol.
AI agent inside every page
An assistant that sees the page’s data and can act on it: plan a campaign from a brief, check conflicts, explain a play, open a task, propose a fix.
Read more…Show less
The agent panel is aware of the open record. On a campaign it drafts the plan from a brief (where, when, how often, with two alternatives and the reasoning), explains why a screen is left out, and proposes resolutions for a conflict; on a screen it reads the plan, the device state and the logs and proposes the fix; on a customer it summarises the history and drafts the offer text in the customer’s language.
Proposals are cards: what, why, impact, Accept, Reject, Edit. Anything that books capacity, spends money, pushes a plan, changes a price or sends something outside is applied only on confirmation; reads, explanations and digests run on their own. Every accepted proposal is written as the person’s action, marked as made through the agent, and the panel is fully keyboard operable with live-region announcements.
Weekly, the agent writes a commercial digest from the ledger: campaigns behind pace, customers who have not booked against their usual cadence, offers about to expire, unsold inventory for the next weeks.
Feature switches per account and role
An account sees only the features it uses, down to single fields. Switching a feature off removes its pages; nothing already running is stopped.
Read more…Show less
Every switchable feature is in one registry with its dependencies and a minimum role. Whether it is on for an account, and for which roles, is data in the account settings; navigation, forms, API fields, the planner and the agent’s tool list all read the same switch, so a disabled feature leaves no trace in a form or a tooltip.
Presets exist for a seller that only needs campaigns and reports, for an owner that only needs its screens and consent, and for the full platform. Switching one feature on also switches on what it needs, and the page says so.
Versioned settings with a “why”
Account settings are a numbered version. Every save asks why you are changing them, and the answer stays with the version.
Read more…Show less
Everybody in the account can read the settings; only an admin saves. Each save becomes a new version with the person, the time and the note; the versions can be compared. Settings merge from the platform default through the account to a tag, a channel, a listing and a line, so a venue or a single campaign can deviate without copying the whole document.
Numbers that steer the platform (break defaults, when a screen counts as sellable, separation gaps, alert thresholds, default billing mode, report limits) live here, not in code; a change applies to new campaigns, and applying it to open campaigns is an explicit, audited action.
WCAG 2.2 AA
Every field has help text that is also the tooltip, the API description and the agent’s glossary; tooltips work on hover and on keyboard focus; 44-pixel targets.
Read more…Show less
Every field and every choice has a help text that answers what it does and what it is for in one or two sentences; derived fields name their source and where to change it. The same text is the tooltip in the form, the description in the API schema and the glossary the agent uses, so there is one wording everywhere.
Tooltips open on hover and on keyboard focus, can be dismissed with Escape, stay while the pointer is over them, and are linked to their control for screen readers. Buttons state their consequence; destructive actions say what they destroy. Countdowns are updated once a minute with a static sentence beside them, so a screen reader gets a date, not a ticking number.
API and MCP
An OpenAPI service for the portal objects and the same tools over MCP, so an AI client books, checks and reports with the permissions of your account.
Read more…Show less
The REST API covers customers, brands, campaigns, lines, creatives, listings, products, plays, alerts and settings, with the field help texts as descriptions, so a generated client is documented out of the box. Sign-in is OAuth with the person’s role; machines get their own client credentials with a scope.
The MCP server exposes the same operations as tools. An agent client is registered with allowed channels and a rate limit; every call is logged with the decision and the object it touched, so an order placed by an agent is as traceable as one placed by a person.
Legacy migration with rollback
A pre-flight scan of what each account plays today, go-live per account or per screen, and a one-action rollback to the previous system.
Read more…Show less
The pre-flight scan reads the account’s current advertising: which clips play as ads, how often, on which screens, by which schedules, and what would block a clean switch (screens without a location tag, shared schedules, loops that are only ads). It writes a report per account with the decisions to take.
Go-live is per account or per screen: the players are updated first, the campaigns are imported, and only then do the screens take plans from the portal. A rollback returns the screens to their previous playlists and schedules in one action and leaves the imported campaigns in place for the next attempt.
Shadow platform
Customers preview with a copy of their real data and simulated players running the real player software, so the Ads panel and the reports are live before go-live.
Read more…Show less
A copy of the account on a given date, with every page carrying a preview banner; nothing done there reaches a real screen, and no e-mail or chat message leaves it. The current advertising is imported as campaigns; uploaded videos are converted as in production.
Headless players, one per real screen, fetch the plans, time breaks against real clip durations and send proof of play, so the forecast, the alerts and the reports behave exactly as they will after go-live. The copy is removed after the review.
Integrated to your landscape
The Media portal does not replace your accounting, your identity provider or your data warehouse. It connects to them, and it leaves the data with you.
Invoicing
The platform never issues invoices. It hands your accounting system the billing basis per campaign, in the mode your contract uses, with proof of play behind every number.
Read more…Show less
Per campaign and billing period the export carries the ordered, delivered and counted plays, the billing mode (planned, planned with credits, delivered), the resulting units and amounts, the customer and campaign references, and VAT treatment per customer country. The accounting system issues the invoice, the proforma or the credit note; its number, PDF and payment status come back and are shown on the order and in the customer portal, never typed by hand.
The connection is an export or an API connector per account, so a sales house, a reseller and a venue owner can each keep their own accounting system. A nightly reconciliation compares open invoices with the accounting system and flags differences; overdue invoices trigger reminders from the notification engine, and a customer over its credit limit loses the ability to fund new orders, not running ones.
Every figure in the export traces to play records from the screens, so a disputed invoice is answered with the plays by screen and hour, not with a schedule.
Single sign-on
One identity provider federates your Microsoft Entra ID or Google Workspace. Roles and account membership follow your directory; customers and screen owners sign in with their own corporate accounts.
Read more…Show less
Sign-in goes through one identity provider that federates Microsoft Entra ID (with the tenant pinned) and Google Workspace. A person carries linked identities; a link is made only from a signed-in session, and the last way in can never be unlinked. Multi-factor authentication is enforced by your identity provider, so there is no second password to manage; accounts set to single sign-on only have no local password at all.
Join rules per account map a directory tenant or a verified e-mail domain to accounts and a role preset: automatic, with owner approval, or invitation only; public e-mail domains never join automatically, and every join is audited. Leavers lose access when their session expires within a working day and cannot re-authenticate.
Advertisers in the customer portal and venue owners in the owner portal use the same sign-in with their own corporate accounts; their scope is the seller’s account with a customer or venue restriction, so nobody manages a separate password list for partners.
First-party data layer
Your own data (point of sale, footfall, loyalty, weather, stock) lives in its own layer that the planner can target on and the reports can join against, without leaving your control. No third-party data brokers.
Read more…Show less
Every external number enters through a registered source: who owns it, how it arrives (file, API, feed), how often, which mapping version, which privacy class and how long it is kept. An immutable landing copy is kept per account, rows are validated in staging and rejected rows go back to the sender while accepted rows do not wait.
Canonical series (footfall by hour, sales totals by store and day, weather by hour, calendars) carry their source, date and model version on every derived number, and a freshness badge marks any value that is older than its cadence. Person-level data is refused at the door: aggregates only, with a minimum group size, so no shopper is ever in the system.
The planner targets on these series (a campaign weighted towards the hours a venue is busiest), the reports join against them (plays next to footfall, sales lift of campaign stores against control stores by category), and nothing leaves your account: no broker, no resale, no cross-customer pooling.
The engine on the player
One scheduling engine, the same on every platform and in the browser preview: the same plan format and the same proof-of-play records, from the display’s own system-on-chip up.
| Platform | State | Note |
|---|---|---|
| Electron players (Raspberry Pi, x86) | Available now | Same engine, same plan format, same proof-of-play records. |
| LG webOS displays | Available now | On the display’s own system-on-chip, no external player. |
| Samsung Tizen displays | Available now | On the display’s own system-on-chip, no external player. |
| Android displays | Available now | Same engine, same plan format, same proof-of-play records. |
| BrightSign players | Available now | Same engine, same plan format, same proof-of-play records. |
See supported hardware for models and generations.
Coming soon
Everything below is roadmap, not a promise with a date. It is here because the architecture already leaves room for it, and because you should know where this is going before you sign. Open a card for how it will work.
SoonProgrammatic
OpenRTB 2.6 and VAST 4.2 prefetch; deal priorities programmatic guaranteed over private marketplace over open auction; direct bookings always fill first; DOOH SSPs connected through one gateway.
Read more…Show less
How it will work: a listing opens a number of slots per break and per hour to programmatic demand, in given hours, with a floor price and blocked categories; direct bookings always fill first. Ahead of each break the gateway asks the connected exchanges for the open slots with an OpenRTB 2.6 request that describes the venue in the OpenOOH taxonomy, the screen size and the expected people in view; the winning VAST 4.2 ad is fetched, checked against the screen’s codec, size and duration rules and against the owner’s rules, converted if needed, and handed to the screen as an ordinary lease with the lowest priority.
On the screen, a programmatic ad is a lease like any other: the engine plays it only in a slot no direct campaign needs, keeps it apart from competing brands and records the play. The play record carries the deal id, so the exchange’s report is reconciled line by line against the screens’ own records before any revenue is booked.
Deals are honoured in order: programmatic guaranteed, then private marketplace, then open auction. Programmatic revenue is reported as its own source, next to direct campaigns, and the platform takes no share of it.
SoonReal-time bidding with a LoRaWAN fallback
Creatives wait on the screen ahead of time. When the venue’s Wi-Fi is down, auction results and plan deltas still reach the screens over a LoRaWAN network: a few hundred bytes per message, kilometres of range, works in basements.
Read more…Show less
How it will work: the plan and the media travel over the internet ahead of time, as today. What needs to reach a screen at the last minute is small: which pre-cached creative won which slot, a pause or stop, a pace change, an emergency message. Those messages fit in a few hundred bytes.
A LoRaWAN gateway with its own backhaul covers a venue or a district; the screens carry a small radio module. When the venue’s own connection is down, the gateway still delivers the auction results and the plan changes, and the screens still send their counters back. Proof of play continues as it does today: recorded locally, uploaded when the main link returns.
This is a scaled-down mode: no media, no new plans, only control. It is on the roadmap pending a pilot; it is not promised in any offer until the pilot has run.
SoonForecasting and yield
Unsold inventory value, pipeline weighted by probability, occupancy by venue and daypart.
Read more…Show less
How it will work: every night the ledger computes free slots for the coming weeks per venue and daypart and values them at the floor or the product price, so the sales team sees what is unsold and where. The pipeline, weighted by stage probability, is laid next to the booked campaigns to give a forecast with a confidence band; a person locks a version and later versions are compared with it.
Rate-card and discount suggestions come from occupancy, history and lead time; a deviation from the rate card is detected and routed to approval. The first version is deterministic and explainable; statistical models arrive once a year of history exists.
SoonAudience cube and ultra-targeting
Footfall, dayparts and weather per screen and hour of week from the owner’s and third-party aggregates, never a person; every choice explained.
Read more…Show less
How it will work: an audience cube per screen and hour of week (people in view, visitors, category mix from point-of-sale aggregates, context, dwell, confidence) is built from the first-party data layer. A campaign line carries an audience specification: who, where, when, how; a scoring engine turns it into the screens and hourly weights in the plan, and re-scores weekly.
Every choice is explainable: the panel shows why a screen and an hour were chosen and what the alternative would have delivered. No person-level data is ever used; aggregates only, with a minimum group size.
SoonA/B/N experiments with POS lift
Variants of creative, targeting or frequency with holdout stores, and the sales lift read from point-of-sale aggregates.
Read more…Show less
How it will work: an experiment is an object with variants (creatives, targeting, frequency, channel mix), a randomisation by venue, time or traffic, a holdout group and a power calculation before it starts. The planner assigns the variants, the screens play them as ordinary leases and the play records carry the variant.
The result is a difference-in-differences or synthetic-control estimate of the sales lift from the point-of-sale aggregates in the first-party data layer, with a confidence interval; the decision stays with a person. Invoices are not affected by an experiment.
SoonPick-and-watch interactive slots
Lift, NFC, QR, button or presence triggers configured from the plan and counted as interactions, never as ad plays.
Read more…Show less
How it will work: an interactive slot is a placement of its own: a trigger (a lifted product, a tap, a scan, a button, a presence sensor) configured from the plan with a cooldown and a maximum per hour, played through the player’s existing interruption path, and counted as an interaction record, never as an ad play.
Interactions are aggregated per screen, trigger, product and hour and joined with sales through the first-party data layer, so a brand sees pick-ups and conversions rather than impressions. See the existing pick-and-watch use case for the player side.
SoonAI search bridge
The same campaign mirrored into Google AI Mode and ChatGPT answers in the same districts and hours, with one report for both surfaces.
Read more…Show less
How it will work: when a campaign is booked on screens, the agent proposes a twin for the AI search ad surfaces: headlines and descriptions from the brief and the creative, a still from the video in the platforms’ ratios, a geography derived from the booked venues, the booked hours as the ad schedule and a budget share the seller picks. A person approves; the connector creates the campaign in the advertiser’s own ad account, linked to the seller’s manager account.
A daily sync returns impressions, clicks and spend by geography into the same report as the proof of play. Lift is estimated on our side by comparing districts with screens against districts without, from aggregates only; the only signals that cross in either direction are category, district and hour. Pausing the screen campaign pauses the twin.
SoonMulti-channel placements
Print, e-mail, web banners and in-store audio booked in the same campaign with the same approvals and the same report.
Read more…Show less
How it will work: a campaign line has a placement kind, and only the executor, the proof and the capacity unit differ by kind. Screens run on the engine; print and secondary displays go through a fulfilment workflow with photo evidence as proof; e-mail, web and app placements go through adapters to the owner’s own systems; in-store audio runs on the audio player with “audible” as the billable condition, loudness normalised and announcements taking priority.
One creative library, one approval engine, one capacity ledger, one report and one invoicing basis across kinds, so a retailer’s supplier books the shelf screen, the receipt and the radio spot in one order and sees one result.
SoonOutpainting for odd sizes
Fills the missing area of a creative with generated background, so nothing is cut or distorted on LED strips and unusual screens.
Read more…Show less
How it will work: next to fit, pad, crop and stretch, a fifth option fills the area a creative does not cover with generated background that matches it, so a landscape video becomes a portrait or a strip without bars or cuts. The result is a normal converted copy with the usual preview and readiness check, and the plan carries it for exactly the screens that need it.
The same pipeline produces the ratios the AI search bridge needs from one screen creative.
We do not build our own exchange. Demand comes from your sales team, your agency partners and the DOOH SSPs we connect to, and the platform takes no share of programmatic revenue for being in the middle.
Who it is for
Sales houses and ad networks
Sell screens you do not own, under rights the owners grant, with one campaign form and one report for every owner’s screens.
Screen owners who want to monetise
Keep your own content and your break settings; let one or several sellers fill the breaks, and see what every screen plays and why.
Retailers running retail media
Turn store screens into a media channel your team or your agency sells, with proof per play for every supplier campaign.
Agencies
Book the same campaign across several networks, check the plan before it runs and get the same report from each.
What is your screen network worth?
A retail chain with 250 stores, 24,000 visitors a week per store and 4 screens a store serves 24 million screen contacts a week and sells about €2.5 million of media a year at a €2 CPM. Choose who sells it today to see how much of that leaves the building, put in your own numbers, then ask for an offer with them attached.
Change any number; the totals update as you type.
What your screens are worth as media
€2,496,000a year
- A week
- €48,000
- A month
- €208,000
- Per store a year
- €9,984
250 stores × 24,000 visitors a week × 4 screens = 24,000,000 screen contacts a week. At €2.00 per thousand that is €48,000 of media a week.
Arithmetic only: stores × visitors per store × screens per store × CPM ÷ 1,000 × share sold, 52 weeks; every visitor counts as a contact on every screen. Your CPM and sell-out decide the real number.
How much of it leaves the building
- Handed over a year
- €998,400
- 40% to retail-media platform on revenue share (footprints, maximum)
- You keep a year
- €1,497,600
- Per screen a month
- €83.20
- handed over, on 1,000 screens
We will be more effective. €83.20 per screen a month leaves the building today. impressBox charges a flat platform fee per screen, takes no revenue share and no share of programmatic revenue, and sells, plans and proves the campaigns on one platform. Ask for an offer and we put it in writing.
Migration without a big-bang day
Say a network runs its advertising today on another system: campaigns in a spreadsheet, playlists in a CMS, reports pasted together each month. The Media portal is set up beside it, not instead of it. With Claude and the platform’s MCP tools the portal is made to shadow the current system: screens, venues and opening hours come from the devices; the running campaigns are imported from the current CMS, from its exported files and, where nothing else exists, from screenshots of its screens.
Then a shadow fleet starts: headless players, one per real screen, running the real player software without a display. They fetch the real plans, time breaks against real clip durations and send proof of play, so the Ads panel, the alerts and the reports fill up as they would on the real screens. The fleet can mirror the network’s real conditions, including the internet and power interruptions recorded on the existing devices, so you see what the engine does during an outage and what the proof of play looks like afterwards, before anything touches a real screen.
The switch happens only when you feel confident, screen by screen or venue by venue, at your pace. A switched screen takes its plans from the portal; the others keep playing from the old system, which stays in place until the last one has moved. A switched screen can be returned with one action.
There is no cut-over weekend and no parallel double entry: the portal is the system of record for the screens that have switched and the old system for the rest, and the shadow fleet keeps showing what the next batch will do.
Custom pricing, agreed per network
The Media portal is priced per network: the number of screens, the channels you sell through, the portals you open to customers and owners and the integrations you need decide it, and the price is agreed in writing before anything is set up. There is no revenue share, no share of programmatic revenue and no clause on your data. The per-device player licence is on the pricing page.
Ask for a proposalHow it compares
Broadsign sells an out-of-home trading stack to media owners; Footprints offers retailers a retail media platform funded by advertisers. The Media portal is an operations layer for venues and networks that sell their own screens, on the players they already have. The comparison page puts the three side by side on business model, total cost, where it runs, data ownership, openness, migration and AI, with only publicly documented claims about the others.
Media portal vs Broadsign vs FootprintsNine business rows, sources linked, reviewed October 2026.Frequently asked questions
What is the impressBox Media portal?
The part of impressBox that sells and runs advertising on a screen network: products, campaigns, creatives, conflict checks, a signed plan per screen, proof of play per play, reports and billing modes, plus CRM-lite, tasks, a customer portal and an owner portal. It lives in the same dashboard as your content and devices.
Is it an ad server?
No. There is no ad server deciding a slot at a time over the network. The planner sends every screen a signed plan; the player decides locally which campaign fills each break, beside the venue’s own loop, and records every play. The plan preview in the browser runs the same engine, so what you see is what the screen will do.
What happens when a venue loses its connection?
The screen keeps its plan, keeps filling breaks and keeps recording plays; the records are uploaded when the link is back. Coming soon: a LoRaWAN fallback carries auction results and plan changes to the screens while the venue’s Wi-Fi is down.
Can a sales house sell screens it does not own?
Yes. An owner adopts the seller’s channel by putting it into the house loop; the listing says which share of the break slots the seller may fill and what it may do with the device. The owner keeps the break settings, can write its own rules in plain language, and can end the listing at any time.
Which players run the engine?
Electron players on Raspberry Pi and x86, LG webOS and Samsung Tizen displays on their own system-on-chip, Android displays and BrightSign players: the same engine, the same plan format and the same proof-of-play records on every platform. See supported hardware.
How do we move an existing network without downtime?
The portal shadows your current system first: content imported, a headless player per real screen running the real plans, proof of play visible before anything touches a real screen. Screens then switch one at a time, when you are confident, and the old system stays in place until the last one has moved.
What does the Media portal cost?
Custom pricing, agreed per network: the number of screens, the channels you sell through and the integrations you need decide it, and there is no revenue share and no data clause. Contact us for a proposal, or book a demo first.
See the Media portal on your own screens
Book a demo: we show the campaign form, the plan preview and the Ads panel on a copy of a real network, and talk through what a shadowed migration of your network would look like.