Łączenie żądań reklamy natywnej renderowanej niestandardowo i banerów reklamowych

Wykonując kilka zmian w kodzie, możesz łączyć reklamy natywne i banery reklamowe w żądaniach reklamy.

Wymagania wstępne

  • Pakiet SDK do reklam mobilnych Google w wersji 7.20.0 lub nowszej
  • Wykonaj czynności podane w przewodniku dla początkujących.

Wczytywanie reklamy

Reklamy natywne renderowane niestandardowo są wczytywane przez obiekty GADAdLoader. Obiekt GADAdLoader można też skonfigurować do wysyłania żądań reklamy, które mogą skutkować banerem lub reklamą natywną. Dodanie GADAdLoaderAdTypeGAMBanner do parametru tablicy adTypes razem z typami reklam natywnych, takimi jak GADAdLoaderAdTypeNative podczas tworzenia obiektu GADAdLoader, określa, że banery reklamowe powinny konkurować z reklamami natywnymi o wypełnienie żądania.

Swift

adLoader = GADAdLoader(adUnitID: "/6499/example/nativeandbanner",
    rootViewController: self,
    adTypes: [.native, .gamBanner],
    options: [... ad loader options objects ...])
adLoader.delegate = self

Objective-C

self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"/6499/example/nativeandbanner"
    rootViewController:rootViewController
               adTypes:@[ GADAdLoaderAdTypeNative, GADAdLoaderAdTypeGAMBanner ]
               options:@[ ... ad loader options objects ... ]];
self.adLoader.delegate = self;

GAMBannerAdLoaderDelegate

Gdy wysyłasz żądanie banera reklamowego za pomocą interfejsu GADAdLoader, delegat wczytujący reklamy musi być zgodny z protokołem GAMBannerAdLoaderDelegate. Ten protokół obejmuje wiadomość wysyłaną po wczytaniu banera reklamowego:

Swift

public func adLoader(_ adLoader: GADAdLoader,
    didReceive GAMBannerView: GAMBannerView)

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader didReceiveGAMBannerView:(GAMBannerView *)bannerView;

Osoba z przekazanym dostępem do ładowania reklam musi też określić, jakie rozmiary banerów reklamowych mają być żądane, odpowiadając na komunikat validBannerSizesForAdLoader w podany niżej sposób.

Swift

public func validBannerSizes(for adLoader: GADAdLoader) -> [NSValue] {
  return [NSValueFromGADAdSize(GADAdSizeBanner),
    NSValueFromGADAdSize(GADAdSizeMediumRectangle),
    NSValueFromGADAdSize(GADAdSizeFromCGSize(CGSize(width: 120, height: 20)))]
}

Objective-C

- (NSArray *)validBannerSizesForAdLoader:(GADAdLoader *)adLoader {
  return @[
    @(GADAdSizeBanner),
    @(GADAdSizeMediumRectangle),
    @(GADAdSizeFromCGSize(CGSizeMake(120, 20)))
  ];
}

Ręczne liczenie wyświetleń

Aby włączyć ręczne zliczanie wyświetleń banerów reklamowych wczytywanych przez GADAdLoader, podczas inicjowania GADAdLoader ustaw parametr GAMBannerViewOptions z parametrem enableManualImpressions na YES.

Swift

let bannerViewOptions = GAMBannerViewOptions()
bannerViewOptions.enableManualImpressions = true
adLoader = GADAdLoader(
  adUnitID: "/6499/example/nativeandbanner", rootViewController: self,
  adTypes: [.native, .gamBanner], options: [bannerViewOptions])

Objective-C

GAMBannerViewOptions *bannerViewOptions = [[GAMBannerViewOptions alloc] init];
bannerViewOptions.enableManualImpressions = YES;
self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"/6499/example/nativeandbanner"
    rootViewController:self
               adTypes:@[ GADAdLoaderAdTypeNative, GADAdLoaderAdTypeGAMBanner ]
               options:@[ bannerViewOptions ]];

Jeśli reklama się wyświetli, możesz wywołać recordManualImpression, gdy upewnisz się, że reklama została zwrócona i widzisz ekran, aby ręcznie uruchomić wyświetlenie:

Swift

bannerView.recordImpression()

Objective-C

[self.bannerView recordImpression];