Reklamy natywne

Reklamy natywne to komponenty reklamowe, 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 formatować tak, aby pasowały do projektu graficznego aplikacji.

Gdy reklama natywna się wczyta, aplikacja otrzyma obiekt reklamy zawierający jej komponenty. Za wyświetlanie tych komponentów odpowiada aplikacja, a nie pakiet SDK do reklam mobilnych Google.

Wprowadzenie reklam natywnych składa się z 2 etapów: ładowania reklamy za pomocą pakietu SDK, a następnie wyświetlania treści reklamy w aplikacji.

Na tej stronie dowiesz się, jak używać pakietu SDK do wczytywania reklam natywnych.

Wymagania wstępne

Zawsze testuj za pomocą reklam testowych

Podczas tworzenia i testowania aplikacji używaj reklam testowych zamiast reklam aktywnych.

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. Pamiętaj tylko, aby przed opublikowaniem aplikacji zastąpić go własnym identyfikatorem jednostki reklamowej.

Więcej informacji o reklamach testowych w pakiecie SDK do reklam mobilnych Google 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.

Inicjowanie narzędzia do wczytywania reklam

Zanim będzie można wczytać 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)

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];

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 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ć tę stałą :

Implementowanie 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) {
  // To be notified of events related to the native ad interactions, set the delegate property
  // of the native ad
  nativeAd.delegate = self

  // TODO: Display the native ad.
}

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader didReceiveNativeAd:(GADNativeAd *)nativeAd {
  // To be notified of events related to the native ad interactions, set the delegate property
  // of 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:GADAdLoader akceptuje te same obiekty GADRequest co banery i reklamy pełnoekranowe. Obiekty żądań możesz wykorzystywać 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 obiektu GADAdLoader ustaw obiekt GADMultipleAdsAdLoaderOptions.

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, 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 zasobów zarezerwowanych lub od kupujących zewnętrznych będą unikalne.

Nie używaj klasy GADMultipleAdsAdLoaderOptions, jeśli korzystasz z pośrednictwa, ponieważ żądania wielu reklam natywnych nie działają w przypadku identyfikatorów jednostek reklamowych skonfigurowanych pod kątem pośrednictwa.

Określanie, kiedy ładowanie zostało zakończone

Po wywołaniu funkcji loadRequest: aplikacja może uzyskać wyniki żądania, wywołując te funkcje:

Żądanie pojedynczej reklamy spowoduje 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 adLoaderDidFinishLoading oddzwonienie. 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 definiuje 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

// Set the delegate before making an ad request.
adLoader.delegate = self

Objective-C

// Set the delegate before making an ad request.
self.adLoader.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 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 godzinie.

  • Nie wywołuj ponownie funkcji loadRequest:GADAdLoader, dopóki nie zakończy się wczytywanie poprzedniej prośby, co jest sygnalizowane przez adLoaderDidFinishLoading:.

  • Ogranicz buforowanie reklam natywnych tylko do tego, co jest potrzebne. 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 powoduje nadmierne wykorzystanie pamięci.

  • Niszcz reklamy natywne, gdy nie są już używane.

Wyświetlanie reklamy

Po wczytaniu reklamy wystarczy wyświetlić ją użytkownikom. Aby dowiedzieć się, jak to zrobić, zapoznaj się z naszym przewodnikiem po zaawansowanych reklamach natywnych.