【问题标题】:How to check if user has completed video in AdMob for Unity?如何检查用户是否已在 AdMob for Unity 中完成视频?
【发布时间】:2016-04-12 09:07:55
【问题描述】:

我在 Unity 游戏中使用 AdMob 奖励视频。我有两个问题:

  1. 文档说明您需要设置中介网络,我没有设置任何中介网络,但仍然会收到广告。怎么样?

  2. 如何检测用户是否完成了视频?没有任何方法仅在视频完成时触发。

【问题讨论】:

  • 能否链接2.中使用的方法的API参考?

标签: c# unity3d admob ads


【解决方案1】:

您确定您从其他网络获得了激励视频广告,而不仅仅是内置 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);
}

【讨论】:

    【解决方案2】:

    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 ;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-13
      • 1970-01-01
      • 2015-06-22
      • 2022-01-05
      • 2014-07-22
      相关资源
      最近更新 更多