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:
ca-app-pub-3940256099942544/4411468910
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:
- Carga un anuncio.
- Regístrate para recibir devoluciones de llamada.
- Muestra el anuncio y administra el evento de recompensa.
Carga un anuncio
La carga de un anuncio se realiza mediante la carga
loadWithAdUnitID:request:completionHandler:
en la
Clase GADInterstitialAd
. El método de carga requiere
tu ID de unidad 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 un
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()
do {
interstitial = try await GADInterstitialAd.load(
withAdUnitID: "ca-app-pub-3940256099942544/4411468910", request: GADRequest())
} catch {
print("Failed to load interstitial ad with error: \(error.localizedDescription)")
}
}
}
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;
}];
}
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: GADInterstitialAd?
override func viewDidLoad() {
super.viewDidLoad()
do {
interstitial = try await GADInterstitialAd.load(
withAdUnitID: "ca-app-pub-3940256099942544/4411468910", request: GADRequest())
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) 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 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
, por lo 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. La conclusión de una tarea dentro de una app, 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 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:
. enGADInterstitialAd
para saber si está listo que se muestra.
Recursos adicionales
Ejemplos en GitHub
- Ejemplo de anuncios intersticiales: Swift | Objective‐C
Instructivos en video de Mobile Ads Garaje
Historias de éxito
Próximos pasos
- Si aún no lo has hecho, crea tu propia unidad de anuncios intersticiales IU de AdMob.
- Obtén más información sobre la segmentación de anuncios y de anuncios intersticiales.
- Obtenga más información sobre la privacidad del usuario.