Invisible Interstitials / MoreApps

Yeah. I don’t understand why it’s taking such a long time. I see that the latest version is still not available on their servers. 

I updated the central repository almost 24 hours ago, but it’s still not available. The update should automatically be available to subscribers within a few hours of upload. 

I’ve emailed the guys at CoronaLabs, asking what’s wrong. No reply yet, so I guess I will not be hearing anything until after the weekend. Sorry about that…

ingemar, calling chartboost.autoCacheAds(false) didn’t help. I tried calling it right after chartboost.init(…) as well as before and after each chartboost.startSession(…), but still getting IMPRESSION_ALREADY_VISIBLE on my Galaxy S3. :frowning:

Thanks for your efforts, though. I really appreciate that.

Bummer…

I’ll report this back to the Chartboost team.

I just encountered this issue myself. I reproduced it by hitting the home button right before the interstitial was about to display. When I come back to the app, even though the listener phase is “didDisplay”, there is no interstitial. Any attempt to show an interstitial again fails with IMPRESSION_ALREADY_VISIBLE. The only remedy so far is to restart the app.

@Ingemar, is it possible to expose a method to manually clear the cache in the plugin? I think that would be really handy to have.

@Vince_

I’m bound to the functions that Chartboost provide in their SDK, and at the moment there’s no way to clear the cache or state of an active ad. There is a function called chartboost.isAnyAdVisible() that should return true in your situation so that you can display an ad from other networks, however it doesn’t clear it. 

I have a contact at Chartboost and I’ll submit a request to add a function to force an impression to be cleared and we’ll see what they say…

@Vince_

BTW. Are you experiencing this on Android or iOS ?

Thanks Ingemar. So far I’m liking your plugin a lot more than AdMob!

I have only tested on Android.

Hi Ingemar,

I am implementing multiple ad networks and I’ve noticed that the same thing happens with the AdBuddiz plugin(only tested on Android), and they confirmed via private message that they can reproduce the error. I suspect the two issues might be related.

For your Chartboost plugin, it needs a specific set of circumstances to fail.

  1. The app must be suspend right as the didDisplay phase is called in the listener

  2. It must be resumed by tapping on the icon, not from the Recent Apps list.

If you resume from the Recent Apps list then the ad still displays as expected, albeit the background is completely black – not translucent like normal.

I noticed that I am not able to reproduce this problem with RevMob, and I suspect it is because their SDK is not in the form of a plugin, but in Corona code. Also, the app doesn’t get suspended in the background when their ads show. I think that might have something to do with it for Chartboost and AdBuddiz.

Hope this helps.

@Vince_

I’ve submitted a report to the Chartboost team about this issue. I’ll report back once I get a reply.

@Vince_

After having been in contact with Chartboost, and after looking over the code, it’s the way that Chartboost and Corona act while resuming that can cause this kind of issue on Android devices in certain edge cases. I was reminded about the fact that we had similar issues in November last year and tried various solutions to get around them. We came to the solution that’s implemented in the current version of the plugin. Unfortunately there seems to be little I can do about it at the moment without seriously breaking the plugin.

I’ll continue to see if there’s anything I can do, but at the moment I can’t promise anything.

Sorry for the inconvenience.

Thanks Ingemar, I appreciate the continued effort.

I noticed that with Corona’s AdMob plugin, even though the same thing happens (press home button > resume by tapping app icon again > don’t see ad), when the app resumes the plugin still fires the “closed” state and I am able to receive and display new ads on subsequent attempts. I’m not sure what they’re doing differently.

I’ve requested to Chartboost to add a new function to force close an active impression programmatically.

This would solve the issue since you could call isAnyAdVisible() in your code (which should return true in your case) to check if an ad is currently showing and then call this new force-close function to close it so that you can cache new ads.

Thank you Ingemar! :D  Let’s hope they follow through!

EDIT: Do you have a link where other people can submit this request? Maybe if they see the demand from multiple developers they’d be more inclined to do it.

@Vince_

No link, Sorry. I only have a contact to one of the Chartboost Engineers.

@Vince_

I’ve been talking with the guy at Chartboost, and he said he’s elevated the issue with their SDK engineers and they are considering to implement a function to force close an impression programmatically now. He can’t guarantee when or if it will happen, but at least it’s on their radar.

He’s also taking a deeper look into the technical issues we were seeing in November last year (which ultimately seems to be responsible for your issue as well).

@Ingemar,

Thanks again for elevating this to the Chartboost team. Have they provided any updates on this?

@Vince_

I was told a few weeks ago that my suggestion to add a new function to force close an impression programmatically has been accepted by the engineering team and will be implemented in the next release of their SDK. I’ll keep an eye out for it, and update my plugin once Chartboost have released it.

Awesome! That is great news :slight_smile:

I just encountered this issue myself. I reproduced it by hitting the home button right before the interstitial was about to display. When I come back to the app, even though the listener phase is “didDisplay”, there is no interstitial. Any attempt to show an interstitial again fails with IMPRESSION_ALREADY_VISIBLE. The only remedy so far is to restart the app.

@Ingemar, is it possible to expose a method to manually clear the cache in the plugin? I think that would be really handy to have.

@Vince_

I’m bound to the functions that Chartboost provide in their SDK, and at the moment there’s no way to clear the cache or state of an active ad. There is a function called chartboost.isAnyAdVisible() that should return true in your situation so that you can display an ad from other networks, however it doesn’t clear it. 

I have a contact at Chartboost and I’ll submit a request to add a function to force an impression to be cleared and we’ll see what they say…