I'm using Swift language for ADMOB whenever new advertisement comes up, my Memory is increasing. I think there is a Leaking. Without ADMOB everything else is fine.
var inter: GADInterstitial override func viewWillAppear(animated: Bool) { inter = GADInterstitial() inter.delegate = self inter.adUnitID = "****" var request:GADRequest = GADRequest() request.testDevices = [ "***" ] inter.loadRequest(request) }
And I'm using UIActionAlert for displaying the Interstitial
self.inter.presentFromRootViewController(self)
Memory Report Link:
Am I doing something wrong? I'm using ARC. Can I force to release this Interstitials
by myself.
EDİT:
I tried GADBanner
too. I'm just opening the app; I'm not doing anything else and memory is increasing
override func viewWillAppear(animated: Bool) { banner = GADBannerView() banner.delegate = self banner.adSize = kGADAdSizeSmartBannerPortrait banner.adUnitID = "****" var request:GADRequest = GADRequest() banner.rootViewController = self request.testDevices = [ "****" ] self.view.addSubview(banner) }
You need to call destroy()
to avoid memory leaks on both banner and interstitial ads. Interstitial ads are one-time-use objects, so you would have to destroy them. Banner ads can be reused but once done using them, call destroy()
.
See this for reference.
I had the same issue, although with GADInterstitial AdMob ads. HUGE CPU churn from the memory leak. The problem is that you have to go to your actual root view controller. I'm in Objective C, but basically, if you're in, say, a UITabBarController view hierarchy, then try this:
banner.rootViewController = (UITabBarController *)self.view.window.rootViewController
That one thing solved all of my issues. Hope it works!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With