Anuncios intersticiales

Los anuncios intersticiales son anuncios a pantalla completa que cubren la interfaz de una aplicación hasta que el usuario los cierra. Se suelen mostrar en los puntos de transición naturales de una aplicación, por ejemplo, entre distintas actividades o al pasar de un nivel a otro en un juego. Cuando una aplicación muestra un anuncio intersticial, el usuario tiene la opción de tocarlo e ir a la página de destino, o de cerrarlo y volver a la aplicación. Consulta este caso de éxito.

En esta guía aprenderás a integrar anuncios intersticiales en aplicaciones iOS.

Requisitos previos

  • Tener la versión 8.0.0 o posterior del SDK de anuncios de Google para móviles.
  • Seguir la guía de introducción para importar el SDK de anuncios de Google para móviles.

Comprobar siempre las aplicaciones con anuncios de prueba

Cuando crees y testes tus aplicaciones, utiliza siempre anuncios de prueba en lugar de anuncios reales que se estén publicando. De lo contrario, podríamos suspender tu cuenta.

La forma más sencilla de cargar anuncios de prueba es usar el ID de bloque de anuncios de prueba que hemos creado para evaluar los intersticiales de iOS: ca-app-pub-3940256099942544/4411468910

Lo hemos configurado especialmente para devolver anuncios de prueba a cada solicitud; puedes usarlo para programar, probar y depurar tus propias aplicaciones. Recuerda sustituirlo por el ID de uno de tus bloques de anuncios cuando vayas a publicar la aplicación.

Para obtener más información, consulta cómo funcionan los anuncios de prueba del SDK de anuncios para móviles.

Implementación

Los pasos principales para integrar anuncios intersticiales son los siguientes:

  1. Cargar un anuncio.
  2. Registrarse para recibir retrollamadas.
  3. Mostrar el anuncio y gestionar el evento de bonificación.

Cargar un anuncio

Para cargar anuncios, utiliza el método loadWithAdUnitID:request:completionHandler: estático de la clase GADInterstitialAd. El método de carga requiere el ID de tu bloque de anuncios, un objeto GADRequest y un controlador de finalización al que se llama cuando la carga de anuncios se realiza correctamente o da error. El objeto GADInterstitialAd cargado se proporciona como parámetro en el controlador de finalización. En el siguiente ejemplo se muestra cómo cargar un objeto GADInterstitialAd en tu clase ViewController.

Objective‑C

@import GoogleMobileAds;
@import UIKit;

@interface ViewController ()

@property(nonatomic, strong) GADInterstitialAd *interstitial;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];
  GADRequest *request = [GADRequest request];
  [GADInterstitialAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
                                  request:request
                        completionHandler:^(GADInterstitialAd *ad, NSError *error) {
    if (error) {
      NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]);
      return;
    }
    self.interstitial = ad;
  }];
}

Registrarse para recibir retrollamadas

Para recibir notificaciones de eventos de presentación, debes implementar el protocolo GADFullScreenContentDelegate y asignarlo a la propiedad fullScreenContentDelegate del anuncio devuelto. El protocolo GADFullScreenContentDelegate gestiona las retrollamadas cuando el anuncio se muestra correctamente, cuando no se puede presentar y cuando lo cierra el usuario. En el siguiente código se muestra cómo implementar el protocolo y asignarlo al anuncio:

Objective‑C

@interface ViewController ()<GADFullScreenContentDelegate>

@property(nonatomic, strong) GADInterstitialAd *interstitial;

@end

@implementation ViewController
- (void)viewDidLoad {
  [super viewDidLoad];
  GADRequest *request = [GADRequest request];
  [GADInterstitialAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
                                  request:request
                        completionHandler:^(GADInterstitialAd *ad, NSError *error) {
    if (error) {
      NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]);
      return;
    }
    self.interstitial = ad;
    self.interstitial.fullScreenContentDelegate = self;
  }];
}

/// Tells the delegate that the ad failed to present full screen content.
- (void)ad:(nonnull id<GADFullScreenPresentingAd>)ad
didFailToPresentFullScreenContentWithError:(nonnull NSError *)error {
    NSLog(@"Ad did fail to present full screen content.");
}

/// Tells the delegate that the ad presented full screen content.
- (void)adDidPresentFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad {
    NSLog(@"Ad did present full screen content.");
}

/// Tells the delegate that the ad dismissed full screen content.
- (void)adDidDismissFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad {
   NSLog(@"Ad did dismiss full screen content.");
}

GADInterstitialAd es un objeto de un solo uso. Por lo tanto, los anuncios intersticiales que se muestren no pueden volver a mostrarse. Te recomendamos que cargues otro anuncio intersticial en el método adDidDismissFullScreenContent: de GADFullScreenContentDelegate, de forma que el siguiente anuncio de este tipo empiece a cargarse en cuanto el anterior se haya cerrado, tal como se muestra a continuación:

Mostrar el anuncio

Los anuncios intersticiales deben mostrarse durante las pausas naturales de una aplicación; por ejemplo, entre los diferentes niveles de un juego o cuando el usuario haya terminado una acción concreta. Más abajo se muestra un ejemplo de cómo puedes hacerlo en uno de los métodos de acción de una propiedad UIViewController:

Objective‑C

- (IBAction)doSomething:(id)sender {
  ...
  if (self.interstitial) {
    [self.interstitial presentFromRootViewController:self];
  } else {
    NSLog(@"Ad wasn't ready");
  }
}

Algunas prácticas recomendadas

Plantéate si los intersticiales son el tipo de anuncio más adecuado para tu aplicación.
Los anuncios intersticiales funcionan mejor en las aplicaciones con puntos de transición naturales. Por ejemplo, cuando se pueden mostrar al terminar una acción en la aplicación, como compartir una imagen o completar un nivel de un juego. En esos momentos, como el usuario espera que se produzca una interrupción, es fácil presentar un anuncio intersticial sin que su experiencia se vea afectada. Decide en qué puntos del flujo de trabajo de la aplicación se mostrarán anuncios intersticiales y analiza cómo crees que responderán los usuarios.
Mostrar un anuncio intersticial implica pausar la acción.
Hay distintos tipos de anuncios intersticiales, como los de texto, de imagen y de vídeo. Es importante que cuando la aplicación muestre un anuncio intersticial se suspenda el uso de algunos recursos para que el anuncio pueda aprovecharlos. Por ejemplo, cuando realices la llamada para mostrar un anuncio intersticial, pausa todo el audio que se esté reproduciendo en la aplicación. La reproducción se reanuda en el gestor de eventos adDidDismissFullScreenContent:, que se invocará cuando el usuario haya terminado de interactuar con el anuncio. Además, mientras se muestra el anuncio, es conveniente detener temporalmente cualquier tarea que consuma muchos recursos (como un bucle de juego). De esta forma, el usuario no se encontrará con gráficos lentos o que no respondan ni con vídeos entrecortados.
Define un tiempo de carga adecuado.
Evitar que el usuario tenga que esperar a que los anuncios intersticiales se carguen es igual de importante que mostrarlos en el momento adecuado. Para que la aplicación tenga un anuncio intersticial completamente cargado y listo cuando llegue el momento de mostrarlo, cárgalo por adelantado.
No satures a los usuarios con anuncios.
Aunque aumentar la frecuencia de los anuncios intersticiales en tu aplicación te parezca una excelente forma de incrementar los ingresos, también puede degradar la experiencia de usuario y provocar que disminuya el porcentaje de clics. Si interrumpes a los usuarios con demasiada frecuencia, no disfrutarán utilizando tu aplicación.
No uses la retrollamada de finalización de carga para mostrar el anuncio intersticial.
Hacerlo puede ser perjudicial para la experiencia de usuario. Es preferible tener el anuncio ya cargado antes de que llegue el momento de mostrarlo. A continuación, verifica el método canPresentFromRootViewController:error: en GADInterstitialAd para averiguar si está listo para mostrarse.

Otros recursos

Ejemplos de GitHub

Tutoriales de vídeo de la serie Mobile Ads Garage

Casos de éxito

Pasos siguientes