8

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() が広告ビデオの読み込みに成功しなくなりました...

ここで何か助けていただければ幸いです...私は希望を失っています:(

4

0 に答える 0