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