Why Aren’t My Ads Playing?

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 normal VAST response, but the ad creative is not a video, but rather a VPAID Javascript file
  • 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:

[code]

<VAST xmlns:xsi=”//www.w3.org/2001/XMLSchema-instance” version=”2.0″ xsi:noNamespaceSchemaLocation=”vast.xsd”>

<Ad id=”232859236″>

<InLine>

<AdSystem version=”2.0″>Alex_Vast</AdSystem>

<AdTitle/>

<Description/>

<Survey/>

<Impression id=”DART”>

<![CDATA[ //qa.jwplayer.com/~alex/pixel.gif?2 ]]>

</Impression>

<Creatives>

<Creative sequence=”1″ AdID=””>

<Linear>

<Duration>00:00:30</Duration>

<TrackingEvents>

<Tracking event=”start”>//qa.jwplayer.com/~alex/pixel.gif?1</Tracking>

<Tracking event=”impression”>//qa.jwplayer.com/~alex/pixel.gif?2</Tracking>

<Tracking event=”firstQuartile”>//qa.jwplayer.com/~alex/pixel.gif?3</Tracking>

<Tracking event=”midpoint”>//qa.jwplayer.com/~alex/pixel.gif?4</Tracking>

<Tracking event=”thirdQuartile”>//qa.jwplayer.com/~alex/pixel.gif?5</Tracking>

<Tracking event=”complete”>//qa.jwplayer.com/~alex/pixel.gif?6</Tracking>

<Tracking event=”pause”>//qa.jwplayer.com/~alex/pixel.gif?7</Tracking>

<Tracking event=”mute”>//qa.jwplayer.com/~alex/pixel.gif?8</Tracking>

<Tracking event=”fullscreen”>//qa.jwplayer.com/~alex/pixel.gif?9</Tracking>

</TrackingEvents>

<AdParameters/>

<VideoClicks>

<ClickThrough>

<![CDATA[ //www.jwplayer.com/ ]]>

</ClickThrough>

<ClickTracking id=”Alex”>

<![CDATA[ //qa.jwplayer.com/~alex/pixel.gif?10 ]]>

</ClickTracking>

</VideoClicks>

<MediaFiles>

<MediaFile id=”1″ delivery=”progressive” type=”video/mp4″ bitrate=”0″ width=”640″ height=”360″>

<![CDATA[

//content.jwplatform.com/videos/AEhg3fFb-bPwArWA4.mp4

]]>

</MediaFile>

</MediaFiles>

[/code]

 

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

[code]

<MediaFiles>

<MediaFile delivery=”progressive” type=”application/javascript” width=”960″ height=”540″ apiFramework=”VPAID”>

https://adnetwork.com/ads/vpaid.js

</MediaFile>

</MediaFiles>

[/code]

 

If you notice the MediaFile is Javascript or a .js file, then you have a VPAID response. Please see my notes on VPAID ad creatives down below.

 

3) Wrapped ad tag

[code]

<VAST xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:noNamespaceSchemaLocation=”vast.xsd” version=”3.0″>

<Ad id=”710743816″>

<Wrapper>

<AdSystem>GDFP</AdSystem>

<VASTAdTagURI>

<![CDATA[

https://pubads.g.doubleclick.net/gampad/ads?sz=640×480&iu=/124319096/external/utility_samples&ciu_szs=300×250&impl=s&gdfp_req=1&env=vp&output=xml_vast2&unviewed_position_start=1&cust_params=sample_ct%3Dredirectlinear&correlator=1292672814

]]>

</VASTAdTagURI>

[/code]

 

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:

[code]

<VAST xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:noNamespaceSchemaLocation=”vast.xsd” version=”3.0″/>

[/code]

 

or

 

[code]

<vast></vast>

[/code]

 

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.

 

What is the problem with VPAID Javascript responses?

First of all, VPAID is great when it works and the ads play.

But the problem when the ads do not play is that it is almost impossible for us to see what went wrong. And keep in mind that when our player loads a VPAID Javascript file from your ad network, they have complete control over the viewer experience. By everything, I mean the volume, is the ad muted, are there controls to pause or mute the ad, does that one VPAID ad go out and try to load other VPAID ads and make the viewer wait? All of these are controlled by your ad network, and we can only sit there and wait for them to tell us the ad is over.

 

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

  1. Choose the laptop
  2. Choose “yes I do!’
  3. Choose “directly into my player”
  4. Choose “VPAID 2.0”
  5. Choose JW Player

We also have a few sample tags too:

https://playertest.longtailvideo.com/vast-30s-ad.xml

http://playertest.longtailvideo.com/vpaid-2-linear-v1.xml

 

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,

Todd

Director, Technical Support Team

todd@jwplayer.com

 

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.

 

Contact Us