Combinar solicitações de anúncio nativo e de banner com renderização personalizada

Com apenas algumas alterações no seu código, você pode combinar anúncios nativos e de banner nas suas solicitações de anúncios.

Pré-requisitos

  • versão 7.20.0 ou mais recente do SDK dos anúncios para dispositivos móveis do Google.
  • Concluir o guia Primeiros passos

Carregar um anúncio

Os anúncios nativos com renderização personalizada são carregados usando objetos GADAdLoader. O objeto GADAdLoader também pode ser configurado para fazer solicitações de anúncios que podem resultar em um anúncio nativo ou de banner. Adicionar GADAdLoaderAdTypeGAMBanner ao parâmetro de matriz adTypes, além de tipos de anúncios nativos, como GADAdLoaderAdTypeNative, ao criar o objeto GADAdLoader, especifica que os anúncios de banner precisam competir com os nativos para atender à solicitação.

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

Ao solicitar anúncios de banner usando o GADAdLoader, o delegado do carregador de anúncios precisa estar em conformidade com o protocolo GAMBannerAdLoaderDelegate. Esse protocolo inclui uma mensagem que é enviada quando um anúncio de banner é carregado:

Swift

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

Objective-C

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

O delegado do carregador de anúncios também precisa especificar quais tamanhos de anúncios de banner precisam ser solicitados respondendo à mensagem validBannerSizesForAdLoader, conforme mostrado abaixo.

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

Contagem manual de impressões

Para ativar a contagem manual de impressões em anúncios de banner carregados por GADAdLoader, defina um GAMBannerViewOptions com enableManualImpressions definido como YES ao inicializar 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 ]];

Se um anúncio de banner for carregado, você poderá chamar recordManualImpression quando identificar que um anúncio foi retornado e está na tela para disparar manualmente uma impressão:

Swift

bannerView.recordImpression()

Objective-C

[self.bannerView recordImpression];