GADInterstitial repeatingly calls interstitialDidDismissScreen by itself (iOS)

396 views
Skip to first unread message

Jaap van Kampen

unread,
Oct 26, 2015, 6:20:44 PM10/26/15
to Google Mobile Ads SDK Developers
I'm running Admob 7.5.2.

I'm loading an interstitial with:

self.amViewInter = [[GADInterstitial alloc] initWithAdUnitID:@"xx"];

[self.amViewInter setDelegate:self];

[self.amViewInter loadRequest:[GADRequest request]];



After I have presented and dismiss the interstitial, the delegate method is called. I prepare a new interstitial here.

a

- (void)interstitialDidDismissScreen:(GADInterstitial *)ad {

    NSLog(@"did dismiss interstitial");

    self.amViewInter.delegate=nil;

    self.amViewInter = [[GADInterstitial alloc] initWithAdUnitID:@"x"];

    [self.amViewInter setDelegate:self];

    GADRequest *request = [GADRequest request];

    [self.amViewInter loadRequest:[GADRequest request]];

}


The strange thing now is that 5 out of 10 cases, the delegate method gets called repeatingly by itself directly after the new load request has been done, getting in an infinite loop... The code above worked fine the last 2 years with the older SDK's...


Looking forward to a quick resolution.


Thanks

Vu Chau (MobileAds SDK Team)

unread,
Oct 27, 2015, 10:23:14 AM10/27/15
to Google Mobile Ads SDK Developers
Hi Jaap,

Thanks for letting us know about this, and for sending over the code snippets.  I tested the code but wasn't able to reproduce this issue on our end.  Basically interstitialDidDismissScreen was only called once per interstitial close.  

Could you send us a minimal project with the iAd adapter and code included?  Also throw in the ad unit ID you are using to mediate with iAd.  Let us know if you are seeing this issue on a specific device/iOS version.

Thanks,

Vu Chau
Mobile Ads SDK Team

Mark W

unread,
Oct 27, 2015, 11:59:55 AM10/27/15
to Google Mobile Ads SDK Developers

Interesting...I’m also seeing the same behaviour and also using code that’s been used for a couple of years. Running on iOS 9.1 / iPhone 6s and using the AdMob Mediation Adaptor for iAds v6.6.0.


For non-iAd interstitials after making the interstitial request I see the expected sequence of delegate method calls interstitialDidReceiveAd (or didFailToReceiveAdWithError), interstitialWillPresentScreen, interstitialDidDismissScreen. For iAd interstitials I receive an interstitialDidDismissScreen call that’s not triggered by the user and no interstitialDidReceiveAd (or didFailToReceiveAdWithError).


This is the stack trace I see for an iAd interstitialDidDismissScreen



This is the stack trace I see for a non-iAd interstitialDidDismissScreen



Also looking forward to a quick resolution.

Thanks,

-Mark

Jaap van Kampen

unread,
Oct 27, 2015, 3:47:27 PM10/27/15
to Google Mobile Ads SDK Developers
Easy to reproduce.. Note that this is a BIG issue, we are not getting any revenue from iAd interstitials.

Here's the steps to reproduce (you can also just run this file to reproduce: https://drive.google.com/file/d/0B_B59Dp3o5dnbi1jYjBuTFJUTWM/view?usp=sharing):
- Open in Xcode 7.1 and fix it:
    - Disable bit code
   - Add the iAd and Adsupport Framework
   - Add the -ObjC key in the Other Linkers
   - Add the mediation library for iAd: libAdapterIAd.a
- Now make sure that the AdUnitID points to a mediation in which iAd is preferred .
- Just run it, you will see that it repeatingly calls interstitialDidDismissScreen 
- I saw the problem with 7.5.1, but I have reproduced the same problem with 7.3.1 as well. 
- I run this on Xcode 7.1, iPad with 9.1

I would appreciate a quick fix here. This is affecting revenue enormously. I just closed a contract with Apple iAd for serving an agreed amount of interstitial, and I cannot serve one!!

Andrew Brogdon (Mobile Ads SDK Team)

unread,
Oct 27, 2015, 6:50:49 PM10/27/15
to Google Mobile Ads SDK Developers
Thanks for the detailed steps, Jaap. I hadn't realized your experience also involved a mediated iAd unit. 

I have been able to reproduce the issue, and I've passed a report and some code along to our engineering team. If I had to guess, I believe the problem lies in the AdMob adapter for iAd, though the engineers will dig in and find out for sure.

Because the problem so directly affects your revenue, we'll give it a high priority. I'll post here again when I hear more from the engineering team. 

Thanks for getting in touch with this.

-Andrew
Message has been deleted

Jaap van Kampen

unread,
Oct 28, 2015, 2:04:17 AM10/28/15
to Google Mobile Ads SDK Developers
Thanks Andrew, looking forward to a speedy resolution. I also suspect the iAd adapter, since all other networks seem to work fine.
Thanks, Jaap

Jaap van Kampen

unread,
Oct 29, 2015, 2:09:22 AM10/29/15
to Google Mobile Ads SDK Developers
Hello Andrew, any outlook as to how long this would take, days, weeks? I'm holding back 15+ apps for updating on the App Store, while this issue costs my company revenue every day. Is there a temporary workaround, e.g. downgrading to an earlier version of the Admob SDK?
Thanks, 

Andrew Brogdon (Mobile Ads SDK Team)

unread,
Oct 29, 2015, 2:47:02 PM10/29/15
to Google Mobile Ads SDK Developers
I just sat down with the engineer who's working on the problem to make sure that he and I are on the same page, so it's likely that the team will have a handle on the issue soon. If it's in the adapter, it's something we could possibly roll out in a matter of days (assuming it's a quick fix). If it turns out that there's a larger issue in the SDK, it would have to wait at least a few weeks for the next SDK release. Both of those estimates a ssume some things, so take them with a grain of salt.

In the meantime, if you need to push to the app store right now, the only guaranteed workaround I can offer (and I'm honestly not happy about this) is to temporarily remove iAd from your AdMob ad units' mediation stacks.

In the meantime, I'll make sure to stay in contact with the engineers on the SDK team and let you know as soon as I have more.

-Andrew

Jaap van Kampen

unread,
Oct 29, 2015, 3:25:42 PM10/29/15
to Google Mobile Ads SDK Developers
Hello Andrew,

Thanks for the response and providing insight in the process.

I'm pretty sure it is related to the adapter. I just run my app with SDK 6.12.2, which I had implemented months ago and which worked perfectly fine then. I experienced exactly the same problem with that one. 

Since I just signed a contract with iAd last week for delivering impressions for a certain CPM, I'm considering to remove the mediation and just go for plain iAd. The bad thing is that I need to guide 15+ apps through the review process twice (also to revert to Admob when a solution is available) :((( 

I can offer my help in looking at the source code of the adapter and working on a resolution with you? 

Thanks, Jaap
Message has been deleted

Jaap van Kampen

unread,
Nov 5, 2015, 8:34:32 AM11/5/15
to Google Mobile Ads SDK Developers
Hi Andrew, 
Do you have an update for us on this issue? We can still *not* monetize on iAd interstitials. In a number of my apps, the functionality is also affected since the app take certain actions once the interstitial is dismissed. Since interstitialDidDismissScreen is called repeatingly without end, the apps cannot be used normally anymore. The only thing I could do is remove all Admob mediation from my apps, since I have a contractual commitment with iAd.
Looking forward to an update and a speedy resolution.
Thanks, Jaap

Andrew Brogdon (Mobile Ads SDK Team)

unread,
Nov 5, 2015, 7:52:07 PM11/5/15
to Google Mobile Ads SDK Developers
I don't have an update for you at the moment, but I will be talking tomorrow with the engineer who's working on the adapter code, so I should have something after that. We haven't forgotten the issue, I can assure you.

-Andrew

Andrew Brogdon (Mobile Ads SDK Team)

unread,
Nov 6, 2015, 8:14:24 PM11/6/15
to Google Mobile Ads SDK Developers
I spoke again with the engineer who maintains our iAd adapter. It appears that the behavior of some of iAd's callbacks has changed, and our adapter needs to be modified to match. Our week is over at this point, but this task is now on our list for next week.

Because the adapter is released separately from the SDK, it can be distributed as soon as the work is done and verified. I'll make sure to keep you informed.

-Andrew

Jaap van Kampen

unread,
Nov 13, 2015, 6:55:40 AM11/13/15
to Google Mobile Ads SDK Developers
Hi Andrew,
Glad to hear it is "only" the iAd adapter. I checked this morning, but the available adaptor is still the old one. Is there progress made on the iAd adaptor update? Note that we are not able to display iAd interstitials since almost a month now..
Thanks, Jaap

Andrew Brogdon (Mobile Ads SDK Team)

unread,
Nov 13, 2015, 7:32:56 PM11/13/15
to Google Mobile Ads SDK Developers
We haven't been able to push an updated adapter yet, but it's being actively worked on by one of our engineers.

I did a little digging myself, and if you're truly pressed for time, there is a possible workaround. If you add a flag the your code that tracks whether the interstitial was actually shown or not, you can check its value in the interstitialDidDismissScreen method, and act accordingly. If the flag is true, you know that the dismissal notification is valid, and if it's false, you know that it's not.

I anticipate this issue being wrapped up by engineering with a new release in the very near future. If your need is immediate, however, this workaround should solve the issue and would not need to be removed (though you'd be free to do so) when the new adapter ships.

-Andrew

Jaap van Kampen

unread,
Nov 25, 2015, 3:58:57 AM11/25/15
to Google Mobile Ads SDK Developers
Hi Andrew,
I was wondering whether there is an update on the new iAd adaptor. I checked, and the current adaptor is still the broken one, not able to show interstitials without getting in an endless calling loop.
It has been 6 weeks now. I know you are going into a long weekend, and I was hoping to have the new iAd adaptor before thanksgiving so that I can spend the weekend updating all my apps with the new adaptor.
Thanks!
Jaap

Jaap van Kampen

unread,
Dec 3, 2015, 3:42:02 AM12/3/15
to Google Mobile Ads SDK Developers
Hi Andrew,
Any update on this? We are still not able to use iAd interstitials in Admob, already since almost 2 months. Thanks for providing a solution, however once an iAd interstitial is requested and the whole mediation gets in an infinite loop, no new interstitials can be retrieved anymore.
Thanks

Jaap van Kampen

unread,
Dec 11, 2015, 8:42:33 AM12/11/15
to Google Mobile Ads SDK Developers
Hello Andrew,
Any update on this topic? I haven't heard back in a while on this and it is affecting revenue and app performance for many developers.
Thanks
Jaap

Andrew Brogdon (Mobile Ads SDK Team)

unread,
Dec 14, 2015, 8:18:27 PM12/14/15
to Google Mobile Ads SDK Developers
I spoke again with the engineering team, and they believe a fix has been written. Testing is not yet complete, however, so it's not fully ready to be released. 

I don't know exactly what tasks remain, but as soon as the new adapter version has passed inspection and is available for download, I will let you know here. 

Thanks!

-Andrew

Jaap van Kampen

unread,
Jan 5, 2016, 10:43:34 AM1/5/16
to Google Mobile Ads SDK Developers
Hi Andrew,
Happy new year! Was there any progress made on the new iAd adaptor? We still cannot show iAd interstitials reliably..
Thanks, Jaap

Ralph Schön

unread,
Mar 2, 2016, 11:48:04 AM3/2/16
to Google Mobile Ads SDK Developers
Still not working with Admob 7.7.0

I removed the iAds + adapter currently to solve this.
Any news on the the dev site?
Message has been deleted

Martijn

unread,
Mar 2, 2016, 5:27:21 PM3/2/16
to Google Mobile Ads SDK Developers
Whenever you update the iAd adapter, please enable Bitcode when compiling it. 
Reply all
Reply to author
Forward
0 new messages