Author Archives: Fernando

How to Integrate iAd for OS3.2+ and Admob as Backup

I am impressed with iAd revenue given by Apple. It really surprises me. So I end up putting iAds for most of my free apps. Though, I’d like the app to be downloaded by OS3.2 users as well (wider user base). So, upon searching, I found the tutorial from Ray Wenderlich. It totally works! If your app is ran on 3.2, it will not cause a crash using this way. iAd is simply not instantiated in OS3.2.

DOWNLOAD PROJECT SAMPLE CODE HERE

This post is not really a step by step tutorial for the codings, but more of an explanation of what needs to be done in order to have iAd integrated in your app, with Admob as backup ad in OS3.2 and when iAd fails. Please read this post carefully. With the downloadable full project source code sample, you should be able to figure this out easily.

1. To get the Admob SDK, you need to be registered to Admob and add a new Site/Apps. Key in your app URL, and soon the Admob Publisher Code will be given and you can then download the Admob SDK built specifically for your app (basically the SDK will be pre-filled with your publisher code).

2. All you need to do is then copy 2 folders – Admob and TouchJSON into your app folder in Finder. Then drag these 2 folders in your XCode Project group. Then you need to add 5 Frameworks to your project. They are MediaPlayer, CoreGraphics, AudioToolBox, MessageUI, and QuartzCore.

3. For iAd, you need to add and weaklink the iAd.framework. Click on Targets->”App name” and get the info of it. Then go to General tab and underneath there is a list of frameworks. On the right side, there is a column called “Type”. Click on the value “Required” and change to “Weak”.

4. Now for the required codes to declare Admob and iAd. In .h of your viewcontroller, declare as below (read the comments in code below for more details):

#import “AdMobDelegateProtocol.h”
@class AdMobView;

@interface iAdMobViewController : UIViewController {
id _myAD; // we are declaring as id because OS3.2 won’t know the existance of ADBannerView
AdMobView *adMobAd;
NSTimer *admobTimer;
IBOutlet UIButton *exampleBtn; // just to simulate repositioning objects
}

@property (nonatomic, retain) NSTimer *admobTimer;
@property (nonatomic, retain) id myAD;
@property (nonatomic, retain) UIButton *exampleBtn;

-(void)createAdBannerView; // method to create iAd banner view
-(void)callAdmob; //method to create Admob view

// methods to show or hide iAd view upon receiving ad or failing to receive ad.
-(IBAction)moveAdOut;
-(IBAction)moveAdIn;

// methods to show or hide Admob view upon receiving ad or failing to receive ad.
-(IBAction)moveAdMobOut;
-(IBAction)moveAdMobIn;

end;

Then in .m file, we need to include a header file for Admob only.

#import “AdMobView.h”

Most of the code above is pretty straight forward. Though NSTimer deserves a little explanation. Admob works a little different than iAd. For iAd, once we create the BannerView, retained it, then iOS will continue to call for adverts from Apple server every 30seconds (edit: only test iAd in SDK 4.0 is called every 30sec, actual iAd refresh is called every 3 minutes). It is done automatically. But for Admob, the SDK does not call for new ads automatically. For Admob, the ad will be called once everytime we create/alloc an AdMobView. If you see in the AdMob delegates, there is one function called requestFreshAd, though this just refresh the ad inside the view with new one WITHOUT calling the didReceiveAd delegate!

Our goal in this project is to make iAd the master ad server, and admob the secondary ad filler. So, in OS4.0, we instantiate iAd once, so the iOS will continue to send ad requests every 30 seconds. So we set the iAd to show if the ad is received, and set to create and show Admob ad if iAd fails. This cycle will continue forever. So we will be having iAd and Admob continuously showing.

Though, in OS3.2, iAd NEVER gets instantiate. So the iAd didFailToReceiveAd delegate will never get called, and that means Admob ad will never be instantiated as well! So we need to trigger the creating of Admob ad calling manually. And that’s where admobTimer comes in the picture.

Testing the project can be painstaking at times. Because since we make iAd the master, and iAd Test ads fillrate is like 99%, it will take a while for Admob Test ad to appear. During running the project in simulator, monitor it together with Console so that you can see the logs every 30 seconds. Test the app with iPad Simulator 3.2 too, and it should not crash, and you should only see Admob ads in the iPad Sim3.2.

There are a few more things that is important in setting up the Admob Delegate functions.

1. The Publisher ID delegate. Key in YOUR Publisher ID in that string placeholder. (in your .m file)

– (NSString *)publisherIdForAd:(AdMobView *)adView {
return @”your admob publisher id here”;
}

2. To get the test Ads for Admob, put this delegate:

– (NSArray *)testDevices {
return [NSArray arrayWithObjects:
ADMOB_SIMULATOR_ID, // Simulator
nil];
}

3. To get test ads in your devices, just add your 40digits device ID as NSString into the array in the above delegate function. If you have more devices, just continue to add them to the array.

– (NSArray *)testDevices {
return [NSArray arrayWithObjects:
ADMOB_SIMULATOR_ID, // Simulator
@”your 40digit device ID here”
nil];
}

4. To get test ads in iAd, you don’t need to do anything in Simulator. Even if you haven’t added a new version with iAd enabled in iTunesConnect, you can still receive test ads in the iAds in simulator or device.

DOWNLOAD PROJECT SAMPLE CODE HERE

You might also like:
Simple Ball Animation
How To Do: Slide to Unlock
Creating Flashing Custom Button

Why are my iAds not displaying in the iPhone Simulator in iOS 4.1?

iAd is for iOS 4.0 and above, so 4.1 should be fine.

Did you miss one of the step below…

  • Add iAd.framework to your project
  • #import <iAd/iAd.h> in your view controller .h file
  • Drag and drop iAdBannerView to your interface
  • Link adView variable and delegate using the interface builder
  • Implement the delegate bannerViewDidLoadAd that show the ad
  • Implement the delegate didFailToReceiveAdWithError that hide the ad

You can see the code below and adapt to your own need…

// RootView.h

#import <UIKit/UIKit.h>
#import <iAd/iAd.h>

@interface RootView : UIViewController {
    BOOL bannerIsVisible;
    ADBannerView *adView;
}

@property (nonatomic) BOOL bannerIsVisible;
@property (nonatomic, retain) IBOutlet ADBannerView *adView;

@end
// RootView.m

#pragma mark -
#pragma mark iAd Banner

- (void)bannerViewDidLoadAd:(ADBannerView *)banner {

    YourAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
    UINavigationController *navigationController = (UINavigationController *)[appDelegate navigationController];

    if (self.bannerIsVisible == NO) {
        banner.frame = CGRectOffset(banner.frame, 0, -banner.frame.size.height);
        [navigationController view].frame = CGRectMake(0, 0, 320, 410);
        self.bannerIsVisible = YES;
    }
}

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error {

    YourAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
    UINavigationController *navigationController = (UINavigationController *)[appDelegate navigationController];

    if (self.bannerIsVisible) {
        banner.frame = CGRectOffset(banner.frame, 0, banner.frame.size.height);
        [navigationController view].frame = CGRectMake(0, 0, 320, 460);
        self.bannerIsVisible = NO;
    }
}

Que es iAd, cómo funciona, y lo que está en juego

No hace precisamente cuatro días que Apple está preparando medio entre bastidores una nueva fórmula publicitaria centrada en su plataforma iOS, hasta el lunes conocida como plataforma iPhone.

Hasta el momento la compañía ha dado tímidos pasos hacia el lanzamiento de iAd, pero hay muchos detalles que al usuario de a pie se le han escapado, bien porque nunca ha sabido comprender que es exactamente iAd y cómo le afectará, bien porque piensa (mal) que iAd no es más que una empresa publicitaria de Apple, y por lo tanto sólo son anuncios.

La realidad es que detrás de todo esto está en juego el negocio de la publicidad en dispositivos móviles, y una buena prueba de ello son los últimos movimientos de los de Cupertino con el fin de garantizar el éxito de iAd usando la máxima de estar totalmente solos en este negocio y en su plataforma. Esta solución final pasa por erradicar cualquier competencia de iOS, y permitir sólo a los desarrolladores y distribuidores de publicidad realizar su trabajo, sin que la competencia pueda saber cómo le van las cosas, hasta el punto que si se está con Apple sólo se está con Apple y con nadie más. De esta forma, sólo pueden jugar en el patio de Apple si se cumplen las condiciones, y una de ellas implica no poder ir a jugar al patio del rey de la publicidad móvil: Google.

El término solución final que he usado hace unas líneas es el término que usaron los nazis para erradicar lo que también llamaron la cuestión judía. Pero quien crea que equiparo a Apple con los nacionalsocialistas está en un error, porque hasta ahora la compañía permite o jugar con sus normas o simplemente no jugar. Pero hay una coincidencia: un plan para la eliminación o agotamiento de la competencia hasta su extinción total; otra cosa es que el plan salga bien, ojo. En cualquier caso, el panorama actual, aunque cambiante, pinta con un futuro incierto.

En las próximas líneas vamos a intentar desgranar que es exactamente la plataforma iAd de Apple, porque se habla de un éxito sin precedentes en la historia de la publicidad, que es exactamente lo que está en juego, y los entresijos de esta nueva forma de publicidad.

 

Las nuevas condiciones

El jardín cerrado que muchos apuntan que es el universo de la App Store toma un nuevo rumbo después de unos matices que aparecen desde el lunes en los términos y condiciones para desarrolladores, en lo que parece una maniobra de Apple para proteger su plataforma publicitaria iAd frente a la competencia, y de paso, intentar calmar a las masas. Intentar, insisto.

Hasta hace muy poco las condiciones especificaban que las apps no podían recolectar y enviar información a los desarrolladores sin el permiso de sus usuarios, con el fin de establecer diversos perfiles de uso y targets comerciales. Se trataba, en base, de poder desgranar qué tipo de publicidad podría interesar a los usuarios mayoritarios de estas aplicaciones a partir de los datos recopilados. Publicidad segmentada, le llaman los entendidos en estas materias.

La cuestión estaba al rojo vivo porque la única forma de saber hacia donde tirar en este sentido, es que las empresas puedan recopilar datos estadísticos de sus usuarios, que dicho sea de paso, son una parte crucial en el sustento este tipo de negocio. Muchos apuntaron que esta medida era para evitar que AdMob, la compañía publicitaria de Google, pudiera recabar información y mejorar su plataforma en base a los resultados de la plataforma de Apple, y de ahí se acuño -de nuevo- el término jardín cerrado a las políticas de Apple. Ahora, la cosa es diferente pero bajo mi punto de vista, el objetivo es el mismo.

Las compañías que trabajen con iAd y que su principal negocio sea la distribución de anuncios podrán recopilar datos de este tipo, pero estas compañías no deben tener nada que ver con los desarrolladores de la app en cuestión, es decir: si desarrollas no puedes distribuir publicidad y recopilar datos, y si recopilas datos y distribuyes publicidad, no puedes desarrollar. La medida apunta directamente a cerrar las puertas a la plataforma AdMob de Google, que ahora mismo gestiona la mayoría de publicidad de la plataforma iPhone, por la única y sencilla razón de que el principal negocio de Google no es la distribución de publicidad a plataformas y dispositivos móviles.

A partir de este cambio, no son pocos los que aseguran que este cambio provoca que ahora, los anunciantes se vean obligados a cerrar sus fuentes de financiación y solamente pueden nutrirse de la fuente de iAd, y Google ya lo ha advertido públicamente. Estos beneficios se repartirán entre el desarrollador del anuncio iAd, el desarrollador de la app donde se incluye la publicidad iAd, y Apple, que es quien vende y distribuye los anuncios iAd. Esto implicará, según muchos, un sobrecoste de la aplicación, porque dentro de esta ya hay un desarrollo paralelo de la publicidad iAd.

La otra cara de la moneda es que la plataforma iAd está incluida inseparablemente de la plataforma iOS en forma de API exclusiva. Y la parte positiva de todo el tema que Apple publicita de forma indirecta se basa en el número de dispositivos con iPhone OS (ahora iOS) que ya hay vendidos. Ahí está el público ya seguro y por extensión, un mercado potencial, porque no se puede cambiar de cadena como con la tele, ya que iAD ya está dentro de cada gadget iOS. Cualquier desarrollador muy probablemente se decantará por iAd porque lo iPhone, vende, aunque eso implique abandonar otras vías de publicidad como la de Google- AdMob.

Lo que está en juego: Apple perdió la guerra en los despachos, pero empezó de cero

En la mayoría de los casos, cuando accedemos a cualquier publicidad en cualquiera de nuestros dispositivos móviles, dicha publicidad la gestiona Ad-Mob, compañía que compró Google. No sería descabellado decir que la mayoría de publicidad móvil es de Google. Pero entre Google y Ad-Mob solamente había un acuerdo de colaboración: lo importante es que Ad-Mob era independiente y estaba prácticamente sola en un nicho cuyo rival más cercano era Quattro Wireless.

El objetivo por lo tanto, era hacerse con AdMob, en un momento en que Google ya sabía las intenciones de Apple en el terreno publicitario. Se ha asegurado que Google se hizo con AdMob por los pelos, superando in extremis la oferta final de Apple por apenas unas horas de diferencia. La otra versión que corre por ahí es que Google pujó simplemente para evitar que Apple comprara AdMob. La cuestión, es que Apple necesitaba un socio fuerte para irrumpir en el mercado publicitario con un mínimo de garantías. Por eso, compró Quattro Wireless.

Cuando Apple ya tenía una base, un proyecto y una intención, adaptó sus discutidas políticas en el tema publicitario para ir allanando en terreno. Todos sabemos que Apple es muy suya en ciertas cosas, y que en su patio, las cosas o se hacen a su manera o te echan. Conscientes de que no podía ser que la competencia sacase partido de su negocio, pero conscientes también de que la plataforma iPhone es poco sin las apps, y estas sin los desarrolladores, apuntó directamente a estos, invitándoles amablemente a que empezasen a dejar de lado a cualquier iniciativa o negocio publicitario que no fuese exclusivamente de Apple. Para ser más exactos, les instó a que peleasen contra la competencia publicitaria externa ya incluida en la plataforma iPhone con las herramientas publicitarias propias de Apple. Poco después de que muchos vieran este movimiento como lo que realmente es, llegó un ataque directo a otra vía publicitaria de éxito: Flash de Adobe.

No nos equivoquemos. Detrás de Flash o no Flash en el iPhone hay mucho más que ver vídeos. ¿Sabéis esos cartelitos publicitarios que aparecen a veces en los vídeos cuando estás frente al ordenador? Pues esos cartelitos, sin Flash pueden incluirse en un vídeo adaptado para reproducirse en el iPhone, pero deben formar parte del vídeo y no serían en este caso interactivos ni pinchables por el usuario, por lo tanto, pierden su efectividad publicitaria, sin contar con el hecho de que cada vídeo necesitaría una reedición para insertar los cartelitos, que no irían más allá del compre esto, sin poder comprar esto. Este es uno de los motivos menos conocidos sobre el porqué Adobe quiere entrar en la plataforma iPhone. Y este, es a la vez otro de los motivos porque Apple no quiere a Adobe en su plataforma.

Y ahí va otro:  Adobe es de Adobe, no de Apple, pero iOS e iAd sin que son de Apple.

¿Pero entonces que hace de iAd algo tan diferente y porqué se habla tanto de esto?

Se podría decir que la plataforma iPad combina la emoción de la publicidad de televisión con la interactividad y participación de la publicidad en internet, ofreciendo a los anunciantes una dinámica y potente nueva forma de ofrecer movimiento y emoción a los usuarios móviles.

iAd permite a los usuarios permanecer dentro de las apps mientras exploran e interactúan con la publicidad, incluso mientras ven un vídeo, disfrutan de un juego o hacen uso de la opción de comprar desde dentro de la propia aplicación para descargar una app, o adquirir contenido en iTunes. La publicidad puede ser un juego, un vídeo interactivo o no, o un cuestionario por poner solo tres ejemplos, pero todo ello dentro de la app en la que se ha incluido iAd. Es muy diferente a hacer click en un banner y que este click te lleve a otra pagina fuera de lo que el usuario estaba viendo, a sabiendas que luego tendrá que volver a lo que estaba viendo. iAd además, ofrece la posibilidad de que esta interactuación con la publicidad sea voluntaria por parte del usuario.

¿Voluntario igual que un banner? Si, pero con la diferencia de que un banner suele ser publicitario y es muy complicado hacer click a sabiendas que intentan vendernos algo. a menos que sea potencialmente atractivo. Con iAd, se sabe de antemano que es algo interactivo que lleva publicidad; se sirve cono una app dentro de la app, lo que las posibilidades son infinitas. E insisto: a partir del 1 de julio, cualquier aparato con iOS llevará integrado de serie iAd.

El potencial de iAd es enorme ahora mismo. No es casualidad que cuando arranque el primero de julio, ya incluya campañas de publicidad móvil de grandes marcas globales, incluyendo AT&T, Best Buy, Campbell Soup Company, Chanel, Citi, DirecTV, GEICO, GE, JCPenney, Liberty Mutual Group, Nissan, Sears, State Farm, Target, Turner Broadcasting System, Unilever y The Walt Disney Studios. Apple tiene ya compromisos para iAd en 2010 por un valor superior a los 60 millones de dólares, lo que representa casi el 50 por ciento de la inversión total en publicidad móvil prevista en el mercado de EEUU para el segundo trimestre de 2010, según datos estimados. Todos sabemos que en los tiempos que corren, muy pocas empresas, por muy saneadas que tengan sus cuentas, apostarían tan fuerte por un sistema publicitario antes de que se ponga en marcha.

Para entender cómo funciona iAd, un ejemplo practico.

Como ejemplo voy a poner el programa El Hormiguero, que a mi juicio, es un programa de televisión que te meten publicidad cuando sin querer el espectador ya se ha tragado la mitad de esta publicidad, porque aunque por ley se obliga a que el espectador sepa que es publicidad, dicho programa pone el cartelito demasiado tarde, casi siempre.

Imaginemos que Pablo Motos da bombo a las características del software y el hardware de un nuevo ordenador. Imaginemos que cuando aparece el cartelito de la marca, es posible pinchar sobre él y, sin salir de El Hormiguero, sea posible interactuar con un simulador del ordenador, haciendo exactamente lo mismo que hace Pablo Motos, que es a su vez el guía de nuestra experiencia publicitaria.

Es muy diferente que Motos diga lo que tenga que decir y que tengamos que estar irremediablemente frente a la tele esperando a que termine el discurso, que poder comprobar por nosotros mismos lo que nos está vendiendo. Y lo mejor de todo, es que tenemos la posibilidad de hacer click sobre Pablo Motos para que se calle y siga con el programa.

Si el día de mañana eso fuera posible con un televisor, y lo implementara Apple, lo primero que haría es acabar con la publicidad convencional. Eso de aprovechar para sacar la basura, fregar la loza, recoger la mesa, asaltar la nevera o ir al baño sabiendo que volvemos en 3 minutos se terminaría. Para entendernos, o se puede interactuar y participar del anuncio, o fuera. O se puede hacer un test para saber si ese perfume te puede ser tu próxima fragancia, o nada. O podemos escoger la chica con la que se queda el hombre Jacks, o nada. O podemos hacer la alineación de la selección española en el mundial y que la app nos muestre unos minutos de un partido simulado, o nada. Pero todo ello, con la posibilidad de cambiarlo, repetirlo, alterarlo y montárnoslo cuantas veces queramos y de al forma que queramos. Cada anuncio sería diferente, pero en cada anuncio se anunciaría exactamente lo mismo. Pero todo, dentro del programa que estamos viendo, no servido de forma separada del programa que estamos viendo.

CSI: Click en el iPad que lleva Grissom que nos conduciría a un simulador del iPad de Apple; y si eso, nos compramos uno. Perdidos: Click en la palmera de la isla que nos lleva a las promociones de una agencia de viajes, y además, nos las presenta el propio Jack, sin que la serie se detenga; y si es, compramos un viaje. Hospital Central: Click en la escotada blusa de la enfermera que permite que su blusa cambia de color y de modelo de prenda para ver las novedades de moda de la temporada de verano, y si queremos, nos compramos una. Mundial de Fútbol: Click en las camisetas de los jugadores para poder comprar el vestuario oficial completo.

Todos estos ejemplos son inviables hoy día en la televisión convencional -de momento-. Pero con la red, no. Y con los dispositivos móviles conectados a la red, tampoco. Apple lo ha hecho posible, pero para hacerlo viable necesita que los desarrolladores de iAd estén para Apple y sólo para Apple, y debe convencer a las empresas para que se queden sólo en iAd.

Conclusión. Muy interesante, pero yo no lo he pedido.

Como en todo lo que hace Apple, las propias características y condiciones para entrar en su mundo y en el mundo de iAd tiene cosas muy buenas y cosas muy malas pero, como siempre, la libertad de cada uno se termina cuando uno quiere entrar en el universo de Apple.

La diferencia en este caso es que cualquier usuario con un aparato de la plataforma iPhone (ahora iOS) estamos a punto de participar en un nuevo concepto de publicidad como jamás hemos tenido la oportunidad… pero lo cierto es que Apple no nos ha pedido permiso para forzarnos a participar en iAd. Todos somos muy felices sin iAd, pero lo cierto es que hay muy pocas apps a bajo precio que económicamente sean rentables.

No se sabe si iAd será satisfactorio para todo el mundo. Lo que está muy claro es que a partir del 1 de julio, a todos nos esperan tiempos muy interesantes.

1 45 46 47