Swift 3.0 と Xcode 8 Beta 6 を使用しています。私のアプリはまだ AppStore でリリースされていません。
ここで何かが欠けていると思いますが、何がわかりません。以前は他のアプリで問題なく iAds を使用していました。しかし、リワード動画と AdMob を試すのはこれが初めてです。
私はあなたのチュートリアルに従い、このコードを AppDelegate.swift に書きました:
FIRApp.configure()
GADMobileAds.configure(withApplicationID: "my_app_id_created_on_admob")
let request = GADRequest()
GADRewardBasedVideoAd.sharedInstance().load(request, withAdUnitID: "my_add_unit_created_on_admob")
次に、ボタンをクリックしたときにプッシュしている UIViewController にこれを入れました。
この VC がロードされたときにやりがいのある広告を表示するようにします。そこで、AdMob デリゲートも設定しました。
override func viewDidLoad() {
super.viewDidLoad()
GADRewardBasedVideoAd.sharedInstance().delegate = self
}
GADRewardBasedVideoAdDelegate に続いてこの VC も宣言し、これらすべてのプロトコル実装を VC の最後に追加します。
func rewardBasedVideoAdDidOpen(_ rewardBasedVideoAd: GADRewardBasedVideoAd!) {
print("rewardBasedVideoAdDidOpen")
}
func rewardBasedVideoAdDidClose(_ rewardBasedVideoAd: GADRewardBasedVideoAd!) {
print("rewardBasedVideoAdDidClose")
GADRewardBasedVideoAd.sharedInstance().load(GADRequest(), withAdUnitID: "my_add_unit_created_on_admob")
}
func rewardBasedVideoAdDidReceive(_ rewardBasedVideoAd: GADRewardBasedVideoAd!) {
print("rewardBasedVideoAdDidReceive")
}
func rewardBasedVideoAdDidStartPlaying(_ rewardBasedVideoAd: GADRewardBasedVideoAd!) {
print("rewardBasedVideoAdDidStartPlaying")
}
func rewardBasedVideoAdWillLeaveApplication(_ rewardBasedVideoAd: GADRewardBasedVideoAd!) {
print("rewardBasedVideoAdWillLeaveApplication")
}
func rewardBasedVideoAd(_ rewardBasedVideoAd: GADRewardBasedVideoAd!, didRewardUserWith reward: GADAdReward!) {
print("Should reward user with \(reward.amount) \(reward.type)")
}
func rewardBasedVideoAd(_ rewardBasedVideoAd: GADRewardBasedVideoAd!, didFailToLoadWithError error: Error!) {
print("didFailToLoadWithError")
GADRewardBasedVideoAd.sharedInstance().load(GADRequest(), withAdUnitID: "my_add_unit_created_on_admob")
}
そこから2つの質問:
AdMob ダッシュボードに他のメディエーション ネットワークをまだ実装していないのに、一部の動画が正常に表示されるのはなぜですか?
開発デバイスで表示されたビデオを見た後、didRewardUserWith が呼び出されなかったのはなぜですか?
多分それは正常で、この didRewardUserWith 関数は他のメディエーション ネットワークの広告によってのみトリガーされるのではないかと考えていました。それで、それが理由かどうかを確認するために、他の3つ(AdColony、Chartboost、AppLovin)を実装しました...しかし、それはただの地獄です。 AdMob フレームワーク、誰も言わずに Obj-C から Swift への橋渡しが必要...
その他: 今朝以来、理由はよくわかりませんが、私の GADRewardBasedVideoAd.sharedInstance() が広告ビデオの読み込みに成功しなくなりました...
ここで何か助けていただければ幸いです...私は希望を失っています:(