Los anuncios intersticiales son anuncios de pantalla completa que cubren la interfaz de la app host. Por lo general, se muestran en puntos de transición natural 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 presionar el anuncio y pasar a su destino, o bien de cerrarlo y volver a la app. Lee uno de nuestros casos de éxito.
En esta guía, se explica cómo integrar anuncios intersticiales en una app para Android.
Requisitos previos
Siempre haz pruebas con anuncios de prueba
Al crear y verificar tus apps, asegúrate de usar anuncios de prueba en vez de anuncios activos en fase de producción. De lo contrario, podría suspenderse tu cuenta.
La forma más sencilla de cargar anuncios de prueba es usar nuestro ID de unidad de anuncios de prueba exclusivo para los anuncios intersticiales en Android:
ca-app-pub-3940256099942544/1033173712
Está configurado especialmente para devolver anuncios de prueba en cada solicitud, y puedes usarlo en tus propias apps mientras realizas tus actividades de programación, prueba y depuración. Solo asegúrate de reemplazarlo por tu propio ID de unidad de anuncios antes de publicar tu app.
Para obtener más información sobre el funcionamiento de los anuncios de prueba del SDK de GMA de nueva generación, consulta la sección sobre anuncios de prueba.
Carga un anuncio
Para cargar un anuncio, el SDK de GMA de nueva generación ofrece lo siguiente:
Se carga con la API de carga de un solo anuncio.
Carga con la API de precarga de anuncios, que elimina la necesidad de cargar y almacenar en caché los anuncios de forma manual.
Carga con la API de carga de un solo anuncio
En el siguiente ejemplo, se muestra cómo cargar un solo anuncio:
Kotlin
import com.google.android.libraries.ads.mobile.sdk.common.AdLoadCallback
import com.google.android.libraries.ads.mobile.sdk.common.AdRequest
import com.google.android.libraries.ads.mobile.sdk.common.FullScreenContentError
import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError
import com.google.android.libraries.ads.mobile.sdk.interstitial.InterstitialAd
import com.google.android.libraries.ads.mobile.sdk.interstitial.InterstitialAdEventCallback
import com.google.android.libraries.ads.mobile.sdk.MobileAds
class InterstitialActivity : Activity() {
private var interstitialAd: InterstitialAd? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Load ads after you initialize GMA Next Gen SDK.
InterstitialAd.load(
AdRequest.Builder(AD_UNIT_ID).build(),
object : AdLoadCallback<InterstitialAd> {
override fun onAdLoaded(ad: InterstitialAd) {
// Interstitial ad loaded.
interstitialAd = ad
}
override fun onAdFailedToLoad(adError: LoadAdError) {
// Interstitial ad failed to load.
interstitialAd = null
}
},
)
}
companion object {
// Sample interstitial ad unit ID.
const val AD_UNIT_ID = "ca-app-pub-3940256099942544/1033173712"
}
}
Java
import com.google.android.libraries.ads.mobile.sdk.common.AdLoadCallback;
import com.google.android.libraries.ads.mobile.sdk.common.AdRequest;
import com.google.android.libraries.ads.mobile.sdk.common.FullScreenContentError;
import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError;
import com.google.android.libraries.ads.mobile.sdk.interstitial.InterstitialAd;
import com.google.android.libraries.ads.mobile.sdk.interstitial.InterstitialAdEventCallback;
import com.google.android.libraries.ads.mobile.sdk.MobileAds;
class InterstitialActivity extends Activity {
// Sample interstitial ad unit ID.
private static final String AD_UNIT_ID = "ca-app-pub-3940256099942544/1033173712";
private InterstitialAd interstitialAd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load ads after you initialize GMA Next Gen SDK.
InterstitialAd.load(
new AdRequest.Builder(AD_UNIT_ID).build(),
new AdLoadCallback<InterstitialAd>() {
@Override
public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
// Interstitial ad loaded.
AdLoadCallback.super.onAdLoaded(interstitialAd);
InterstitialActivity.this.interstitialAd = interstitialAd;
}
@Override
public void onAdFailedToLoad(@NonNull LoadAdError adError) {
// Interstitial ad failed to load.
AdLoadCallback.super.onAdFailedToLoad(adError);
interstitialAd = null;
}
}
);
}
}
Carga con la API de precarga de anuncios
Para comenzar la precarga, haz lo siguiente:
Inicializa una configuración de carga previa con una solicitud de anuncio.
Inicia el cargador previo para los anuncios intersticiales con tu ID de unidad de anuncios y la configuración de precarga:
Kotlin
private fun startPreloading(adUnitId: String) {
val adRequest = AdRequest.Builder(adUnitId).build()
val preloadConfig = PreloadConfiguration(adRequest)
InterstitialAdPreloader.start(adUnitId, preloadConfig)
}
Java
private void startPreloading(String adUnitId) {
AdRequest adRequest = new AdRequest.Builder(adUnitId).build();
PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest);
InterstitialAdPreloader.start(adUnitId, preloadConfig);
}
Los anuncios se ponen a disposición de forma continua a medida que los muestras. En el siguiente ejemplo, se sondea un anuncio del cargador previo:
Kotlin
// Polling returns the next available ad and loads another ad in the background.
val ad = InterstitialAdPreloader.pollAd(adUnitId)
Java
// Polling returns the next available ad and loads another ad in the background.
final InterstitialAd ad = InterstitialAdPreloader.pollAd(adUnitId);
Establece el objeto InterstitialAdEventCallback
El objeto InterstitialAdEventCallback procesa los eventos relacionados con la visualización de tu InterstitialAd. Antes de mostrar el anuncio intersticial, asegúrate de configurar la devolución de llamada:
Kotlin
// Listen for ad events.
interstitialAd?.adEventCallback =
object : InterstitialAdEventCallback {
override fun onAdShowedFullScreenContent() {
// Interstitial ad did show.
}
override fun onAdDismissedFullScreenContent() {
// Interstitial ad did dismiss.
interstitialAd = null
}
override fun onAdFailedToShowFullScreenContent(
fullScreenContentError: FullScreenContentError
) {
// Interstitial ad failed to show.
interstitialAd = null
}
override fun onAdImpression() {
// Interstitial ad did record an impression.
}
override fun onAdClicked() {
// Interstitial ad did record a click.
}
}
Java
// Listen for ad events.
interstitialAd.setAdEventCallback(
new InterstitialAdEventCallback() {
@Override
public void onAdShowedFullScreenContent() {
// Interstitial ad did show.
InterstitialAdEventCallback.super.onAdShowedFullScreenContent();
}
@Override
public void onAdDismissedFullScreenContent() {
// Interstitial ad did dismiss.
InterstitialAdEventCallback.super.onAdDismissedFullScreenContent();
interstitialAd = null;
}
@Override
public void onAdFailedToShowFullScreenContent(
@NonNull FullScreenContentError fullScreenContentError) {
// Interstitial ad failed to show.
InterstitialAdEventCallback.super.onAdFailedToShowFullScreenContent(
fullScreenContentError);
initerstitialAd = null;
}
@Override
public void onAdImpression() {
// Interstitial ad did record an impression.
InterstitialAdEventCallback.super.onAdImpression();
}
@Override
public void onAdClicked() {
// Interstitial ad did record a click.
InterstitialAdEventCallback.super.onAdClicked();
}
}
);
Muestra el anuncio
Para mostrar un anuncio intersticial, usa el método show().
Kotlin
// Show the ad.
interstitialAd?.show(this@InterstitialActivity)
Java
// Show the ad.
interstitialAd.show(InterstitialActivity.this);
Algunas prácticas recomendadas
- Considera si los anuncios intersticiales son el tipo de anuncio adecuado para tu app.
- Los anuncios intersticiales funcionan mejor en las apps que tienen puntos de transición naturales. La conclusión de una tarea en una app, como compartir una imagen o completar un nivel de un juego, crea un punto de transición. Asegúrate de tener en cuenta en qué puntos del flujo de trabajo de tu app mostrarás anuncios intersticiales y de qué manera es probable que responda el usuario.
- Recuerda detener la acción cuando muestres un anuncio intersticial.
- Existen varios tipos distintos de anuncios intersticiales: de texto, con imagen, de video y muchos más. 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 hagas la llamada para mostrar un anuncio intersticial, asegúrate de pausar cualquier salida de audio que produzca tu app.
- Permite que transcurra un tiempo de carga adecuado.
- Además de asegurarte de mostrar anuncios intersticiales en un momento adecuado, también es importante que el usuario no tenga que esperar a que se carguen. Si llamas a
load()antes deshow()para cargar el anuncio con antelación, puedes asegurarte de que tu app tenga un anuncio intersticial completamente cargado y listo cuando llegue el momento de mostrar uno. - No satures 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 perjudicar la experiencia del usuario y reducir las tasas de clics. Asegúrate de que los usuarios no experimenten interrupciones con tanta frecuencia que ya no puedan disfrutar de tu app.
Ejemplo
Descarga y ejecuta la app de ejemplo que demuestra el uso del SDK de GMA de nueva generación.