Combinazione di richieste di annuncio nativo e banner con rendering personalizzato

Con alcune modifiche al codice, puoi combinare gli annunci nativi e banner nelle tue richieste di annunci.

Prerequisiti

  • Versione 7.20.0 o successive dell'SDK Google Mobile Ads
  • Completa la guida Inizia

Caricamento di un annuncio

Gli annunci nativi con rendering personalizzato vengono caricati tramite gli oggetti GADAdLoader. L'oggetto GADAdLoader può essere configurato anche per effettuare richieste di annunci che possono generare un annuncio banner o nativo. L'aggiunta di GADAdLoaderAdTypeGAMBanner al parametro array adTypes, insieme ai tipi di annunci nativi come GADAdLoaderAdTypeNative durante la creazione dell'oggetto GADAdLoader, specifica che gli annunci banner devono competere con gli annunci nativi per soddisfare la richiesta.

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

Quando richiedi annunci banner tramite GADAdLoader, il delegato del caricamento degli annunci deve essere conforme al protocollo GAMBannerAdLoaderDelegate. Questo protocollo include un messaggio inviato al caricamento di un annuncio banner:

Swift

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

Objective-C

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

Il delegato del caricamento degli annunci deve anche specificare le dimensioni degli annunci banner da richiedere rispondendo al messaggio validBannerSizesForAdLoader come mostrato di seguito.

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

Conteggio manuale delle impressioni

Per attivare il conteggio manuale delle impressioni sugli annunci banner caricati tramite GADAdLoader, imposta un GAMBannerViewOptions con enableManualImpressions impostato su YES durante l'inizializzazione di GADAdLoader.

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

Se viene caricato un annuncio banner, puoi chiamare recordManualImpression quando determini che un annuncio è stato restituito correttamente ed è sullo schermo per attivare manualmente un'impressione:

Swift

bannerView.recordImpression()

Objective-C

[self.bannerView recordImpression];