Reklamy natywne to komponenty reklam, które są wyświetlane użytkownikom za pomocą komponentów interfejsu natywnych dla danej platformy. Są wyświetlane przy użyciu tych samych klas, których używasz już w scenorysach, i można je sformatować tak, aby pasowały do wyglądu aplikacji.
Gdy reklama natywna się wczytuje, aplikacja otrzymuje obiekt reklamy zawierający jej komponenty i to aplikacja, a nie Google Mobile Ads SDK, odpowiada za ich wyświetlanie.
Ogólnie rzecz biorąc, skuteczne wdrożenie reklam natywnych składa się z 2 etapów: wczytania reklamy za pomocą pakietu SDK, a następnie wyświetlenia jej treści w aplikacji.
Na tej stronie dowiesz się, jak używać pakietu SDK do wczytywania reklam natywnych.
Wymagania wstępne
Zanim przejdziesz dalej, skonfiguruj Google Mobile Ads SDK.
Zawsze przeprowadzaj testy z użyciem reklam testowych
Podczas tworzenia i testowania aplikacji używaj reklam testowych, a nie aktywnych reklam produkcyjnych.
Najłatwiejszym sposobem wczytywania reklam testowych jest użycie naszego dedykowanego identyfikatora testowej jednostki reklamowej na potrzeby reklam natywnych na iOS:
/21775744923/example/native
Został on specjalnie skonfigurowany tak, aby zwracać reklamy testowe w przypadku każdego żądania. Możesz go używać we własnych aplikacjach podczas kodowania, testowania i debugowania. Pamiętaj, aby przed opublikowaniem aplikacji zastąpić go własnym identyfikatorem jednostki reklamowej.
Szczegółowe informacje o reklamach testowych w Google Mobile Ads SDK znajdziesz w artykule Włączanie reklam testowych.
Wczytywanie reklam
Reklamy natywne są wczytywane za pomocą klasy GADAdLoader, która wysyła wiadomości do swoich obiektów delegowanych zgodnie z protokołem GADAdLoaderDelegate.
Oprócz zdefiniowanego przez system formatu natywnego możesz też tworzyć własne niestandardowe formaty reklam natywnych, których można używać w przypadku reklam natywnych sprzedawanych bezpośrednio. Niestandardowe formaty reklam natywnych umożliwiają przekazywanie do aplikacji dowolnych uporządkowanych danych. Te reklamy są reprezentowane przez klasę GADCustomNativeAd.
Inicjowanie modułu ładowania reklam
Zanim wczytasz reklamę, musisz zainicjować moduł do jej wczytywania.
Poniższy kod pokazuje, jak zainicjować GADAdLoader:
Swift
Zastąp nativeAdUnitID identyfikatorem jednostki reklamowej.
Objective-C
Zastąp kNativeAdUnitID identyfikatorem jednostki reklamowej.
Potrzebujesz identyfikatora jednostki reklamowej (możesz użyć identyfikatora testowego), stałych do przekazania w tablicy adTypes, aby określić, o jakie formaty natywne chcesz prosić, oraz opcji, które chcesz ustawić w parametrze options. Listę możliwych wartości parametru options znajdziesz na stronie z ustawieniami opcji reklam natywnych.
Tablica adTypes powinna zawierać co najmniej jedną z tych stałych:
Implementowanie delegata modułu ładowania reklam
Delegat modułu ładującego reklamy musi implementować protokoły właściwe dla danego typu reklamy.
W przypadku reklam natywnych protokół GADNativeAdLoaderDelegate zawiera komunikat wysyłany do obiektu delegowanego po wczytaniu reklamy natywnej.
Swift
func adLoader(_ adLoader: AdLoader, didReceive nativeAd: NativeAd) {
// Set the delegate to receive notifications for interactions with the native ad.
nativeAd.delegate = self
// TODO: Display the native ad.
}
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader didReceiveNativeAd:(GADNativeAd *)nativeAd {
// Set the delegate to receive notifications for interactions with the native ad.
nativeAd.delegate = self;
// TODO: Display the native ad.
}
Protokół GADCustomNativeAdLoaderDelegate zawiera wiadomość wysyłaną do przedstawiciela po wczytaniu reklamy z szablonu niestandardowego.
Swift
func adLoader(_ adLoader: AdLoader, didReceive customNativeAd: CustomNativeAd) {
// To be notified of events related to the custom native ad interactions, set the delegate
// property of the native ad
customNativeAd.delegate = self
// TODO: Display the custom native ad.
}
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader
didReceiveCustomNativeAd:(GADCustomNativeAd *)customNativeAd {
// To be notified of events related to the custom native ad interactions, set the delegate
// property of the native ad
customNativeAd.delegate = self;
// TODO: Display the custom native ad.
}
Wyślij żądanie
Po zainicjowaniu obiektu GADAdLoader wywołaj jego metodę loadRequest:, aby wysłać żądanie reklamy:
Swift
adLoader.load(AdManagerRequest())
Objective-C
[self.adLoader loadRequest:[GAMRequest request]];
Metoda loadRequest: w GADAdLoader akceptuje te same obiekty GAMRequest co banery i reklamy pełnoekranowe. Możesz używać obiektów żądania, aby dodawać informacje o kierowaniu, tak jak w przypadku innych typów reklam.
Wczytywanie wielu reklam (opcjonalnie)
Aby wczytać kilka reklam w jednym żądaniu, podczas inicjowania obiektu GADAdLoader ustaw obiekt GADMultipleAdsAdLoaderOptions.
Swift
Objective-C
Liczba reklam na żądanie jest ograniczona do 5 i nie ma gwarancji, że pakiet SDK zwróci dokładnie taką liczbę reklam, o jaką poproszono.
Zwrócone reklamy Google będą się od siebie różnić, ale nie ma gwarancji, że reklamy z zarezerwowanych zasobów reklamowych lub od zewnętrznych kupujących będą unikalne.
Jeśli korzystasz z zapośredniczenia, nie używaj klasy GADMultipleAdsAdLoaderOptions, ponieważ żądania wielu reklam natywnych nie działają w przypadku identyfikatorów jednostek reklamowych, które zostały skonfigurowane na potrzeby zapośredniczenia.
Określanie, kiedy wczytywanie zostało zakończone
Po wywołaniu metody loadRequest: aplikacja może uzyskać wyniki żądania, wywołując:
adLoader:didFailToReceiveAdWithError:w:GADAdLoaderDelegateadLoader:didReceiveNativeAd:w:GADNativeAdLoaderDelegate
Żądanie pojedynczej reklamy spowoduje jedno wywołanie jednej z tych metod.
Żądanie wielu reklam spowoduje co najmniej jedno wywołanie zwrotne powyższych metod, ale nie więcej niż maksymalna liczba żądanych reklam.
Dodatkowo GADAdLoaderDelegate udostępnia wywołanie zwrotne adLoaderDidFinishLoading. Ta metoda delegowana wskazuje, że moduł ładujący reklamy zakończył wczytywanie reklam i nie zostaną zgłoszone żadne inne reklamy ani błędy związane z żądaniem. Oto przykład użycia tej metody podczas wczytywania kilku reklam natywnych naraz:
Swift
func adLoaderDidFinishLoading(_ adLoader: AdLoader) {
// The adLoader has finished loading ads.
}
Objective-C
- (void)adLoaderDidFinishLoading:(GADAdLoader *)adLoader {
// The adLoader has finished loading ads.
}
Obsługa nieudanych żądań
Protokoły rozszerzają protokół GADAdLoaderDelegate, który definiuje wiadomość wysyłaną, gdy nie uda się wczytać reklam.
Swift
func adLoader(_ adLoader: AdLoader, didFailToReceiveAdWithError error: any Error) {
// The adLoader failed to receive an ad.
}
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader didFailToReceiveAdWithError:(NSError *)error {
// The adLoader failed to receive an ad.
}
Otrzymywanie powiadomień o zdarzeniach związanych z reklamami natywnymi
Aby otrzymywać powiadomienia o zdarzeniach związanych z interakcjami z reklamą natywną, ustaw właściwość delegate reklamy natywnej:
Swift
nativeAd.delegate = self
Objective-C
nativeAd.delegate = self;
Następnie zaimplementuj GADNativeAdDelegate, aby otrzymywać te wywołania delegowane:
Swift
func nativeAdDidRecordImpression(_ nativeAd: NativeAd) {
// The native ad was shown.
}
func nativeAdDidRecordClick(_ nativeAd: NativeAd) {
// The native ad was clicked on.
}
func nativeAdWillPresentScreen(_ nativeAd: NativeAd) {
// The native ad will present a full screen view.
}
func nativeAdWillDismissScreen(_ nativeAd: NativeAd) {
// The native ad will dismiss a full screen view.
}
func nativeAdDidDismissScreen(_ nativeAd: NativeAd) {
// The native ad did dismiss a full screen view.
}
func nativeAdWillLeaveApplication(_ nativeAd: NativeAd) {
// The native ad will cause the app to become inactive and
// open a new app.
}
Objective-C
- (void)nativeAdDidRecordImpression:(GADNativeAd *)nativeAd {
// The native ad was shown.
}
- (void)nativeAdDidRecordClick:(GADNativeAd *)nativeAd {
// The native ad was clicked on.
}
- (void)nativeAdWillPresentScreen:(GADNativeAd *)nativeAd {
// The native ad will present a full screen view.
}
- (void)nativeAdWillDismissScreen:(GADNativeAd *)nativeAd {
// The native ad will dismiss a full screen view.
}
- (void)nativeAdDidDismissScreen:(GADNativeAd *)nativeAd {
// The native ad did dismiss a full screen view.
}
- (void)nativeAdWillLeaveApplication:(GADNativeAd *)nativeAd {
// The native ad will cause the app to become inactive and
// open a new app.
}
Sprawdzone metody
Podczas wczytywania reklam przestrzegaj tych zasad.
Aplikacje, które używają reklam natywnych na liście, powinny wstępnie zapisać listę reklam w pamięci podręcznej.
Jeśli wstępnie buforujesz reklamy, po godzinie wyczyść pamięć podręczną i ponownie załaduj stronę.
Nie wywołuj ponownie metody
loadRequest:w obiekcieGADAdLoader, dopóki nie zakończy się wczytywanie poprzedniego żądania, co jest sygnalizowane przezadLoaderDidFinishLoading:.Ogranicz buforowanie reklam natywnych tylko do tego, co jest potrzebne. Na przykład podczas wstępnego zapisywania w pamięci podręcznej zapisuj tylko te reklamy, które są od razu widoczne na ekranie. Reklamy natywne mają duże wykorzystanie pamięci, a buforowanie ich bez niszczenia powoduje nadmierne zużycie pamięci.
Usuwaj reklamy natywne, gdy nie są już używane.
Wyświetlanie reklamy
Po wczytaniu reklamy wystarczy ją wyświetlić użytkownikom. Więcej informacji znajdziesz w artykule Zaawansowane reklamy natywne lub Pełnoekranowe reklamy natywne.