Cómo combinar solicitudes de anuncios nativos con renderización personalizada y en forma de banner

Con algunos cambios en tu código, puedes combinar anuncios nativos y de banner en tus solicitudes de anuncios.

Requisitos previos

  • Versión 7.20.0 o posterior del SDK de anuncios de Google para dispositivos móviles
  • Completa la guía de Introducción

Cómo cargar un anuncio

Los anuncios nativos renderizados de forma personalizada se cargan a través de objetos GADAdLoader. El objeto GADAdLoader también se puede configurar para realizar solicitudes de anuncios que pueden generar un banner o un anuncio nativo. Si agregas GADAdLoaderAdTypeGAMBanner al parámetro de array adTypes, junto con tipos de anuncios nativos, como GADAdLoaderAdTypeNative, cuando creas el objeto GADAdLoader, se especifica que los anuncios de banner deben competir con los anuncios nativos para completar la solicitud.

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

Cuando se solicitan anuncios de banner a través de GADAdLoader, el delegado del cargador de anuncios debe cumplir con el protocolo GAMBannerAdLoaderDelegate. Este protocolo incluye un mensaje que se envía cuando se carga un anuncio de banner:

Swift

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

Objective-C

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

El delegado del cargador de anuncios también debe especificar qué tamaños de anuncios de banner se deben solicitar respondiendo al mensaje validBannerSizesForAdLoader como se muestra a continuación.

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

Recuento manual de impresiones

Para habilitar el registro manual de impresiones en los anuncios de banner cargados a través de GADAdLoader, establece un GAMBannerViewOptions con enableManualImpressions establecido en YES cuando inicialices 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 ]];

Si se carga un anuncio de banner, puedes llamar a recordManualImpression cuando determines que se muestra un anuncio correctamente y está en pantalla para activar una impresión de forma manual:

Swift

bannerView.recordImpression()

Objective-C

[self.bannerView recordImpression];