我在我的 Unity 游戏中使用 AdMob 奖励视频。我有两个问题:
文档指出您需要设置中介网络,我没有设置任何中介网络,但仍然会收到广告。怎么样?
如何检测用户是否看完了视频?没有任何方法仅在视频播放完毕后才触发。
最佳答案
您确定您从其他网络获得了奖励视频广告,而不仅仅是内置的 Admob 广告吗?
第二个问题的答案可以在the Firebase documentation here中找到.
基本上,您创建一个 RewardBasedVideoAd 实例并为其附加一个 OnAdRewarded 事件处理程序:
private void RequestRewardBasedVideo(){
#if UNITY_EDITOR
string adUnitId = "unused";
#elif UNITY_ANDROID
string adUnitId = "INSERT_AD_UNIT_HERE";
#elif UNITY_IPHONE
string adUnitId = "INSERT_AD_UNIT_HERE";
#else
string adUnitId = "unexpected_platform";
#endif
RewardBasedVideoAd rewardBasedVideo = RewardBasedVideoAd.Instance;
AdRequest request = new AdRequest.Builder().Build();
rewardBasedVideo.LoadAd(request, adUnitId);
}
...
// Reward based video instance is a singleton. Register handlers once to
// avoid duplicate events.
if (!rewardBasedEventHandlersSet){
// Ad event fired when the rewarded video ad
// has been received.
rewardBasedVideo.OnAdLoaded += HandleRewardBasedVideoLoaded;
// has failed to load.
rewardBasedVideo.OnAdFailedToLoad += HandleRewardBasedVideoFailedToLoad;
// is opened.
rewardBasedVideo.OnAdOpening += HandleRewardBasedVideoOpened;
// has started playing.
rewardBasedVideo.OnAdStarted += HandleRewardBasedVideoStarted;
// has rewarded the user.
rewardBasedVideo.OnAdRewarded += HandleRewardBasedVideoRewarded;
// is closed.
rewardBasedVideo.OnAdClosed += HandleRewardBasedVideoClosed;
// is leaving the application.
rewardBasedVideo.OnAdLeavingApplication += HandleRewardBasedVideoLeftApplication;
rewardBasedEventHandlersSet = true;
}
...
public void HandleRewardBasedVideoRewarded(object sender, Reward args){
string type = args.Type;
double amount = args.Amount;
print("User rewarded with: " + amount.ToString() + " " + type);
}
关于c# - 如何检查用户是否已在 AdMob for Unity 中完成视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36568571/