【问题标题】:Admob Ads not showing in android applicationAdmob 广告未在 Android 应用程序中显示
【发布时间】:2020-03-09 18:33:46
【问题描述】:

我从一个月开始就在 Admob 创建了一个帐户,并从 2 天前开始添加付款方式。 成功展示广告的测试设备。但其他设备不显示任何错误代码:3

广告:广告加载失败:3

public class MainActivity extends AppCompatActivity implements RewardedVideoAdListener {
    private AdView adView;
    private Button onePlayer, twoPlayer, exit;
    private InterstitialAd mInterstitialAd;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        MobileAds.initialize(this, getString(R.string.app_id));
        MobileAds.initialize(this, initializationStatus -> {

        });
        mInterstitialAd = new InterstitialAd(this);
        mInterstitialAd.setAdUnitId(getString(R.string.instruction));
        mInterstitialAd.loadAd(new AdRequest.Builder().addTestDevice("my-device-id").build());
        mInterstitialAd.setAdListener(InterstitialListener);
        adView = findViewById(R.id.adView);
        adView.loadAd(new AdRequest.Builder().addTestDevice("my-device-id").build());
        adView.setAdListener(adListener);
   }
}

我为 InterstitialAd 创建了一个监听器

private AdListener InterstitialListener = new AdListener() {
        @Override
        public void onAdLoaded() {
            // Code to be executed when an ad finishes loading.
            mInterstitialAd.show();
        }

        @Override
        public void onAdFailedToLoad(int errorCode) {
            // Code to be executed when an ad request fails.
            Toast.makeText(getApplicationContext(), "errorCode " + errorCode + "", Toast.LENGTH_LONG).show();
        }

        @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.
        }
    };

这是横幅 xml:

<com.google.android.gms.ads.AdView
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:id="@+id/adView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    ads:adSize="BANNER"
    ads:adUnitId="@string/banner">
</com.google.android.gms.ads.AdView>

注意:该应用尚未上传到商店!

我该如何解决这个问题?

【问题讨论】:

标签: android admob


【解决方案1】:

这个答案将来可能会对某人有所帮助。我有同样的问题。广告在测试设备中运行良好。但在真实设备中它没有显示任何广告。

我将我的应用发布到 google play 并下载了它。在从 google play 下载的应用程序中,广告显示正常。 我没有对代码进行任何更改

我不知道为什么会这样,它有点像黑匣子。

堆栈溢出中的一些答案说不需要发布应用程序来展示广告。但就我而言,情况并非如此。

【讨论】:

    【解决方案2】:

    您的代码看起来不错。 您是否将此测试单元 ID 用于您的横幅?

    ca-app-pub-3940256099942544/6300978111

    或者您使用的是 AdMob 帐户中的那个?

    【讨论】:

    • 很遗憾,我没听懂,你的意思是什么?关于横幅的测试单元 ID
    • 在您的横幅 xml 文件中有一个名为 ads:adUnitId="@string/banner" 的值,它从名为“banner”的字符串资源中获取它的值。您可以检查 strings.xml 文件中现有的横幅单元 ID,并查看该值是否为 ca-app-pub-3940256099942544/6300978111。如果没有,你可以尝试使用它来看看它是否有效。
    • strings.xml 中的单元 ID 与我在 admob 中的横幅 id 相同 问题不仅是横幅广告所有广告都没有显示(InterstitialAd 也给出错误代码:3),“@字符串/横幅”不同于 ca-app-pub-3940256099942544/6300978111。
    猜你喜欢
    • 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
    相关资源
    最近更新 更多