Wortise Android SDK

Esta guía le muestra cómo integrar anuncios publicitarios de Wortise en una aplicación de Android. Además de los fragmentos de código y las instrucciones, también incluye información sobre el tamaño adecuado de los banners y enlaces a recursos adicionales. Si tiene alguna pregunta, no dude en enviarnos un correo electrónico a support@wortise.com.

Aquí están los pasos básicos de integración:

  1. Echa un vistazo a los archivos de nuestro repositorio.
  2. Agrega nuestro SDK (y dependencias) a tu proyecto.
  3. Crea bloques de anuncios en tu aplicación.
  4. Verifica la integración de visibilidad de anuncios en tu
    dispositivo.
  5. ¡Mirá como aumentan tus ingresos!

1. Integración del SDK

En primer lugar, es necesario añadir los siguientes repositorios Maven dentro del bloque repositories del fichero  build.gradle

repositories {
    maven { url 'https://maven.wortise.com/artifactory/public' }
    
    maven {
        url 'https://maven.wortise.com/artifactory/private'
        credentials {  
            username 'turtle'  
            password 'zumgmtwdjjcf7q6b'  
        }
    }
}

Una vez añadido, se puede proceder a integrar el SDK . Para ello, hay que introducir la siguiente líneas dentro del bloque  dependencies  del mismo fichero  build.gradle

implementation 'com.wortise:android-sdk:1.0.0-beta02'

En caso de no tenerlo ya, es necesario activar la compatibilidad con Java 8 en el proyecto. Esto se puede lograr añadiendo estas líneas adicionales dentro del bloque  android, también en el mismo fichero  build.gradle

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

El paso siguiente, es solicitar los permisos en el lugar de la aplicación que creas mas conveniente. Este permiso es necesario para recopilar datos del usuario, y mostrarle los mejores anuncios basado en su localización real y atributos varios. Puedes omitirlo, pero es probable que no se llegue a conseguir el CPM Premium.

En el Manifest:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

Ejemplo de solicitud en el  Activity  principal:

Java:

private static final String[] PERMISSIONS = {
    Manifest.permission.ACCESS_FINE_LOCATION,
    Manifest.permission.ACCESS_COARSE_LOCATION,
};

ActivityCompat.requestPermissions(this, PERMISSIONS, 100);

Kotlin:

private val PERMISSIONS = arrayOf(
    Manifest.permission.ACCESS_FINE_LOCATION,
    Manifest.permission.ACCESS_COARSE_LOCATION,
)

ActivityCompat.requestPermissions(this, PERMISSIONS, 100)

Ahora vamos a integrar las siguientes lineas, para inicializar el SDK, en algún activity principal de la aplicación:

Java:

WortiseSdk.initialize(this, "tu app key", () -> {
    ConsentManager.requestOnce(this);
    return Unit.INSTANCE;
});

Kotlin:

WortiseSdk.initialize(this, "tu app key") {
    ConsentManager.requestOnce(this)
}

Con esto, el SDK de Wortise ya se encuentra integrado y listo para su uso.

2. Formato banner

Los anuncios de banner son anuncios de imagen o de texto rectangulares que ocupan un lugar dentro del diseño de una aplicación. Permanecen en la pantalla mientras los usuarios interactúan con la aplicación y pueden actualizarse automáticamente después de un cierto período de tiempo. Si eres nuevo en la publicidad móvil, son un excelente lugar para comenzar.

Integración

Existen dos formas diferentes de realizar la integración de un banner. A continuación se detallan
ambas opciones.

Xml:

<com.wortise.ads.banner.BannerAd
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:adSize="HEIGHT_50"
    app:adUnitId="<Ad Unit ID de Wortise>" />

Java:

public class MainActivity extends Activity {

    private BannerAd mBannerAd;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        ...
        mBannerAd = new BannerAd(this);
        mBannerAd.setAdSize(AdSize.HEIGHT_50);
        mBannerAd.setAdUnitId("<Ad Unit ID de Wortise>");
        
        // Por ejemplo, añadímos el BannerAd en un FrameLayout
        FrameLayout frameLayout = findViewById(R.id.frame);
        frameLayout.addView(mAdView);

        mBannerAd.loadAd();
    }
    
    @Override
    public void onDestroy() {
        ...
        mBannerAd.destroy();
    }
    
    @Override
    public void onPause() {
        ...
        mBannerAd.pause();
    }
    
    @Override
    public void onResume() {
        ...
        mBannerAd.resume();
    }
}

Kotlin:

class MainActivity : Activity() {

    private var bannerAd: BannerAd? = null
    
    override fun onCreate(savedInstanceState: Bundle?) {
        ...
        bannerAd = BannerAd(this).also {
	        it.adSize = AdSize.HEIGHT_50
	        it.adUnitId = "<Ad Unit ID de Wortise>"
	        
	        // Por ejemplo, añadímos el BannerAd en un FrameLayout
	        val frameLayout = findViewById<FrameLayout>(R.id.frame)
	        frameLayout.addView(it)
	        
	        it.loadAd()
        }
    }
    
    override fun onDestroy() {
        ...
        bannerAd?.destroy()
    }
    
    override fun onPause() {
        ...
        bannerAd?.pause()
    }
    
    override fun onResume() {
        ...
        bannerAd?.resume()
    }
}

Configuración listener

Se puede añadir un listener a cualquier instancia de BannerAd para recibir los diferentes eventos que
sucedan durante su ciclo de vida. Para ello, es necesario implementar la interfaz BannerAd.Listener, como se muestra en el siguiente ejemplo:

Java:

mBannerAd.setListener(new BannerAd.Listener() {
    @Override
    public void onBannerClicked(@NonNull BannerAd ad) {
        // Llamado cuando el usuario hace click sobre el banner
    }
    
    @Override
    public void onBannerFailed(@NonNull BannerAd ad, @NonNull AdError error) {
        // Llamado cuando la carga de un anuncio falla (por error o falta de inventario)
    }
    
    @Override
    public void onBannerLoaded(@NonNull BannerAd ad) {
        // LLamado cuando se ha cargado un anuncio con éxito
    }
});

Kotlin:

bannerAd.listener = object : BannerAd.Listener() {

    override fun onBannerClicked(ad: BannerAd) {
        // Llamado cuando el usuario hace click sobre el banner
    }
    
    override fun onBannerFailed(ad: BannerAd, error: AdError) {
        // Llamado cuando la carga de un anuncio falla (por error o falta de inventario)
    }
    
    override fun onBannerLoaded(ad: BannerAd) {
        // LLamado cuando se ha cargado un anuncio con éxito
    }
}

3. Formato Intersticial

Integración

Al contrario que los banners, los interstitials únicamente se pueden integrar a través de código. A
continuación se muestra un sencillo ejemplo para entender su funcionamiento:

Java:

public class MainActivity extends Activity {

    private InterstitialAd mInterstitial;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        ...
        mInterstitial = new InterstitialAd(this, "<Ad Unit ID de Wortise>");
        mInterstitial.loadAd();
    }
    
    @Override
    public void onDestroy() {
        ...
        mInterstitial.destroy();
    }
    
    public void showInterstitial() {
        if (mInterstitial.isAvailable()) {
            mInterstitial.showAd();
        }
    }
}

Kotlin:

class MainActivity : Activity() {

    private var interstitialAd: InterstitialAd? = null
    
    override fun onCreate(savedInstanceState: Bundle?) {
        ...
        interstitialAd = InterstitialAd(this, "<Ad Unit ID de Wortise>").also {
	        it.loadAd()
        }
    }
    
    override fun onDestroy() {
        ...
        interstitialAd?.destroy()
    }
    
    fun showInterstitial() {
        if (interstitialAd?.isAvailable == true) {
            interstitialAd?.showAd()
        }
    }
}

Configuración listener

Al igual que en el caso de los banners, se puede añadir un listener para recibir los diferentes eventos
que sucedan durante el ciclo de vida del interstitial. Para ello, es necesario implementar la interfaz
InterstitialAd.Listener como se muestra en el siguiente ejemplo:

Java:

mInterstitial.setListener(new InterstitialAd.Listener() {
    @Override
    public void onInterstitialClicked(@NonNull InterstitialAd ad) {
        // Llamado cuando el usuario hace click sobre el interstitial
    }
    
    @Override
    public void onInterstitialDismissed(@NonNull InterstitialAd ad) {
        // Llamado cuando el interstitial es cerrado
    }
    
    @Override
    public void onInterstitialFailed(@NonNull InterstitialAd ad, @NonNull AdError error) {
        // Llamado cuando la carga del interstitial ha fallado (por error o falta de inventario)
    }
    
    @Override
    public void onInterstitialLoaded(@NonNull InterstitialAd ad) {
        // Llamado cuando el interstitial ha cargado con éxito
    }
    
    @Override
    public void onInterstitialShown(@NonNull InterstitialAd ad) {
        // Llamado cuando se muestra el interstitial
    }
});

Kotlin:

interstitialAd.listener = object : InterstitialAd.Listener() {

    override fun onInterstitialClicked(ad: InterstitialAd) {
        // Llamado cuando el usuario hace click sobre el interstitial
    }
    
    override fun onInterstitialDismissed(ad: InterstitialAd) {
        // Llamado cuando el interstitial es cerrado
    }
    
    override fun onInterstitialFailed(ad: InterstitialAd, error: AdError) {
        // Llamado cuando la carga del interstitial ha fallado (por error o falta de inventario)
    }
    
    override fun onInterstitialLoaded(ad: InterstitialAd) {
        // Llamado cuando el interstitial ha cargado con éxito
    }
    
    override fun onInterstitialShown(ad: InterstitialAd) {
        // Llamado cuando se muestra el interstitial
    }
}

4. ProGuard

No es necesario realizar ninguna acción al respecto ya que el SDK de Wortise incluye las reglas ProGuard necesarias para su correcto funcionamiento.

Mostrar comentarios