iOS Admob 开屏广告

乍眼一看,google的admob里似乎找不到开屏广告的相关内容,但实际上藏在了英文文档里面。

// SDK介入部分省略

在SDK加载完毕后就立即预加载一个广告实例GADAppOpenAd备用:

GADAppOpenAd.load(withAdUnitID: unitId, 
    request: GADRequest(), 
    orientation: .portrait) { (ad: GADAppOpenAd? , err: Error?) in
    // 将ad缓存起来备用
}

在启动页面完成后即根据情况展示广告:

ad.present(fromRootViewController: root)
ad.fullScreenContentDelegate = root
Simulator Screen Shot - iPhone 8 - 2020-10-23 at 14.58.15.png

记得实现代理方法:

// MARK: - GADFullScreenContentDelegate
func ad(_ ad: GADFullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) {
// 广告展示失败
}

func adDidPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) {
// 广告已展示
}

func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) {
// 广告已关闭
}

注意adDidDismissFullScreenContent(_ ad:)方法有个坑,可能会出现不回调的情况,导致流程卡住,需自行监听rootViewController的presentedViewController是否还在(如果你用一个新window来管理广告展示的话,更要注意这个问题);

你可能感兴趣的:(iOS Admob 开屏广告)