The Good, the Bad, and the Ugly of VAST Errors

Blog 5 min read | Oct 15, 2018 | JW Player


Breaking down how JW Player’s VP of programmatic advertising, Darjan Milojkovic, thinks about Video Ad Serving Template (VAST) errors

VAST error codes enable the player to communicate back to the ad server to explain why a video tag didn’t serve an impression to the user. Despite being labeled an error, not all VAST errors indicate a technical malfunction. On the contrary, you can even argue that some of them are good – even necessary for programmatic advertising.

With the help of Clint Eastwood and his fellow bandits, we’ll walk through what I consider to be three distinct categories of VAST errors.

The Good:
 An empty VAST response

For this category, we will primarily look at VAST error 303, commonly referred to as an empty VAST response.

When a third party programmatic tag or ad network can’t fill the impression, you want them to trigger an empty VAST response. This allows the ad server to select the second highest priced line item in the waterfall since the first one correctly passed up on the ad request.

Similar to display ads, the empty VAST response functions like passback tag when there isn’t any demand for the visiting user (or if CPM floors aren’t met). An empty VAST response is usually the result of a business decision, as opposed to a technical reason for why the tag didn’t fill the impression.

VAST 900 errors are officially labeled as an “undefined error” but they’re increasingly being utilized as an empty VPAID response. The main difference between the 900 and the 303 error, consequently, is the nature of the creative that triggered them. A VAST creative will result in a 303 whereas a VPAID creative ends up with error code 900.

It’s very important to emphasize that an empty VAST response happens in a timely manner — unlike VPAID opt-outs and wrapper time-outs which we’ll discuss further down.

The Bad:
 The setup can be improved

Here we find VAST errors that can be addressed by improving the quality of the player embed on the page. The most common VAST error in this category is 402.

This one is typically triggered when publishers are showing video ads in an autoplay environment, especially when the player isn’t in focus. Another culprit is low bandwidth or poor user experience due to competing requests that delay the loading of the media file. Multiple players auto starting at the same time also contribute to multi-burn and bad VAST errors.

The context in which a 402 VAST error gets tripped is different from the scenario that would lead to VAST error 303. In the case of a 402, there is a cookie match, i.e. the advertiser wants to serve an ad to the user but the player placement prevents it from doing so as illustrated above. Make sure that viewability and completion rates are up to industry standards to minimize bad VAST errors.

VAST error 503 gets set off when the size of the player is smaller than the creative it’s trying to play. If you’re running pre-roll in-stream ads in an in-banner video unit, these will show up frequently in your inventory. If you haven’t segmented your desktop and mobile inventory, you’ll also run into this error code.

Another set of bad VAST errors concern the XML document and the creative itself. They are quite uncommon, but let’s cover them quickly.

VAST errors 100, 101, and 102 commonly indicate that there’s something wrong with the entire XML document. The few times I’ve seen it happen it’s been due to a bracket not being closed properly or an extra character in the document that doesn’t belong there.VAST errors 200, 201, 202, and 203, meanwhile, indicate that something is wrong with the creative itself. A different size or duration compared to what’s specified in the XML document tends to be the usual suspect.

The Ugly:
 VPAID opt-outs and timeouts

In my opinion, the biggest obstacle with video ads and a seamless user-experience are client-side VPAID auctions. When the player has been stuck loading for a while and finally starts playing the content video – without a pre-roll campaign – it’s usually due to a VAST error resulting from an opt-out or a timeout by a third-party tag.

We want to be very careful about accumulating the following errors:

  • VAST Error 300/301/302 = Wrapper Opt-Out
  • VAST Error 400/401 = VAST Opt-Out
  • VAST Error 901 = VPAID Opt-Out

Why are these VAST errors ugly? In this article by Digiday, the stumbling block is explained very well: This is largely being driven by video ad networks that win auctions but then, finding nobody they can resell the ad space to, don’t complete the purchase. The publisher is left without any revenue for the unused space.

In other words, instead of sending an empty VAST response in a timely manner because they can’t fill the impression, these tags insist on finding a buyer through secondary auctions, redirects, and loops that perhaps will never finish unless the player intervenes.

What can you do to prevent VPAID opt-outs and timeouts?

From the JW Player’s point of view, we can control how long and how many redirects we allow each tag to conduct. Using the IMA client, as an example, we can tinker with the following variables:

  • advertising.vastLoadTimeout = In milliseconds, the maximum amount of time between the ad request and a returned VAST file before timing out.
  • advertising.maxRedirects = The maximum number of redirects the player should follow before timing out.

Please note that while increasing the amount of time each tag is granted to conduct an auction may result in fewer errors, it also degrades the user experience. You can view all the methods for managing opt-outs, as well as the default settings for each variable, at this link in the advertising section. More importantly, I think it’s pivotal for the publisher to have active discussions with the third-party demand sources about why they’re causing opt-outs and timeouts. Ask if there’s anything you can do to mitigate the errors. Unless they come back with a concrete set of action items, or if the performance doesn’t improve over time, it could be worthwhile to change up the ad stack.

Join Darjan this Thursday (October 18th at 11am ET) for a full conversation into minimizing ad errors and maximizing video revenue. Registration for that discussion can be found here

To learn more or schedule time to speak with a video expert.

Contact Us