【问题标题】:My Admob Ad not showing in my app getting error code 3 "no ad config" how to fix it, also my test ad is working properly我的 Admob 广告未在我的应用中显示,出现错误代码 3“无广告配置”如何修复它,我的测试广告也正常工作
【发布时间】:2021-05-22 04:00:14
【问题描述】:

//这是我要加载广告的活动

import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.InterstitialAd;
import com.google.android.gms.ads.LoadAdError;
import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.initialization.InitializationStatus;
import com.google.android.gms.ads.initialization.OnInitializationCompleteListener;


public class TenaliRamanActivity extends AppCompatActivity {

    ListView listView;
    private InterstitialAd mInterstitialAd;
    private AdView mAdView;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tenali_raman);

//AD代码开始

        MobileAds.initialize(this, new OnInitializationCompleteListener() {
            @Override
            public void onInitializationComplete(InitializationStatus initializationStatus) {
            }
        });

        mAdView = findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);

        mAdView.setAdListener(new AdListener() {
            @Override
            public void onAdLoaded() {
                // Code to be executed when an ad finishes loading.
            }

// 我正在重写 onAdFailedToLoad() 方法以了解为什么我的广告没有展示并获得错误代码 3、消息“无广告配置”

            @Override
            public void onAdFailedToLoad(LoadAdError adError) {
                Toast.makeText(TenaliRamanActivity.this, " Banner AdError is "+ adError, 
 Toast.LENGTH_LONG).show();
                
            }

            @Override
            public void onAdOpened() {
                // Code to be executed when an ad opens an overlay that
                // covers the screen.
            }

            @Override
            public void onAdClicked() {
                // Code to be executed when the user clicks on an ad.
            }

            @Override
            public void onAdLeftApplication() {
                // Code to be executed when the user has left the app.
            }

            @Override
            public void onAdClosed() {
                // Code to be executed when the user is about to return
                // to the app after tapping on an ad.
            }
        });

// 插页式代码从这里开始

        mInterstitialAd = new InterstitialAd(this);
        mInterstitialAd.setAdUnitId("ca-app-pub-4745680273727033/3318988209");
        mInterstitialAd.loadAd(new AdRequest.Builder().build());

        mInterstitialAd.setAdListener(new AdListener() {
            @Override
            public void onAdLoaded() {
                // Code to be executed when an ad finishes loading.
            }

//我还 Toasted 我的 Inetrstitial Ad 错误消息并得到相同的错误代码 3,消息“没有广告配置”[我的错误是这个][1]

            **@Override
            public void onAdFailedToLoad(LoadAdError adError) {
                Toast.makeText(TenaliRamanActivity.this, " Instertial Ad Error is"+ adError, 

Toast.LENGTH_SHORT).show(); enter code here}**

            @Override
            public void onAdOpened() {
                // Code to be executed when the ad is displayed.
            }

            @Override
            public void onAdClicked() {
                // Code to be executed when the user clicks on an ad.
            }

            @Override
            public void onAdLeftApplication() {
                // Code to be executed when the user has left the app.
            }

            @Override
            public void onAdClosed() {
                // Code to be executed when the interstitial ad is closed.
            }
        });


       // Start Application Code
        listView= findViewById(R.id.listView);

        String[] tenaliRaman= getResources().getStringArray(R.array.tenaliRaman);

        ArrayAdapter<String> adapter= new ArrayAdapter<>(this,R.layout.row_item, R.id.rowText, tenaliRaman);

        listView.setAdapter(adapter);

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                if (mInterstitialAd.isLoaded()) {
                    mInterstitialAd.show();
                } else {
                    Intent intent= new Intent(TenaliRamanActivity.this, StoryTenaliRaman.class);
                    intent.putExtra("storyPosition", position);
                    startActivity(intent);
                }



            }
        });

    }
}


  [1]: https://i.stack.imgur.com/rNFvv.png

【问题讨论】:

  • 给定答案 [stackoverflow.com/questions/33566485/… 这将解决您的问题
  • 但我找不到任何有效的答案..
  • @kumarbittu 答案如果您在 admob 上收到错误 3,则在此处提到该广告请求成功,但由于缺少广告库存而没有返回广告。您的代码是正确的广告调用但库存中没有广告
  • 这能回答你的问题吗? failed to load ad : 3
  • @DaanSeuntjens 我在超过 15 天后出现错误,它显示相同的错误...每当我尝试加载我的真实广告时

标签: android error-handling admob


【解决方案1】:

首先转到项目级 build.gradle

allprojects {
    repositories {
        google()
    }
}

用这个代替google()

maven {
    url 'https://maven.google.com/'
    name 'Google'
}

您是否使用了测试 ID?

现在转到您的清单文件

确保您在 AndroidManifest.xml 中添加了 INTERNET 权限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

并且还在您的AndroidManifest.xml 中使用测试 admob 应用程序 ID

 <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ca-app-pub-3940256099942544~3347511713"/>

测试 AdMob 应用 ID:ca-app-pub-3940256099942544~3347511713

The source for the Test Admob app ID

那么你也可以在这里找到Testing ids的其余部分

应用打开:ca-app-pub-3940256099942544/3419835294

横幅:ca-app-pub-3940256099942544/6300978111

插页式广告:ca-app-pub-3940256099942544/1033173712

插页式视频:ca-app-pub-3940256099942544/8691691433

奖励:ca-app-pub-3940256099942544/5224354917

奖励插页式广告:ca-app-pub-3940256099942544/5354046379

原生高级:ca-app-pub-3940256099942544/2247696110

原生高级视频:ca-app-pub-3940256099942544/1044960115

用这些测试 ID 替换您的 ID,以便能够在测试模式下看到您的广告

【讨论】:

  • 我的测试 ID 工作正常,它会显示广告,但是当我输入自己的广告 ID 时,它不会显示任何广告并显示错误代码 3,没有广告配置
  • 如果出现广告并且您使用的是测试 ID 编号,则表示一切正常。至于没有出现在真实身份证号上的广告,这是因为您必须在商店发布应用程序,同意发布后下载到您的设备上,广告才会出现。
【解决方案2】:

对于任何有类似问题的人,谷歌的演示广告也会间歇性地发生此错误: https://developers.google.com/admob/android/test-ads#demo_ad_units

就我而言,我使用的是横幅演示:

ca-app-pub-3940256099942544/6300978111

在多次测试后,它失败了 50% 的时间。真正的广告正在工作,因为我可以在 admob 仪表板中看到统计信息,所以这应该可以安全地忽略......我希望。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多