Getting Started with OOH Ad Sales

Mike Tinnes
Mike Tinnes
  • Updated

This guide walks you through selling advertising on your screens, from an empty account to a live campaign delivering ads. No previous advertising experience is assumed — every term is explained the first time it appears.

Set aside about 30 minutes for your first run-through.

What this feature does

Digital signage screens usually show only your own content. OOH ad sales lets you sell some of that screen time to advertisers, and Revel Digital handles the rest: choosing which ad plays on which screen at which moment, keeping competing brands apart, limiting how often the same ad is repeated, and reporting what was delivered.

OOH stands for out-of-home — the industry term for advertising people see while away from home, such as screens in a lobby, a gym, a retail aisle or a waiting room.

How the pieces fit together

There are two sides to this, and it helps to keep them separate in your mind.

The supply side is what you sell — your screens and the gaps in your playlists.

The demand side is who buys it — advertisers and their campaigns.

The vocabulary

Term What it actually means
Ad break A deliberate gap you leave in a playlist for an ad to drop into. Nothing plays there until a campaign fills it.
Inventory unit One sellable slot: this ad break, on this screen. This is the thing you are selling.
Inventory package A bundle of units sold together, such as "All Lobby Screens". Advertisers buy packages, not individual units.
Rate card Your pricing.
Advertiser The brand or business buying the ads.
Campaign One advertiser's marketing push, with a start and end date.
Flight The date range a campaign runs between. "In flight" means running now.
Line item The actual purchase inside a campaign: what was bought, at what price, with what targeting.
Creative The image or video that plays.
Loop One full cycle of a playlist. A 60-second loop repeats 60 times an hour.
Share of voice (SoV) The percentage of a screen's ad slots that go to one advertiser. Buying 25% share of voice means roughly one ad break in four.
Impression One person seeing the ad once. The standard unit advertisers pay for.
Fill rate The share of your ad breaks that actually sold.

The one that catches people out: an inventory unit is not a screen. It is a specific ad break on a specific screen. One screen with three ad breaks in its playlist is three units.

Two more worth understanding early, because they explain why OOH works differently from web advertising:

Your inventory is finite. A website has effectively unlimited ad space — one slot per page view. A screen has a loop. If the loop is 60 seconds and the ad slot is 15 seconds, that slot plays four times an hour, every hour, and never more. You cannot create additional inventory by getting more traffic.

There is no individual viewer. A screen in a shopping center is seen by whoever walks past. There are no cookies and no per-person targeting. In OOH, targeting means choosing which screens, at what times.

Before you start

You will need:

  • OOH enabled on your account. If you do not see the OOH section in the main menu, contact support to have it switched on. Nothing in this guide is visible until it is.
  • At least one active screen that is online and playing content normally.
  • A playlist already scheduled to that screen.
  • Player firmware that supports runtime ad delivery. See the next section. If you are not certain your players have it, contact support to confirm before continuing.
  • The advertiser's artwork in your media library. Advertisers do not upload their own artwork, so whatever they intend to run has to be added to the CMS first.

Understanding delivery modes

Every screen is set to one of two modes. This choice determines when the ad is chosen.

Baked into schedule — ads are selected in advance and built into the content package the player downloads. Works on any player, including ones that spend long periods offline. Less responsive, because the ad was chosen hours before it played.

Requested at play time, also called runtime — the player asks our ad server for an ad at the exact moment the break arrives. This gives accurate frequency capping, live pacing and up-to-the-minute targeting.

This guide assumes runtime delivery.

⚠️ Read this before switching a screen to runtime

Runtime requires player firmware that can reach the ad exchange, plus a working network connection at the moment each break plays.

If you switch a screen to runtime before its firmware supports it, the ad breaks play empty. The screen keeps showing your regular content, but the ad gaps go unfilled and nothing reports an error — because from the server's point of view, the player simply never asked for an ad.

Contact support to confirm your players support runtime delivery. Start with one screen, not your whole fleet.

Step 1 — Put an ad break in a playlist

This is where ads will appear. Until a playlist contains an ad break, there is nothing to sell.

  1. Go to Playlists and open the playlist your screen is using.
  2. Add a new item and choose Ad Break as the type.
  3. Position it where you want ads to appear, between your own content items.
  4. Set the duration to the spot length you intend to sell — commonly 15 seconds.
  5. Save the playlist, and make sure it is scheduled to your screen.

Start with a single ad break. You can add more once the first is delivering.

Step 2 — Set your screen to runtime delivery

  1. Go to Devices and open the screen you are starting with.
  2. Find Ad delivery mode.
  3. Change it to Requested at play time.
  4. Save.

While you are here, fill in the screen attributes if they are blank — screen orientationaudio enabled and outdoor screen. Advertisers use these to target, so a screen with blank attributes may be skipped by campaigns that would otherwise have bought it.

If you do not see Ad delivery mode on this page, OOH is not enabled on your account.

Step 3 — Create your inventory

Now you describe what you are selling. Go to OOH → Inventory.

Create a unit

  1. Click New unit.
  2. Choose the screen.
  3. Choose the playlist.
  4. Choose which ad break to sell, or All ad breaks in this playlist. Selling all breaks is the usual choice; name a specific break only if you intend to sell that break on its own terms.
  5. Set spot length (seconds) — how long one ad plays.
  6. Set loop length (seconds) — the real wall-clock time for one full playlist cycle on that screen. This is how we calculate how many ad opportunities exist per hour, so an inaccurate value quietly distorts your availability figures.
  7. Set physical screens.

Physical screens is not always 1. It means how many actual displays a viewer sees. One player driving a three-panel video wall should say 3, because impressions scale by what people look at, not by device count. Getting this wrong scales your reported audience wrong.

Repeat for each screen you want to sell.

Screen and playlist cannot be changed after saving. Changing them would move already-sold inventory onto different hardware. To correct a mistake, retire the unit and create a new one.

Create a package

Advertisers buy packages, never individual units — so even for a single screen, you need one.

  1. Go to the Packages tab and click New package.
  2. Name it something a buyer would understand: "Downtown Lobby Screens", not "Package 1".
  3. Add your units.
  4. Set visibility to control who may buy it.

Visibility governs who may buy the package, not whether it delivers. Withdrawing a package stops it being offered to new buyers; line items that already bought it keep running.

Step 4 — Set your pricing

Go to OOH → Rate cards and create one.

Pricing is normally quoted as CPM — cost per mille, meaning the price per one thousand impressions. A $10 CPM means you earn $10 each time your ads are seen a thousand times.

A rate card can be attached at two levels:

  • On the package — the default price for everything in it.
  • On an individual line item — overrides the package price for that one purchase.

If neither is set, the line item is unpriced. It will still deliver ads, but it will not generate revenue figures. If your delivery reports show plays but no revenue, this is almost always the reason.

Step 5 — Add an advertiser

Go to OOH → Advertisers and add one. Every campaign belongs to an advertiser, so you need at least one before anything can be booked.

  • Advertiser — the brand or client being sold to.
  • Competitive category — for example "Automotive" or "Fast Food". This keeps competing brands out of the same ad break. Matching is exact, so reuse an existing category rather than spelling a new variant of it.
  • Billing contact — the name and email invoices are addressed to.
  • Portal access — see below.

Granting advertiser portal access

By default an advertiser is operator managed: you set up and run everything on their behalf, and they have no login.

Alternatively, you can assign a user under Portal access. This grants that person a login limited strictly to this one advertiser. They can see their own campaigns, creatives and delivery figures, and nothing else — no other advertiser's data, and none of your inventory, packages or rate cards, which remain operator-only.

Use this when a client wants to check their own delivery without calling you. Leave it unassigned if you would rather stay the only point of contact.

Who uploads the artwork

Advertisers do not upload their own artwork. A creative is a link to an item already in your media library, so the media has to exist in the CMS before a creative can point at it.

In practice the client sends you the file, you add it to the media library, and then it can be attached to a creative. This is deliberate: it means every asset passes through you before it can be booked.

Controlling which media an advertiser can see

Left alone, a portal user with access to your media library sees everything in the account — including artwork belonging to your other clients. If you are selling to more than one advertiser, use the Organizations feature to prevent that.

Organizations scope media by folder, and the rule is straightforward:

  1. Create an organization for the advertiser.
  2. Create a media folder for their artwork and assign that folder to the organization.
  3. Assign the advertiser's portal user to the same organization.

That user then sees only the media in folders belonging to their organization. The same scoping applies throughout the CMS, so it also limits the playlists, templates and devices they can see. Organization scoping and advertiser scoping work independently and stack: the user is limited to their organization's media and to the advertisers they manage.

Two things to watch.

A user with no organization sees all account media. Assigning folders to an organization achieves nothing on its own — the restriction only takes effect once the user is assigned to an organization too. It is the user assignment that does the work.

Media in no folder is invisible to organization users. Because scoping works through folders, a file that was never put in one cannot be seen by anyone assigned to an organization. If an advertiser reports that their artwork is missing from the picker, this is usually why — put the file in a folder belonging to their organization.

Organizations are managed by the account owner. If you are selling to a single advertiser, or you upload all artwork yourself and never give clients a login, you do not need them.

Step 6 — Create the campaign

Open the advertiser and create a campaign.

  • Flight start and flight end — the dates the campaign runs between.
  • Goal — either a number of plays or a number of impressions.
  • Priority — how this campaign ranks against others competing for the same break.

A campaign starts as a draft. Only an active campaign competes for ad breaks, so a campaign left in draft delivers nothing.

Flight dates are evaluated in the screen's local time, not UTC. A campaign ending "March 31" ends at the end of March 31 where the screen physically is.

Step 7 — Create the line item

The line item is the actual purchase, and this is the step people most often miss. A campaign with no line item delivers nothing.

Inside your campaign, create a line item and set:

  • Inventory package — what they are buying. A line item with no package will never deliver.
  • Flight — defaults to the campaign flight, and can be narrower.
  • Weight — relative priority when several line items compete for the same break. A line item with weight 2 gets roughly twice the share of one with weight 1.
  • Share of voice % (optional) — the share of ad slots you intend this line item to take. See below.
  • Rate card — leave it inheriting from the package unless this buyer negotiated a different price.
  • Targeting (optional) — restrict to certain screen attributes or locations.
  • Frequency cap (optional) — the maximum number of times one screen shows this ad in a period, for example once per hour.

Set the line item status to active.

Frequency caps only apply to screens on runtime delivery. A screen set to baked into schedule ignores them, because its ads were chosen before there was anything to count. This is one of the main reasons to use runtime.

Weight and share of voice

These two fields answer the same question — how much of the loop does this advertiser get? — but from opposite ends, and it is worth understanding the difference before you sell against either.

Share of voice is the commercial promise. It is the language advertisers actually negotiate in: "25% share of voice on the lobby screens." Because a digital screen's loop is fixed, share of voice is simply arithmetic. A 60-second loop with a 15-second ad break plays that break four times an hour. One advertiser at 25% share of voice expects one of those four plays, or 96 plays a day on a 24-hour screen.

Weight is the mechanism. When several active line items compete for the same ad break, the system picks between them at random, in proportion to their weights. Two line items at equal weight each take about half the breaks over time. Weight 3 against weight 1 gives roughly 75% and 25%.

To sell a share of voice today, convert it into weights across the line items sharing that inventory. For 50/25/25, use weights 2, 1 and 1.

Share of voice is recorded, not enforced. The field stores what you sold so it appears on the line item and in reporting, but the decisioner does not currently read it — delivery is driven by weight alone. If you promise 25% share of voice, you must still set the weights to produce it. Setting share of voice to 25 and leaving every weight equal will deliver an equal share, not a quarter share.

Two things to keep in mind when you convert:

  • Weights are relative, and only to line items competing for the same break. A weight of 100 means nothing on its own. It is only ever compared against the other line items eligible for that slot at that moment.
  • The split is statistical, not a rota. The system does not deal ads out in strict rotation, so the share evens out over hours and days rather than within any single loop. Judge it over a full day.

Share of voice is also capped by reality: if only one campaign is active, it takes 100% of the breaks whatever its weight or share of voice says. Weight decides how a contested break is split; it never holds a slot empty.

Step 8 — Add and approve the creative

The creative is the image or video that plays. It is not an upload — it is a link to an item already in your media library, so add the artwork to the library first if it is not there already.

When creating the creative, choose the media, give it a name, and set its duration. Match it to your spot length and screen orientation; a creative longer than the slot allows will not be selected.

Replacing the media on an already-approved creative returns it to pending review, which stops it serving until it is approved again.

New creatives start as pending. Go to OOH → Approvals and approve it, then set the campaign status to active.

Nothing delivers until both the creative is approved and the campaign is active. Approved alone is not enough.

Step 9 — Confirm it is working

Check these in order. Each one rules out a different failure.

  1. Is the campaign live? Go to OOH → Console. Your campaign should appear under campaigns live. If not, check the campaign status and that today falls inside the flight dates.

[SCREENSHOT: OOH Console with a live campaign] The OOH → Console overview with at least one campaign counted under campaigns live, and the fill rate tile in frame. Use realistic sample figures — an all-zero dashboard teaches nothing. Alt text: OOH Console dashboard showing a live campaign count and fill rate. 2. Is the ad playing? Watch the screen through a full playlist loop. Your ad should appear in the break. This is your real confirmation — the screen itself tells you immediately, whereas the reports will not. 3. Is delivery being recorded? Go to OOH → Delivery. Allow at least 30 minutes before expecting anything here. 4. Are impressions arriving? Impressions require audience measurement hardware. Without it, plays will report but impressions stay empty. This is expected, not a fault.

⏱ Reporting is not real-time

Plays and impressions typically take 30 minutes to appear in the CMS, and often longer. Players report their activity in batches, and that data is then processed before it reaches your reports.

An empty delivery report shortly after your first ad plays is normal and is not evidence that something is broken. Confirm delivery by watching the screen (step 2), then check the reports later.

Only start the troubleshooting steps below if the ad is not visibly playing on the screen, or if delivery is still empty after a few hours.

Troubleshooting

The ad break plays empty

Ad delivery fails quietly by design — a problem with advertising must never stop your actual signage from playing. That means you need to work through the possible causes rather than wait for an error. These are ordered by how often they turn out to be the cause.

  1. Firmware does not support runtime. By far the most common cause. The player never asked for an ad, so nothing filled the break. To confirm, switch the screen back to baked into schedule and see whether ads appear.
  2. The screen is not set to runtime. Recheck Step 2.
  3. The inventory unit points at a different playlist than the one actually scheduled to the screen, or names a specific ad break that is not the one being filled.
  4. The unit is not in a package, or the package is inactive.
  5. The line item has no inventory package. An unbound line item never delivers.
  6. The campaign or line item is not active. Draft and approved are not enough.
  7. Out of flight. Remember this is judged in the screen's local time.
  8. The creative is not approved, or is longer than the slot allows.
  9. Targeting excludes the screen. If the line item targets outdoor screens and your screen's outdoor attribute is blank, it will not match.
  10. The frequency cap is already met. If it is capped at once per hour and has already played this hour, the break correctly stays empty.
  11. A network problem at play time. Runtime needs live connectivity at the moment the break arrives.

If you have worked through all of these, contact support with your account name, the screen name and the campaign name.

The ad is playing on screen, but delivery reports are empty

Almost always reporting lag rather than a fault. Plays and impressions generally take 30 minutes or more to appear in the CMS. If the ad is visibly playing, delivery is working — check the reports again later. Contact support only if the ad has been playing for several hours with nothing recorded.

Delivery shows plays but no revenue

No rate card is attached, so the line item is unpriced. See Step 4.

The media picker is empty, or the artwork is missing from it

The picker only lists media already in your library, so first confirm the file has been uploaded.

If it has, and the person looking is assigned to an organization, they can only see media in folders belonging to that organization. A file sitting in no folder at all is not visible to them either. Put the file in a folder assigned to their organization.

See Controlling which media an advertiser can see.

Impressions are empty but plays are recorded

This is expected without audience measurement hardware. Plays count how many times an ad displayed; impressions count how many people saw it, which requires a sensor.

Fill rate is low

Fill rate is the share of ad breaks that sold. A low number means you have more ad breaks than you have campaign demand. Either sell more campaigns, or reduce the number of ad breaks so the ones you have are worth more.

An advertiser is not getting the share of voice they bought

Check the weights, not the share of voice field. Share of voice is recorded for reference; delivery is driven by weight. Add up the weights of every active line item competing for that inventory and confirm the proportions match what you sold — for 50/25/25, the weights should be 2, 1 and 1.

If the weights are right and the share still looks wrong, check how many campaigns were actually running. A line item only loses share to line items it competes with, so a 25% buy will take every available break during any period when nothing else is active. Also give it a full day: the split is statistical and evens out over time rather than within a single loop.

Two competing brands played back to back

Set the competitive category on both advertisers, spelled identically. Separation matches the category text exactly, so "Fast Food" and "Fast food" are treated as different categories.

Good practice for your first month

  • Start with one screen. Prove the whole chain end to end before scaling up.
  • Set competitive categories properly. This is what keeps rival brands apart — a problem you will hear about from your advertiser, not from the system.
  • Do not over-supply ad breaks. Three breaks in a short loop with only one advertiser means mostly empty gaps. Fewer, fuller breaks look better and are worth more.
  • Check physical screens on every unit. It silently scales your reported audience.
  • Watch fill rate weekly. It is the clearest signal of whether to sell harder or supply less.
  • Set weights to match what you sold. If you promised a share of voice, convert it into weights across the competing line items — the share of voice field records the deal but does not enforce it.
  • Judge campaigns on a full day, not on the last hour. Because reporting lags by 30 minutes or more, recent figures always look lower than reality. A campaign that appears to be under- delivering late in the day has usually just not finished reporting.

Quick reference

Task Where
Add an ad break Playlists → your playlist
Set runtime delivery Devices → your screen → Ad delivery mode
Create units and packages OOH → Inventory
Set pricing OOH → Rate cards
Add advertisers, campaigns and line items OOH → Advertisers
Upload advertiser artwork Media
Scope media access per advertiser Organizations (account owner)
Approve creatives OOH → Approvals
Check delivery OOH → Delivery
Overview and fill rate OOH → Console

Inventory, packages and rate cards are operator-only. Advertisers with portal access do not see them.


Need help? Contact support with your account name, the screen name, and which step you reached.

Related to

Was this article helpful?

0 out of 0 found this helpful

Have more questions? Submit a request

Comments

0 comments

Please sign in to leave a comment.