【问题标题】:"No Ad Config." on onAdFailedToLoad() Method While trying to Load Ads“没有广告配置。”尝试加载广告时的 onAdFailedToLoad() 方法
【发布时间】:2020-10-10 23:26:22
【问题描述】:

我正在尝试为我的应用加载插页式广告。每当我尝试加载这些广告时,我都会收到来自域“com.google.android.gms.ads”的“无广告配置”的错误消息。

代码如下:

我的 AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.ayush.torch">


    <application

        android:allowBackup="true"
        android:icon="@drawable/ic_ico"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".main">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="i_have_put_my_app_id_here"/>
     
    </application>

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.FLASHLIGHT" />

</manifest>

onCreate() in main.java

        
        // Creating the InterstitialAd and setting the adUnitId.
        interstitialAd = new InterstitialAd(this);
        interstitialAd.setAdUnitId("i have also put my interstitial ad id here");


       interstitialAd.setAdListener(new AdListener() {
           @Override
           public void onAdLoaded() {
               Toast.makeText(main.this, "Ad Loaded", Toast.LENGTH_SHORT).show();
           }

           @Override
           public void onAdFailedToLoad(LoadAdError loadAdError) {
               String error = String.format("domain: %s, code: %d, message: %s", loadAdError.getDomain(), loadAdError.getCode(), loadAdError.getMessage());
               Toast.makeText(main.this, "onAdFailedToLoad() with error: " + error, Toast.LENGTH_SHORT).show();
           }
       });

当我在 on 函数中加载我的广告时,它会出现错误“无广告配置”。

                    Log.d("[Ads]","Ad Load State For on(): " + interstitialAd.isLoaded());
                    if (interstitialAd.isLoaded()) 
                    {
                        interstitialAd.show();
                    }

【问题讨论】:

    标签: android-studio admob ads interstitial


    【解决方案1】:

    修复它并且它有效。

    从谷歌找到资源。它消除了我所有的疑虑。 For Test Ad Resource Click Me

    广告有两种作用。

    1. 应用程序正在开发中。
    2. 当应用程序处于生产状态时。

    场景 1:当应用程序处于开发阶段时

    对于这种情况,我们需要使用测试广告。 Admob 和“com.google.android.gms.ads”不允许用户在开发阶段使用广告,因为存在错误印象。

    启用测试广告。有两种方法: 您可以使用上面链接上提供的谷歌广告单元 ID。 要么 您可以使用自己的广告单元 ID,但您需要将您的设备注册为测试设备并使用您自己的请求配置。 这是一个简单的例子: 在“Logcat”中搜索您的“设备 ID”

    它看起来像

    I/ADS:使用请求的配置......Arrays.asList("Your device Id will be here");

    然后复制粘贴这个(我能读懂你的想法..)

    // Change your Id
    RequestConfiguration configuration = new RequestConfiguration.Builder().setTestDeviceIds(Arrays.asList("your device id should go here")).build();
    MobileAds.setRequestConfiguration(configuration);
    

    现在只需加载广告,它就会弹出。恭喜。 :)


    场景 2:应用正在生产中

    这是非常简单的部分......

    1. 只需从代码中删除 .setTestDeviceIds(Arrays.asList("your device id should go here")) 部分...
    2. 将您的 AdMob 应用链接到 PlayStore。 [你的应用发布了吗?是的……是的……然后……]
    3. 只需选择广告即可。
    4. 并检查您在 Play 控制台上的应用设置中是否启用了广告。
    5. 它现在应该可以工作了。恭喜。

    【讨论】:

    • 这是否仅在它发布到 playstore 时才有效?或者在签名的 apk 中也显示实时广告?谢谢。
    • @ManikumarGouni 它仅在应用发布到 Play 商店时有效,以防止错误印象。
    • 不能解决激励广告的问题。仍然没有收到广告配置错误。
    • 解决了我的问题,谢谢!我在 AdMob 网页上将我的设备设置为测试设备,并且还尝试显示教程中的 TestAdId。这导致了配置错误。我现在使用我的“真实/自有”广告单元 ID,它运行良好,只在我配置的测试设备上显示测试广告。
    • 这是我一直在寻找的答案,谢谢好友
    【解决方案2】:

    我的错误:同时设置测试设备和加载测试广告

    解决方案:只使用一个。通过使用带有生产广告单元 ID 的测试设备,错误消失了。广告正在再次加载,即使您指定了生产广告单元 ID,它们也是测试广告

    【讨论】:

    【解决方案3】:

    这是另一种不需要编程的方法。

    转到 Admob 仪表板 > 设置 > 测试设备 > 添加测试设备

    要找到它,请转到您的设备设置 > Google > 广告 > 在那里您可以找到您的广告 ID!

    【讨论】:

    • 这是我搜索了大约 20 分钟后找到的最好和最简单的解决方案。谢谢@Harsh Kothari
    【解决方案4】:

    对于 FLUTTER 应用,使用google_mobile_ads 设置测试设备略有不同。根据文档,您必须updateRequestConfiguration。示例代码如下:

    MobileAds.instance.updateRequestConfiguration(RequestConfiguration(testDeviceIds: ["yourdeviceId"]));
    

    您可以通过在运行输出日志中搜索RequestConfiguration获取测试设备。

    【讨论】:

      【解决方案5】:

      如果您的应用被上传到某个商店并且您没有正确设置 app-ads.txt,也会发生这种情况。

      您应该记住,如果您使用 AdMob 测试广告,您也应该将此条目添加到您的 app-ads.txt 中:

      google.com,pub-3940256099942544,直接,f08c47fec0942fa0

      正确:https://developers.google.com/admob/android/test-ads

      【讨论】:

        【解决方案6】:

        我正在使用颤振。 我刚刚在 Admob 测试设备中添加了我的设备并且它工作正常。 在生产中,我只会移除测试设备。

        如果我错了,请告诉我。

        【讨论】:

        • 好的,记得在 Play 管理中心发布应用时启用广告。
        • 当然,我会这样做的。
        【解决方案7】:

        在我的情况下,我从 iOS 切换到 Android 后忘记更改 Ironsource 的应用 ID,因此它一直调用配置为调用错误 Admob 广告单元 ID 的 Ironsource 的 iOS 版本。修复ironsource ID后,调用了正确的Admob单元ID并修复了错误。

        【讨论】:

          【解决方案8】:

          此警告只是表明您的 AdMob 帐户尚未收到银行确认或银行帐户添加确认。

          【讨论】:

          • 错了,我收到通知说我的银行信息已被检查并且我的 Admob 帐户可以使用了。
          • 这与上面提到的实际问题无关。
          猜你喜欢
          • 1970-01-01
          • 2022-11-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多