Reklamy natywne to komponenty reklam, które są wyświetlane użytkownikom za pomocą komponentów interfejsu, które są natywne dla platformy. Są one 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ę wczyta, aplikacja otrzyma obiekt reklamy zawierający jej komponenty, a następnie to aplikacja, a nie Google Mobile Ads SDK, będzie odpowiedzialna za ich wyświetlanie.
W uproszczeniu implementacja reklam natywnych składa się z 2 etapów: wczytania reklamy za pomocą pakietu SDK, a następnie wyświetlenia treści reklamy 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 testuj za pomocą reklam testowych
Podczas tworzenia i testowania aplikacji używaj reklam testowych zamiast reklam produkcyjnych.
Najłatwiejszym sposobem wczytywania reklam testowych jest użycie specjalnego identyfikatora testowej jednostki reklamowej w przypadku 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ć w swoich aplikacjach podczas kodowania, testowania i debugowania. Zanim opublikujesz aplikację, zastąp go własnym identyfikatorem jednostki reklamowej.
Szczegółowe informacje o Google Mobile Ads SDK reklamach testowych 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 delegatów 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 danych strukturalnych. Reklamy te są reprezentowane przez klasę GADCustomNativeAd.
Zainicjuj moduł wczytywania reklam.
Zanim załadujesz reklamę, musisz zainicjować moduł wczytywania reklam.
Poniższy kod pokazuje, jak zainicjować obiekt 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ć formaty natywne, o które chcesz poprosić, oraz wszelkich opcji, które chcesz ustawić w parametrze options. Listę możliwych wartości parametru options znajdziesz na stronie Ustawianie opcji reklamy natywnej.
Tablica adTypes powinna zawierać co najmniej jedną z tych stałych:
Zaimplementuj delegata modułu wczytywania reklam
Delegat modułu wczytywania reklam musi implementować protokoły specyficzne dla danego typu reklamy.
W przypadku reklam natywnych protokół GADNativeAdLoaderDelegate zawiera wiadomość wysyłaną do delegata 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, gdy wczyta się reklama z niestandardowym szablonem.
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. Obiektów żądań możesz używać do dodawania informacji o kierowaniu, tak jak w przypadku innych typów reklam.
Wczytywanie wielu reklam (opcjonalnie)
Aby wczytać kilka reklam w jednym żądaniu, podczas inicjowania GADAdLoader ustaw obiekt
GADMultipleAdsAdLoaderOptions.
Swift
Objective-C
Liczba reklam na żądanie jest ograniczona do 5, a pakiet SDK nie gwarantuje zwrócenia dokładnej liczby żądanych 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 zewnętrznych będą unikalne.
Nie używaj klasy GADMultipleAdsAdLoaderOptions, jeśli korzystasz z zapośredniczenia, ponieważ żądania wielu reklam natywnych nie działają w przypadku identyfikatorów jednostek reklamowych skonfigurowanych pod kątem zapośredniczenia.
Określanie, kiedy ładowanie zostało zakończone
Po wywołaniu funkcji loadRequest: aplikacja może uzyskać wyniki żądania za pomocą wywołań:
adLoader:didFailToReceiveAdWithError:wGADAdLoaderDelegateadLoader:didReceiveNativeAd:wGADNativeAdLoaderDelegate
Żądanie pojedynczej reklamy spowoduje jedno wywołanie jednej z tych metod.
Żądanie wielu reklam spowoduje co najmniej 1 wywołanie zwrotne do powyższych metod, ale nie więcej niż maksymalna liczba żądanych reklam.
Dodatkowo GADAdLoaderDelegate oferuje adLoaderDidFinishLoadingoddzwonienie. Ta metoda delegowania wskazuje, że moduł wczytywania reklam zakończył wczytywanie reklam i w przypadku tego żądania nie będą zgłaszane żadne inne reklamy ani błędy. 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 określa komunikat wysyłany, 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 odbierać 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 reguł.
Aplikacje, które używają reklam natywnych na liście, powinny wstępnie buforować listę reklam.
Podczas wstępnego buforowania reklam wyczyść pamięć podręczną i ponownie załaduj stronę po upływie godziny.
Nie wywołuj ponownie funkcji
loadRequest:na obiekcieGADAdLoader, dopóki nie zakończy się wczytywanie poprzedniej prośby, co jest sygnalizowane przezadLoaderDidFinishLoading:.Ogranicz buforowanie reklam natywnych tylko do niezbędnego minimum. Na przykład podczas wstępnego buforowania buforuj tylko reklamy, które są od razu widoczne na ekranie. Reklamy natywne zajmują dużo pamięci, a ich buforowanie bez usuwania prowadzi do nadmiernego wykorzystania pamięci.
Niszcz reklamy natywne, gdy nie są już używane.
Wyświetlanie reklamy
Po załadowaniu reklamy wystarczy wyświetlić ją użytkownikom. Więcej informacji znajdziesz w naszym przewodniku po zaawansowanych reklamach natywnych.