25

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

AdListener@Hounshellからの回答によると、これが私の実装です。ただし、ここで実装されているメソッドはどれも実行されていません。

        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>
4

5 に答える 5

33

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

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

AdListeneronReceiveAd()は、広告が利用可能な場合に呼び出されます。広告が利用できonFailedToReceiveAd()ない場合は、理由を説明するコードとともに呼び出されます (ネットワークが利用できない場合やフィルがない場合を含む)。

アップデート:

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

于 2012-03-21T07:18:01.210 に答える
6

単に...!!!

final AdView mAdView = (AdView) findViewById(R.id.adView);
        mAdView.setVisibility(View.GONE);
    mAdView.setAdListener(new AdListener() {
        private void showToast(String message) {
            Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onAdLoaded() {
            showToast("Ad loaded.");
            if (mAdView.getVisibility() == View.GONE) {
                mAdView.setVisibility(View.VISIBLE);
            }
        }

        @Override
        public void onAdFailedToLoad(int errorCode) {
            showToast(String.format("Ad failed to load with error code %d.", errorCode));
        }

        @Override
        public void onAdOpened() {
            showToast("Ad opened.");
        }

        @Override
        public void onAdClosed() {
            showToast("Ad closed.");
        }

        @Override
        public void onAdLeftApplication() {
            showToast("Ad left application.");
        }
    });


    AdRequest adRequest = new AdRequest.Builder().build();
    mAdView.loadAd(adRequest);
于 2016-12-28T15:26:18.300 に答える
-1

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

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

于 2014-09-21T18:31:02.327 に答える