Managing Dynamic Creatives with Displayce

Introduction to Dynamic Creative Optimization with Displayce

Displayce's Dynamic Creative Optimization (hereafter DCO) module allows advertisers to serve ads with content that varies from one play to the next based on feed information retrieved from one of our adservers.

 

Principles of dynamic content

This documentation is based on the example package DCO_package_BET_1080x1920-online-EN used for our technical tests. This sample advertisement promotes a dummy site bet.com:

The aim is to display sports betting odds based on information retrieved from our servers. The general principle is to superimpose lightweight information (such as text elements or small images) on a 10s mp4 video in order to make the video more dynamic and contextualized. In our example, the dynamic information is displayed from the 3rd second onwards in this form:

These informations may vary from one broadcast to the next. This example covers the so-called "simple" DCO, in which the creative adapts in real time according to external events.

Provided files

The creative is provided as an HTML file with its dependencies, archived as a .zip archive called DCO package. In this archive you will find:

  • ./css/* : CSS style sheets
  • ./js/moment.min.js : javascript dependency
  • ./assets/images/empty.png: white background used for overlaying
  • ./assets/videos/template.mp4 : mp4 video with empty inserts from the 3rd second onwards
  • ./assets/videos/backup.mp4 : mp4 video without empty inserts, can be played when the player is offline
  • ./assets/font/*: font dependencies
This creative is designed to be displayed on a 1080*1920 full screen resolution, portrait orientation. During the campaign, it is expected that player reload the html file at each play. This leads to a remote call to our adserver in order to retrieve lightweight feed information. In our example, the call is equivalent to:
curl 'http://unsecured.datahub.dev.preprod.displayce.com/live-feed/a7cd0acb-e338-4a4f-bc02-d4c0fa66ac72/status.json?access_token=XXXXX' \
 -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0' \
 -H 'Accept: */*' \
 -H 'Origin: null'
→ which returns the payload
{"match_date":"2021-01-22","match_hour":20,"home_team":"Juventus","visiting_team":"Schalke 04","odds_home":1.18,"odds_draw":1.3,"odds_visiting":1.24}
 

 
These feed information is then interpreted by the javascript code to be displayed in the empty inserts of the mp4 movie:   Previewing the creative on a user computer for creative approval In the assets/videos directory there are two videos:
  • ./assets/videos/template.mp4: mp4 video with empty inserts from the 3rd second onwards
  • ./assets/videos/backup.mp4: mp4 video without empty inserts, can be played when the player is offline
 

Testing the dynamic creative on a user computer

The HTML creative is designed to be displayed using a chromium based browser. To preview the rendering in the right format, once opened in a browser, activate the developper mode → responsive and set the rendering resolution to 1080 * 1920: The match information should then be correctly positioned in the inserts provided, and should change at each refresh. DCO Package for offline players In the case where the player is not exposed to the internet, we provide an alternative package DCO_package_BET_1080x1920-offline-EN designed to work in offline mode. This alternative package embeds a feed configuration and can be used in non-connected environments.

Technical requirements

At each play, the HTML file tries to establish a connection with our adserver. During the test phases, the called endpoint is:

http://unsecured.datahub.dev.preprod.displayce.com/live-feed/a7cd0acb-e338-4a4f-bc02-d4c0fa66ac72/status.json?access_token=XXXXXX
For compatibility reasons, this endpoint is proposed in non-secure mode (http) and accepts all origins. https versions are available on request. This endpoint is optimized on our side to have a guaranteed response time under 100ms. If you need to whitelist the adserver, this endpoint is served by the machine with the ip : 147.135.193.225 In case of inability to connect to the adserver (network outage, throttling proxy) two situations may occur:
  • If the player was able to connect to the ad-server recently: We exploit the browser's cache and the latest feed configuration is used. This allows the creative to work on players that are not constantly connected to internet
  • If the player has never been able to connect to the internet or beyond the TTL of the cache: In this case the html file is configured to display the backup video which contains a generic message:
  Sample DCO packages
  1. DCO_package_BET_1080x1920-online-EN : DCO package expecting the player to be connected to the internet, english creative
  2. DCO_package_BET_1080x1920-offline-EN : DCO package not expecting the player to be connected to the internet, english creative
  3. DCO_package_BET_1080x1920-online-FR : DCO package expecting the player to be connected to the internet, french creative
Terminology
  1. Adserver: service hosted on Displayce servers providing a data stream in json format.
  2. Feed: dataset served in json format and evolving in real time.
  3. DCO Dynamic Creative Optimization
  4. DCO Package: Archive in .zip format encapsulating the html5 file, the template and backup videos
  5. Template data, which we'll call feed instead. The format is often json. This feed can be: directly sourced by Displayce if it is generic (traffic jam, weather, epidemic... ) or sourced by the trading desk if it is 1st party data
  6. Creative Template: This is the video, prepared to receive variabilized information and encapsulated in an html5 that displays it. This HTML consumes, via our adserver, the feed and displays it.
  7. Backup video: Video that can be displayed without access to our adserver, used in case of a permanent network cut for the player.
Additional references