Solucionar error ‘Ad is already loaded’ al usar AdmobRewarded o AdMobInterstitial en React Native

Tiempo de lectura: < 1 minuto

Si al ejecutar la aplicación en nuestro dispositivo o emulador aparece el mensaje ‘Ad is already loaded’ es porque tiene problemas al cargar el anuncio que hemos solicitado a Admob.

Esto ocurre porque se solicita el anuncio una vez y al solicitarlo por segunda vez falla.

const reward = async () => {
    await AdMobRewarded.setAdUnitID('id_anuncios');
    try {
        await AdMobRewarded.requestAdAsync();
        await AdMobRewarded.showAdAsync();
    } catch (error) {
        console.log(error)
    }

}

Para solucionarlo utilizamos el siguiente código, que volverá a sincronizar el anuncio de nuevo para evitar que ocurra.

  setTimeout(() => {
        AdMobInterstitial.dismissAdAsync();
    }, 1500);

o

setTimeout(() => {
        AdMobRewarded.dismissAdAsync();
    }, 1500);

Quedando el código de la siguiente forma:

const reward = async () => {
    await AdMobRewarded.setAdUnitID('id_anuncios');
    try {
        await AdMobRewarded.requestAdAsync();
        await AdMobRewarded.showAdAsync();
    } catch (error) {
        console.log(error)
    }
setTimeout(() => {
        AdMobRewarded.dismissAdAsync();
    }, 1500);
}

De esta forma ya no aparecerá el mensaje de error y aparecerá el anuncio que queremos.

Deja un comentario