Part 3 of JW Player’s Support Team series on video platform tips, tricks, and best practices
One of the questions we receive the most often is “why are ads not playing in my player?” It is certainly understandable that this is an anxiety-inducing problem, as no ads means no ad revenue. What we find most often is that the player is doing everything correctly, but the ad network is simply not returning an ad for our player to play.
My goal with this blog post is to help you test that our player is doing everything correctly. When you have conversations with your ad networks, you can do so with 100% confidence that our player is not part of the problem. (But if you find that there is an error on our side, we will certainly escalate it to our engineers.)
You can always test your ad tags in our Ads Tester at https://developer.jwplayer.com/tools/ad-tester/
And if you have DFP ad tags, you can use their inspector at https://developers.google.com/interactive-media-ads/docs/sdks/html5/vastinspector
The general rule for DFP tags in our player is this:
- If the ad plays in Google’s tester, then it should also play in our Ads Tester with the ad client set to Google IMA.
- If the ad still does not play, try setting VPAID Mode to Enabled in our Ads Tester
- If the ad still does not play, send it to us so we can test further. And make sure you do not have any geo-blocking or domain restrictions set on your DFP tag.
Initial troubleshooting questions / steps
1) What is the ad client and ad tag that you have configured in the player?
2) If you check your browser’s network inspector, filter for the domain name of your ad tag (or another part of the URL). Are you seeing the request for the ad tag?
Here is a screenshot showing how I filter in Chrome for DFP ad tags. I filter for “gampad” (don’t ask me why, but it has always worked for me, so it stuck. I would love it if someone from Google could tell me where the name gampad came from…)
3) What is the response from your ad network?
You are probably going to see one of four things in the response from the ad network:
- The normal VAST response that contains an ad for us to play
- A wrapped ad, which I think of as a redirect
- An empty ad response. We get something from the ad network but they do not have an ad for us to play.
Ad Network Responses
I do not want to confuse you with the specifics, but here is a sample response for each type:
1) VAST response with a video ad creative:
<VAST xmlns:xsi=”//www.w3.org/2001/XMLSchema-instance” version=”2.0″ xsi:noNamespaceSchemaLocation=”vast.xsd”>
<![CDATA[ //qa.jwplayer.com/~alex/pixel.gif?2 ]]>
<Creative sequence=”1″ AdID=””>
<![CDATA[ //www.jwplayer.com/ ]]>
<![CDATA[ //qa.jwplayer.com/~alex/pixel.gif?10 ]]>
<MediaFile id=”1″ delivery=”progressive” type=”video/mp4″ bitrate=”0″ width=”640″ height=”360″>
If you see a <Creatives> section in the response. Hopefully there is a <MediaFiles> section. Check the type=” ” or the URL of the media file. If it ends in .mp4 then you have a normal VAST response. This ad should play in all browsers. Some ad networks will give you a .webm video, but these will play in Chrome or Firefox only.
2) VPAID response
3) Wrapped ad tag
<VAST xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:noNamespaceSchemaLocation=”vast.xsd” version=”3.0″>
Notice the <Wrapper> tag on the third line. This means that the ad network response points to a new ad tag in the <VASTAdTagURI> section. What does this mean for your viewer? It means they have to wait for another file to be requested and to load, which means a longer wait for the ad to start. Hopefully the new tag we load will play an ad, but it could also return another wrapped ad tag redirect…
4) Empty ad response
This can look a few different ways:
<VAST xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:noNamespaceSchemaLocation=”vast.xsd” version=”3.0″/>
Essentially there are only a few lines in the response. From a technical standpoint, an empty response is a perfectly valid scenario. It tells us the ad network received the request but they chose to respond without an ad. It is unfortunate that this is the case, but at least you know the player is doing everything correctly. My first suggestion would be to ask your ad network what you can do to increase your ad fill.
First of all, VPAID is great when it works and the ads play.
So what can you do to troubleshoot?
My first suggestion is to ask your ad network for sample ad tags that fill 100% of the time for testing. If they cannot give you one, then I do not think they are being a good partner. They should prove to you that their technology works too, right?
DFP has sample ad tags at https://developers.google.com/interactive-media-ads/docs/sdks/html5/tags
SpotX will build you a sample ad tag at https://www.spotx.tv/tag-generator-src/TagGenerator.html
- Choose the laptop
- Choose “yes I do!’
- Choose “directly into my player”
- Choose “VPAID 2.0”
- Choose JW Player
We also have a few sample tags too:
As mentioned earlier, you can always test your ad tags in our Ads Tester at https://developer.jwplayer.com/tools/ad-tester/
Hope this is useful. Please let me know how else I can help,
Director, Technical Support Team
For more posts from the Support Team series, click here.
To learn more about improving the performance of your video ads, schedule time to speak with a video expert.