</>AppInitDev DevelopersCentro de aprendizaje Android
AdMob • Monetización · TUTORIAL PRÁCTICO

Gestionar anuncios AdMob y ciclo de vida en Jetpack Compose

Evita crear vistas y solicitudes duplicadas por recomposición.

◎
Objetivo del tutorial

Separar el estado del anuncio de la recomposición de la interfaz y liberar recursos.

CONTEXTO

Por qué es importante

Compose puede recomponer sus funciones muchas veces. Si cada recomposición crea una solicitud, aparecen cargas duplicadas, pérdidas de referencias y diagnósticos confusos. El SDK de anuncios y su ciclo de vida deben integrarse según el formato y la versión empleada.

ANTES DE EMPEZAR

Requisitos

  • Una app Compose y un banner de prueba.
  • Conocer AndroidView, DisposableEffect y el ciclo de vida de Activity.

Trabaja en un proyecto de pruebas. Revisa las versiones y condiciones específicas de la documentación oficial, ya que las APIs y las políticas evolucionan.

PASO A PASO

Implementación

01

Elige un único formato y consulta la guía…

Elige un único formato y consulta la guía específica del SDK tradicional o Next-Gen antes de escribir la integración.

02

Crea la vista Android o controlador del anuncio…

Crea la vista Android o controlador del anuncio una sola vez para su ciclo previsto. Separa el cambio de pantalla de la acción de solicitar anuncios.

03

Evita activar carga directamente en el cuerpo de…

Evita activar carga directamente en el cuerpo de un composable; usa efectos controlados o un propietario apropiado.

04

Destruye los recursos que lo requieran al salir…

Destruye los recursos que lo requieran al salir de composición o al cerrar la pantalla; revisa las indicaciones oficiales para el formato.

05

Gestiona estados de cargando, disponible y error sin…

Gestiona estados de cargando, disponible y error sin desplazar bruscamente controles importantes.

06

Prueba rotación, navegación rápida, cambios de tema y…

Prueba rotación, navegación rápida, cambios de tema y reentrada repetida. Revisa Logcat y el número de cargas.

EJEMPLO EXPLICADO

Fragmento de referencia

KOTLIN
@Composable
fun ContenedorVistaAndroid() {
    val contexto = LocalContext.current
    val vista = remember { android.widget.FrameLayout(contexto) }
    DisposableEffect(vista) {
        onDispose { vista.removeAllViews() }
    }
    AndroidView(factory = { vista })
}
// Solo demuestra ownership de la vista; no incorpora SDK AdMob.

Ejemplo educativo: cuando se indique, añade las importaciones, dependencias, claves de prueba o clases de tu proyecto. No se presenta como proyecto Android completo y compilado.

EJERCICIO

Ponlo a prueba

Abre y cierra la pantalla 20 veces, rota el dispositivo y observa si aparecen vistas duplicadas o anuncios superpuestos. Repite con formato de prueba.

RESULTADOS

Lista de comprobación

  • La implementación cumple el objetivo: separar el estado del anuncio de la recomposición de la interfaz y liberar recursos.
  • El comportamiento se verificó con datos de prueba y se documentaron los casos de fallo.
  • Los recursos, dependencias y políticas se comprobaron contra las referencias oficiales.
  • No se registran datos sensibles ni se da por probada una mejora sin evidencia.
DEPURACIÓN

Errores habituales

  • No cargar anuncios dentro de cada recomposición.
  • No reutilizar vistas en dos padres diferentes al mismo tiempo.
  • No confundir este contenedor genérico con una implementación completa de AdMob.
PREGUNTAS FRECUENTES

¿Por qué no incluyes una dependencia del SDK en el fragmento?

Los SDK tradicionales y Next-Gen tienen APIs diferentes; el ejemplo cubre solamente la propiedad del ciclo de vida, y debes seguir la integración oficial específica.

DOCUMENTACIÓN OFICIAL Y TÉCNICA

Referencias para ampliar

Consulta las versiones, limitaciones y requisitos vigentes antes de integrar los ejemplos en producción.

SIGUE APRENDIENDO

Tutoriales relacionados

← Más tutoriales de Monetización con Google AdMobIr a AppInitDev ↗