La publicidad basada en clics dentro de una aplicación móvil es una excelente manera de ganar algo de dinero con sus aplicaciones gratuitas o económicas. Si bien hay muchas opciones por ahí, muchos desarrolladores de iOS tienden a utilizar la plataforma iAds por una variedad de razones, entre ellas la simplicidad, la estética y un alto CPM..
Aunque iAds es genial, no es exactamente la bala de plata que podría estar buscando. Dado que iAds ofrece contenido muy específico de proveedores que deben tener un contrato muy específico con Apple, a menudo no cumplen en ciertas situaciones. Estas situaciones pueden ser en una geolocalización en la que no se han colocado anuncios en países extranjeros o simplemente por falta de editores durante un período de tiempo determinado..
En la versión de producción de la aplicación Caterpillar que creé, implementé iAds y noté que la tasa de llenado cae en algún lugar en el rango del 75%. Eso es no está mal, Sin embargo, ¡AdMob suele estar en algún lugar dentro del rango del 98%! Esto me lleva al propósito de este post..
¿No sería estupendo tener una solución híbrida para llenar los espacios publicitarios con anuncios AdMob cuando iAds no se entregan??
Ya que esto es no un tutorial de iAds, vamos a comenzar con un muy Configuración sencilla de iAds. Será una vista de banner en la parte superior de un regular Vista
. He comenzado con una plantilla de proyecto de vista única y he agregado el siguiente código a la ViewController.h
expediente:
#importar#importar @interface ViewController: UIViewController @property (nonatomic, strong) ADBannerView * bannerView; @fin
Esto es solo declarar nuestro anuncio de banner que se mostrará en la vista. Ahora, echemos un vistazo al código para mostrar el banner del anuncio dentro de ViewController.m
:
#import "ViewController.h" @implementation ViewController @synthesize bannerView = _bannerView; - (void) viewDidLoad [super viewDidLoad]; self.bannerView = [[ADBannerView alloc] initWithFrame: CGRectMake (0, 0, 320, 50)]; [self.bannerView setRequiredContentSizeIdentifiers: [NSSet setWithObjects: ADBannerContentSizeIdentifierPortrait, nil]]; self.bannerView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait; [self.bannerView setDelegate: self]; [self.view addSubview: self.bannerView]; - (void) bannerView: (ADBannerView *) banner didFailToReceiveAdWithError: (NSError *) error NSLog (@ "iad failed"); @final
Esto carga un ADBannerView en la parte superior de la ventana configurada en modo vertical. A partir de este momento, cuando iAds no se cargue, simplemente imprimirá "iAd Failed" en el registro, como puede ver en el bannerView: didFailToReceiveAdWithError
método de delegado Haremos uso de este método de delegado para reemplazar el banner de iAd con un banner de AdMob.
Comience por descargar el SDK de AdMob de iOS aquí:
http://code.google.com/mobile/ads/download.html
Extráigalo en algún lugar del disco y arrastre cada archivo a su proyecto. Cuando se le pregunte si desea copiar los archivos, marque sí.
También hay algunas bibliotecas que debe vincular para poder utilizar AdMob:
Una vez que haya hecho esto, debería estar listo para implementar los anuncios de AdMob.
Empecemos revisando ViewController.h
y actualizando el código para que se vea así:
#importar#importar #import "GADBannerView.h" @interface ViewController: UIViewController @property (nonatomic, strong) ADBannerView * bannerView; @ propiedad (no atómica, fuerte) GADBannerView * admobBannerView; @fin
Todo lo que hicimos aquí fue decirle a nuestra clase que fuera un delegado de GADBannerView
y creó una propiedad para una GADBannerView
. Además, asegúrese de que usted @sintetizar
el admobBannerView en el ViewController.m
expediente.
La última parte es reemplazar el iAd con el banner de AdMob cuando no se puede cargar. Esto se puede hacer agregando un código a la bannerView: didFailToReceivedAdWithError
método en ViewController.m
:
- (void) bannerView: (ADBannerView *) banner didFailToReceiveAdWithError: (NSError *) error // 1 [self.bannerView removeFromSuperview]; // 2 _admobBannerView = [[GADBannerView alloc] initWithFrame: CGRectMake (0.0,0.0, GAD_SIZE_320x50.width, GAD_SIZE_320x50.height)]; // 3 self.admobBannerView.adUnitID = @ "a14ec3f0a2028f2"; self.admobBannerView.rootViewController = self; self.admobBannerView.delegate = self; // 4 [self.view addSubview: self.admobBannerView]; [self.admobBannerView loadRequest: [solicitud de GADRequest]];
Entonces, esto es lo que está pasando:
Una cosa a tener en cuenta es que nunca verás fallar iAds en el simulador. Quizás si tuviera Internet deshabilitado, podría hacerlo, pero entonces ni siquiera sería capaz de obtener el anuncio de AdMob. La mejor manera de probar es simplemente forzar la llamada del bannerView: didFailToReceiveAdWithError
método desde dentro de viewDidLoad
:
[self bannerView: self.bannerView didFailToReceiveAdWithError: nil];
Esto simulará la falla de iAd y se ejecutará a través del código para obtener y mostrar los anuncios de AdMob.
Ahora que tenemos esta solución dual en su lugar, es muy poco probable que el usuario no lo hará ver un anuncio Sin embargo, todavía hay una pequeña posibilidad de que tanto iAd como AdMob fallen. En ese caso, me gusta darle un descanso al usuario y no mostrarle nada. Algo así como un regalo de promoción para el día;). Por lo tanto, se llamará al método final cuando AdMob no se cargue.
- (void) adView: (GADBannerView *) ver didFailToReceiveAdWithError: (GADRequestError *) error [self.admobBannerView removeFromSuperview];
Como es de esperar, cuando AdMob falla, eliminamos su vista de la pantalla y el usuario gana.!
Espero que hayas encontrado este tutorial útil para sangrando cada centavo de tus usuarios sus esfuerzos de desarrollo. Aunque he utilizado AdMob, puede utilizar este mismo patrón de diseño para combinar / encadenar cualquiera de las redes de anuncios con las que prefiere trabajar. Puede descargar el código fuente de este tutorial en la parte superior.
Si tiene alguna pregunta o comentario, siéntase libre de dejarlos aquí o escríbame en Twitter.
Feliz codificacion!