Я реализовал видео с вознаграждением в своем приложении, используя firebase. Я сделал все необходимое в соответствии с этой страницей: https://developers.google.com/admob/ios/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.")
}
Происходит следующее: я могу загрузить рекламу (после чего запускается наградаBasedVideoAdDidReceive), могу посмотреть рекламу и закрыть рекламу. Но функция, которая должна вознаграждать пользователя, не запускается. Мне нужно знать, почему это работает неправильно, чтобы я мог должным образом вознаградить пользователя.