【问题标题】:Find if a full video was watched with unity ads查找是否通过统一广告观看了完整的视频
【发布时间】:2018-07-21 12:36:40
【问题描述】:

我允许用户通过单击按钮观看统一视频广告而获得奖励。如果广告已准备就绪,则当您单击该按钮时,它会显示一个没有跳过选项的视频。我也给货币加点。

Advertisement.Show ("rewardedVideoZone");
currency += 10;

广告运行良好,至少在测试模式下,您不能跳过它们。您还可以通过观看获得 10 分奖励。问题是,如果我启动一个广告,关闭我的应用程序,然后重新打开它,广告就消失了,我还有 10 分。

有没有办法判断用户是否观看了完整的视频以防止有人作弊?

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    是的,有。您可以使用ShowOptions.resultCallback 事件来检测用户是否已看完广告。

    具体来说,该事件有一个参数ShowResult,如果用户完整观看了广告,则该参数的值为ShowResult.Finished。

    部分示例

    if(Advertisement.IsReady("rewardedVideoZone")) {
        var showOptions = new ShowOptions();
        showOptions.resultCallback += ResultCallback;
        Advertisement.Show("rewardedVideoZone", showOptions);
    }
    
    private void ResultCallback (ShowResult result) {
        if(result == ShowResult.Finished) {
            currency += 10;
        }
        else {
            Debug.Log ("No award given. Result was :: "+result);
        }
    }
    

    【讨论】:

      【解决方案2】:

      使用此代码:

            using UnityEngine;
              using UnityEngine.Advertisements;
      
              public class UnityAdsExample : MonoBehaviour
              {
                public void ShowRewardedAd()
                {
                  if (Advertisement.IsReady("rewardedVideo"))
                  {
                    var options = new ShowOptions { resultCallback = HandleShowResult };
                    Advertisement.Show("rewardedVideo", options);
                  }
                }
      
                private void HandleShowResult(ShowResult result)
                {
                  switch (result)
                  {
                    case ShowResult.Finished:
                      Debug.Log("The ad was successfully shown.");
                      //
                      // YOUR CODE TO REWARD THE GAMER
                      // Give coins etc.
                      break;
                    case ShowResult.Skipped:
                      Debug.Log("The ad was skipped before reaching the end.");
                      break;
                    case ShowResult.Failed:
                      Debug.LogError("The ad failed to be shown.");
                      break;
                  }
                }
              }
      

      更多信息请查看documentations

      【讨论】:

        猜你喜欢
        • 2017-11-09
        • 1970-01-01
        • 1970-01-01
        • 2016-08-25
        • 1970-01-01
        • 2016-09-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多