Скрыть встроенную рекламу, если она не загружена

#android #native-ads

#Android #нативная реклама

Вопрос:

Чего я пытаюсь добиться, так это скрыть мой просмотр рекламы, если он не загружен из-за Интернета или нет рекламы с сервера.

MainActivity.java

 NativeExpressAdView nativeView =
            (NativeExpressAdView) findViewById(R.id.natvie_ad);
    nativeView.loadAd(new AdRequest.Builder().addTestDevice("testDeviceID").build());
  

Макет

 <com.google.android.gms.ads.NativeExpressAdView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@ id/moreView"
        android:id="@ id/natvie_ad"
        ads:adSize="300x80"
        ads:adUnitId="adUnitID"
        android:layout_centerHorizontal="true"

        />
  

Комментарии:

1. Итак, что вы пробовали?

Ответ №1:

сначала установите видимость на gone в вашем xml

 <com.google.android.gms.ads.NativeExpressAdView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@ id/moreView"
    android:id="@ id/natvie_ad"
    ads:adSize="300x80"
    ads:adUnitId="adUnitID"
    android:layout_centerHorizontal="true"
    android:visibility="gone"
    />
  

затем в вашем Java-коде установите AdListener следующим образом

 NativeExpressAdView nativeView =
        (NativeExpressAdView) findViewById(R.id.natvie_ad);
nativeView.loadAd(new AdRequest.Builder().addTestDevice("testDeviceID").build());

nativeView.setAdListener(new AdListener() {

        @Override
        public void onAdLoaded() {
            adView.setVisibility(View.VISIBLE);
        }

        @Override
        public void onAdFailedToLoad(int error) {
            adView.setVisibility(View.GONE);
        }

    });
  

Я надеюсь, что это поможет 🙂