我正在使用GADRewardedAd,我的要求是广告关闭后显示视图。在 API 版本 8 上,adDidPresentFullScreenContent()
会调用更新,但不会调用adDidDismissFullScreenContent()方法。
private var rewardedAdView: GADRewardedAd!
GADRewardedAd.load(withAdUnitID: UserDefaults.standard.string(forKey: Constants.ADMOB_KEY_AD_REWARDED) ?? "",
request: GADRequest(), completionHandler: { (ad, error) in
if let error = error {
print("Rewarded ad failed to load with error: \(error.localizedDescription)")
return
}
self.rewardedAdView = ad
self.rewardedAdView.fullScreenContentDelegate = self
}
Run Code Online (Sandbox Code Playgroud)
private func showRewardedAds(){
self.isAdEarnComplete = false
if let ad = rewardedAdView {
ad.present(fromRootViewController: self,
userDidEarnRewardHandler: {
showToast(viewContoler: self, message: "Your coupon is ready!")
}
)
}
Run Code Online (Sandbox Code Playgroud)
extension HomeViewController: GADFullScreenContentDelegate{
func adDidPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) {
print("Rewarded ads present")
}
func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) {
print("Rewarded ads dismiss")
}
func ad(_ ad: GADFullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) {
printLog(tag: TAG, message: "Error: \(error.localizedDescription)")
}
}
Run Code Online (Sandbox Code Playgroud)
小智 10
确保 GADInterstitialAd 实例是强引用的成员变量或属性,并且在调用 adDidDismissFullScreenContent 之前不要将实例设置为 nil。\n例如:\xc2\xa0
\n小智 5
我知道这是旧线程,但也许这对某人有帮助 - 用户收到奖励后我就加载新的广告,所以这实际上清除了旧的 GADRewardedAd 引用,因此 adDidDismissFullScreenContent 未被调用。
归档时间: |
|
查看次数: |
1990 次 |
最近记录: |