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

Wystarczy wprowadzić kilka zmian w kodzie, aby połączyć reklamy natywne i banery reklamowe w żądaniach reklamy.

Wymagania wstępne

Wczytywanie reklamy

Reklamy natywne renderowane niestandardowo są wczytywane za pomocą obiektów GADAdLoader. Obiekt GADAdLoader można też skonfigurować tak, aby wysyłał żądania reklam, które mogą skutkować wyświetleniem banera lub reklamy natywnej. Dodanie GADAdLoaderAdTypeGAMBanner do parametru tablicy adTypes wraz z typami reklam natywnych, takimi jak GADAdLoaderAdTypeNative, podczas tworzenia obiektu GADAdLoader oznacza, że w odpowiedzi na żądanie mają być wyświetlane reklamy banerowe i reklamy natywne.

Swift

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

Objective-C

self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"/21775744923/example/native-and-banner"
    rootViewController:rootViewController
               adTypes:@[ GADAdLoaderAdTypeNative, GADAdLoaderAdTypeGAMBanner ]
               options:@[ ... ad loader options objects ... ]];
self.adLoader.delegate = self;

GAMBannerAdLoaderDelegate

W przypadku wysyłania żądań dotyczących banerów reklamowych za pomocą GADAdLoader delegat modułu wczytywania reklam musi być zgodny z protokołem GAMBannerAdLoaderDelegate. Protokół ten obejmuje komunikat wysyłany po załadowaniu banera reklamowego:

Swift

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

Objective-C

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

Delegat modułu wczytywania reklam musi też określić, o jakie rozmiary reklam banerowych należy wysyłać żądania, odpowiadając na wiadomość validBannerSizesForAdLoader w sposób pokazany poniżej.

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 zliczanie wyświetleń

Aby włączyć ręczne zliczanie wyświetleń w przypadku banerów reklamowych wczytywanych za pomocą GADAdLoader, podczas inicjowania GADAdLoader ustaw wartość GAMBannerViewOptions na enableManualImpressions, a wartość YES na enableManualImpressions.

Swift

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

Objective-C

GAMBannerViewOptions *bannerViewOptions = [[GAMBannerViewOptions alloc] init];
bannerViewOptions.enableManualImpressions = YES;
self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"/21775744923/example/native-and-banner"
    rootViewController:self
               adTypes:@[ GADAdLoaderAdTypeNative, GADAdLoaderAdTypeGAMBanner ]
               options:@[ bannerViewOptions ]];

Jeśli baner reklamowy zostanie wczytany, możesz wywołać funkcję recordManualImpression, gdy stwierdzisz, że reklama została zwrócona i jest widoczna na ekranie, aby ręcznie wywołać wyświetlenie:

Swift

bannerView.recordImpression()

Objective-C

[self.bannerView recordImpression];