Anuncios intersticiales

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

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

Requisitos previos

  • SDK de anuncios de Google para dispositivos móviles versión 8.0.0 o posterior.
  • Completa 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 activos y en producción. De lo contrario, podría suspenderse tu cuenta.

La forma más sencilla de cargar anuncios de prueba es usar nuestro ID exclusivo de unidad de anuncios de prueba En el caso de los anuncios intersticiales para iOS:
/6499/example/interstitial

Se configuró de forma especial para mostrar anuncios de prueba para cada solicitud, y ahora usarla en tus propias apps mientras codificas, pruebas y depuras. Solo haz asegúrate de reemplazarla con tu propio ID de unidad 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 para dispositivos móviles, consulta Anuncios de Prueba.

Implementación

Los pasos principales para integrar anuncios intersticiales son los siguientes:

  1. Carga un anuncio.
  2. Regístrate para recibir devoluciones de llamada.
  3. Muestra el anuncio y administra el evento de recompensa.

Carga un anuncio

La carga de un anuncio se realiza mediante la carga loadWithAdManagerAdUnitID:request:completionHandler: en la Clase GAMInterstitialAd. El método de carga requiere tu ID de unidad de anuncios, un objeto GAMRequest y un controlador de finalización, al que se llama cuando la carga de anuncios se realiza correctamente o falla. El objeto GAMInterstitialAd cargado se proporciona como un en el controlador de finalización. En el siguiente ejemplo, se muestra cómo cargar un GAMInterstitialAd en tu clase ViewController.

Swift

import GoogleMobileAds
import UIKit

class ViewController: UIViewController {

  private var interstitial: GAMInterstitialAd?

  override func viewDidLoad() {
    super.viewDidLoad()

    do {
      interstitial = try await GAMInterstitialAd.load(
        withAdUnitID: "/6499/example/interstitial", request: GAMRequest())
    } catch {
      print("Failed to load interstitial ad with error: \(error.localizedDescription)")
    }
  }
}

Objective-C

@import GoogleMobileAds;
@import UIKit;

@interface ViewController ()

@property(nonatomic, strong) GAMInterstitialAd *interstitial;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];
  GAMRequest *request = [GAMRequest request];
  [GAMInterstitialAd loadWithAdManagerAdUnitID:@"/6499/example/interstitial"
      request:request
      completionHandler:^(GAMInterstitialAd *ad, NSError *error) {
    if (error) {
      NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]);
      return;
    }
    self.interstitial = ad;
  }];
}

Cómo registrarse para recibir devoluciones de llamada

Para recibir notificaciones sobre eventos de presentación, debes implementar el protocolo GADFullScreenContentDelegate y asígnalo al La propiedad fullScreenContentDelegate del anuncio que se muestra. El El protocolo GADFullScreenContentDelegate controla las devoluciones de llamada cuando se muestra el anuncio. presenta con éxito o sin éxito, y cuando se descarta. Lo siguiente código muestra cómo implementar el protocolo y asignarlo al anuncio:

Swift

import GoogleMobileAds
import UIKit

class ViewController: UIViewController, GADFullScreenContentDelegate {

  private var interstitial: GAMInterstitialAd?

  override func viewDidLoad() {
    super.viewDidLoad()

    do {
      interstitial = try await GAMInterstitialAd.load(
        withAdUnitID: "/6499/example/interstitial", request: GAMRequest())
      interstitial?.fullScreenContentDelegate = self
    } catch {
      print("Failed to load interstitial ad with error: \(error.localizedDescription)")
    }
  }

  /// 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

@import GoogleMobileAds;
@import UIKit;

@interface ViewController () <GADFullScreenContentDelegate>

@property(nonatomic, strong) GAMInterstitialAd *interstitial;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];
  GAMRequest *request = [GAMRequest request];
  [GAMInterstitialAd loadWithAdManagerAdUnitID:@"/6499/example/interstitial"
      request:request
      completionHandler:^(GAMInterstitialAd *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.");
}

GAMInterstitialAd es un objeto de un solo uso. Esta significa que, una vez que se muestra un anuncio intersticial, no se puede volver a mostrar. La mejor una práctica consiste en cargar otro anuncio intersticial en la adDidDismissFullScreenContent: en GADFullScreenContentDelegate, de modo que que el próximo anuncio intersticial comience a cargarse en cuanto se cargue el anterior. descartada.

Mostrar el anuncio

Los anuncios intersticiales deben mostrarse durante pausas naturales en el flujo de una aplicación. Entre los niveles de un juego, esto es un buen ejemplo, o después de que el usuario completa una tarea. Este es un ejemplo de cómo hacer esto en uno de los métodos de acción en un UIViewController:

Swift

guard let interstitial = interstitial else {
  return print("Ad wasn't ready.")
}

// The UIViewController parameter is an optional.
interstitial.present(fromRootViewController: nil)

Objective-C

if (self.interstitial) {
  // The UIViewController parameter is nullable.
  [self.interstitial presentFromRootViewController:nil];
} else {
  NSLog(@"Ad wasn't ready");
}

Prácticas recomendadas

Determina 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. Conclusión de una tarea dentro de una aplicación, como compartir una imagen o completar una nivel del juego, crea un punto así. Como el usuario espera un receso en la realizar una acción, presentar un anuncio intersticial sin interrumpir una experiencia fluida a los desarrolladores. Asegúrate de considerar en qué puntos del flujo de trabajo de tu app anuncios intersticiales de Display y cómo es probable que responda el usuario.
Recuerda pausar la acción cuando muestres un anuncio intersticial.
Existen varios tipos de anuncios intersticiales: de texto, con imágenes, video y mucho más. Es importante que te asegures de que cuando tu app muestre una anuncio intersticial, también suspende su uso de algunos recursos para permitir que el anuncio los aproveche. Por ejemplo, cuando realizas la llamada para mostrar un anuncio intersticial, asegúrese de pausar las salidas de audio que produce su aplicación. Puedes reanudar los sonidos de la adDidDismissFullScreenContent: controlador de eventos, que se invocará cuando el usuario haya terminado de interactuar con el anuncio. Además, considera detener temporalmente cualquier procesamiento intenso (como un bucle de juego) mientras se muestra el anuncio. Esto garantizará Que el usuario no experimente gráficos lentos o que no responden, o bien que se entrecortan video.
Proporciona un tiempo de carga adecuado.
Así como es importante asegurarse de mostrar anuncios intersticiales en una en el momento adecuado, también es importante que el usuario no tenga que esperar a que se carguen. Debes cargar el anuncio con anticipación antes de mostrarlo. garantiza que tu app tenga un anuncio intersticial completamente cargado llega el momento de mostrar uno.
No sobrecargues al usuario con anuncios.
Aunque aumentar la frecuencia de los anuncios intersticiales en tu app podría parecer como una excelente manera de aumentar los ingresos, también puede perjudicar la experiencia del usuario y disminuir las tasas de clics. Asegúrate de que los usuarios no tengan tanta frecuencia que ya no puedan disfrutar del uso de la app.
No uses la devolución de llamada de finalización de carga para mostrar el anuncio intersticial.
Esto puede generar una mala experiencia del usuario. En su lugar, carga previamente el anuncio antes de necesitas mostrarla. Luego, verifica el método canPresentFromRootViewController:error:. en GAMInterstitialAd para saber si está listo que se muestra.

Ejemplos en GitHub

Próximos pasos