Reklamy natywne

Reklamy natywne to komponenty reklamy wyświetlane użytkownikom za pomocą komponentów interfejsu, które są unikalne dla platformy. Są wyświetlane z użyciem tych samych zajęć, których używasz w scenorysach i można je sformatować tak, aby pasowały do wizualnego projektu aplikacji.

Po wczytaniu reklamy natywnej aplikacja otrzymuje obiekt reklamy zawierający jej zasoby. a aplikacja – zamiast pakietu SDK do reklam mobilnych Google – jest odpowiedzialnej za ich wyświetlanie.

Ogólnie rzecz biorąc, skuteczne wdrożenie reklam natywnych składa się z 2 etapów: Wczytanie reklamy za pomocą pakietu SDK, a następnie wyświetlenie jej treści w aplikacji.

Na tej stronie dowiesz się, jak wczytać pakiet SDK reklam natywnych.

Wymagania wstępne

Zawsze korzystaj z reklam testowych

Podczas tworzenia i testowania aplikacji używaj reklam testowych, a nie reklam, aktywne reklamy.

Najłatwiejszym sposobem wczytania reklam testowych jest użycie specjalnego identyfikatora testowego reklamy natywne na iOS:

ca-app-pub-3940256099942544/3986624511

Został on specjalnie skonfigurowany tak, aby wyświetlać reklamy testowe w odpowiedzi na każde żądanie. Możesz używać go we własnych aplikacjach podczas kodowania, testowania i debugowania. Upewnij się tylko, zastąp go identyfikatorem jednostki reklamowej przed opublikowaniem aplikacji.

Więcej informacji o działaniu reklam testowych w pakiecie SDK do reklam mobilnych Google znajdziesz na stronie Reklamy testowe.

Wczytaj reklamy

Reklamy natywne są wczytywane z parametrem GADAdLoader które będą wysyłać wiadomości do przedstawicieli zgodnie z GADAdLoaderDelegate protokołu.

Inicjowanie wczytywania reklam

Zanim załadujesz reklamę, musisz zainicjować moduł wczytywania reklam. Ten kod pokazuje, jak zainicjować 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;

Potrzebny będzie identyfikator jednostki reklamowej (możesz użyć identyfikatora testowego) oraz stałe wartości służące do przekazywania adTypes, aby określić formaty natywne, których żądasz, oraz dowolne ustawiane w parametrze options opcje. Na liście możliwych wartości parametru options można znaleźć w sekcji Ustawianie reklamy natywnej Strona Opcje.

Tablica adTypes powinna zawierać ta stała :

Wdrażanie przekazywania procesu wczytywania reklam

Moduł wczytywania reklam musi wdrożyć protokoły właściwe dla danego typu reklamy. W przypadku reklam natywnych Protokół GADNativeAdLoaderDelegate zawiera wiadomość wysłaną do są przekazywane po wczytaniu reklamy natywnej.

Swift

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

Objective-C

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

Wyślij żądanie

Po zainicjowaniu obiektu GADAdLoader wywołaj jego metodę loadRequest:, aby żądania reklamy:

Swift

adLoader.load(GADRequest())

Objective-C

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

loadRequest: Metoda w GADAdLoader akceptuje takie samo GADRequest jak banery i reklamy pełnoekranowe. Obiektów żądań można używać do dodawania kierowania reklam. jak w przypadku innych typów reklam.

Wczytywanie wielu reklam (opcjonalnie)

Aby wczytać wiele reklam w jednym żądaniu, ustaw parametr GADMultipleAdsAdLoaderOptions obiektu podczas inicjowania komponentu GADAdLoader.

Swift

let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5;
adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
    rootViewController: self,
    adTypes: [ .native ],
    options: [ multipleAdOptions ])

Objective-C

GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
    [[GADMultipleAdsAdLoaderOptions alloc] init];
multipleAdsOptions.numberOfAds = 5;
self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
    rootViewController:rootViewController
               adTypes:@[ GADAdLoaderAdTypeNative ]
               options:@[ multipleAdsOptions ]];

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

Wyświetlone reklamy Google różnią się od siebie, chociaż reklamy zarezerwowane zasoby reklamowe lub zewnętrznych kupujących nie muszą być unikalne.

Jeśli korzystasz z zapośredniczenia, nie używaj klasy GADMultipleAdsAdLoaderOptions. Żądania reklam wielu reklam natywnych nie działają obecnie w przypadku identyfikatorów jednostek reklamowych, które zostały skonfigurowane do zapośredniczenia.

Określanie, kiedy wczytywanie się zakończy

Gdy aplikacja wywoła metodę loadRequest:, może uzyskać wyniki żądania za pomocą Liczba połączeń z numerem:

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

Żądanie wielu reklam spowoduje co najmniej jedno wywołanie zwrotne do powyższego adresu ale nie więcej niż maksymalną liczbę żądanych reklam.

Ponadto GADAdLoaderDelegate oferuje adLoaderDidFinishLoading oddzwanianie. Ta metoda przekazywania wskazuje, że moduł wczytywania reklam zakończył wczytywanie reklamy i żadne inne reklamy ani błędy nie zostaną zgłoszone w odpowiedzi na to żądanie. Oto przykład użycia go podczas wczytywania kilku reklam natywnych naraz:

Swift

class ViewController: UIViewController, GADNativeAdLoaderDelegate {

  var adLoader: GADAdLoader!

  override func viewDidLoad() {
    super.viewDidLoad()

    let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
    multipleAdOptions.numberOfAds = 5;
    adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
        rootViewController: self,
        adTypes: [ .native ],
        options: [ multipleAdOptions ])

    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:@"ca-app-pub-3940256099942544/3986624511"
      rootViewController:rootViewController
                 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 gdy nie uda się wczytać reklam.

Swift

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

Objective-C

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

Otrzymywanie powiadomień o zdarzeniach reklamy natywnej

Aby otrzymywać powiadomienia o zdarzeniach związanych z interakcjami z reklamami natywnymi, wskaż przedstawiciela właściwości reklamy natywnej:

Swift

nativeAd.delegate = self

Objective-C

nativeAd.delegate = self;

Następnie zaimplementuj GADNativeAdDelegate aby odbierać następujące połączenia 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 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 zapisywać listę reklam w pamięci podręcznej.

  • Podczas wstępnego buforowania reklam wyczyść pamięć podręczną i załaduj ponownie po godzinie.

  • Nie dzwoń ponownie do numeru loadRequest: z urządzenia GADAdLoader aż do poprzedniej prośby zakończy się wczytywanie, co wskazuje adLoaderDidFinishLoading:.

Wyświetlanie reklamy

Po załadowaniu reklamy pozostaje już tylko ją wyświetlić użytkownikom. Przejdź do naszych zaawansowanych reklam natywnych , aby dowiedzieć się, jak to zrobić.