Los anuncios de vídeo bonificados son anuncios de vídeo a pantalla completa que dan recompensas dentro de la aplicación a los usuarios que los ven enteros.
En esta guía, te mostramos cómo integrar anuncios de vídeo bonificados de AdMob en una aplicación iOS.
Requisitos previos
- Importar el SDK de anuncios de Google para móviles, ya sea de forma independiente o como parte de Firebase.
Solicitar un vídeo bonificado
Como GADRewardBasedVideoAd tiene un diseño de singleton, en el ejemplo siguiente se muestra una solicitud que se hace a la instancia compartida para cargar un anuncio:
Swift
GADRewardBasedVideoAd.sharedInstance().load(GADRequest(), withAdUnitID: "ca-app-pub-3940256099942544/1712485313")
Objective‑C
[[GADRewardBasedVideoAd sharedInstance] loadRequest:[GADRequest request] withAdUnitID:@"ca-app-pub-3940256099942544/1712485313"];
Para permitir que los vídeos se precarguen, te recomendamos que hagas la llamada de solicitud de carga lo antes posible (por ejemplo, en el método application:didFinishLaunchingWithOptions:
del delegado de la aplicación).
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 nuestro ID de bloque de anuncios de prueba para vídeos bonificados de iOS:
ca-app-pub-3940256099942544/1712485313
Lo hemos configurado especialmente para devolver anuncios de prueba a cada solicitud, y 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.
Configurar notificaciones de eventos
Para configurar notificaciones de eventos, inserta la línea que se muestra en negrita antes de la llamada de solicitud de carga:
Swift
GADRewardBasedVideoAd.sharedInstance().delegate = self GADRewardBasedVideoAd.sharedInstance().load(GADRequest(), withAdUnitID: "ca-app-pub-3940256099942544/1712485313")
Objective‑C
[GADRewardBasedVideoAd sharedInstance].delegate = self; [[GADRewardBasedVideoAd sharedInstance] loadRequest:[GADRequest request] withAdUnitID:@"ca-app-pub-3940256099942544/1712485313"];
GADRewardBasedVideoAdDelegate
te notifica los eventos del ciclo de vida de los anuncios de vídeo bonificados.
Debes asignar el delegado antes de cargar un anuncio. El evento más importante de este delegado es rewardBasedVideoAd:didRewardUserWithReward:
, al que se llama cuando hay que recompensar a un usuario porque ha visto un vídeo. También puedes implementar otros métodos en este delegado.
En el siguiente ejemplo se muestra cómo registrar cada uno de los eventos disponibles en el protocolo GADRewardBasedVideoAdDelegate:
.
Swift
func rewardBasedVideoAd(_ rewardBasedVideoAd: GADRewardBasedVideoAd, didRewardUserWith reward: GADAdReward) { print("Reward received with currency: \(reward.type), amount \(reward.amount).") } func rewardBasedVideoAdDidReceive(_ rewardBasedVideoAd:GADRewardBasedVideoAd) { print("Reward based video ad is received.") } func rewardBasedVideoAdDidOpen(_ rewardBasedVideoAd: GADRewardBasedVideoAd) { print("Opened reward based video ad.") } func rewardBasedVideoAdDidStartPlaying(_ rewardBasedVideoAd: GADRewardBasedVideoAd) { print("Reward based video ad started playing.") } func rewardBasedVideoAdDidCompletePlaying(_ rewardBasedVideoAd: GADRewardBasedVideoAd) { print("Reward based video ad has completed.") } func rewardBasedVideoAdDidClose(_ rewardBasedVideoAd: GADRewardBasedVideoAd) { print("Reward based video ad is closed.") } func rewardBasedVideoAdWillLeaveApplication(_ rewardBasedVideoAd: GADRewardBasedVideoAd) { print("Reward based video ad will leave application.") } func rewardBasedVideoAd(_ rewardBasedVideoAd: GADRewardBasedVideoAd, didFailToLoadWithError error: Error) { print("Reward based video ad failed to load.") }
Objective‑C
- (void)rewardBasedVideoAd:(GADRewardBasedVideoAd *)rewardBasedVideoAd didRewardUserWithReward:(GADAdReward *)reward { NSString *rewardMessage = [NSString stringWithFormat:@"Reward received with currency %@ , amount %lf", reward.type, [reward.amount doubleValue]]; NSLog(rewardMessage); } - (void)rewardBasedVideoAdDidReceiveAd:(GADRewardBasedVideoAd *)rewardBasedVideoAd { NSLog(@"Reward based video ad is received."); } - (void)rewardBasedVideoAdDidOpen:(GADRewardBasedVideoAd *)rewardBasedVideoAd { NSLog(@"Opened reward based video ad."); } - (void)rewardBasedVideoAdDidStartPlaying:(GADRewardBasedVideoAd *)rewardBasedVideoAd { NSLog(@"Reward based video ad started playing."); } - (void)rewardBasedVideoAdDidCompletePlaying:(GADRewardBasedVideoAd *)rewardBasedVideoAd { NSLog(@"Reward based video ad has completed."); } - (void)rewardBasedVideoAdDidClose:(GADRewardBasedVideoAd *)rewardBasedVideoAd { NSLog(@"Reward based video ad is closed."); } - (void)rewardBasedVideoAdWillLeaveApplication:(GADRewardBasedVideoAd *)rewardBasedVideoAd { NSLog(@"Reward based video ad will leave application."); } - (void)rewardBasedVideoAd:(GADRewardBasedVideoAd *)rewardBasedVideoAd didFailToLoadWithError:(NSError *)error { NSLog(@"Reward based video ad failed to load."); }
Mostrar un vídeo bonificado
Recomendamos que el anuncio de vídeo bonificado haya terminado de cargarse antes de intentar mostrarlo. El método isReady
indica que la solicitud del anuncio de vídeo bonificado se ha procesado correctamente:
Swift
if GADRewardBasedVideoAd.sharedInstance().isReady == true { GADRewardBasedVideoAd.sharedInstance().present(fromRootViewController: self) }
Objective‑C
if ([[GADRewardBasedVideoAd sharedInstance] isReady]) { [[GADRewardBasedVideoAd sharedInstance] presentFromRootViewController:self]; }
Volver a cargar un anuncio de vídeo bonificado
El objeto rewardBasedVideoAdDidClose:
es un lugar idóneo para cargar un nuevo anuncio de vídeo bonificado después de mostrar el anterior.
Swift
func rewardBasedVideoAdDidClose(_ rewardBasedVideoAd: GADRewardBasedVideoAd) { GADRewardBasedVideoAd.sharedInstance().load(GADRequest(), withAdUnitID: "ca-app-pub-3940256099942544/1712485313") }
Objective‑C
- (void)rewardBasedVideoAdDidClose:(GADRewardBasedVideoAd *)rewardBasedVideoAd { [[GADRewardBasedVideoAd sharedInstance] loadRequest:[GADRequest request] withAdUnitID:@"ca-app-pub-3940256099942544/1712485313"]; }
Otros recursos
Ejemplos de vídeos bonificados en GitHub
Tutoriales de vídeo de la serie Mobile Ads Garage
Laboratorio de programación
Pasos siguientes
- Crea tu propio bloque de anuncios de vídeo bonificados en la interfaz de AdMob.
- Aprende a mostrar anuncios de vídeo bonificados en juegos de Unity.
- Prueba otros formatos de anuncio: