首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >统一处理广告的按钮交互

问统一处理广告的按钮交互
EN

Stack Overflow用户
提问于 2021-02-12 17:38:13
回答 1查看 108关注 0票数 1

我在我的应用程序上使用了统一广告。一切运行良好,但我想添加一个功能,处理广告按钮的交互性,无论广告是否准备好,贯穿整个应用程序的生命周期。

我编写的最简单的解决方案是在update()方法中检查ads的可用性:

代码语言:javascript
复制
public class AdButton : MonoBehaviour
{
    // Some stuff here

    void Update()
    {
        if (myButton)
            myButton.interactable = Advertisement.IsReady(placementId);
    }
}

但我也考虑过使用Actions事件:

代码语言:javascript
复制
public class AdsManager : MonoBehaviour
{
    public static event Action<bool> AdReady;

    // Some stuff here

    void update()
    {
        adReady?.invoke(Advertisement.isReady(placementId));
    }
}
代码语言:javascript
复制
public class AdButton : MonoBehaviour
{
    // Some stuff here

    void OnEnable()
    {
        AdsManager.AdReady += RefreshButton;
    }

    void RefreshButton(bool interactivity)
    {
        myButton.interactable = interactivity
    }

    void OnDisable()
    {
        AdsManager.AdReady -= RefreshButton;
    }
}

问题是,我在Unity中是新手,我对update()方法有点害怕。我一直读到,由于该函数的性质(每帧调用一次),应用程序很容易超载。

我应该担心这些代码行还是调用每一帧这些指令不会减慢我的应用程序?

谢谢你的帮助。

西莫

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-13 01:14:42

我的建议是采用行动方法,这是我过去采取的方法,例如:

代码语言:javascript
复制
private Action onAdReadyListener;

public void RegisterOnReadyListener(Action onAdReadyListener)
{
    this.onAdReadyListener = onAdReadyListener;

    if (Advertisement.IsReady(myPlacementId))
    {
        onAdReadyListener?.Invoke();
    }
}

public void OnUnityAdsReady(string placementId)
{
    if (placementId == myPlacementId)
    {
        onAdReadyListener?.Invoke();
    }
}

OnUnityAdsReady()是由UnityAds包提供的覆盖方法。当广告准备好被查看时,它就会被调用。

这里的想法是注册侦听器,将Action作为参数传递给RegisterOnReadyListener()方法,并将其存储为成员变量。

如果广告立即准备就绪,那么Action将立即被调用。如果Ad还没有准备好,那么当Action包调用OnUnityAdsReady()回调时,UnityAds就会被调用。

每次观看广告时,当下一个广告准备被观看时,OnUnityAdsReady()将被调用。这意味着每次广告准备就绪时都会调用Action。

有关这一主题的几点建议:

environment.

  • Android对广告的显示方式非常严格,例如,如果你在一个生产环境中看太多广告,你的帐户就会被屏蔽,比如,如果你在一个生产环境中看太多次自己的广告,你就会清楚地看到用户即将收到广告;如果你在一个生产环境中看太多次自己的广告,每个“屏幕”

  • 就不会显示超过一个广告。您可以控制测试广告或生产广告是否显示在您的项目的中。此选项覆盖代码中的任何测试选项.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66176519

复制
相关文章

相似问题

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