与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。

希望有所帮助!