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 introductoria.

Cómo cargar un anuncio

Los anuncios nativos con renderización 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 anuncio nativo o de banner. Si agregas GADAdLoaderAdTypeGAMBanner al parámetro de array adTypes, junto con tipos de anuncios nativos como GADAdLoaderAdTypeNative cuando se crea el objeto GADAdLoader, se especifica que los anuncios de banner deben competir con los nativos para completar la solicitud.

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

Cuando solicitas 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. Para ello, debe responder 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 recuento manual de impresiones en los anuncios de banner que se cargan a través de GADAdLoader, configura un GAMBannerViewOptions con enableManualImpressions establecido en YES cuando se inicialice GADAdLoader.

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

Si se carga un anuncio de banner, puedes llamar a recordManualImpression cuando determinas que un anuncio se mostró correctamente y está en pantalla para activar una impresión manualmente:

Swift

bannerView.recordImpression()

Objective‑C

[self.bannerView recordImpression];