【发布时间】:2016-04-12 09:07:55
【问题描述】:
我在 Unity 游戏中使用 AdMob 奖励视频。我有两个问题:
文档说明您需要设置中介网络,我没有设置任何中介网络,但仍然会收到广告。怎么样?
如何检测用户是否完成了视频?没有任何方法仅在视频完成时触发。
【问题讨论】:
-
能否链接2.中使用的方法的API参考?
我在 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);
}
【讨论】:
How to integrate Admob Rewarded Video 到 Unity3d 应用程序? 这是创建 admob 视频的最少代码。
Admob.Instance().loadRewardedVideo("ca-app-pub-3940256099942544/1712485313");
与插页式类似,视频需要在应用中的适当停止点显式显示,在显示之前检查视频是否准备就绪:
if (Admob.Instance().isRewardedVideoReady()) {
Admob.Instance().showRewardedVideo();
}
处理视频事件
Admob.Instance().onRewardedVideoStarted += myRewardedVideoStartedFun ;
Admob.Instance().onRewarded += myRewardedFun ;
【讨论】: