How to solve VAST errors and maximize video advertising revenue
Abstract
Flowplayer has been helping the largest publishers in the world with their video player and video advertising requirements for more than a decade. During this process, we have realized that even for the most advanced publishers it is difficult to optimize their video advertising revenue due to the changing and complex advertising value chain. Since each ad request is often sent to multiple ad servers simultaneously and matched in real-time based on different parameters the process does not give the same result every time and hence is very difficult to debug. We have seen that most publishers are losing significant revenues because of issues with their advertising value chain as requested from their VAST ad tags. But let us start from the beginning.
What is a VAST tag?
At the core of delivering video, advertising is VAST which stands for Video Ad Serving Template which is an XML format that tells a video player which ad to play, where it can find the creatives for that ad and how to track analytics from the ad playback. The VAST standard is maintained by the Interactive Advertising Bureau (IAB) and the most recent specification is available on their website. A VAST tag is a URL to a specific XML file that is automatically generated once a client request that specific URL. It can be different for different clients based on which country they are making the request from, if this is the first time they make the request if they have seen other ads before and other factors. One simple VAST ad tag example that you can use in your implementations to test them is the Google IMA Sample tag for a pre-roll:
If you get this tag to work correctly in your implementation you can move on and test your VAST tag that returns ads from your ad server.
Validating if the VAST tag works in a standalone setup
The first thing to test with your VAST tag is if the VAST tag works in a standalone setup to ensure that it is not something in your implementation that is causing the problem. Flowplayer provide a free tool that allow you to test your VAST tags to validate that they are working properly in our reference implementation. You can access the VAST inspector here. If the VAST tag is working in the Flowplayer VAST inspector it is likely that you have made a mistake in your implementation of the ad tag and hence we would suggest you to create a minimal functional version with your own ad tag to find out from where the error comes. If you cannot get your VAST tag to play in Flowplayers Ad tester you can also test it in the IMA SDK Video Suite Inspector.
Ensuring you have the appropriate parameters or macros inserted into your VAST ad tag
One thing to check with your VAST ad tag is that you have the current parameters or macros inserted into the VAST ad tag before the URL is used to send the ad request to your ad server. Flowplayer provide a very extensive list of possible parameters or ad macros that can be inserted into your VAST ad tag URL to ensure that the correct parameters are sent across to your ad server. In case you are experiencing problems in the Flowplayer Ad Tester please check our Advertising Macros documentation and make sure you have correctly inserted your parameters in the URL.
Benchmarking your advertising performance
With Flowplayer ad analytics you get an instant view of how your video advertising is performing and you can quickly get a view if there are increasing error rates. The most important metrics to keep track of are the percentage of VAST ad errors in relation to the number of ad requests which shows how successful your ad server is at returning ads to your viewers.
Solving the most common VAST errors
If you are getting many VAST ad errors after validating that the correct ad macros and parameters are inserted into your URL you need to debug the actual error code returned by your ad server. Luckily the VAST specification comes with some support in terms of error codes. These error codes are returned after you request the VAST ad tag in the XML file. We will step through the most common error codes and explain what they mean and how they could be solved.
Error 303
- No Ads VAST Response After One or More Wrappers
This means that the ad server could not find any suitable advertisements to show to this client. This is by far the most common error code returned. It is a bit tricky because it is strictly speaking not always to be considered an error. It could be due to the fact that there is only one advertisement scheduled to be shown but with a frequency capping and if you try to request the video multiple times you only get an ad the first times due to the frequency capping.
The 303 error code could also be a real problem if for example the ad server is misconfigured and always return a 303 code.
Solution: We suggest that if you get a 303 code when testing you reach out to your ad server provider and ask them to create a test campaign with a 100% fill rate so that you always get an advertisement when you request the VAST ad tag URL._
Error 301
- Timeout of VAST URI
This is also a tricky error code since there could be multiple causes for a timeout. One possibility is that you have set the timeout to a too low value based on which devices and broadband connection speeds your viewers have. If you are on a mobile connection you can expect higher latency in the range of 2-4 seconds more than on a fixed connection. Another potential cause of a lot of timeouts is that the ad server is simply taking too much time to respond and hence need to be optimized to return the response faster. Sometimes this error can also be due to the fact that HTTPS pages are served HTTP ads which of course will not work so please make sure that if you use HTTPS in your web page or in the VAST URL all links should be HTTPS links.
Solution: We suggest that you increase the ad timeout to 10 seconds to ensure that there is proper time for the ad server to process the request and return a response and also that you ask your ad server administrator to schedule a test campaign to run with a 100% fill rate to ensure your ad server is not slowed down by requests to other ad servers for back-fill or similar.
Error 302
- Wrapper Limit Reached
In some setups if one ad server cannot find a suitable ad to display it will defer to another ad server to process the request and find a suitable ad. If this second ad server cannot find an ad either, it will defer to a third ad server and so on. However, in order to break a potential loop that goes deeper and deeper there is a limit to how many additional requests that can be made. This is known as the wrapper limit. If you get a 302 error it means that your first ad servers are not able to respond with a proper ad. If this happens on a continuous basis you should reprioritize the order in which your ad servers are getting the request. Generally the ad servers with a high fill rate should be put with higher priority than ad servers with lower fill rates. However, the CPM or value per displayed ad, can also have an impact and if there is one ad server with significantly higher CPM it might give a better total revenue even if it is not always returning an ad. Often the best approach is to balance the fill rate with the CPM in order to achieve the eCPM or the effective CPM taking into consideration both the fill-rate and the CPM level.
Solution: We suggest that you reach out to your ad server administrator and ask them to prioritize ad servers with the highest eCPM ensure they get the chance to return an ad first.
Error 402
- Timeout of Media File URI
Sometimes, especially on mobile devices, the advertisement creative files can take a long time to download and then the player gives a 402 error.
Solution: You can increase the timeout or try to create a lower resolution ad creative to make it download faster.
Additional resources
IAB Tech Lab: For a full list of all VAST errors and the most common causes the IAB Tech Lab has created the VAST Troubleshooting matrix. It is a great extensive resource if you have a different error code than what we covered above.
Watching That: This company specialized in advertising analytics and have a very detailed view of which errors can happen and how to fix them. Their Complete List of Video Advertising Error Codes is a great guide with a complete list of error codes.