Video Ads FAQ

What is it?

Video assets make Kevel your one-stop shop for video-based ads: setup Flight configurations, upload an advertiser or in-house provided master video file, and activate your Campaign all from the Kevel user interface. Kevel handles transcoding videos into a streaming-optimized format and serves the video to end users ensuring the best experience for the myriad of devices accessing websites and apps today.

Why should I use it?

If you’re not serving video-based ads currently, it is a big opportunity for high CPM placements. If you already are, uploading master video files directly through Kevel removes another external dependency and provides you with a robust CDN to stream video to your end users in the optimal format for their device.

How do I use it?

Delivering video-based ads through Kevel is a three-step process:

  1. Navigate to the Assets page in the Kevel UI to upload your master video file
  2. Create a Creative and input the video Asset’s details
  3. Make an ad decision request to Kevel with parameters that match a video ad and you will receive the details back using the template used in step #2. Alternatively, use a VAST template and call Kevel’s VAST endpoint directly from your video player.

For more details, see the Video Assets page.

How much does it cost?

Billing is based on usage measured by “delivered minutes” of video to your end users. The cost is $0.00132 per minute of delivered video and is billed monthly. For example, if one 15 second ad was viewed 1 million times in a month, the cost would be $330 or $0.33 CPM. CPM increases linearly with the length of the video: for a 30 second ad, CPM is $0.66; for a 60 second ad, CPM is $1.32.

Note: actual CPM may differ depending on how video playback is implemented. For example, more video may be delivered than is required to trigger an impression event.

Is that expensive? What are Kevel customers charging their advertisers?

Top publishers are charging advertisers $21 CPM for video ads or 3–4x rates for static banner image placements. Needless to say, margins are very high for this ad format.

How do I get started?

Contact your account manager to request an updated Order Form confirming costs and terms for usage of this functionality.

Can I try it out first?

Sure! Contact your account manager to request a live demo and Kevel will comp up to $100 of usage (about 75k delivered minutes) for a one-month trial period while you work through implementation details.

Can’t I already serve video ads with Kevel?

Sort of. If you host your video somewhere else, you can provide Kevel with the playback URL for your media and we will return that with your creative. Additionally, if you have a VAST tag hosted elsewhere, you can also provide that URL in a creative template. Previously though you could not upload large media files to Kevel nor could you receive a transcoded version of large video files suitable for streaming usage and delivery across many types of devices.

What do my end users see?

Video assets are accessed at https://stream.video-assets.kevel.com/{playback_id}.m3u8 where {playback_id} is a random alphanumeric string. For example: https://stream.video-assets.kevel.com/AFqnmd00wixXabcCDfA9TCcwepFoN01aLiUmMAhAh02pk.m3u8

Auto-generated thumbnail images are available at https://image.video-assets.kevel.com/{playback_id}/thumbnail.png

What file types are accepted?

There is no file size limit for input video, and the input file must use one of the following extensions: .3gp, .ts, .mp4, .m4a, .m4p, .m4b, .m4r, .m4v, .m1v, .mpeg, .ogg, .mov, .qt, .webm, .m4v, .asf, .wma, .wmv, .avi

What format are transcoded videos available in?

Videos are transcoded into the HTTP Live Streaming (HLS) format which can be used with the player of your choice depending on your implementation. This is represented by the .m3u8 file extension in the Content URL and type="application/x-mpegURL" in VAST.

Videos can also be streamed or downloaded using the MPEG-4 (.mp4) video format. This allows users to download a file for watching offline which is useful for:

  • Supporting very old devices, like Android < v4.0 (Less than 1% of Android users)
  • Supporting assets that are very short in duration (e.g., < 10s) on certain platforms
  • Embedding a video in Open Graph cards for sharing on sites like Facebook and Twitter

In the majority of other cases, you'll want to use our default HLS (.m3u8) format, which provides a better viewing experience by dynamically adjusting the quality level to the viewer's connection speed.

Can you tell me more about HLS?

The HTTP Live Streaming (HLS) format allows for adaptive bitrate streaming of the video to your end users. The video player will determine the optimal resolution to load for each end user based on their available bandwidth and can change that in real time as the playback is happening—so, users with a strong internet connection will see the 1080p version while others with lower bandwidth will be shown incrementally lower resolutions.

Do you support MP4?

If HLS is not a good fit for your use case, video assets can also be streamed or downloaded using the MPEG-4 (.mp4) video format. Depending on the source video uploaded, you will have one or more options for MP4 renditions. If the source video had a low resolution (e.g., 240p) there will only be a low resolution MP4 file available. If the source video had a high resolution (HD, 720p+) you will have three MP4 file options available: low (640x360), medium (960x540), and high (HD, 720p+).

How does this work with VAST templates? Can I use a VAST template to serve video assets?

Video assets can be delivered using a Video Ad Serving Template (VAST). There are three types of VAST that can be further customized depending on your use case:

  1. Video media file is hosted outside of Kevel and the customer wants to get standardized reporting on that video fed back into Kevel
  2. Video asset is hosted by Kevel and VAST tag contains tracking and media information without reference to any third-party services
  3. Video asset is hosted by Kevel and VAST tag contains tracking and media information plus a reference to a third-party/partner’s VAST tag so that this secondary ad server can receive video events too

For full details on how to set up one of the above options, please refer to the Creatives (VAST) documentation page.

Is there a way to have video hosted outside of Kevel and attach a VAST tag to get additional reporting/tracking/media information?

Yes, please refer to the Creatives (VAST) documentation page for more information on how to set this up.

What are the optimal specs for input video files?

Kevel accepts most modern video formats and CODECs. However, certain types of inputs need to be normalized in order for our transcoding service to do further operations on them, and this can add time before the video is ready to be streamed. If you want to normalize your content before sending it to Kevel, and potentially improve performance, this guide will show what you need to do.

Note there is no file size limit for input video, but the max duration for any single asset is 12 hours.

  • 1080p/2K or smaller. Video up to 2048x2048 is considered standard, including 1080p (1920x1080) video. Video larger than this is considered non-standard.
  • H.264 video CODEC. H.264 is the dominant video CODEC in use today and almost every device supports H.264. While we accept other CODECs as input, other CODECs must be normalized to H.264 and are considered non-standard.
  • Max 10-second keyframe interval. To stream well using HTTP-based streaming methods like HLS, we require all keyframes intervals to be less than 10 seconds.
  • Closed GOP (group-of-pictures). (Warning: video jargon ahead. You can likely ignore this.) In closed-GOP video, all B frames reference other frames in the same GOP. Closed GOP always begins with an IDR (Instantaneous Decoder Refresh) frame. This means that every GOP can be played independently, without reference to another GOP. Standard input must be closed-GOP, which means that open-GOP video will be treated as non-standard and will be normalized to standard.
  • 8Mbps or below. While we accepts higher bitrate inputs, bitrates higher than 8Mbps (and the bitrate should not exceed 16Mbps for any single GOP) are generally challenging for most viewer's connections and are considered non-standard.
  • 8-bit 4:2:0 or below. This refers to the color depth and chroma subsampling. If you don't know what this is, you can probably ignore this, since most streaming video is 8-bit 4:2:0. This means that high dynamic range video (HDR) is currently considered non-standard, and will be normalized to SDR.
  • Simple Edit Decision Lists. Edit Decision List (EDL) is typically added during post-production and defines how certain segments are used to build the track timeline for playback. A good example of a Simple Edit Decision List is to fix out of order frames in the video. Video with more complex uses of EDLs are considered non-standard.
  • Frame rate between 10 and 120. Video with average frames per second (fps) less than 10 or greater than 120 is considered non-standard. Video frame rates within this range will be preserved. Video with less than 10 fps or greater than 120 fps will be normalized to 30 fps.
  • AAC audio CODEC. AAC is the dominant audio CODEC in use today and almost every device supports this audio CODEC. While we accept other CODECs as input, we only delivers AAC audio and non-AAC audio inputs are considered non-standard.