Banery reklamowe

Banery reklamowe to prostokątne reklamy, które zajmują część układu aplikacji. Ta pozostają na ekranie, gdy użytkownicy wchodzą w interakcję z aplikacją – albo są zakotwiczone, w górnej lub dolnej części ekranu albo w tekście podczas przewijania. Baner reklamy mogą odświeżać się automatycznie po upływie określonego czasu. Przeczytaj Omówienie banerów reklamowych. .

Z tego przewodnika dowiesz się, jak zacząć korzystać z zakotwiczonych banerów adaptacyjnych. Google Ads, które pozwalają zmaksymalizować skuteczność reklam dzięki optymalizacji rozmiaru dla każdego urządzenia o określonej szerokości reklamy.

Zakotwiczone banery adaptacyjne to reklamy o stałym współczynniku proporcji reklamy reklam o stałym rozmiarze. Format obrazu jest podobny do standardu branżowego 320 x 50. Jednorazowo Jeśli podasz pełną szerokość, otrzymasz reklamę o optymalnym wysokość dla tej szerokości. Optymalna wysokość nie zmienia się w zależności od żądań z na tym samym urządzeniu, a widoki nie muszą przesuwać się, gdy reklama odświeża się.

Wymagania wstępne

Zawsze korzystaj z reklam testowych

Podczas tworzenia i testowania aplikacji używaj reklam testowych, a nie reklam, aktywne reklamy. Jeśli tego nie zrobisz, możemy zawiesić Twoje konto.

Najłatwiejszym sposobem wczytania reklam testowych jest użycie specjalnego identyfikatora testowego Banery na Androida:

ca-app-pub-3940256099942544/9214589741

Został on specjalnie skonfigurowany tak, aby wyświetlać reklamy testowe w odpowiedzi na każde żądanie. Możesz używać go we własnych aplikacjach podczas kodowania, testowania i debugowania. Upewnij się tylko, zastąp go identyfikatorem jednostki reklamowej przed opublikowaniem aplikacji.

Więcej informacji o działaniu reklam testowych w pakiecie SDK do reklam mobilnych znajdziesz w artykule Testowanie Reklamy.

Dodawanie AdView do układu

Pierwszym krokiem do wyświetlenia banera jest umieszczenie AdView w układzie w elemencie Activity lub Fragment, w którym chcesz go wyświetlić .

Java

private AdSize getAdSize() {
  // Determine the screen width (less decorations) to use for the ad width.
  Display display = getWindowManager().getDefaultDisplay();
  DisplayMetrics outMetrics = new DisplayMetrics();
  display.getMetrics(outMetrics);

  float density = outMetrics.density;

  float adWidthPixels = adContainerView.getWidth();

  // If the ad hasn't been laid out, default to the full screen width.
  if (adWidthPixels == 0) {
    adWidthPixels = outMetrics.widthPixels;
  }

  int adWidth = (int) (adWidthPixels / density);
  return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth);
}

private void loadBanner() {
  
  // Create a new ad view.
  AdView adView = new AdView(this);
  adView.setAdSizes(getAdSize());
  adView.setAdUnitId("ca-app-pub-3940256099942544/9214589741");

  // Replace ad container with new ad view.
  adContainerView.removeAllViews();
  adContainerView.addView(adView);

  // Start loading the ad in the background.
  AdRequest adRequest = new AdRequest.Builder().build();
  adView.loadAd(adRequest);
}

Kotlin


// Determine the screen width (less decorations) to use for the ad width.
// If the ad hasn't been laid out, default to the full screen width.
private val adSize: AdSize
  get() {
    val display = windowManager.defaultDisplay
    val outMetrics = DisplayMetrics()
    display.getMetrics(outMetrics)

    val density = outMetrics.density

    var adWidthPixels = binding.adViewContainer.width.toFloat()
    if (adWidthPixels == 0f) {
      adWidthPixels = outMetrics.widthPixels.toFloat()
    }

    val adWidth = (adWidthPixels / density).toInt()
    return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth)
  }

private fun loadBanner() {
  
  // Create a new ad view.
  val adView = AdView(this)
  adView.adSizes = adSize
  adView.adUnitId = "ca-app-pub-3940256099942544/9214589741"

  // Create an ad request.
  val adRequest = AdRequest.Builder().build()

  // Start loading the ad in the background.
  adView.loadAd(adRequest)
}

Wczytywanie reklamy

Po skonfigurowaniu AdView trzeba wczytanie reklamy. Można to zrobić dzięki loadAd() w klasie AdView. Potrzeba AdRequest który zawiera informacje o czasie działania, np. informacje o kierowaniu, pojedynczego żądania reklamy.

Oto przykład, który pokazuje, jak wczytać reklamę w metodzie onCreate() funkcji Activity:

Java

private void loadBanner() {
  // Create a new ad view.
  adView = new AdView(this);
  adView.setAdUnitId(AD_UNIT);
  adView.setAdSize(getAdSize());
  
  // Replace ad container with new ad view.
  adContainerView.removeAllViews();
  adContainerView.addView(adView);

  // Start loading the ad in the background.
  AdRequest adRequest = new AdRequest.Builder().build();
  adView.loadAd(adRequest);
}

Kotlin

private fun loadBanner() {
  // This is an ad unit ID for a test ad. Replace with your own banner ad unit ID.
  adView.adUnitId = "/6499/example/banner"
  adView.setAdSize(adSize)
  
  // Create an ad request.
  val adRequest = AdRequest.Builder().build()

  // Start loading the ad in the background.
  adView.loadAd(adRequest)
}

Jeśli reklama nie zostanie wczytana, nie trzeba wyraźnie żądać nowej, ponieważ jeśli jednostka reklamowa jest skonfigurowana pod kątem odświeżania, pakiet SDK do reklam mobilnych Google uwzględnia częstotliwość odświeżania określoną w AdMob. za pomocą interfejsu internetowego. Jeśli nie masz włączonego odświeżania, musisz wysłać nowe użytkownika.

Znakomicie. Twoja aplikacja jest już gotowa do wyświetlania banerów reklamowych.

Zdarzenia reklamowe

Możesz nasłuchiwać szeregu zdarzeń w cyklu życia reklamy, takich jak wczytywanie, wyświetlenia i kliknięcia reklamy oraz zdarzenia otwarcia i zamknięcia reklamy. Zalecane aby ustawić wywołanie zwrotne przed wczytaniem banera.

Java

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

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

    @Override
    public void onAdFailedToLoad(LoadAdError adError) {
      // Code to be executed when an ad request fails.
    }

    @Override
    public void onAdImpression() {
      // Code to be executed when an impression is recorded
      // for an ad.
    }

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

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

Kotlin

AdView.adListener = object: AdListener() {
    override fun onAdClicked() {
      // Code to be executed when the user clicks on an ad.
    }

    override fun onAdClosed() {
      // Code to be executed when the user is about to return
      // to the app after tapping on an ad.
    }

    override fun onAdFailedToLoad(adError : LoadAdError) {
      // Code to be executed when an ad request fails.
    }

    override fun onAdImpression() {
      // Code to be executed when an impression is recorded
      // for an ad.
    }

    override fun onAdLoaded() {
      // Code to be executed when an ad finishes loading.
    }

    override fun onAdOpened() {
      // Code to be executed when an ad opens an overlay that
      // covers the screen.
    }
}

Każda z możliwych do zastąpienia metod w argumencie AdListener odpowiada zdarzeniu w cyklu życia reklamy.

Metody, które można zastępować
onAdClicked() onAdClicked() jest wywoływana po zarejestrowaniu kliknięcia reklamy.
onAdClosed() onAdClosed() jest wywoływana, gdy użytkownik wróci do aplikacji po wyświetleniu docelowego adresu URL. Aplikacja może z niego korzystać, aby wznowić zawieszone działania lub wykonanie jakichkolwiek innych działań niezbędnych do przygotowania się do interakcji. Zapoznaj się z AdMob przykład AdListener, który pokazuje implementację metod detektora reklam w Aplikacja w wersji demonstracyjnej interfejsu API na Androida.
onAdFailedToLoad() onAdFailedToLoad() jest jedyną metodą, która zawiera parametr. Parametr błędu typu LoadAdError opisuje, jaki błąd wystąpił. Aby dowiedzieć się więcej, przeczytaj artykuł Debugowanie błędów wczytywania reklam dokumentacji.
onAdImpression() onAdImpression() jest wywoływana podczas rejestrowania wyświetlenia reklamy.
onAdLoaded() onAdLoaded() jest wykonywana po zakończeniu wczytywania reklamy. Jeśli chcesz opóźnić dodaję AdView do aktywności lub fragmentu, dopóki nie upewnisz się, że reklama zostanie wczytana, na przykład możesz to zrobić tutaj.
onAdOpened() onAdOpened() jest wywoływana, gdy reklama otwiera nakładkę zasłaniającą ekran.

Akceleracja sprzętowa reklam wideo

Aby reklamy wideo były skuteczne w wyświetleniach banerów reklamowych, odpowiedni sprzęt acceleration musi włącz.

Akceleracja sprzętowa jest domyślnie włączona, ale niektóre aplikacje mogą ją wyłączyć . Jeśli dotyczy to Twojej aplikacji, zalecamy włączenie akceleracji sprzętowej na Activity zajęcia, które używają reklam.

Włączam akcelerację sprzętową

Jeśli aplikacja nie działa prawidłowo po włączeniu akceleracji sprzętowej na całym świecie, możesz ją kontrolować również w przypadku poszczególnych działań. Aby włączyć lub wyłącz akcelerację sprzętową, możesz użyć funkcji android:hardwareAccelerated dla atrybutu <application>. oraz <activity> elementów w: AndroidManifest.xml. Poniższy przykład umożliwia włączenie sprzętu akceleracja dla całej aplikacji, ale wyłącza ją w przypadku jednej operacji:

<application android:hardwareAccelerated="true">
    <!-- For activities that use ads, hardwareAcceleration should be true. -->
    <activity android:hardwareAccelerated="true" />
    <!-- For activities that don't use ads, hardwareAcceleration can be false. -->
    <activity android:hardwareAccelerated="false" />
</application>

Zobacz akcelerację sprzętową tutaj informacje na temat opcji sterowania akceleracją sprzętową. Pamiętaj, że nie można włączyć akceleracji sprzętowej w przypadku pojedynczych wyświetleń reklamy, jest wyłączona, więc sama aktywność musi mieć włączoną akcelerację sprzętową.

Dodatkowe materiały

Przykłady w GitHubie

  • Przykład zakotwiczonych banerów adaptacyjnych: Java | Kotlin
  • Prezentacja funkcji zaawansowanych: Java | Kotlin

Dalsze kroki

Banery zwijane

Zwijane banery reklamowe, które są początkowo wyświetlane jako większe z nakładką, z przyciskiem do zwijania reklamy do mniejszego rozmiaru. Warto z niej korzystać aby jeszcze bardziej zoptymalizować skuteczność. Więcej informacji znajdziesz w artykule o zwijanych banerach reklamowych.

Wbudowane banery adaptacyjne

Śródtekstowe banery adaptacyjne są większe i wyższe niż zakotwiczone banery adaptacyjne. banerów. Mają zmienną wysokość i równą wysokość ekranu urządzenia. Wbudowane banery adaptacyjne są zalecane zamiast zakotwiczonych banerów adaptacyjnych w przypadku: które umieszczają banery reklamowe w treściach przewijanych. Zobacz Wbudowane reklamy adaptacyjne banerów .

Przeglądaj inne tematy