Help Blocking an Ad

175 views
Skip to first unread message

Tony

unread,
Jun 1, 2016, 1:17:53 PM6/1/16
to Interactive Media Ads SDK
I'm using the HTML5 SDK and have some customers reporting ads which get "stuck" showing a black rectangle and never start. Worse yet, these ads aren't timing-out so affected customers are unable to progress to play my game.

I haven't been able to repro the issue myself, but have obtained log information about one of the problematic ads (it may be the only one):

  ad.getAdId() -> moat_ad
  ad.getTitle() -> WALMART_MAYJUNEINFLUENCERS_DBM_PREROLL_LR-NEUSTAR_RON_CLM-ENGAGEDVOTER_US_15s
  ad.getDescription() -> (empty) 
  ad.getDuration() -> 15
  ad.getContentType() -> application/x-shockwave-flash
  ad.getAdSystem() -> 2.0 

This information was pulled from google.ima.Ad instance during a CONTENT_PAUSE_REQUESTED event. Unfortunately it isn't enough for me to locate the ad in the "Allow & block ads" section of the AdSense portal.

So my questions are:
  1. Is there another property of the ad I should be reading to help me locate it? If not, how can I block this ad?
  2. Is there a way I can construct a test tag to load this specific ad or get the raw VAST response so I can verify there isn't something wrong with my IMA SDK integration?

Vu Chau (IMA SDK Team)

unread,
Jun 1, 2016, 2:59:12 PM6/1/16
to Interactive Media Ads SDK
Hi Tony,

Do you have the ad tag and/or the live page?

Vu Chau
IMA SDK Team

Tony

unread,
Jun 1, 2016, 3:39:21 PM6/1/16
to Interactive Media Ads SDK
Yep, sent via private reply.

Vu Chau (IMA SDK Team)

unread,
Jun 1, 2016, 5:07:51 PM6/1/16
to Interactive Media Ads SDK
Hey Tony,

I received your tag offline, so thanks for that.

Like you, I also wasn't able to see this problematic ad while testing out the tag.  It might be one of those Flash ads that Chrome usually blocks (https://groups.google.com/d/msg/ima-sdk/9tQxQJ6UjEg/n7AbVBOpEQAJ) from rendering if their dimensions are below those accepted by the Chromium engine.  If so, it would be an edge case since there is nothing client-side that can be done.  My workaround would be to set a timer, and if you detect that no ad is playing, simply destroy the AdsManager, and start your game.

To address your questions:
    1. Is there another property of the ad I should be reading to help me locate it? If not, how can I block this ad?
      • There isn't really any other property that can be used for this case.  To me it's not clear if the error is treated as fatal, since the implementation kind of hangs right there, but I'd also use getAdData() to see if there's any extra information passed in the case of an AdError is thrown.
    1. Is there a way I can construct a test tag to load this specific ad or get the raw VAST response so I can verify there isn't something wrong with my IMA SDK integration?
      • Currently we don't have an API for that yet.  The unofficial way would be to obtain the XML response via a proxy server.  But since this issue is more creative-specific, it's likely there's nothing wrong with the implementation. 
    Let us know if you have any questions,

    Vu Chau
    IMA SDK Team

    Tony

    unread,
    Jun 1, 2016, 6:13:18 PM6/1/16
    to Interactive Media Ads SDK

    Thanks Vu,


    The timer workaround was my fallback plan – I was just hoping I wouldn’t have to use it. :)

     

    Any reason to favor calling AdsManager.destroy() versus AdsManager.stop()? I’m not completely clear on what the difference is between the two.

     

    Also how would you recommend detecting that no ad is playing?

    Vu Chau (IMA SDK Team)

    unread,
    Jun 2, 2016, 10:19:00 AM6/2/16
    to Interactive Media Ads SDK
    Hi Tony,

    The difference between .destroy() and .stop() is minute, but it will scale relative to your use case.
    • .destroy() unloads the AdsManager and removes it from the page.  This already is being done for throwable fatal errors.  So, if you have a post-roll ad yet to play (and I know that in game implementations, you won't, but this is an example), the postroll will not get to play, because the AdsManager isn't there.  You would need to create a new AdsManager and attach the corresponding listeners.
    • .stop() stops the current ad.  This assumes the ad is actually in progress.  However, for uncaught errors, the ad might not really start (depending on where in the ad's lifecycle the error happens), so it's a safer bet to altogether destroy the AdsManager.
    Also how would you recommend detecting that no ad is playing?

    If your creative doesn't register a LOADED event after a few seconds, you can destroy the AdsManager and resume to content.

    Vu Chau
    IMA SDK Team

    ZygomaticNL

    unread,
    Jun 8, 2016, 3:32:49 AM6/8/16
    to Interactive Media Ads SDK
    This solution also fixed our issue with users reporting about the same problem, However this was not just related to flash on Chrome, we got reports from different browsers (Edge, Safari, Firefox) on different platforms.

    See https://groups.google.com/forum/?hl=nl#!topic/ima-sdk/OYmUUVy7Grs

    Op donderdag 2 juni 2016 16:19:00 UTC+2 schreef Vu Chau (IMA SDK Team):
    Reply all
    Reply to author
    Forward
    0 new messages