Skippable Event on Mobile Web

2,352 views
Skip to first unread message

Jon

unread,
Jul 21, 2014, 6:35:37 PM7/21/14
to ima...@googlegroups.com
Hi Shawn or the Google team, 

A number of VAST 2.0 responses are no coming back with the skippable event wrapper, I'm including a vast tag as an example below. 
On web everything works precisely as it should, after x amont of seconds the skip button comes on the screen and all is great. 
However attempting to run the exact same vast tag on mobile returns the following IMA3 -- AdError 1005: The provided ad type: skippablevideo is not supported

Once again IMA3 is only throwing AdError 1005 on mobile web upon hitting the skippable event XML wrapper here: 

Any ideas as to what could be causing the error on mobile web and not a regular browser?
Does it have to do with the additional html generated with the skippable button that is not supported on mobile web?
Note this is tested on both iOS and Android and the problem is 100% reproducible. 

Feedback and comments on this issue is much appreciated, 

Kind regards, 

Jon.

Jon

unread,
Jul 21, 2014, 6:49:56 PM7/21/14
to ima...@googlegroups.com
In addtion to my original post I'm been searching through the SDK what the error is about, however gathered almost very little information to none to determine if there is any workarounds regarding this error: AdError 1005: The provided ad type: skippablevideo is not supported

Once again feedback is appreciated, 


On Monday, July 21, 2014 3:35:37 PM UTC-7, Jon wrote:
Hi Shawn or the Google team, 

A number of VAST 2.0 responses are now coming back with the skippable event wrapper, I'm including a vast tag as an example below. 

Shawn Busolits (IMA SDK Team)

unread,
Jul 22, 2014, 10:17:41 AM7/22/14
to ima...@googlegroups.com
Hi Jon,

Are you using custom ad playback on mobile? If so then that's the issue - we can only support skippable for standard ad playback. If not let me know and we can look into this further.

Thanks,
Shawn Busolits
IMA SDK Team

Jon

unread,
Jul 24, 2014, 7:57:12 PM7/24/14
to ima...@googlegroups.com
Much appreciate your response Shawn! 

I believe that that might be the issue too as that is precisely how I init IMA3 AdsManager :( 
This might sound like a dummy question, but is there an example in the SDK that you can point me to where I can configure AdsManager so that it doesn't initialize with custom ad playback? 

I'm currently passing references to IMA AdDisplayContainer and getAdsManager to both my video player container (a div) and a video object I've dynamically created setting the element current time to 0 - how would I be able to configure AdsManager so that I don't customize playback? without these elements and passing the appropriate references to initialize IMA I won't be able to initialize AdsManager. 

Thanks again for your feedback! 

Jon

Shawn Busolits (IMA SDK Team)

unread,
Jul 25, 2014, 10:05:52 AM7/25/14
to ima...@googlegroups.com
Hey Jon,

Definitely not a dumb question. To prevent the SDK from using custom ad playback, don't provide that second parameter to the AdDisplayContainer constructor. If you just provide a div in which ads should be played, the SDK will create its own video player and play ads in that player. I should note, however, that some platforms (e.g. iPhone and Android pre-4.0) force html5 video to be played in a fullscreen player in mobile web. For that reason, we don't currently have a way of supporting skippable ads on those platforms (we can't render a skip button on top of the video to make it work). If you have any other questions let me know!

Shawn Busolits
IMA SDK Team

Jon

unread,
Jul 25, 2014, 2:59:41 PM7/25/14
to ima...@googlegroups.com


Hmmm this is odd Shawn ... 

So even after removing the customized video object from the AdDisplayContainer ctor I continue to get the skippable event error: AdError 1005: The provided ad type: skippablevideo is not supported. 
-- On both iOS and Android --

Just for your reference this is how I used to init AdDisplayContainer
var vdo = this.getVdoContainer(); // build the video elm / obj
var adContainer = this.getAdContainer(); // get main ad container 
this.adsDisplayContainer = new google.ima.AdDisplayContainer(adContainer, vdo);
var adsLoader = new google.ima.AdsLoader((this.adsDisplayContainer));

The only difference now is that I'm no longer passing the vdo element/obj, instead I am just passing the main ad container only to the AdDisplayContainer ctor such as: 
this.adsDisplayContainer = new google.ima.AdDisplayContainer(adContainer);

Unfortunately I'm unable to get much detail form Safari however Chrome seems to be throwing the following exceptions from the IMA3 minimized js: 

Just in case the screenshot isn't very clear, this is what I'm running into: 

1. HTMLVideoElement.webkitSupportFullscreen is depricated. Its calue is true if the video is loaded. 
2. HTMLElement.webkitDisplayingFullscreen is depricated. please use the 'fullscreenchange' and 'webkitfullscreenchange' events instead. 

Is hard for me to tell from IMA3 minimized code, but it appears to be happening here: 

g.sa=function(){if(A)return this.a.webkitSupportsFullscreen&&this.a.webkitDisplayingFullscreen;var a=window.screen.availWidth||window.screen.width,b=window.screen.availHeight||window.screen.height,c=ea(this.a.getBoundingClientRect)?this.a.getBoundingClientRect():{width:this.a.offsetWidth,height:this.a.offsetHeight};return c.width>=a&&c.height>=b};g.Y=function(a){this.a.currentTime=a};g.N=function(){return this.a.currentTime};g.pa=function(){return isNaN(this.a.duration)?-1:this.a.duration};g.aa=function(){return this.a.ended};

I might be mistaken but is the above happening when IMA is attempting to dynamically build the HTML5 video obj?
I think this is what is preventing video to take over the screen as you originally suggested. 

Thoughts?

Once again feedback is much appreciated. 

Jon

unread,
Jul 25, 2014, 3:00:54 PM7/25/14
to ima...@googlegroups.com
embedded img is hard to see ... enclosing as attachment. 
Screen Shot 2014-07-25 at 11.39.50 AM.png

Jon

unread,
Jul 25, 2014, 4:33:22 PM7/25/14
to ima...@googlegroups.com
sorry, those aren't exceptions -- just warnings ... hmm I wonder what can be stopping the video to go into fullscreen and what is actually throwing the AdError 1005. 


On Friday, July 25, 2014 11:59:41 AM UTC-7, Jon wrote:


Hmmm this is odd Shawn ... 

So even after removing the customized video object from the AdDisplayContainer ctor I continue to get the skippable event error: AdError 1005: The provided ad type: skippablevideo is not supported. 
-- On both iOS and Android --

Just for your reference this is how I used to init AdDisplayContainer
var vdo = this.getVdoContainer(); // build the video elm / obj
var adContainer = this.getAdContainer(); // get main ad container 
this.adsDisplayContainer = new google.ima.AdDisplayContainer(adContainer, vdo);
var adsLoader = new google.ima.AdsLoader((this.adsDisplayContainer));

The only difference now is that I'm no longer passing the vdo element/obj, instead I am just passing the main ad container only to the AdDisplayContainer ctor such as: 
this.adsDisplayContainer = new google.ima.AdDisplayContainer(adContainer);

Unfortunately I'm unable to get much detail form Safari however Chrome seems to be throwing the following exceptions from the IMA3 minimized js: 

Just in case the screenshot isn't very clear, this is what I'm running into: 

1. HTMLVideoElement.webkitSupportFullscreen is depricated. Its value is true if the video is loaded. 

Shawn Busolits (IMA SDK Team)

unread,
Jul 25, 2014, 4:53:17 PM7/25/14
to ima...@googlegroups.com
Hey Jon,

Do you have a sample page I could take a look at? We currently don't support skippable on iPhone because it's impossible for us to render a skip button on top of the video, but it should work on other mobile platforms.


Thanks,
Shawn Busolits
IMA SDK Team

Suzie Chudzik

unread,
Jun 27, 2016, 3:47:18 PM6/27/16
to Interactive Media Ads SDK
Hi Shawn,

I'd like to open this issue again. We have been working with prerolls for about a year now and haven't had an issue running a skip button on iPhones using Linear skipoffset=”00:00:05”. However, within the past month we have been receiving the same error 1005 "The provided ad type: skippablevideo is not supported."   Can you provide any recent updates on this? We only see this error on iPhones, not iPads.

Vu Chau (IMA SDK Team)

unread,
Jul 6, 2016, 9:12:50 PM7/6/16
to Interactive Media Ads SDK
Hi Suzie,

The behavior you are seeing is intended behavior.  The fact that you didn't get any issue before was because the SDK chose not to throw an error.  However, there has been a change in the SDK's behavior that is throwing this error message.  The reason is that on small-screen devices, the SDK cannot physically render the skippable overlay, so we thought it'd be better to throw an error than to allow skippable ad to play without a skip button.

Going forward, to avoid running into this error, you should make sure not to serve skippable ads to these device form factors. 

Vu Chau
IMA SDK Team
Message has been deleted

Justin Anastos

unread,
Nov 8, 2016, 1:58:46 PM11/8/16
to Interactive Media Ads SDK
iOS 10 supports playing inline video now and therefore the skip element can be placed over the ad. Are there any plans to allow iOS 10 to use skippable video and to perhaps just disable the skippable video form iOS <10?\

Vu Chau (IMA SDK Team)

unread,
Nov 8, 2016, 3:52:07 PM11/8/16
to Interactive Media Ads SDK
Hey Justin,

We are trying to add support for rendering skippable ads inline on HTML5 on iOS 10.  I'll ping the thread once we have an update.

Vu Chau
IMA SDK Team

Justin Anastos

unread,
Nov 8, 2016, 4:05:08 PM11/8/16
to Interactive Media Ads SDK
Thank you!

Steve Craig

unread,
Apr 13, 2017, 7:11:21 AM4/13/17
to Interactive Media Ads SDK
Hi Vu,

Any news on support for HTML5 on IOS 10?

Thanks

Chris Feldman (IMA SDK Team)

unread,
Apr 13, 2017, 2:53:48 PM4/13/17
to Interactive Media Ads SDK
Hi Steve,

There are no updates to report at this time. The issue is still being looked at by the team and I will let you know as soon as I have any more information.

Regards,
Chris Feldman
IMA SDK Team

Steve Craig

unread,
Jul 19, 2017, 6:28:35 AM7/19/17
to Interactive Media Ads SDK
Hi IMA team,

Just bumping this along as still highly desirable.

With 86% of iPhone users now on iOS10, and hundreds of millions of iOS users, surely we're missing a trick not being able to traffic skippable ads to them.

Clearly there's a lot going on in `http://imasdk.googleapis.com/js/core/bridge3.173.4_en.html` but as easily as you added this behaviour, can't you just wrap it inside a check for iOS<10 where AdDisplayContainer does not have the `playsinline` attribute?

Steve

Chris Feldman (IMA SDK Team)

unread,
Jul 19, 2017, 1:18:33 PM7/19/17
to Interactive Media Ads SDK
Hi Steve, 

Thank you for following up. As of recently, the SDK does support skippable ads on iOS. For more information, as well as instructions on how these ads can be implemented, please take a a look at our recent blog post on the subject.

Regards,
Chris Feldman
IMA SDK Team

Steve Craig

unread,
Jul 20, 2017, 11:49:18 AM7/20/17
to Interactive Media Ads SDK
Hi Chris,

That's great news. Sorry I missed that announcement. 

Thanks for the update!

Steve Craig

unread,
Jul 24, 2017, 5:13:14 AM7/24/17
to Interactive Media Ads SDK
Hi Chris,

With an iOS 10 UA (Mozilla/5.0 (iPhone; CPU iPhone OS 10_0 like Mac OS X) AppleWebKit/602.1.38 (KHTML, like Gecko) Version/10.0 Mobile/14A5297c Safari/602.1) and setDisableCustomPlaybackForIOS10Plus(true) as soon as the ad is requested the IMA SDK returns the same old "Ad error: AdError 1005: The provided ad type: skippablevideo is not supported."

Both the adContainer and contentPlayer have the playsinline attribute.

What other conditions are necessary to avoid that error?

Thanks,

Steve

Chris Feldman (IMA SDK Team)

unread,
Jul 24, 2017, 2:52:55 PM7/24/17
to Interactive Media Ads SDK
Hi Steve,

Thank you for sending the user agent string. There's nothing else you should need to do as long as you're using inline playback and disabling custom playback. I'm testing on my own device and everything is working as intended. Can you share the details of your test setup? I can see that you're using iOS 10, but not what device. Once I can replicate the error, we can start investigating solutions.

Regards,
Chris Feldman
IMA SDK Team

Steve Craig

unread,
Jul 25, 2017, 4:35:42 AM7/25/17
to ima...@googlegroups.com
Hi Chris,

Thanks for the info. I've done some more digging, and it may be more down to my custom/convoluted setup (a fork of videojs-ima with custom - non-HTML5 - tech for use with an iframe as the videoElement, etc).

Given: google.ima.AdDisplayContainer(containerElement, opt_videoElement)

It seems that opt_videoElement is mandatory for iOS10Plus - given "AdError 1005: The provided ad type: skippablevideo is not supported" is thrown if it's not provided - which kinda makes sense.

If I provide opt_videoElement, I no longer get that error. However, the IMA SDK replaces the body of my non-standard videoElement (an iframe) with a <video> element, with no-skippable controls, and it destroys the player.

I will look into https://developers.google.com/interactive-media-ads/docs/sdks/html5/custom-playback#option-2-handle-content-state-on-your-own, but this seems like quite a pain for an iOS10Plus-only solution, and I'm still concerned AdDisplayContainer will butcher opt_videoElement.

If there's any further info you can direct me to for provide on how the IMA SDK renders the ad in the opt_videoElement for iOS10Plus, that'd be great. Otherwise, I'll keep hacking.

Thanks,

Steve

--
You received this message because you are subscribed to a topic in the Google Groups "Interactive Media Ads SDK" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/ima-sdk/jYE6j4_YCko/unsubscribe.
To unsubscribe from this group and all its topics, send an email to ima-sdk+unsubscribe@googlegroups.com.
To post to this group, send email to ima...@googlegroups.com.
Visit this group at https://groups.google.com/group/ima-sdk.
For more options, visit https://groups.google.com/d/optout.

Chris Feldman (IMA SDK Team)

unread,
Jul 25, 2017, 2:52:28 PM7/25/17
to Interactive Media Ads SDK
Hi Steve,

Can you elaborate on what you mean when you say that "If I provide opt_videoElement... the IMA SDK replaces the body of my non-standard videoElement (an iframe) with a <video> element, with no-skippable controls, and it destroys the player?" I'm not familiar with this behavior.

If you'd like to see how the SDK behaves by default, our Advanced Example uses the opt_videoElement. You can edit the sample to suit your needs and test. Also feel free to share a link to your page if you'd like me to take a look.

I should also note that we don't actually support videojs-ima on this forum. I can answer any of your SDK questions, and assist with general questions, but if you believe the problem might be with videojs-ima, you'll have to reach out for support on their GitHub Issue Tracker

Regards,
Chris Feldman
IMA SDK Team

Steve Craig

unread,
Jul 27, 2017, 6:37:33 AM7/27/17
to Interactive Media Ads SDK
Hi Chris,

I've gone back to the good old advanced example and modified it with playsinline and google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); - which does indeed work!

For iOS 10 the opt_videoElement parameter in google.ima.AdDisplayContainer(containerElement, opt_videoElement) does appear to be mandatory - whilst for Android it is content to play the ad the inside the containerElement (a separate adContainer).  Without the opt_videoElement on iOS10, even with playsinline and google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true), it'll raise "AdError 1005: The provided ad type: skippablevideo is not supported".

My original issue was more to do with my atypical opt_videoElement (long story, but our videoElement is actually inside an iFrame on another domain - controlled via another API so we can't expose the actual videoElement...), but I've been able to workaround this by creating a another videoElement (with playsinline) and pass it via opt_videoElement - I just temporarily place the new videoElement atop of my original videoElement whilst the ad plays and then remove it (*cough*), but at least iOS10+ can ready my skippable vast tags now!

Thanks for your help,

Steve
To unsubscribe from this group and all its topics, send an email to ima-sdk+u...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages