Wczytywanie reklamy natywnej

Reklamy natywne to komponenty reklamowe, które są prezentowane użytkownikom za pomocą komponentów interfejsu natywnych dla platformy. Wyświetlają się one w tych samych typach widoków, których używasz do tworzenia układów, i można je sformatować tak, aby pasowały do wyglądu aplikacji.

Gdy reklama natywna się wczyta, aplikacja otrzymuje obiekt reklamy zawierający jej komponenty, a za ich wyświetlanie odpowiada aplikacja, a nie GMA Next-Gen SDK.

Ogólnie rzecz biorąc, pomyślna implementacja reklam natywnych składa się z 2 części: wczytania reklamy za pomocą pakietu SDK i wyświetlenia treści reklamy w aplikacji.

Na tej stronie dowiesz się, jak używać pakietu SDK do wczytywania reklam natywnych.

Wymagania wstępne

Zawsze testuj za pomocą reklam testowych

Podczas tworzenia i testowania aplikacji używaj reklam testowych, a nie reklam rzeczywistych. Jeśli tego nie zrobisz, Twoje konto może zostać zawieszone.

Najłatwiejszym sposobem na wczytanie reklam testowych jest użycie naszego specjalnego identyfikatora jednostki reklamowej do testowania reklam natywnych:

Format reklamy Przykładowy identyfikator jednostki reklamowej
Natywna /21775744923/example/native
Natywna wideo /21775744923/example/native-video

Wczytywanie reklamy

Aby wczytać reklamę natywną, wywołaj NativeAdLoader.load() metodę, która przyjmuje argumenty NativeAdRequest i NativeAdLoaderCallback.

import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAd
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdLoader
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdLoaderCallback
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdRequest

class NativeFragment : Fragment() {

  private var nativeAd: NativeAd? = null

  override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    loadAd()
  }

  private fun loadAd() {
    // Build an ad request with native ad options to customize the ad.
    val adRequest = NativeAdRequest
      .Builder(AD_UNIT_ID, listOf(NativeAd.NativeAdType.NATIVE))
      .build()

    val adCallback =
      object : NativeAdLoaderCallback {
        override fun onNativeAdLoaded(nativeAd: NativeAd) {
          // Called when a native ad has loaded.
        }
        override fun onAdFailedToLoad(adError: LoadAdError) {
          // Called when a native ad has failed to load.
        }
      }

    // Load the native ad with our request and callback.
    NativeAdLoader.load(adRequest, adCallback)
  }

  companion object {
    // Sample native ad unit ID.
    const val AD_UNIT_ID = "/21775744923/example/native"
  }
}

Ustawianie wywołania zwrotnego zdarzenia reklamy natywnej

Podczas obsługi zdarzenia onNativeAdLoaded ustaw otrzymany obiekt NativeAd za pomocą NativeAdEventCallback aby zdefiniować funkcje do odbierania zdarzeń cyklu życia reklamy natywnej:

  nativeAd.adEventCallback =
    object : NativeAdEventCallback {
      override fun onAdShowedFullScreenContent() {
        // Native ad showed full screen content.
      }
      override fun onAdDismissedFullScreenContent() {
        // Native ad dismissed full screen content.
      }
      override fun onAdFailedToShowFullScreenContent {
        // Native ad failed to show full screen content.
      }
      override fun onAdImpression() {
        // Native ad recorded an impression.
      }
      override fun onAdClicked() {
        // Native ad recorded a click.
      }
    }

Opcjonalnie: wczytywanie wielu reklam

Aby wczytać kilka reklam, wywołaj metodę load() z opcjonalnym parametrem numberOfAds. Maksymalna wartość, jaką możesz ustawić, to 5, która reprezentuje liczbę reklam. GMA Next-Gen SDK może nie zwrócić dokładnej liczby reklam, o którą prosisz.

private fun loadAd() {
  // Build an ad request with native ad options to customize the ad.
  val adRequest = NativeAdRequest
    .Builder(AD_UNIT_ID, listOf(NativeAd.NativeAdType.NATIVE))
    .build()

  val adCallback =
    object : NativeAdLoaderCallback {
      override fun onNativeAdLoaded(nativeAd: NativeAd) {
        // Called when a native ad has loaded.
      }
      override fun onAdFailedToLoad(adError: LoadAdError) {
        // Called when a native ad has failed to load.
      }
      override fun onAdLoadingCompleted() {
        // Called when all native ads have loaded.
      }
    }

  // Load the native ad with our request and callback.
  NativeAdLoader.load(adRequest, 3, adCallback)
}

Reklamy zwracane przez GMA Next-Gen SDK są unikalne, ale reklamy z zarezerwowanych zasobów reklamowych lub od zewnętrznych kupujących mogą nie być unikalne.

Jeśli używasz mediacji, nie wywołuj metody load(). Prośby o wiele reklam natywnych nie działają w przypadku identyfikatorów jednostek reklamowych skonfigurowanych pod kątem mediacji.

Sprawdzone metody

Podczas wczytywania reklam przestrzegaj tych zasad.

  • Aplikacje, które używają reklam natywnych na liście, powinny wstępnie zapisywać w pamięci podręcznej listę reklam.

  • Podczas wstępnego zapisywania reklam w pamięci podręcznej wyczyść pamięć podręczną i przeładuj ją po godzinie.

  • Ogranicz zapisywanie reklam natywnych w pamięci podręcznej tylko do tego, co jest potrzebne. Na przykład podczas wstępnego zapisywania w pamięci podręcznej zapisuj tylko reklamy, które są od razu widoczne na ekranie. Reklamy natywne zajmują dużo pamięci, a zapisywanie ich w pamięci podręcznej bez niszczenia powoduje nadmierne zużycie pamięci.

  • Niszcz reklamy natywne, gdy nie są już używane.

Akceleracja sprzętowa w przypadku reklam wideo

Aby reklamy wideo wyświetlały się prawidłowo w widokach reklam natywnych, akceleracja sprzętowa musi być włączona.

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 w przypadku klas Activity, które używają reklam.

Włączanie akceleracji sprzętowej

Jeśli Twoja aplikacja nie działa prawidłowo przy włączonej akceleracji sprzętowej, możesz ją kontrolować także w przypadku poszczególnych aktywności. Aby włączyć lub wyłączyć akcelerację sprzętową, użyj atrybutu android:hardwareAccelerateddla <application> i <activity> elementów w pliku AndroidManifest.xml. Poniższy przykład włącza akcelerację sprzętową w całej aplikacji, ale wyłącza ją w przypadku jednej aktywności:

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

Więcej informacji o opcjach sterowania akceleracją sprzętową znajdziesz w przewodniku dotyczącym akceleracji sprzętowej. Pamiętaj, że w przypadku wyłączonej aktywności nie można włączyć akceleracji sprzętowej w poszczególnych widokach reklam, dlatego w samej aktywności musi być włączona akceleracja sprzętowa.

Wyświetlanie reklamy

Gdy reklama zostanie wczytana, wystarczy ją wyświetlić użytkownikom. Aby dowiedzieć się, jak to zrobić, zapoznaj się z przewodnikiem dotyczącym zaawansowanych reklam natywnych.

Przykład

Pobierz i uruchom przykładową aplikację , która pokazuje, jak używać GMA Next-Gen SDK.