Wczytywanie reklamy natywnej

Reklamy natywne to komponenty reklamowe, które są prezentowane użytkownikom za pomocą komponentów interfejsu natywnych dla danej 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, Twoja aplikacja otrzyma obiekt reklamy zawierający jej komponenty, a odpowiedzialność za ich wyświetlanie spoczywa na aplikacji, a nie na Google Mobile Ads SDK.

Ogólnie rzecz biorąc, pomyślna implementacja reklam natywnych składa się z 2 części: 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, a nie reklam produkcyjnych.

Najłatwiejszym sposobem na wczytanie reklam testowych jest użycie naszego specjalnego identyfikatora jednostki reklamowej do testowania reklam natywnych w iOS:

/21775744923/example/native

Został 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 reklamach testowych znajdziesz w artykule Włączanie reklam testowych.Google Mobile Ads SDK

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 formatu natywnego zdefiniowanego przez system 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.

Inicjowanie modułu wczytywania reklam

Zanim wczytasz reklamę, musisz zainicjować moduł wczytywania reklam. Poniższy kod pokazuje, jak zainicjować GADAdLoader:

Swift

adLoader = AdLoader(
  adUnitID: "nativeAdUnitID",
  // The UIViewController parameter is optional.
  rootViewController: self,
  // To receive native ads, the ad loader's delegate must
  // conform to the NativeAdLoaderDelegate protocol.
  adTypes: [.native],
  // Use nil for default options.
  options: nil)
// Set the delegate before making an ad request.
adLoader.delegate = self

Zastąp nativeAdUnitID identyfikatorem jednostki reklamowej.

Objective-C

self.adLoader =
    [[GADAdLoader alloc] initWithAdUnitID:"kNativeAdUnitID"
                       // The UIViewController parameter is optional.
                       rootViewController:self
                                  // To receive native ads, the ad loader's delegate must
                                  // conform to the NativeAdLoaderDelegate protocol.
                                  adTypes:@[ GADAdLoaderAdTypeNative ]
                                  // Use nil for default options.
                                  options:nil];
// Set the delegate before making an ad request.
self.adLoader.delegate = self;

Zastąp kNativeAdUnitID identyfikatorem jednostki reklamowej.

Będziesz potrzebować identyfikatora jednostki reklamowej (możesz użyć identyfikatora testowego), stałych do przekazania w tablicy adTypes, aby określić, o które formaty natywne chcesz poprosić, oraz wszelkich opcji, które chcesz ustawić w parametrze options. Listę możliwych wartości parametru options znajdziesz na stronie Ustawianie opcji reklam natywnych.

Tablica adTypes powinna zawierać co najmniej jedną z tych stałych :

Implementowanie delegata modułu wczytywania reklam

Delegat modułu wczytywania reklam musi implementować protokoły specyficzne dla Twojego 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 delegata 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

Gdy GADAdLoader zostanie zainicjowany, 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 GAMRequest obiekty co banery i reklamy pełnoekranowe. Możesz używać obiektów żądań do dodawania informacji o kierowaniu, tak jak w przypadku innych typów reklam.

Wczytywanie wielu reklam (opcjonalnie)

Aby wczytać kilka reklam w jednym żądaniu, ustaw obiekt GADMultipleAdsAdLoaderOptions podczas inicjowania GADAdLoader.

Swift

let multipleAdOptions = MultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5
adLoader = AdLoader(
  adUnitID: "nativeAdUnitID",
  // The UIViewController parameter is optional.
  rootViewController: self,
  adTypes: [.native],
  options: [multipleAdOptions])

Objective-C

GADMultipleAdsAdLoaderOptions *multipleAdOptions = [[GADMultipleAdsAdLoaderOptions alloc] init];
multipleAdOptions.numberOfAds = 5;

self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:"kNativeAdUnitID"
                                   // The UIViewController parameter is optional.
                                   rootViewController:self
                                              adTypes:@[ GADAdLoaderAdTypeNative ]
                                              options:@[ multipleAdOptions ]];

Liczba reklam na żądanie jest ograniczona do 5 i nie ma gwarancji, że pakiet SDK zwróci dokładną liczbę żądanych reklam.

Zwrócone reklamy Google będą się od siebie różnić, ale reklamy z zarezerwowanych zasobów reklamowych lub od kupujących zewnętrznych nie muszą być unikalne.

Jeśli używasz zapośredniczenia, nie używaj klasy GADMultipleAdsAdLoaderOptions, ponieważ żądania wielu reklam natywnych nie działają w przypadku identyfikatorów jednostek reklamowych skonfigurowanych pod kątem zapośredniczenia.

Określanie, kiedy wczytywanie się zakończyło

Gdy aplikacja wywoła loadRequest:, może uzyskać wyniki żądania za pomocą wywołań:

Żą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 wywołanie zwrotne adLoaderDidFinishLoading. Ta metoda delegata wskazuje, że moduł wczytywania reklam zakończył wczytywanie reklam i nie będą zgłaszane żadne inne reklamy ani błędy dotyczące żądania. Oto przykład, jak używać 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 reklamami natywnymi, ustaw właściwość delegata reklamy natywnej:

Swift

nativeAd.delegate = self

Objective-C

nativeAd.delegate = self;

Następnie zaimplementuj GADNativeAdDelegate , aby otrzymywać te wywołania delegata:

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 wczytywać listę reklam.

  • Podczas wstępnego wczytywania reklam wyczyść pamięć podręczną i wczytaj ją ponownie po godzinie.

  • Nie wywołuj ponownie loadRequest: w GADAdLoader, dopóki poprzednie żądanie nie zostanie wczytane, co jest sygnalizowane przez adLoaderDidFinishLoading:.

  • 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.

Wyświetlanie reklamy

Gdy wczytasz reklamę, wystarczy ją wyświetlić użytkownikom. Dowiedz się, jak to zrobić, z naszego przewodnika dla zaawansowanych użytkowników .