firebaseを使用してアプリケーションに報酬を与えたビデオを実装しました。私は、このページに応じて、必要なすべてを行っている:https://developers.google.com/admob/ios/rewarded-videoFirebase Rewarded Videoデリゲートメソッドが呼び出されていない
を私は(広告について)以下をインポートしています
import Firebase
import GoogleMobileAds
class ViewController: UIViewController, MFMailComposeViewControllerDelegate, GKGameCenterControllerDelegate, GADInterstitialDelegate, GADRewardBasedVideoAdDelegate, UIAlertViewDelegate {...}
は、だから私は、デリゲートを設定し、私は広告をロード:
rewardBasedVideo = GADRewardBasedVideoAd.sharedInstance()
rewardBasedVideo.delegate = self
if !adRequestInProgress && rewardBasedVideo?.isReady == false {
GADRewardBasedVideoAd.sharedInstance().delegate = self
rewardBasedVideo?.load(GADRequest(),
withAdUnitID: "ca-app-pub...")
adRequestInProgress = true
}
私はボタンを押したとき
私も広告を呼び出す:
if rewardBasedVideo?.isReady == true {
rewardBasedVideo?.present(fromRootViewController: self)
if !adRequestInProgress && rewardBasedVideo?.isReady == false {
rewardBasedVideo?.load(GADRequest(),
withAdUnitID: "ca-app-pub-3940256099942544/1712485313")
//ca-app-pub-8020832369894951/1361675226
adRequestInProgress = true
}
その後、私はすべて持っています次の問題が発生した
func rewardBasedVideoAd(_ rewardBasedVideoAd: GADRewardBasedVideoAd,
didRewardUserWith reward: GADAdReward) {
print("You eaerned $\(abbreviateNumber(num: (moneyPerSecond * 360.0) as NSNumber))")
money = UserDefaults.standard.double(forKey: moneyKey)
money += moneyPerSecond * 360.0
UserDefaults.standard.set(money, forKey: moneyKey)
}
func rewardBasedVideoAdDidReceive(_ rewardBasedVideoAd: GADRewardBasedVideoAd) {
adRequestInProgress = false
print("Reward based video ad is received.")
}
func rewardBasedVideoAdDidOpen(_ rewardBasedVideoAd: GADRewardBasedVideoAd) {
print("Opened reward based video ad.")
}
func rewardBasedVideoAdDidStartPlaying(_ rewardBasedVideoAd: GADRewardBasedVideoAd) {
print("Reward based video ad started playing.")
}
func rewardBasedVideoAdDidClose(_ rewardBasedVideoAd: GADRewardBasedVideoAd) {
print("Reward based video ad is closed.")
}
func rewardBasedVideoAdWillLeaveApplication(_ rewardBasedVideoAd: GADRewardBasedVideoAd) {
print("Reward based video ad will leave application.")
}
func rewardBasedVideoAd(_ rewardBasedVideoAd: GADRewardBasedVideoAd,
didFailToLoadWithError error: Error) {
print("Reward based video ad failed to load.")
}
:デリゲートのための機能を私は(rewardBasedVideoAdDidReceiveが実行されるの後)に広告をロードすることができ、私は広告を見て、広告を閉じることができます。しかし、ユーザーに報酬を与えるべき機能は実行されません。なぜこれが正しく動作しないのかを知る必要があるので、ユーザーに適切な報酬を与えることができます。