Anuncios intersticiales

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Los anuncios intersticiales son anuncios de pantalla completa que cubren la interfaz de una aplicación hasta que el usuario los cierra. Por lo general, se muestran en puntos de transición naturales del flujo de una app, como entre actividades o durante la pausa entre niveles de un juego. Cuando una app muestra un anuncio intersticial, el usuario tiene la opción de presionarlo y continuar con su destino, o bien cerrarlo y regresar a la app. Caso de éxito

En esta guía, se muestra cómo integrar anuncios intersticiales a una aplicación para iOS.

Requisitos previos

  • SDK de anuncios de Google para dispositivos móviles 8.0.0 o versiones posteriores.
  • Complete la Guía de introducción.

Probar siempre con anuncios de prueba

Cuando compiles y pruebes tus apps, asegúrate de usar anuncios de prueba en lugar de anuncios de producción publicados. De lo contrario, podría suspenderse tu cuenta.

La forma más fácil de cargar anuncios de prueba es usar nuestro ID de bloque de anuncios de prueba exclusivo para intersticiales de iOS:
ca-app-pub-3940256099942544/4411468910

Se configuró especialmente para mostrar anuncios de prueba en cada solicitud y puedes usarlo en tus propias aplicaciones mientras codificas, pruebas y depuras. Solo asegúrate de reemplazarlo con tu propio ID de bloque de anuncios antes de publicar tu app.

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

Implementación

Los pasos principales para integrar anuncios intersticiales son los siguientes:

  1. Cargue un anuncio.
  2. Regístrate para recibir devoluciones de llamada.
  3. Muestre el anuncio y maneje el evento de recompensa.

Cargar un anuncio

Para cargar un anuncio, debes usar el método estático loadWithAdUnitID:request:completionHandler: en la clase GADInterstitialAd. El método de carga requiere tu ID de 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 falla. 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 GADInterstitialAd en tu clase ViewController.

Swift

import GoogleMobileAds
import UIKit

class ViewController: UIViewController {

  private var interstitial: GADInterstitialAd?

  override func viewDidLoad() {
    super.viewDidLoad()
    let request = GADRequest()
    GADInterstitialAd.load(withAdUnitID:"ca-app-pub-3940256099942544/4411468910",
                                request: request,
                      completionHandler: { [self] ad, error in
                        if let error = error {
                          print("Failed to load interstitial ad with error: \(error.localizedDescription)")
                          return
                        }
                        interstitial = ad
                      }
    )
  }
}

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;
  }];
}

Regístrate para recibir devoluciones de llamada

Para recibir notificaciones de eventos de presentación, debes implementar el protocolo GADFullScreenContentDelegate y asignarlo a la propiedad fullScreenContentDelegate del anuncio que se muestra. El protocolo GADFullScreenContentDelegate controla las devoluciones de llamada cuando el anuncio se presenta de forma correcta o no, y cuando se descarta. El siguiente código muestra cómo implementar el protocolo y asignarlo al anuncio:

Swift

class ViewController: UIViewController, GADFullScreenContentDelegate {

  private var interstitial: GADInterstitialAd?

  override func viewDidLoad() {
    super.viewDidLoad()
    let request = GADRequest()
    GADInterstitialAd.load(withAdUnitID:"ca-app-pub-3940256099942544/4411468910",
                                request: request,
                      completionHandler: { [self] ad, error in
                        if let error = error {
                          print("Failed to load interstitial ad with error: \(error.localizedDescription)")
                          return
                        }
                        interstitial = ad
                        interstitial?.fullScreenContentDelegate = self
                      }
    )
  }

  /// Tells the delegate that the ad failed to present full screen content.
  func ad(_ ad: GADFullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) {
    print("Ad did fail to present full screen content.")
  }

  /// Tells the delegate that the ad will present full screen content.
  func adWillPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) {
    print("Ad will present full screen content.")
  }

  /// Tells the delegate that the ad dismissed full screen content.
  func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) {
    print("Ad did dismiss full screen content.")
  }
}

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 will present full screen content.
- (void)adWillPresentFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad {
    NSLog(@"Ad will 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 uso único. Esto significa que una vez que se muestra un anuncio intersticial, no se puede volver a mostrar. Una práctica recomendada es cargar otro anuncio intersticial en el método adDidDismissFullScreenContent: en GADFullScreenContentDelegate para que el próximo anuncio intersticial comience a cargarse apenas se descarte el anterior.

Mostrar el anuncio

Los intersticiales deben mostrarse durante pausas naturales en el flujo de una app. Entre los niveles de un juego es un buen ejemplo o después de que el usuario completa una tarea. A continuación, se muestra un ejemplo de cómo hacerlo en uno de los métodos de acción de una UIViewController:

Swift

@IBAction func doSomething(_ sender: Any) {
  if interstitial != nil {
    interstitial.present(fromRootViewController: self)
  } else {
    print("Ad wasn't ready")
  }
}

Objective‑C

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

Prácticas recomendadas

Considera si los anuncios intersticiales son el tipo de anuncio adecuado para tu app.
Los anuncios intersticiales funcionan mejor en apps con puntos de transición naturales. La conclusión de una tarea dentro de una app, como compartir una imagen o completar un nivel del juego, crea ese punto. Debido a que el usuario espera una interrupción en la acción, es fácil presentar un anuncio intersticial sin interrumpir su experiencia. Asegúrate de tener en cuenta los puntos del flujo de trabajo de tu app en los que mostrarás anuncios intersticiales y la posible respuesta del usuario.
Recuerde detener la acción cuando muestre un anuncio intersticial.
Existen varios tipos de anuncios intersticiales: de texto, con imágenes, de video y otros. Es importante asegurarse de que, cuando tu app muestre un anuncio intersticial, también suspenda el uso de algunos recursos para permitir que el anuncio los aproveche. Por ejemplo, cuando realices la llamada para mostrar un anuncio intersticial, asegúrate de pausar la salida de audio que produce tu app. Puedes reanudar la reproducción de sonidos en el controlador de eventos adDidDismissFullScreenContent:, que se invocará cuando el usuario termine de interactuar con el anuncio. Además, considera detener temporalmente cualquier tarea de cálculo intensa (como un bucle de juego) mientras se muestra el anuncio. Esto garantizará que el usuario no experimente gráficos lentos o que no respondan ni videos interrumpidos.
Permite un tiempo de carga adecuado.
Así como es importante asegurarse de mostrar anuncios intersticiales en el momento adecuado, también es importante asegurarse de que el usuario no tenga que esperar a que se carguen. Cargar el anuncio por adelantado antes de que puedas mostrar puede garantizar que tu app tenga un anuncio intersticial completamente cargado y listo cuando aparezca el anuncio.
No sobrecargue al usuario con anuncios.
Si bien aumentar la frecuencia de los anuncios intersticiales en tu app puede parecer una excelente manera de aumentar los ingresos, también puede degradar la experiencia del usuario y disminuir las tasas de clics. Asegúrate de que no se interrumpa a los usuarios con tanta frecuencia que ya no puedan disfrutar de tu app.
No uses la devolución de llamada de finalización de carga para mostrar el intersticial.
Esto puede perjudicar la experiencia del usuario. En cambio, carga previamente el anuncio antes de que debas mostrarlo. Luego, verifica el método canPresentFromRootViewController:error: en GADInterstitialAd a fin de averiguar si está listo para mostrarse.

Recursos adicionales

Ejemplos en GitHub

Video instructivo sobre Mobile Ads Garage

Historias de éxito

Próximos pasos