Podziel się opinią i pomóż nam opracować harmonogram rozwoju pakietu SDK do reklam mobilnych Google. Wypełnij roczną ankietę dotyczącą pakietu SDK do reklam mobilnych Google na 2023 r., aby została zakończona 5 maja 2023 roku.

Reklamy natywne

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Reklamy natywne to zasoby reklamy, które są wyświetlane użytkownikom za pomocą komponentów interfejsu natywnego na platformie. Są wyświetlane z zastosowaniem tych samych klas, które są już używane w scenorysach, i można je sformatować, aby dopasować je do wyglądu aplikacji. Po wczytaniu reklamy natywnej aplikacja otrzymuje obiekt reklamy zawierający jej zasoby, a za wyświetlanie reklam odpowiada aplikacja (a nie pakiet SDK). Różni się to od innych formatów reklam, które nie pozwalają na modyfikowanie wyglądu reklamy.

Z tego przewodnika dowiesz się, jak za pomocą pakietu SDK do reklam mobilnych Google wdrożyć reklamy natywne w aplikacji na iOS, a także ważne kwestie, które warto wziąć pod uwagę.

Ogólnie rzecz biorąc, wdrożenie reklam natywnych składa się z dwóch etapów: wczytanie reklamy za pomocą pakietu SDK i wyświetlenie treści reklamy w aplikacji. Ta strona omawia ładowanie reklam za pomocą pakietu SDK.

Jeśli już wiesz, jak wyświetlać reklamy natywne i chcesz się dowiedzieć, jak je wyświetlać, zapoznaj się z przewodnikami dotyczącymi szablonów natywnych lub zaawansowanych reklam natywnych.

Wymagania wstępne

Zawsze testuj z reklamami testowymi

Zanim zaczniesz, pamiętaj, że podczas tworzenia i testowania aplikacji musisz używać reklam testowych, a nie wersji produkcyjnej. Testowanie z użyciem reklam produkcyjnych może prowadzić do zawieszenia konta.

Najłatwiejszym sposobem wczytywania reklam testowych jest użycie specjalnego identyfikatora testowej jednostki reklamowej dla wszystkich zaawansowanych reklam natywnych na iOS:

ca-app-pub-3940256099942544/3986624511

Została ona specjalnie skonfigurowana pod kątem zwracania reklam testowych dla każdego żądania. Możesz używać jej we własnych aplikacjach podczas programowania, testowania i debugowania. Wystarczy, że zastąpisz go identyfikatorem jednostki reklamowej przed opublikowaniem aplikacji.

Więcej informacji o działaniu reklam testowych pakietu SDK do reklam mobilnych znajdziesz w artykule Reklamy testowe.

Wczytuję reklamy

Reklamy natywne są ładowane przez obiekty GADAdLoader, które wysyłają wiadomości do przedstawicieli, korzystając z protokołu GADAdLoaderDelegate.

Inicjowanie programu wczytującego reklamy

Zanim wczytasz reklamę, musisz zainicjować jej działanie. Ten kod pokazuje, jak uruchomić GADAdLoader:

Swift

adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
    rootViewController: self,
    adTypes: [ .native ],
    options: [ ... ad loader options objects ... ])
adLoader.delegate = self

Objective-C

self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
    rootViewController:rootViewController
               adTypes:@[ GADAdLoaderAdTypeNative ]
               options:@[ ... ad loader options objects ... ]];
self.adLoader.delegate = self;

Potrzebujesz identyfikatora jednostki reklamowej (możesz użyć identyfikatora testowego), stałych przekazanych w tablicy adTypes, aby określić, które formaty natywne chcesz zastosować, i 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łą:

Wdrażanie delegatora wczytywania reklam

Użytkownik, którym przekazano dostęp do reklamy, musi wdrożyć protokoły charakterystyczne dla Twojego typu reklamy. Reklamy natywne:

  • GADNativeAdLoaderDelegate Ten protokół zawiera komunikat, który jest wysyłany do przedstawiciela po załadowaniu reklamy natywnej:

    Swift

    public func adLoader(_ adLoader: GADAdLoader,
        didReceive nativeAd: GADNativeAd)
    

    Objective-C

    - (void)adLoader:(GADAdLoader *)adLoader
        didReceiveNativeAd:(GADNativeAd *)nativeAd;
    

Żądanie reklamy

Po zainicjowaniu elementu GADAdLoader wywołaj jego metodę loadRequest:, by zażądać reklamy:

Swift

adLoader.load(GADRequest())

Objective-C

[self.adLoader loadRequest:[GADRequest request]];

Metoda loadRequest: w GADAdLoader akceptuje te same obiekty GADRequest 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.

Kiedy żądać reklam

Aplikacje, w których wyświetlają się reklamy natywne, mogą zostać o nie zamówione z wyprzedzeniem. W wielu przypadkach jest to zalecana metoda. Na przykład aplikacja z listą elementów zawierających reklamy natywne może się wczytywać do całej listy, ponieważ niektóre reklamy wyświetlają się dopiero po przewinięciu widoku przez użytkownika, a inne w ogóle mogą nie być widoczne.

Pobieranie reklam z wyprzedzeniem to świetna technika, ale nie można ich wyświetlać bez końca. Wszystkie obiekty reklam natywnych, które były wstrzymane bez wyświetlania przez ponad godzinę, powinny zostać odrzucone i zastąpione nowymi reklamami z nowego żądania.

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

Gdy aplikacja wywołuje metodę loadRequest:, może otrzymać żądanie przez wywołanie:

Żądanie pojedynczej reklamy wygeneruje jedno wywołanie jednej z tych metod.

Żądanie wielu reklam skutkuje wywołaniem co najmniej jednego wywołania powyższego metody, ale nie może ono obejmować maksymalnej liczby żądanych reklam.

GADAdLoaderDelegate obejmuje też wywołanie zwrotne adLoaderDidFinishLoading. Ta metoda przekazania wskazuje, że program ładujący zakończył ładowanie reklam i w odpowiedzi na żądanie nie zostaną zgłoszone żadne inne reklamy ani błędy. Oto przykład korzystania z tego narzędzia podczas wczytywania kilku reklam natywnych jednocześnie:

Swift

class ViewController: UIViewController, GADNativeAdLoaderDelegate {

  var adLoader: GADAdLoader!

  override func viewDidLoad() {
    super.viewDidLoad()

    let multipleAdsOptions = GADMultipleAdsAdLoaderOptions()
    multipleAdsOptions.numberOfAds = 5

    adLoader = GADAdLoader(adUnitID: YOUR_AD_UNIT_ID, rootViewController: self,
        adTypes: [.native],
        options: [multipleAdsOptions])
    adLoader.delegate = self
    adLoader.load(GADRequest())
  }

  func adLoader(_ adLoader: GADAdLoader,
                didReceive nativeAd: GADNativeAd) {
    // A native ad has loaded, and can be displayed.
  }

  func adLoaderDidFinishLoading(_ adLoader: GADAdLoader) {
      // The adLoader has finished loading ads, and a new request can be sent.
  }

}

Objective-C

@interface ViewController () <GADNativeAdLoaderDelegate, GADVideoControllerDelegate>
@property(nonatomic, strong) GADAdLoader *adLoader;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];

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

  self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:YOUR_AD_UNIT_ID
          rootViewController:self
                     adTypes:@[GADAdLoaderAdTypeNative]
                     options:@[multipleAdsOptions]];
  self.adLoader.delegate = self;
  [self.adLoader loadRequest:[GADRequest request]];
}

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveNativeAd:(GADNativeAd *)nativeAd {
   // A native ad has loaded, and can be displayed.
}

- (void)adLoaderDidFinishLoading:(GADAdLoader *) adLoader {
  // The adLoader has finished loading ads, and a new request can be sent.
}

@end

Obsługa nieudanych żądań

Powyższe protokoły rozszerzają protokół GADAdLoaderDelegate, który definiuje komunikat wysyłany, gdy nie można wczytać reklam.

Swift

public func adLoader(_ adLoader: GADAdLoader,
    didFailToReceiveAdWithError error: NSError)

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader
    didFailToReceiveAdWithError:(NSError *)error;

Otrzymuj powiadomienia o zdarzeniach związanych z reklamami natywnymi

Aby otrzymywać powiadomienia o zdarzeniach związanych z interakcjami z reklamami natywnymi, ustaw właściwość przekazywania tej reklamy natywnej:

Swift

nativeAd.delegate = self

Objective-C

nativeAd.delegate = self;

Następnie zaimplementuj GADNativeAdDelegate, aby otrzymywać następujące wywołania osób z przekazanym dostępem:

Swift

func nativeAdDidRecordImpression(_ nativeAd: GADNativeAd) {
  // The native ad was shown.
}

func nativeAdDidRecordClick(_ nativeAd: GADNativeAd) {
  // The native ad was clicked on.
}

func nativeAdWillPresentScreen(_ nativeAd: GADNativeAd) {
  // The native ad will present a full screen view.
}

func nativeAdWillDismissScreen(_ nativeAd: GADNativeAd) {
  // The native ad will dismiss a full screen view.
}

func nativeAdDidDismissScreen(_ nativeAd: GADNativeAd) {
  // The native ad did dismiss a full screen view.
}

func nativeAdWillLeaveApplication(_ nativeAd: GADNativeAd) {
  // The native ad will cause the application to become inactive and
  // open a new application.
}

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 application to become inactive and
  // open a new application.
}

Wyświetl reklamę

Po załadowaniu reklamy pozostaje tylko jej wyświetlanie użytkownikom. Aby dowiedzieć się, jak to zrobić, przeczytaj nasz przewodnik dla zaawansowanych reklam natywnych.