SDK iOS - Integración de anuncios
Formatos Tradicionales
Los formatos tradicionales son en general rectangulares y se insertan dentro del contenido de la app. Para mostrar este tipo de anuncios se debe crear e instanciar un “BannerAdView”.
Antes de crear un “BannerAdView” es necesario importar ciertos controles tal como se muestra en el código de ejemplo. Luego se crea el “BannerAdView” dentro de un iframe, indicando el placement ID y tamaño seleccionado.
Se puede tomar como referencia la siguiente tabla de tamaños sugeridos:
Smartphones non retina | 300x50 / 320x50 |
Smartphones Retina-High Resolution | 640x100 |
Tablets | 728x90 / 300x250 |
En el siguiente ejemplo se muestra cómo implementar un ad de 300x50 en una actividad de una Aplicación iOS.
Note que en el parámetro placementId: debe indicarse el placement que desea mostrarse. En este ejemplo se incluye “186f6651be1753f8”.
#import 'FunViewController.h' #import 'ANBannerAdView.h' @interface FunViewController () @end @implementation FunViewController - (void)viewDidLoad { [super viewDidLoad]; // Get the screen size so we can center our 300x50 example ad CGRect screenRect = [[UIScreen mainScreen] bounds]; CGFloat centerX = (screenRect.size.width / 2) - 150; CGFloat centerY = (screenRect.size.height / 2) - 25; // Set up some sizing variables we'll need when we create our ad view CGRect rect = CGRectMake(centerX, centerY, 300, 50); CGSize size = CGSizeMake(300, 50); // Create the banner ad view and add it as a subview ANBannerAdView *banner = [ANBannerAdView adViewWithFrame:rect placementId:@'186f6651be1753f8' adSize:size]; banner.rootViewController = self; [self.view addSubview:banner]; // Load an ad! [banner loadAd]; } |
Formatos Interstitial
Los formatos Interstitiales ocupan toda la pantalla y se muestran por encima del contenido de la app. Incluyen un fondo de color sólido y un botón de cierre en el extremo superior derecho, que permite cerrar la publicidad y continuar navegando la aplicación. Para mostrar este tipo de anuncios se debe crear e instanciar un “InterstitialAd”.
Antes de crear un “InterstitialAd” es necesario importar ciertos controles tal como se muestra en el código de ejemplo e implementar el “adDidReceiveAd” delegate method. Luego se crea el “InterstitisalAd” indicando el placement ID y tamaño seleccionado.
Se puede tomar como referencia la siguiente tabla de tamaños sugeridos:
Smartphones | 300x250 / 320x480 |
Tablets | 900x500 / 1024x1024 |
En el siguiente ejemplo se muestra cómo implementar un formato Interstitial en una actividad de una Aplicación iOS.
Notese que al igual que en el ejemplo anterior debe indicarse en initwithPlacementId el placement a mostrar. En este ejemplo se incluye “dac0166035eda12f”.
import 'FunViewController.h' #import 'ANInterstitialAd.h' @interface FunViewController () <ANInterstitialAdDelegate> @property (nonatomic, strong)ANInterstitialAd *inter; @end @implementation FunViewController : UIViewController - (void)viewDidLoad { self.inter = [[ANInterstitialAd alloc] initWithPlacementId:@'dac0166035eda12f']; // set ourselves as the delegate so we can respond to the required adDidReceiveAd message of the `ANAdDelegate protocol' // (see implementation below) self.inter.delegate = self; // Load an ad! [self.inter loadAd]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - (void)adDidReceiveAd:(id<ANAdProtocol>)ad { [self.inter displayAdFromViewController:self]; } - (void)adFailedToDisplay:(ANInterstitialAd *)ad { NSLog(@'Uh oh, the ad failed to display!'); } @end |
Abrir URLs de clic en el navegador nativo
Por defecto la URL de clic es abierta en la aplicación. Si desea que esta sea abierta en el navegador nativo del dispositivo, incluya la siguiente línea:
banner.opensInNativeBrowser = true;
Configuración de Logging
Para visualizar los request al adsever con motivo de debugging pueden utilizarse los siguientes métodos con el fin de obtener un output del log:
getANLogLevel
setANLogLevel
Este es un ejemplo – Vea ANLogManager.h para obtener los diferentes niveles de log:
[ANLogManager setANLogLevel:ANLogLevelDebug];