Limitation: IMA SDK HTML5 with empty VAST in VMAP

608 views
Skip to first unread message

Carol Falardeau

unread,
Mar 24, 2017, 1:43:03 PM3/24/17
to Interactive Media Ads SDK
Hi,

I'm using the Brightcove platform that use the videojs player with the videojs-contrib-ads plugin (https://github.com/videojs/videojs-contrib-ads). I'm having a problem when an empty VAST is served by a VMAP. IMA don't trigger an ad error like it does with the VAST. The videojs-contrib-ads plugin use a timeout to make sure to wait for the ad to load. With the VMAP, I must wait 4 seconds to be able to watch my main video if the VAST is empty. IMA should trigger an error when the VAST is empty. That way the plugin will be able to start the main video right now.

Here the Video Suite Inspector exemple:
Only the empty VAST ad (trigger the error event): https://goo.gl/ddT6D4
The VMAP with the empty VAST (don't trigger an error event): https://goo.gl/bTfSP4

Do you have any plan to solve this issue?

Thank you

Dang Tran

unread,
Jul 1, 2018, 9:26:45 PM7/1/18
to Interactive Media Ads SDK
Just wanted to ping on this thread to see if there has been any feedback on this?

ima-sdk-adv...@google.com

unread,
Jul 2, 2018, 3:04:17 PM7/2/18
to ima...@googlegroups.com
Hi,

Thank you for following up on this thread. With VMAP tags, the SDK will trigger a LOG event in the case of an error. The LOG event is considered a non-fatal error and is used to ensure that subsequent ads in the VMAP tag have a chance to play. For more information, you can check out our blog post on the difference between fatal and non-fatal ads (link).

Please let me know if you have any further questions, or if this does not solve the issue.

Regards,
Chris Feldman
IMA SDK Team

=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and Google+ page:
    http://googleadsdeveloper.blogspot.com
    https://plus.google.com/115658573333388777174/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

--
You received this message because you are subscribed to the Google Groups "Interactive Media Ads SDK" group.
To unsubscribe from this group and stop receiving emails from it, 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.

Dang Tran

unread,
Jul 5, 2018, 11:08:26 PM7/5/18
to Interactive Media Ads SDK
Hi Chris,

Thanks for the feedback, I was able to capture the non-fatal error as you have suggested.

At the moment, I am trying to skip the ad-break when this issue occurs, however, it does not appear to be working. I have tried:
- this.ima3.adsManager.skip();
- this.ima3.adsManager.discardAdBreak();

None of the methods above skips the ad-break which is empty.

The sample VMAP I am using to test is: https://cs1.brightcodes.net/dtran/ads/VMAP_2EmptyPreroll.php

Can you please let me know why this would be the case?

ima-sdk-adv...@google.com

unread,
Jul 6, 2018, 3:20:18 PM7/6/18
to ima...@googlegroups.com
Hi Dang,

Can you please explain exactly what the issue is? An empty VAST response in a VMAP tag should cause the SDK to continue to the next ad or go back to content (whichever is appropriate) automatically. Is this not the behavior that you're seeing? For example, if you test your tag in our VSI, the SDK prints the LOG events and continues straight to content.

Regards,
Chris Feldman
IMA SDK Team

=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and Google+ page:
    http://googleadsdeveloper.blogspot.com
    https://plus.google.com/115658573333388777174/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

Dang Tran

unread,
Jul 16, 2018, 10:57:45 PM7/16/18
to Interactive Media Ads SDK
Hi Chris,

I think it is more our internal process of how things are done on our player plugin. However, it appears the functions mentioned does not seem to work:
- this.ima3.adsManager.skip();
- this.ima3.adsManager.discardAdBreak();

When you call .skip() it shows up as undefined and does not skip the current ad as described in the doc: https://developers.google.com/interactive-media-ads/docs/sdks/android/v3/api/reference/com/google/ads/interactivemedia/v3/api/AdsManager.html#skip()

As for the discardAdBreak() - the doc mentions "Discards current ad break and resumes content. If there is no current ad then the next ad break is discarded." - however, when I test with the following ad sample, it completely skips the ad breaks but not play the 2nd pre-roll.

This vmap sample consists of 2 empty vast and then 2 valid vast in the pre-roll ad breaks.
For the .skip() I expect the first ad in the pre-roll break to skip and load the 2nd ad.

For the discardAdBreak(), I would assume this would discard the whole of pre-roll and resumes content based on the information from the doc. However, it also mentioned, "If there is no current ad then the next ad break is discarded." - can you expand on what is expected with the sample I provided?

Note: I have tested this using the Advanced IMA sample and triggering it through the console with:
application.ads_.adsManager_.discardAdBreak()
application.ads_.adsManager_.skip()

Thanks

ima-sdk-adv...@google.com

unread,
Jul 17, 2018, 3:32:18 PM7/17/18
to ima...@googlegroups.com
Hi Dang,

The adsManager.skip() function will only have an effect when the adsManager.getAdSkippableState() returns true.

As for adsManager.discardAdBreak(), I think you're seeing is behavior because there is a non-linear ad in your pod. I need to check with some of my teammates about what the intended behavior is in this situation. Since the content doesn't stop for the non-linear ad, it may not be considered an ad break.

I will follow up on this thread as soon as I have more information that I can share.

Regards,
Chris Feldman
IMA SDK Team

=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and Google+ page:
    http://googleadsdeveloper.blogspot.com
    https://plus.google.com/115658573333388777174/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

ima-sdk-adv...@google.com

unread,
Jul 18, 2018, 12:22:32 PM7/18/18
to ima...@googlegroups.com
Hi Dang,

I've been doing some more testing, and I'm not having any issues with discardAdBreak(). I've included a breakdown of how the method is meant to behave.

There are three scenarios:

If the tag is VMAP (or a playlist) and an ad is currently displayed, calling discardAdBreak() will remove the ad and go immediately back to content. This will mean that the current ad, and any other ads in the current ad break will be discarded.

If the tag is VMAP (or a playlist) and there is no ad playing when discardAdBreak() is called, the SDK will discard the next scheduled ad break. With your tag, for example, calling discardAdBreak after the pre-roll but before the mid-roll will cause the mid-roll to be discarded in its entirety.

If the tag is not VMAP (or a playlist), calling discardAdBreak() will not have any effect on ad playback.

Please let me know if you're seeing anything abnormal.  

Regards,
Chris Feldman
IMA SDK Team


=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and Google+ page:
    http://googleadsdeveloper.blogspot.com
    https://plus.google.com/115658573333388777174/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

Dang Tran

unread,
Jul 23, 2018, 1:12:07 AM7/23/18
to Interactive Media Ads SDK
So, besides discardAdBreak() and skip() there is no other method that would allow the ability to skip the current ad break and move onto the next ad break without continuing to the content?

Just to explain why I need this. Our current implementation is that the ad break sits on a timeout which is configurable. The result of this is that if the ad break returns an empty VAST from the VMAP, it would cause our timeout to hit and eventually discard the ad manager. To overcome this, we need something that can just skip the current ad break and move onto the next ad break. Pretty much what skip() would do but it appears without the appropriate skip flag, this would not work.

Do you have any other recommendation to skip current ad break without jumping straight to the content?

ima-sdk-adv...@google.com

unread,
Jul 23, 2018, 3:10:21 PM7/23/18
to ima...@googlegroups.com
Hi Dang,

You're correct that there's no SDK method that allows your to discard the current ad break and play the next one without first going back to content. One possible workaround for this, would be to use single ad tags and handle ad break scheduling on your own. That way when you want to discard an ad break and show another you can simply make a new ad request.

Please also keep in mind our ad serving guidelines.

Regards,
Chris Feldman
IMA SDK Team

=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and Google+ page:
    http://googleadsdeveloper.blogspot.com
    https://plus.google.com/115658573333388777174/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

Reply all
Reply to author
Forward
0 new messages