表示されない - android アプリ 広告 種類




AdMob広告が読み込まれているかどうかを確認する方法 (3)

isLoaded()メソッドを使用することができます。 私はあなたと同じコンテキストで、広告が読み込まれるまで待つためにタイマーの内部でそれを使用しています。

https://developer.android.com/reference/com/google/android/gms/ads/InterstitialAd.html

My Andoridアプリはオフラインでもオンラインでも動作します。 オンラインモードのときに広告を表示します。 オフラインモードで動作し、ユーザーがインターネット接続をオンに切り替えるシナリオでは、広告が既に読み込まれているかどうかを知りたいと思います。 もしそうでなければ、私は新しい広告を読み込みます。 私はAdMob API(AdViewクラス)を見ましたが、これを行う何かを見つけることができませんでした。

AdListenerの答えに従って、私のAdListener実装します。 しかし、ここで実装されているメソッドのどれも実行されていません。

        adView.setAdListener(new AdListener() {

        @Override
        public void onReceiveAd(Ad arg0) {
            Toast.makeText(act, "Ad received",Toast.LENGTH_LONG).show();
        }

        @Override
        public void onPresentScreen(Ad arg0) {
        }

        @Override
        public void onLeaveApplication(Ad arg0) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onFailedToReceiveAd(Ad arg0, ErrorCode arg1) {
            Toast.makeText(act, "Failed to receive Ad",Toast.LENGTH_LONG).show();
        }

        @Override
        public void onDismissScreen(Ad arg0) {
            // TODO Auto-generated method stub

        }
    });

また、AdViewをカバーするmain.xmlの一部

<FrameLayout 
                    android:layout_width="fill_parent"
                    android:layout_height="50dp"
                    >
                <com.google.ads.AdView
                    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
                    android:id="@+id/adView"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    ads:adSize="BANNER"
                    ads:adUnitId="xxxxxxxxxxxxxxxx"
                    ads:loadAdOnCreate="true" />
                </FrameLayout>

https://developers.google.com/mobile-ads-sdk/docs/android/intermediate#adlistener

AdView.setAdListener(new AdListener() {
      // Implement AdListener
    });

広告が利用可能なときにAdListenerのonReceiveAd()が呼び出されます。 onFailedToReceiveAd() 、理由が説明できるコードで広告が利用できないonFailedToReceiveAd()が呼び出され、

更新:

同じ基本的な回答、新しいURL: https://developers.google.com/admob/android/banner?hl=en : https://developers.google.com/admob/android/banner?hl=en


私はこの問題を少しの回避策で解決しました。 初めて、 AdViewに空のタグがあるかどうかを確認しました。

if (adView.getTag() != null && adView.getTag() instanceof Boolean && (Boolean) adView.getTag()) {
        //Adview is already loaded
    }

adViewにBooleanタグオブジェクトがあり、trueの場合は広告が既に読み込まれています。それ以外の場合は広告を読み込んでタグを設定します。

adView.setAdListener(new AdListener() {
            @Override
            public void onAdLoaded() {
                super.onAdLoaded();
                adView.setTag(true); // Set tag true if adView is loaded
            }

            @Override
            public void onAdFailedToLoad(int i) {
                super.onAdFailedToLoad(i);
                adView.setTag(false); // Set tag false if loading failed
            }
        });




adview