Reklamy natywne

Reklamy natywne to komponenty reklamy wyświetlane użytkownikom za pomocą komponentów interfejsu, które są unikalne dla platformy. Są wyświetlane w ramach tych samych typów widoków co które mają już układy i można je sformatować projektu wizualnego aplikacji.

Po wczytaniu reklamy natywnej aplikacja otrzymuje obiekt reklamy zawierający jej zasoby. a aplikacja – zamiast pakietu SDK do reklam mobilnych Google – jest odpowiedzialnej za ich wyświetlanie.

Ogólnie rzecz biorąc, skuteczne wdrożenie reklam natywnych składa się z 2 etapów: Wczytanie reklamy za pomocą pakietu SDK, a następnie wyświetlenie jej treści w aplikacji.

Na tej stronie dowiesz się, jak wczytać pakiet SDK reklam natywnych. Wskazówka: więcej informacji o reklamach natywnych znajdziesz w artykule Reklamy natywne Poradnik.

Możesz również zapoznać się z historiami sukcesu klientów: studium przypadku 1. studium przypadku 2.

Wymagania wstępne

Zawsze korzystaj z reklam testowych

Podczas tworzenia i testowania aplikacji używaj reklam testowych, a nie reklam, aktywne reklamy.

Najłatwiejszym sposobem wczytania reklam testowych jest użycie naszego dedykowanego testowego identyfikatora jednostki reklamowej w przypadku reklam natywnych na Androida:

ca-app-pub-3940256099942544/2247696110

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 Google znajdziesz na stronie Reklamy testowe.

Wczytywanie reklam

Reklamy natywne są wczytywane z parametrem AdLoader zajęcia, który ma swoje własne Builder klasy, aby dostosować ją podczas tworzenia. Dodając detektorów do: AdLoader to podczas tworzenia aplikacji określa, jakie typy reklam natywnych jest gotowa do wyświetlenia. i odbieraj informacje. AdLoader żąda potem wyłącznie tych typów.

Tworzenie modułu AdLoader

Ten kod pokazuje, jak utworzyć AdLoader, który może wczytywać reklamy natywne. reklamy:

Java

AdLoader adLoader = new AdLoader.Builder(context, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
        @Override
        public void onNativeAdLoaded(NativeAd nativeAd) {
            // Show the ad.
        }
    })
    .withAdListener(new AdListener() {
        @Override
        public void onAdFailedToLoad(LoadAdError adError) {
            // Handle the failure by logging, altering the UI, and so on.
        }
    })
    .withNativeAdOptions(new NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build();

Kotlin

val adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110}")
    .forNativeAd { ad : NativeAd ->
        // Show the ad.
    }
    .withAdListener(object : AdListener() {
        override fun onAdFailedToLoad(adError: LoadAdError) {
            // Handle the failure.
        }
    })
    .withNativeAdOptions(NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build()

forNativeAd() odpowiada za przygotowanie AdLoader na format NativeAd. Po pomyślnym wczytaniu reklamy parametr onNativeAdLoaded() obiektu odbiornika .

Konfigurowanie AdListener z użyciem AdLoader (opcjonalnie)

Podczas tworzenia AdLoader para klucz-wartość withAdListener. funkcja ustawia AdListener dla . Metoda przyjmuje jako jedyny parametr obiekt AdListener, który odbiera wywołania zwrotne z obiektu AdLoader, gdy występują zdarzenia cyklu życia reklamy:

Java

.withAdListener(new AdListener() {
    // AdListener callbacks can be overridden here.
})

Kotlin

.withAdListener(object : AdListener() {
    // AdListener callbacks can be overridden here.
})

Wyślij żądanie

Po zakończeniu tworzenia elementu AdLoader czas wykorzystać go do wysyłania żądań reklam. Są 2 dostępne metody: loadAd() i loadAds().

loadAd()

Ta metoda wysyła żądanie pojedynczej reklamy.

Java

adLoader.loadAd(new AdRequest.Builder().build());

Kotlin

adLoader.loadAd(AdRequest.Builder().build())

loadAds()

Ta metoda wysyła żądanie wielu reklam (maksymalnie 5):

Java

adLoader.loadAds(new AdRequest.Builder().build(), 3);

Kotlin

adLoader.loadAds(AdRequest.Builder().build(), 3)

Obie metody AdRequest jako pierwszego parametru. Nie ma żadnej AdRequest klasa używana przez banery i reklamy pełnoekranowe, i możesz użyć metod klasy AdRequest do dodaj informacje o kierowaniu, tak jak niż w przypadku innych formatów reklam.

Wczytywanie wielu reklam (opcjonalnie)

Metoda loadAds() pobiera dodatkowy parametr – liczbę reklam pakiet SDK powinno spróbować wczytać to żądanie. Ta liczba jest ograniczona do pięciu i oznacza nie ma gwarancji, że pakiet SDK zwróci dokładną liczbę żądanych reklam.

Wyświetlone reklamy Google różnią się od siebie, chociaż reklamy zarezerwowane zasoby reklamowe lub zewnętrznych kupujących nie muszą być unikalne.

Nie używaj metody loadAds(), jeśli korzystasz z zapośredniczenia, ponieważ żądania dotyczące nie działa obecnie dla identyfikatorów jednostek reklamowych, które zostały skonfigurowane pod kątem zapośredniczenia.

Wywołania zwrotne

Po wywołaniu loadAd() wykonywane jest pojedyncze wywołanie zwrotne do wcześniej zdefiniowanego metod detektora, aby wyświetlić obiekt reklamy natywnej lub zgłosić błąd.

Po wywołaniu loadAds() wykonywane jest kilka takich wywołań (przynajmniej jedno, i nie więcej niż liczba żądanych reklam). Aplikacje żądające wielu reklam powinien wywołać AdLoader.isLoading() w swoich implementacjach wywołań zwrotnych, aby czy proces wczytywania już się zakończył.

Oto przykład, jak sprawdzić, czy isLoading() w: onNativeAdLoaded() wywołanie zwrotne:

Java

final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
    @Override
    public void onNativeAdLoaded(NativeAd nativeAd) {
        ...
        // some code that displays the ad.
        ...
        if (adLoader.isLoading()) {
            // The AdLoader is still loading ads.
            // Expect more adLoaded or onAdFailedToLoad callbacks.
        } else {
            // The AdLoader has finished loading ads.
        }
    }
}).build();
adLoader.loadAds(new AdRequest.Builder().build(), 3);

Kotlin

lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd {
        ...
        // some code that displays the ad.
        ...
        if (adLoader.isLoading) {
            // The AdLoader is still loading ads.
            // Expect more adLoaded or onAdFailedToLoad callbacks.
        } else {
            // The AdLoader has finished loading ads.
        }
    }.build()
adLoader.loadAds(AdRequest.Builder().build(), 3)

Zwalnianie zasobów

Pamiętaj, by w przypadku wczytanych reklam natywnych używać metody destroy(). To wydanie wykorzystane zasoby i zapobiegają wyciekom pamięci.

Sprawdź, czy wszystkie odwołania do NativeAd zostały zniszczone w pliku aktywności Metoda onDestroy().

W wywołaniu zwrotnym onNativeAdLoaded pamiętaj, aby zniszczyć istniejące reklam natywnych, które zostaną usunięte.

Innym sposobem sprawdzenia klucza jest to, czy aktywność została zniszczona, a jeśli tak, wywołaj destroy() na wyświetli się reklama i natychmiast powróci:

Java

final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
    @Override
    public void onNativeAdLoaded(NativeAd nativeAd) {
        // If this callback occurs after the activity is destroyed, you
        // must call destroy and return or you may get a memory leak.
        // Note `isDestroyed()` is a method on Activity.
        if (isDestroyed()) {
            nativeAd.destroy();
            return;
        }
        ...
    }
}).build();

Kotlin

lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd { nativeAd ->
        // If this callback occurs after the activity is destroyed, you
        // must call destroy and return or you may get a memory leak.
        // Note `isDestroyed` is a method on Activity.
        if (isDestroyed) {
            nativeAd.destroy()
            return@forNativeAd
        }
        ...
    }.build()

Sprawdzone metody

Podczas wczytywania reklam przestrzegaj tych reguł.

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

  • Podczas wstępnego buforowania reklam wyczyść pamięć podręczną i załaduj ponownie po godzinie.

  • Nie dzwoń do: loadAd() ani loadAds(), AdLoader do pierwszego gdy zakończy się wczytywanie żądania.

Akceleracja sprzętowa reklam wideo

Aby reklamy wideo wyświetlały się w wyświetleniach reklam natywnych, sprzęt acceleration musi być włączony.

Akceleracja sprzętowa jest domyślnie włączona, ale niektóre aplikacje mogą możesz ją wyłączyć. Jeśli dotyczy to Twojej aplikacji, zalecamy włączenie sprzętu dla klas aktywności, które korzystają z 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ą, użyj atrybutu android:hardwareAccelerated dla wartości <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 przyspieszenie sprzętowe przewodnika po znajdziesz więcej informacji na temat opcji sterowania akceleracją sprzętową. Notatka że w poszczególnych wyświetleniach reklamy nie można włączyć akceleracji sprzętowej, jeśli Aktywność jest wyłączona, więc musi mieć akcelerację sprzętową .

Wyświetlanie reklamy

Po załadowaniu reklamy pozostaje już tylko ją wyświetlić użytkownikom. Przejdź do naszych zaawansowanych reklam natywnych , aby dowiedzieć się, jak to zrobić.