Mostrar anuncios intersticiales en iOS
Esta página tiene instrucciones y ejemplos de código para mostrar anuncios intersticiales en iOS.
Información general
Mostrar anuncios intersticiales requiere un poco más de esfuerzo. Además de viewDidLoad
implementar como hicimos en el ejemplo de banner, debemos implementar el adDidReceiveAd
método delegado. En la sección siguiente se explica el tema en detalles con ejemplos de código.
Proceso
- Llame
loadAd
a para capturar el contenido del anuncio de nuestro servidor y almacenarlos en caché localmente. Tenga en cuenta que cualquier contenido de anuncio se representa en una vista web en el momento en que se captura desde el servidor de anuncios y se almacena en caché. Esto significa que cualquier píxeles de seguimiento de terceros que formen parte del contenido del anuncio se desencadenará en el momento de la llamada aloadAd
, no cuando la llamada adisplayAdFromViewController
se realice más adelante. - Cuando el contenido del anuncio se recibe realmente desde el servidor de anuncios, se desencadena la implementación de la
adDidReceiveAd
devolución de llamada. En el ejemplo siguiente, llamamosdisplayAdFromViewController
inmediatamente, pero la implementación podría esperar hasta que sea más conveniente que la aplicación muestre el anuncio intersticial. Tenga en cuenta que la llamada adisplayAdFromViewController
debe producirse dentro de aproximadamente 4 minutos de la llamada a paraloadAd
que Xandr cuente la impresión.
Nota:
El botón cerrar aparece después de diez segundos de forma predeterminada. Puede establecer el retraso mediante ANInterstitialAd.setCloseDelay
.
Para obtener más información, vea el ejemplo de código siguiente.
Tipos de medios creativos admitidos en la unidad de anuncios intersticiales
Tipo de medio | Descripción |
---|---|
Banner | Se recomienda para la mayoría de las ubicaciones intersticiales para maximizar la demanda. Adecuado para banners estáticos o animados. |
Intersticial | Se usa para anuncios a pantalla completa, incluidas imágenes estáticas, MRAID y formatos con capacidad de respuesta HTML. |
VÍDEO VAST | Admite anuncios de vídeo a partir de la versión 9.1.0. Ideal para servir creatividades de vídeo cuando la ubicación está habilitada para la demanda de vídeo. |
Ejemplo de código
En los ejemplos de código intersticial siguientes se muestra cómo solicitar anuncios mediante el identificador de ubicación.
Nota:
A partir de la versión RC2.8, puede inicializar intersticiales mediante una combinación de identificador de miembro y código de inventario en lugar del identificador de ubicación, aunque todavía se admite. Este es el método que muestra la inicialización mediante el código de inventario y el identificador de miembro:
// iOS: ObjC code that uses inventory code and member ID instead of placement ID (optional)
-(instancetype)initWithMemberId:(NSInteger)memberId inventoryCode:(NSString *)inventoryCode;
Ejemplo de código (Objective C)
// iOS: ObjC code to show an interstitial ad
#import "ViewController.h"
#import "ANInterstitialAd.h"
@interface ViewController () <ANInterstitialAdDelegate>
@property (nonatomic, strong)ANInterstitialAd *inter;
@end
@implementation ViewController : UIViewController
- (void)viewDidLoad {
self.inter = [[ANInterstitialAd alloc] initWithPlacementId:@"1326299"];
// 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)adDidReceiveAd:(id<ANAdProtocol>)ad {
[self.inter displayAdFromViewController:self];
}
- (void)adFailedToDisplay:(ANInterstitialAd *)ad {
NSLog(@"Uh oh, the ad failed to display!");
}
@end
Ejemplo de código (Swift)
// iOS: Swift code to show an interstitial ad
// Import ANInterstitialAd.h in the bridging header.
class ViewController: UIViewController, ANInterstitialAdDelegate {
let inter = ANInterstitialAd.init(placementId: "1326299")
override func viewDidLoad() {
super.viewDidLoad()
// Set ourselves as the delegate so we can respond to the required adDidReceiveAd
// message of the ANAdDelegate protocol (see implementation below).
inter.delegate = self
// Load an ad!
inter.loadAd()
}
// ANInterstitialAdDelegate
extension InterstitialViewController: ANInterstitialAdDelegate {
// - (void)adDidReceiveAd:(nonnull id)ad;
func adDidReceiveAd(_ ad: Any) {
appNexusIntersitial?.display(from: self)
}
// - (void)ad:(nonnull id)loadInstance didReceiveNativeAd:(nonnull id)responseInstance;
func ad(_ ad: Any, requestFailedWithError error: Error) {
}
}
}
Uso de tamaños intersticiales personalizados
De forma predeterminada, si no especifica un tamaño de anuncio, el SDK capturará los anuncios en cualquiera de los tamaños siguientes que sean menores o iguales que el tamaño de la pantalla del dispositivo.
- 1x1 (siempre enviado)
- Tamaño detectado de la pantalla (siempre enviado)
- 300x250
- 320x480
- 900x500
- 1024x1024
Si desea mostrar anuncios intersticiales en tamaños distintos de los predeterminados, establezca la allowedAdSizes
propiedad en ANInterstitialAd
. Tenga en cuenta que el tamaño detectado de la pantalla se seguirá pasando como el tamaño principal. Los tamaños establecidos mediante la allowedAdSizes
propiedad se pasarán como promo_sizes
en la ubicación y reemplazarán los valores predeterminados de 300x250 y 320x480.
Cierre automático de un intersticial
Si quieres cerrar automáticamente un anuncio intersticial después de un período de tiempo de espera específico, no llames a displayAdFromViewController
como se describe en las secciones anteriores. En su lugar, llame a displayAdFromViewController:(UIViewController *)controller autoDismissDelay:(NSTimeInterval)delay
. En los ejemplos siguientes se establece el número de segundos que se muestra el intersticial antes de que se cierre en 10 segundos.
// This will show an interstitial ad, wait for 10 seconds, then auto close it.
[self.interstitial displayAdFromViewController:self autoDismissDelay:10];