GoogleMobileAds sdk的奇怪行为

时间:2017-04-04 05:12:03

标签: ios swift admob

当我将此方法放入application(_ application: UIApplication, didFinishLaunchingWithOptions

GADMobileAds.configure(withApplicationID: "MYAPPID")

我的广告按预期显示。

但是,只要我将GADMobileAds.configure(withApplicationID: "MYAPPID")移动到位于库框架内的辅助方法,并调用该辅助方法,广告就不会显示出来。并且控制台中没有记录表明我的错误。

有谁知道为什么会这样?

2 个答案:

答案 0 :(得分:0)

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)
    }

}

答案 1 :(得分:0)

来自Google Admob Documentation for iOS的部分:

  

初始化Google移动广告SDK

     

在应用启动时,通过调用初始化Google移动广告SDK   configureWithApplicationID:在   application:didFinishLaunchingWithOptions:AppDelegate.m的方法或   AppDelegate.swift。 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移动广告SDK允许使用SDK   尽早获取应用级设置并执行配置任务   可能。这有助于减少初始广告请求的延迟。   初始化需要应用程序ID。应用ID是唯一标识符   在移动应用在AdMob控制台中注册时提供给他们。

所以,恕我直言,你必须必须在应用程序启动时调用此配置函数。

希望有所帮助!