GoAdserver
Live demo · digital screens (DOOH)

Ads on digital screens, live

Two screens of our demo account, a station hall in Amsterdam and a gym in Rotterdam, each with its own playlist from the same ad server.

Watch the player pull its playlist, play it, and confirm every play with a proof of play.

01

A screen, live

Pick a screen. Its player pulls a playlist from the ad server and plays it; after each ad it sends the proof of play.

Zones #12512841 (station hall) and #12512842 (gym) · type Screens · 1920x1080

Plays confirmed0
Audience reached0
Billed€0.00

    This is a real screen zone of our demo account. The player above asks the ad server for a playlist, shows each ad for 6 seconds and then sends that ad's proof of play. Every confirmed play is a real impression in the demo account's statistics, billed at the campaign's CPM bid × the screen's audience. The counters are this browser's plays only.

    02

    Why the two screens play different ads

    Advertisers choose venue types and a radius around a place. The same six campaigns give each screen its own playlist.

    Campaign option Run on digital screens

    CampaignScreen targetingCPM bidStation hallGym
    Kestrel Stays
    Boutique hotels in Amsterdam from €89
    venues: Transit, Airport€2.40plays—
    SkyHopper
    Flights to Barcelona from €39 one way
    venues: Transit, Airport€2.20plays—
    Nordbrew
    Espresso machines with a built-in grinder
    venues: any; within 30 km of Amsterdam€1.40plays—
    StrideLab
    Running shoes fitted to your stride
    venues: Gym, Shopping mall€1.60—plays
    Fjellpeak
    Lightweight tents for 1 to 4 people
    venues: any; within 30 km of Rotterdam€1.50—plays
    Voltway
    E-bikes with a 120 km range
    venues: any€1.70playsplays

    Both screens show only campaigns that switched on Run on digital screens, and these six also chose Only on screens, so they never appear on a website. A campaign with a radius plays only on screens within that distance; a screen without a location never gets those campaigns.

    03

    How a screen gets its ads

    A player needs nothing but the screen's links: pull, play, confirm, repeat.

    JSON or VAST 4 · ready-made web player

    1. Pull a playlist with the screen's key. The answer lists the ads to play, each with its image or video, how long to show it, and a proof_url.
    2. Play the ads in order. An image stays on screen for the zone's seconds per image; a video plays to its end.
    3. Confirm each play by calling its proof_url. Only then does it count. Each play counts once, and only within 3 hours of the pull.
    4. Pull again when the list has played out. Outside opening hours the list is empty and says "open": false.

    Signage software can take the same list as VAST 4 (&format=vast, one ad per item in play order, the impression is the proof of play). A plain browser in full-screen mode can run our ready-made web player instead: open the station hall's web player.

    The live answer for the station hall right now (ids shortened):

    Loading…
    04

    Proof of play and billing

    Only played ads count, and a play is billed for the people in front of the screen.

    CPM × audience per play

    One play reaches more than one person, so a play is billed for its audience: cost of a play = CPM bid ÷ 1000 × audience per play. The station hall counts 60 people per play, so a €2.40 CPM play there costs €0.144; the same campaign on a 15-person gym screen would pay €0.036.

    • In the statistics each confirmed play is one impression, and its cost already includes the audience. The publisher's revenue share follows the same number.
    • A proof of play that is sent twice counts once. One that comes more than 3 hours after the pull is ignored.
    • Screen campaigns use CPM pricing. Leave frequency capping off: a screen is one viewer to the ad server, so a cap would stop an ad after a few plays.
    05

    Opening hours

    A screen in a shop is dark at night; so is its ad money.

    Per screen, in the screen's time zone

    Each screen has opening hours in its own time zone: the station hall is on air 06:00 to 23:30, the gym 07:00 to 22:00 (Europe/Amsterdam). Outside them the playlist is empty, nothing is billed, and the player waits 5 minutes before it asks again. Hours that pass midnight, such as 22:00-06:00, work too.

    The live status above comes straight from the ad server: if you open this page at night, the screen shows that it is off the air.

    06

    The zone

    Everything the station hall's zone holds, and the links its player uses.

    Settings tab + Code tab

    A screen is an ad zone of type Screens: a banner size (here 1920x1080) plus the screen's details. The zone's Code tab, and GET /api/v1/adspaces/{id}/code, give the three links with the screen's key.

    {
     "screen_settings": {
      "venue_type": "transit",
      "lat": 52.3791,
      "lon": 4.9003,
      "address": "Station hall, Amsterdam (demo)",
      "width": 1920,
      "height": 1080,
      "orientation": "landscape",
      "audience_per_play": 60,
      "opening_hours": "06:00-23:30",
      "timezone": "Europe/Amsterdam",
      "slot_seconds": 6,
      "playlist_size": 6
     }
    }
    Web player:  https://g2.gsrv.dev/screen.go?act=player&spaceid=12512841&key=fa68f49df169be95aaa7c080
    Playlist:    https://g2.gsrv.dev/screen.go?spaceid=12512841&key=fa68f49df169be95aaa7c080
    VAST:        https://g2.gsrv.dev/screen.go?spaceid=12512841&key=fa68f49df169be95aaa7c080&format=vast

    On a real screen keep the key private: whoever has it can pull the playlist and confirm plays. Issue a new key from the zone settings if it leaks.

    About the format: Digital screen ads (DOOH) · all ad formats · all live demos

    Run these formats on your own network

    Every format on this page is part of the GoAdserver ad server. Talk to us about your platform.

    Contact us