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:
ca-app-pub-3940256099942544/3986624511
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.
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ć tę stałą :
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.
}
Wyślij żądanie
Po zainicjowaniu obiektu GADAdLoader wywołaj jego metodę loadRequest:, aby wysłać żądanie reklamy:
Swift
adLoader.load(Request())
Objective-C
[self.adLoader loadRequest:[GADRequest request]];
Metoda
loadRequest:
w GADAdLoader
akceptuje te same obiekty
GADRequest
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.