1. Home
  2. Docs
  3. Documentation
  4. Getting Started
  5. Creative Requirements

Creative Requirements

Enable access to your creative

Your creative should be available over HTTP/HTTPS for our worker. If your creative is auth protected, you can set a short lived access token and attach it to the URL of the creative you submit like: https://mycreative.com/creative.html?accessToken=[shortLivedToken] before submitting the job to Omnirender. So only the worker will be able to access the creative.

Responsive container

Your creative must be sized responsively, either filling up horizontal or vertical space (envelope sizing). It enables you and Omnirender to scale up your creative. For example even if your creative is 600×300, if you show it in a responsive container, the banner will fill up vertical space and should maintain the 2:1 ratio in width. So when you submit the job and set width to 4000 and height to 2000, Omnirender will try to display the ad in a 4000×2000 HTML viewport rendering your AD in an upscaled state.

Autoplay, Start-Stop syncing

There are two methods of controlling how your creative starts and finishes.


Unsupervised scenario means Omnirenders built in webdriver loads the creative with all of its assets, waits for document ready event, cache it, reload and starts capturing immediately thus there will be no frame loss. This method requires that your creative autoplays right after it had downloaded all the neccessary assets. If you have a large embedded video in your creative, and you just start the playback of the creative on document ready without waiting for the embedded content to load, you might end up with a premature start of the creative and a missing element in the final output.

Unsupervised scenario requires duration property to be set when submitting the conversion job request in milliseconds (for example if your creative is 5 secs long, add duration=5000)


Premium Omnirender users can ask for a custom start-stop signal for sub-frame syncing precision, javascript console logging and much more if they have a complex, slow-loading, high performance creative.

Syncing requires the following to be implemented on your player:

  1. Expose your player object like window.creativePlayer
  2. Expose a public method creativePlayer.start()
  3. Expose a public property creativePlayer.ready
  4. Emit a 'playerReady' event once all of your assets finished loading and your player is ready to be started
  5. Omnirender will poll the creativePlayer.ready property and subscribe to the 'playerReady' event so once either fullfills, Omnirender will invoke creativePlayer.start()
  6. Creative playback starts, Omnirender subscribes to 'playerFinished' event, once your player is done and emits the 'playerFinished' event, Omnirender stops capturing

This methodology ignores duration, since start and stop events will controll the length as well.