我正在使用 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() 没有成功加载广告视频了......
这里的任何帮助都将不胜感激......我已经没有希望了:(