与GoogleMobileAds sdk的奇怪行为
当我把这个方法放在application(_ application: UIApplication, didFinishLaunchingWithOptions
GADMobileAds.configure(withApplicationID: "MYAPPID")
我的广告按预期显示。
但是,只要将GADMobileAds.configure(withApplicationID: "MYAPPID")
到位于库框架内的辅助方法,并调用该辅助方法,广告就不会显示出来。 而且我可以告诉控制台中没有logging表明什么是错误的。
有谁知道这是为什么?
Swift 3.0
使用这个代表
class ViewController: UIViewController , GADBannerViewDelegate{ // put this line in viewdidload() let bannerview1 : GADBannerView = GADBannerView(frame: CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 50)) bannerview1.adUnitID = "ca-app-pub-3940256099942544/2934735716" bannerview1.rootViewController = self bannerview1.delegate = self bannerview1.load(GADRequest()) self.view.addSubview(bannerview1) // Delegates for adv error func adView(_ bannerView: GADBannerView, didFailToReceiveAdWithError error: GADRequestError) { print(error) } }
适用于iOS的Google Admob文档的一部分:
初始化Google移动广告SDK
在应用程序启动时,通过调用AppDelegate.m或AppDelegate.swift的application:didFinishLaunchingWithOptions:方法中的configureWithApplicationID来初始化Google Mobile Ads SDK。 Objective-CSwift AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Use Firebase library to configure APIs [FIRApp configure]; [GADMobileAds configureWithApplicationID:@"ca-app-pub-3940256099942544~1458002511"]; return YES; }
在应用程序启动时初始化Google Mobile Ads SDK允许SDK尽早获取应用程序级设置并执行configuration任务。 这可以帮助减less初始广告请求的延迟时间。 初始化需要一个应用程序ID。 应用程序ID是在AdMob控制台中注册时向移动应用程序提供的唯一标识符。
所以,恕我直言,你必须在应用程序启动时调用这个configurationfunction。
希望有所帮助!