繁体   English   中英

Unity 广告返回 INVALID_ARGUMENT

[英]Unity ads returns INVALID_ARGUMENT

我已经在我的 Android 应用程序(尚未发布)上集成了 UnityAds。 我从服务器上的数据库中获取应用程序 ID 和放置 ID。 App id 和placement id 是正确的,我已经复制并粘贴了大约30 次以确保这一点。 因此,当我尝试在测试模式下获取广告时,它给了我 INVALID_ARGUMENT 错误。 是 Unity 对错误代码的解释,但您可以看到它有点通用。

我有一个 object,它仅代表一个广告服务(如 admob、FAN、inmobi 等)在这种情况下,object 被称为广告,这里是如何展示广告:

protected void showUnity(){
    UnityAds.initialize(this, advert.getApiKey(), true); //advert.getApiKey() returns the app id
    UnityAds.addListener(new IUnityAdsListener() {
        @Override
        public void onUnityAdsReady(String s) {
            Log.i(TAG, "onUnityAdsReady "+s);
            if(s.equals(advert.getUnitId()) && !unityReady)
                UnityAds.show(ActivityAd.this, advert.getUnitId()); //advert.getUnitId() returns the placement id
        }

        @Override
        public void onUnityAdsStart(String s) {
            Log.i(TAG, "onUnityAdsStart "+s);
            unityReady = true;
        }

        @Override
        public void onUnityAdsFinish(String s, UnityAds.FinishState finishState) {
            if (finishState.compareTo(UnityAds.FinishState.COMPLETED) == 0) {
                onAdReward(); //my callback for reward
            } else if (finishState.compareTo(UnityAds.FinishState.SKIPPED) == 0) {
                onAdClosed(); //my callback for ad close
            } else if (finishState.compareTo(UnityAds.FinishState.ERROR) == 0) {
                onAdError(finishState.toString()); //my callback for errors
            }
        }

        @Override
        public void onUnityAdsError(UnityAds.UnityAdsError unityAdsError, String s) {
            onAdError(unityAdsError.toString()); //my callback for errors, here results INVALID_ARGUMENT error
        }
    });
}

有谁知道出了什么问题? 提前致谢

如果您仔细检查回调,onUnityAdsError 有 2 个参数,第一个提供错误代码,第二个参数提供有关出错的信息。

@Override
public void onUnityAdsError(UnityAds.UnityAdsError unityAdsError, String reason) {
     onAdError(unityAdsError.toString()); //my callback for errors, here results INVALID_ARGUMENT error
}

因此,只需检查原因,您就应该能够找出集成中出了什么问题。

这里有一些方法可以用来解决这个 INVALID_ARGUMENT 问题

1.确保你在你的应用中实现了正确的初始化代码。 有两种类型的初始化。

  1. 仅 Unity 广告初始化
  2. 中介初始化

这两种方法都有自己的横幅、插页式和奖励广告代码。

2.确保启用测试模式为 Boolean。 (即:私有 Boolean testMode = true;)(确保在商店发布之前做假)

3.您可以将您的手机添加为测试设备,以便在您的手机上强制获取测试广告。 为此,您必须先复制设备的广告 ID。 为此,go 到您的移动设置 > Google > 广告 > 此设备的广告 ID。 将该 ID 和 go 复制到统一仪表板 > 货币化 > 测试 > 添加测试设备。 在此处添加您的设备广告 ID 并使用任何名称,现在您将能够在设备上看到测试广告。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM