首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查是否有奖励广告?

如何检查是否有奖励广告?
EN

Stack Overflow用户
提问于 2019-01-30 10:22:36
回答 1查看 1.8K关注 0票数 0

我需要检查是否加载了奖励视频,所以我有以下功能:

代码语言:javascript
复制
private bool IsAdAvailable()
{
    if (AdmobController.instance.rewardBasedVideo == null) return false;

    bool isLoaded = AdmobController.instance.rewardBasedVideo.IsLoaded();

    if (!isLoaded)
    {
        AdmobController.instance.RequestRewardBasedVideo();
    }

    return isLoaded;
}

这是RequestRewardBasedVideo函数:

代码语言:javascript
复制
         public void RequestRewardBasedVideo()
         {
#if UNITY_ANDROID
               string adUnitId = "ca-app-pub-3940256099942544/5224354917";
#elif UNITY_IPHONE
               string adUnitId = "ca-app-pub-3940256099942544/1712485313";
#else
               string adUnitId = "unexpected_platform";
#endif

              // Create an empty ad request.
              AdRequest request = new AdRequest.Builder().Build();
             // Load the rewarded video ad with the request.
              this.rewardBasedVideo.LoadAd(request, adUnitId);
         }

这是一个功能,它显示奖励的视频,如果它加载,如果没有,它将显示该信息给用户。

代码语言:javascript
复制
public void ShowRewardedAds()
{
    if (rewardBasedVideo.IsLoaded())
    {
        rewardBasedVideo.Show();
    }
    else
    {
        MonoBehaviour.print("Reward based video ad is not ready yet");
    }

}

但是,当我统一运行我的程序时,在控制台中,这个消息一直不停地显示:

代码语言:javascript
复制
Dummy IsLoaded
UnityEngine.Debug:Log(Object)

就像程序一直在检查奖励视频是否被加载。

我尝试删除IsAdAvailable()中的所有语句,但return isLoaded除外,我用return true替换了它。

这条信息没有停止显示,它只显示了一次。这就是我想要的。

那么,是否有更好的方法来检查奖励视频是否已加载?

如果您需要更多关于我的代码的信息,可以随意询问。

这是我的ad暴徒控制器脚本:https://pastebin.com/TNNPKxQF

这是奖励视频按钮脚本:https://pastebin.com/FipHV9wt

这是奖励视频CallBack脚本:https://pastebin.com/g65zjBwt

#编辑

我删除了IsAdAvailable()、exept AdmobController.instance.RequestRewardBasedVideo();return true中的所有语句,运行了我的程序,问题仍然存在,消息虚拟IsLoaded不停地显示。因此,我认为问题来自于这个声明,AdmobController.instance.RequestRewardBasedVideo();

EN

回答 1

Stack Overflow用户

发布于 2019-01-30 12:03:48

您可以阅读如何在Google AdMob Mobile Ads SDK (Unity) documentation.中实现奖励视频广告。

查看奖励视频是否已加载的最佳方法是链接到RewardBasedVideoAd OnAdLoaded事件:

代码语言:javascript
复制
using GoogleMobileAds.Api;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private RewardBasedVideoAd rewardBasedVideo;
    ...

    public void Start()
    {
        // Get singleton reward based video ad reference.
        this.rewardBasedVideo = RewardBasedVideoAd.Instance;

        // Called when an ad request has successfully loaded.
        rewardBasedVideo.OnAdLoaded += HandleRewardBasedVideoLoaded;
        // Called when an ad request failed to load.
        rewardBasedVideo.OnAdFailedToLoad += HandleRewardBasedVideoFailedToLoad;

        this.RequestRewardBasedVideo();
    }

    private void RequestRewardBasedVideo()
    {
        #if UNITY_ANDROID
            string adUnitId = "ca-app-pub-3940256099942544/5224354917";
        #elif UNITY_IPHONE
            string adUnitId = "ca-app-pub-3940256099942544/1712485313";
        #else
            string adUnitId = "unexpected_platform";
        #endif

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();
        // Load the rewarded video ad with the request.
        this.rewardBasedVideo.LoadAd(request, adUnitId);
    }

    public void HandleRewardBasedVideoLoaded(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleRewardBasedVideoLoaded event received");
    }

    public void HandleRewardBasedVideoFailedToLoad(object sender, AdFailedToLoadEventArgs args)
    {
        MonoBehaviour.print(
            "HandleRewardBasedVideoFailedToLoad event received with message: "
                             + args.Message);
    }

您还应该使用事件来检查广告是否显示、关闭、单击等。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54438278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档