我面临一个问题,同时整合统一广告。我的要求是,在很少的免费游戏播放后,用户应该在下一个游戏发布时通过一个广告,然后他就可以玩游戏了。但是当我检查位置是否准备好时,我可以在IUnityAdsListener.onUnityAdsReady().中显示广告UnityAds.isReady(placementId: String)总是返回false。
我正在尝试用
UnityAds.initialize(this, "<GameId>", this@MainActivity, false)我的IUnityAdsListener是
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")
}发布于 2019-08-03 08:58:19
我已经找到了解决办法,或者更确切地说,我已经找到了一个解决办法。
我认为问题是UnityAds需要一些时间来初始化。因此,当我创建一个线程来将UnityAds.isReady(String placementId)调用延迟几秒钟时,它返回true,广告实际上已经准备好显示,而UnityAds.show(Activity )实际上运行良好,没有任何问题。由于我的要求是尽早在游戏发布上加载和显示广告,因此团结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")
}https://stackoverflow.com/questions/57336846
复制相似问题