アプリにリワード広告を追加したいのですが、ユーザーが広告ビデオを見たときに、彼にリワードを与えます
私がやろうとしているのは、viewdidloadで次のように初期化することです:
let rewardedVideo : GADRewardBasedVideoAd =
GADRewardBasedVideoAd.sharedInstance()
rewardedVideo.delegate = self
let request2 : GADRequest = GADRequest()
request.testDevices = [kGADSimulatorID, "id_device"]
rewardedVideo.load(request2, withAdUnitID: "id reward video from admob")
その後、アプリケーションでユーザーがビデオ広告を再生することを決定したときに、これを確認します:
if GADRewardBasedVideoAd.sharedInstance().isReady {
GADRewardBasedVideoAd.sharedInstance().present(fromRootViewController: self)
}
問題は GADRewardBasedVideoAd.sharedInstance().isReady は常に準備ができていないことです
どうすればこの問題を解決できますか?
どんな助けでも大歓迎です
___________________編集
これを追加しました
func rewardBasedVideoAd(_ rewardBasedVideoAd: GADRewardBasedVideoAd, didFailToLoadWithError error: Error?) {
print("error \(error)")
}
エラーが表示されます:リクエストエラー:表示する広告がありません
設定を見逃しているかも知れない
- - - - - - - 編集
私が使用したソリューション:
@Daniel Storm が提案したように、GADRewardBasedVideoAd 用にサードパーティの広告ネットワークを構成する必要がありますが、AdColony と Applovin を admob に接続しようとするとエラーが発生し、どういうわけかアダプターが接続されていないため、最終的に admob とは無関係に chartboost を統合することを選択しました。だから今、私はリワードビデオ用のchartboostと、バナーとインターティシャル用のadmobを持っています
私はこのようにchartboostを追加します:
Chartboost.start(withAppId: "appid configurad in https://dashboard.chartboost.com", appSignature: "signature in the same site", delegate: self)
Chartboost.cacheRewardedVideo(CBLocationMainMenu)
if(Chartboost.hasRewardedVideo(CBLocationMainMenu)){
Chartboost.showRewardedVideo(CBLocationMainMenu)