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
- Completar la guía de introducción
Carga de 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 anuncio de banner o un anuncio nativo. Agregar GADAdLoaderAdTypeGAMBanner
al parámetro de array adTypes
, junto con tipos de anuncios nativos como GADAdLoaderAdTypeNative
cuando se crea el objeto GADAdLoader
, especifica que los anuncios gráficos 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 recuento manual de impresiones en los anuncios de banner cargados a través de GADAdLoader
, configura 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 un anuncio se devolvió correctamente y está en pantalla para activar manualmente una impresión:
Swift
bannerView.recordImpression()
Objective-C
[self.bannerView recordImpression];