Los anuncios de carga de aplicación (App Open) son un formato especial cuyo propósito es permitir la monetización de las pantalla de carga de las aplicaciones.
Estos anuncios se pueden cerrar en cualquier momento y están pensados para ser mostrados cuando la aplicación realiza una transición a primer plano.
Integración
Este formato de anuncio solo se puede integrar a través de código, implementando cualquiera de las dos integraciones posibles que se describen a continuación.
Manual
En este tipo de integración, es necesario crear una instancia de la clase AppOpenAd y utilizar los métodos loadAd() y showAd() para realizar la carga y mostrado del anuncio bajo demanda. El publisher es el responsable de decidir cuándo se debe mostrar el anuncio e implementar la lógica necesaria.
A continuación, se muestra un ejemplo sencillo de integración:
class MainActivity : Activity() {
private var appOpenAd: AppOpenAd? = null
override fun onCreate(savedInstanceState: Bundle?) {
...
appOpenAd = AppOpenAd(this, "Ad Unit ID de Wortise").also {
it.loadAd()
}
}
override fun onDestroy() {
...
appOpenAd?.destroy()
}
fun showAppOpen() {
if (appOpenAd?.isAvailable == true) {
appOpenAd?.showAd(this)
}
}
}
public class MainActivity extends Activity {
private AppOpenAd mAppOpenAd;
@Override
public void onCreate(Bundle savedInstanceState) {
...
mAppOpenAd = new AppOpenAd(this, "Ad Unit ID de Wortise");
mAppOpenAd.loadAd();
}
@Override
public void onDestroy() {
...
mAppOpenAd.destroy(this);
}
public void showAppOpen() {
if (mAppOpenAd.isAvailable()) {
mAppOpenAd.showAd(this);
}
}
}
Además, la clase AppOpenAd ofrece los siguientes métodos adicionales para configurar su comportamiento:
// Establece si se debe cargar un nuevo anuncio tras cerrar el anterior
appOpenAd.autoReload = true
// Muestra un anuncio inmediatamente si está disponible. En caso contrario,
// solicita la carga de un nuevo anuncio
appOpenAd.tryToShowAd(activity)
// Establece si se debe cargar un nuevo anuncio tras cerrar el anterior
mAppOpenAd.setAutoReload(true);
// Muestra un anuncio inmediatamente si está disponible. En caso contrario,
// solicita la carga de un nuevo anuncio
mAppOpenAd.tryToShowAd(activity);
Vía Manager
El SDK ofrece una implementación estándar de App Open para facilitar la integración de este formato de anuncios.
Para realizar este tipo de integración, es necesario que la aplicación extienda la clase Application y, dentro de ella, crear una instancia de AppOpenManager, tal y como se muestra en el siguiente ejemplo:
class MyApplication : Application() {
private val appOpenManager by lazy {
AppOpenManager(this, "Ad Unit ID de Wortise")
}
override fun onCreate() {
...
appOpenManager.loadAd()
}
}
public class MyApplication extends Application {
private AppOpenManager mAppOpenManager;
@Override
public void onCreate() {
...
mAppOpenManager = new AppOpenManager(this, "Ad Unit ID de Wortise");
mAppOpenManager.loadAd();
}
}
Con esta simple integración, la aplicación mostrará anuncios cada vez que se realice una transición de segundo a primer plano.
Igualmente, la clase AppOpenManager ofrece los mismos métodos que AppOpenAd para configurar su comportamiento y mostrar los anuncios bajo demanda.
Configuración del listener
Como en el resto de formatos, se puede añadir un listener para recibir los diferentes eventos
que sucedan durante el ciclo de vida del anuncio. Para ello, es necesario implementar la interfaz AppOpenAd.Listener como se muestra en el siguiente ejemplo:
appOpenAd.listener = object : AppOpenAd.Listener() {
override fun onAppOpenClicked(ad: AppOpenAd) {
// Invocado cuando el anuncio ha sido clickeado
}
override fun onAppOpenDismissed(ad: AppOpenAd) {
// Invocado cuando el anuncio ha sido cerrado
}
override fun onAppOpenFailedToLoad(ad: AppOpenAd, error: AdError) {
// Invocado cuando el anuncio no se ha podido cargar
// (por error o falta de inventario)
}
override fun onAppOpenFailedToShow(ad: AppOpenAd, error: AdError) {
// Invocado cuando el anuncio no se ha podido mostrar
}
override fun onAppOpenImpression(ad: AppOpenAd) {
// Invocado cuando el anuncio ha generado una impresión
}
override fun onAppOpenLoaded(ad: AppOpenAd) {
// Invocado cuando el anuncio ha sido cargado
}
override fun onAppOpenShown(ad: AppOpenAd) {
// Invocado cuando el anuncio ha sido mostrado
}
}
mAppOpenAd.setListener(new AppOpenAd.Listener() {
@Override
public void onAppOpenClicked(@NonNull AppOpenAd ad) {
// Invocado cuando el anuncio ha sido clickeado
}
@Override
public void onAppOpenDismissed(@NonNull AppOpenAd ad) {
// Invocado cuando el anuncio ha sido cerrado
}
@Override
public void onAppOpenFailedToLoad(@NonNull AppOpenAd ad,
@NonNull AdError error) {
// Invocado cuando el anuncio no se ha podido cargar
// (por error o falta de inventario)
}
@Override
public void onAppOpenFailedToShow(@NonNull AppOpenAd ad,
@NonNull AdError error) {
// Invocado cuando el anuncio no se ha podido mostrar
}
@Override
public void onAppOpenImpression(@NonNull AppOpenAd ad) {
// Invocado cuando el anuncio ha generado una impresión
}
@Override
public void onAppOpenLoaded(@NonNull AppOpenAd ad) {
// Invocado cuando el anuncio ha sido cargado
}
@Override
public void onAppOpenShown(@NonNull AppOpenAd ad) {
// Invocado cuando el anuncio ha sido mostrado
}
});