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 superior de Google Mobile Ads SDK
- Configura Google Mobile Ads SDK.
Carga un anuncio
Los anuncios nativos renderizados de forma personalizada se cargan a través de
GADAdLoader
objetos. 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
los 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 recuento 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 un anuncio se devolvió correctamente y está en pantalla para activar manualmente una impresión:
Swift
bannerView.recordImpression()
Objective-C
[self.bannerView recordImpression];