【问题标题】:UnityAds isReady() always returns falseUnityAds isReady() 总是返回 false
【发布时间】:2019-08-03 08:52:05
【问题描述】:

我在集成 Unity 广告时遇到问题。我的要求是,在玩几次免费游戏后,用户应该在下一次游戏发布时看到广告,然后他才能玩游戏。但是当我检查展示位置是否准备好以便我可以在 IUnityAdsListener.onUnityAdsReady() 中显示广告时。 UnityAds.isReady(placementId: String) 始终返回 false。

我正在尝试使用

UnityAds.initialize(this, "<GameId>", this@MainActivity, false)


我的 IUityAdsListener

override fun onUnityAdsStart(p0: String?) {
    println("Unity ad start")
}

override fun onUnityAdsFinish(p0: String?, p1: UnityAds.FinishState?) {
    println("Unity ad finished")
    loadGame()
}

override fun onUnityAdsError(error: UnityAds.UnityAdsError?, message: String?) {
    println("Unity ad error, $message, ${error?.name}")
}

override fun onUnityAdsReady(placementId: String?) {
    if(UnityAds.isReady(placementId)){
        UnityAds.show(this@MainActivity, placementId)
    }

    println("Unity ad ready, Placement Id: $placementId")
}

【问题讨论】:

    标签: android unityads


    【解决方案1】:

    我找到了解决方案,或者更确切地说是一种解决方法。
    我认为问题在于 UnityAds 需要一些时间进行初始化。因此,当我创建一个线程来延迟 UnityAds.isReady(String placementId) 调用几秒钟时,它返回 true 并且广告实际上已准备好展示并且 UnityAds.show(Activity activity, String placementId) 实际上可以正常工作,没有任何问题。由于我的要求是尽早在游戏发布时加载和显示广告,因此 Unity sdk 似乎在初始化和很快显示广告时遇到了问题。

    下面是 IUnityAdsListener.onUnityAdsReady(String placementId) 回调方法的实现更改。

    override fun onUnityAdsReady(placementId: String?) {
    
        if(placementId == "video") {
            val runnable = Runnable {
                Thread.sleep(2000)
                if (UnityAds.isReady("video"))
                    UnityAds.show(this@MainActivity, placementId)
            }
            Thread(runnable).start()
        }
    
        println("Unity ad ready, Placement Id: $placementId")
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-20
      • 2021-11-05
      • 2018-11-05
      • 2019-05-06
      • 2017-04-29
      • 2013-04-30
      • 2015-01-20
      相关资源
      最近更新 更多