Reklamy natywne to komponenty reklamowe, które są prezentowane użytkownikom za pomocą komponentów interfejsu użytkownika 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 Google Mobile Ads SDK (Legacy).
Wdrożenie 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 wczytywać reklamy natywne za pomocą pakietu SDK. Wskazówka: więcej informacji o reklamach natywnych znajdziesz w naszym poradniku dotyczącym reklam natywnych.
Możesz też zapoznać się z historiami sukcesu klientów: studium przypadku 1, studium przypadku 2.
Wymagania wstępne
Zanim przejdziesz dalej, skonfiguruj Google Mobile Ads SDK (Legacy).
Zawsze testuj za pomocą reklam testowych
Podczas tworzenia i testowania aplikacji używaj reklam testowych, a nie reklam produkcyjnych.
Najłatwiejszym sposobem na wczytanie reklam testowych jest użycie naszego specjalnego identyfikatora jednostki reklamowej do testowania reklam natywnych na Androidzie:
ca-app-pub-3940256099942544/2247696110
Jest on specjalnie skonfigurowany tak, aby zwracać reklamy testowe w odpowiedzi na każde żądanie. Możesz go używać w swoich aplikacjach podczas kodowania, testowania i debugowania. Pamiętaj tylko, aby przed opublikowaniem aplikacji zastąpić go własnym identyfikatorem jednostki reklamowej.
Więcej informacji o Google Mobile Ads SDK (Legacy)reklamach testowych znajdziesz w artykule Włączanie reklam testowych.
Wczytywanie reklam
Reklamy natywne są wczytywane za pomocą klasy
AdLoader,
która ma własną klasę
Builder
umożliwiającą dostosowanie jej podczas tworzenia. Dodając do klasy AdLoader detektory podczas jej tworzenia, aplikacja określa, jakie typy reklam natywnych może otrzymywać. Klasa AdLoader wysyła wtedy żądania tylko tych typów.
Tworzenie klasy AdLoader
Poniższy kod pokazuje, jak utworzyć klasę AdLoader, która może wczytywać reklamy natywne:
Java
Kotlin
Zastąp AD_UNIT_ID identyfikatorem urządzenia testowego.
Metoda
forNativeAd()
odpowiada za przygotowanie klasy AdLoader do formatu NativeAd.
Gdy reklama zostanie wczytana, wywoływana jest metoda onNativeAdLoaded() obiektu detektora.
Konfigurowanie klasy AdListener za pomocą klasy AdLoader (opcjonalnie)
Podczas tworzenia AdLoader funkcja withAdListener ustawia dla modułu wczytującego AdListener. Metoda ta przyjmuje jako jedyny parametr klasę AdListener, która otrzymuje wywołania zwrotne z klasy AdLoader w przypadku wystąpienia zdarzeń cyklu życia reklamy:
Java
adLoaderBuilder.withAdListener(
// Override AdListener callbacks here.
new AdListener() {});
Kotlin
adLoaderBuilder.withAdListener(
// Override AdListener callbacks here.
object : AdListener() {}
)
Wysyłanie żądań reklam
Po utworzeniu klasy AdLoader możesz jej użyć do wysyłania żądań reklam.
Dostępne są 2 metody: loadAd() i loadAds().
loadAd()
Ta metoda wysyła żądanie jednej reklamy.
Java
adLoader.loadAd(new AdRequest.Builder().build());
Kotlin
adLoader.loadAd(AdRequest.Builder().build())
loadAds()
Ta metoda wysyła żądanie kilku reklam (maksymalnie 5):
Java
// Load three native ads.
adLoader.loadAds(new AdRequest.Builder().build(), 3);
Kotlin
// Load three native ads.
adLoader.loadAds(AdRequest.Builder().build(), 3)
Obie metody przyjmują jako pierwszy parametr an
AdRequest
obiekt. Jest to ta sama
AdRequest klasa, której używają banery i reklamy pełnoekranowe,
możesz używać metod klasy AdRequest do
dodawania informacji o kierowaniu, tak jak
w przypadku innych formatów reklam.
Wczytywanie kilku reklam (opcjonalnie)
Metoda loadAds() przyjmuje dodatkowy parametr – liczbę reklam, które pakiet SDK ma próbować wczytać w odpowiedzi na żądanie. Ta liczba jest ograniczona do 5 i nie ma gwarancji, że pakiet SDK zwróci dokładnie taką liczbę reklam.
Zwrócone reklamy Google będą się od siebie różnić, ale nie ma gwarancji, że reklamy z zarezerwowanych zasobów reklamowych lub od kupujących innych firm będą unikalne.
Jeśli używasz pośrednictwa, nie używaj metody loadAds(), ponieważ żądania kilku reklam natywnych nie działają w przypadku identyfikatorów jednostek reklamowych skonfigurowanych pod kątem pośrednictwa.
Wywołania zwrotne
Po wywołaniu metody loadAd() wywoływane jest pojedyncze wywołanie zwrotne do wcześniej zdefiniowanych
metod detektora, aby dostarczyć obiekt reklamy natywnej lub zgłosić błąd.
Po wywołaniu metody loadAds() wykonywanych jest kilka takich wywołań zwrotnych (co najmniej jedno, ale nie więcej niż liczba żądanych reklam). Aplikacje, które wysyłają żądania kilku reklam, powinny wywoływać metodę AdLoader.isLoading() w swoich implementacjach wywołań zwrotnych, aby określić, czy proces wczytywania został zakończony.
Oto przykład pokazujący, jak sprawdzić metodę isLoading() w wywołaniu zwrotnym onNativeAdLoaded():
Java
adLoaderBuilder
.forNativeAd(
nativeAd -> {
// This callback is invoked when a native ad is successfully loaded.
})
.build();
Kotlin
adLoaderBuilder
.forNativeAd { nativeAd ->
// This callback is invoked when a native ad is successfully loaded.
}
.build()
Zwalnianie zasobów
Pamiętaj, aby używać metody destroy() w przypadku wczytanych reklam natywnych. Zwalnia ona wykorzystywane zasoby i zapobiega wyciekom pamięci.
Sprawdź, czy wszystkie odwołania do klasy NativeAd są niszczone w metodzie onDestroy() aktywności.
W wywołaniu zwrotnym onNativeAdLoaded zniszcz wszystkie istniejące reklamy natywne, do których nie będzie już odwołań.
Kolejnym ważnym sprawdzeniem jest to, czy aktywność została zniszczona. Jeśli tak, wywołaj metodę destroy() w przypadku zwróconej reklamy i natychmiast zakończ działanie:
Java
nativeAd.destroy();
Kotlin
nativeAd.destroy()
Sprawdzone metody
Podczas wczytywania reklam przestrzegaj tych zasad.
Aplikacje, które używają reklam natywnych na liście, powinny wstępnie wczytywać listę reklam.
Podczas wstępnego wczytywania reklam wyczyść pamięć podręczną i wczytaj ponownie po godzinie.
- Nie wywołuj metod
loadAd()aniloadAds()w klasieAdLoader, dopóki nie zakończy się wczytywanie pierwszego żądania.
Ogranicz buforowanie reklam natywnych tylko do tego, co jest potrzebne. Na przykład podczas wstępnego wczytywania buforuj tylko reklamy, które są od razu widoczne na ekranie. Reklamy natywne mają duże wykorzystanie pamięci, a buforowanie reklam natywnych bez ich niszczenia powoduje nadmierne wykorzystanie pamięci.
Niszcz reklamy natywne, gdy nie są już używane.
Akceleracja sprzętowa w przypadku reklam wideo
Aby reklamy wideo mogły się wyświetlać w widokach reklam natywnych, musi być włączona akceleracja sprzętowa.
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 kontrolowania akceleracji sprzętowej 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 akceleracja sprzętowa musi być włączona w samej aktywności.
Wyświetlanie reklamy
Po wczytaniu reklamy wystarczy ją wyświetlić użytkownikom. Aby dowiedzieć się, jak to zrobić, zapoznaj się z naszym przewodnikiem dotyczącym zaawansowanych reklam natywnych.