iPhone变得异常火爆,应用程序滞后,Admob间隙广告崩溃



在Admob实现方面,我遇到了一些严重的问题。我遵循了官方文档,但玩了一段时间后,手机开始变得非常热,过了一段时期,应用程序突然变得非常慢和滞后,最终崩溃。

我百分之百肯定这是由于大量的Admob间隙广告。因为应用程序在没有它们的情况下可以完美运行。

我承认,如果你玩一段时间,会有很多广告显示,但关闭它们不是一种选择,因为它是应用程序的主要收入来源。

这是我用来加载和显示广告的代码:

- (void)loadInterstitial {
[GADInterstitialAd loadWithAdUnitID:@"ca-app-pub-xxx/xxx" request:[GADRequest request] completionHandler:^(GADInterstitialAd *ad, NSError *error) {
if (error) {
NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]);
return;
}
self.interstitial.fullScreenContentDelegate = nil;
self.interstitial = ad;
self.interstitial.fullScreenContentDelegate = self;
}];
}
- (void)displayInterstitial {
if (self.interstitial) {
[self.interstitial presentFromRootViewController:self];
adCount = 0;
[[NSUserDefaults standardUserDefaults] setInteger:adCount forKey:@"adCount"];
[[NSUserDefaults standardUserDefaults] synchronize];
} else {
NSLog(@"Ad wasn't ready");
}
}
- (void)adDidDismissFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad {
[self loadInterstitial];
}

没什么特别的。在我看来,在展示了大量间隙广告后,内存似乎超载了,有没有办法在展示后处理它们?

您需要在新请求之前清除旧的interstitial

- (void)loadInterstitial {
self.interstitial.fullScreenContentDelegate = nil;
self.interstitial = nil;
[GADInterstitialAd loadWithAdUnitID:@"ca-app-pub-xxx/xxx" request:[GADRequest request] completionHandler:^(GADInterstitialAd *ad, NSError *error) {
if (error) {
NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]);
return;
}
self.interstitial = ad;
self.interstitial.fullScreenContentDelegate = self;
}];
}

可能与内存中WKWebView实例的增加有关?我也遇到过类似的奇怪的谷歌广告经理原生广告行为。详细信息如下:https://issuetracker.google.com/issues/198511570

最新更新