Compartir a través de


Instrucciones de integración de Android SDK

En esta página se describe cómo integrar nuestro SDK con el proyecto.

Para obtener instrucciones sobre cómo mostrar diferentes tipos de anuncios, consulte:

Siga las instrucciones de esta sección para configurar nuestro SDK para mostrar anuncios en la aplicación.

Requisitos

Este SDK requiere Android 4 o posterior y Android SDK versión 14 o posterior.

Para mostrar anuncios, debe tener un identificador de ubicación Xandr válido. Se trata de un identificador numérico que representa un contexto en una aplicación donde se pueden mostrar anuncios.

Sugerencia

  • Google Play

    Para habilitar el Id. de publicidad de Android (AAID) para la limitación de frecuencia y la segmentación de aplicaciones móviles, debe incluir Google Play Services como dependencia de la aplicación. El SDK de Xandr seguirá funcionando sin Google Play Services, pero no tendrá acceso a esas características.

  • Android Studio y Gradle

    En estas instrucciones se supone que usa Android Studio y Gradle. La mayoría de las entradas necesarias AndroidManifest.xml (excepto los permisos de ubicación) y los cambios de ProGuard se agregan automáticamente a la aplicación. Si usa otros sistemas de compilación, los pasos pueden variar.

Instalación

Paso 1. Obtener el SDK

Instale a través de Maven desde el build.gradle archivo como se muestra a continuación. Tenga en cuenta que la [9,10) notación significa que, cuando se compile la aplicación, se incluirá la versión más reciente del SDK de la serie de versiones 9.x. Cuando publicamos una nueva versión del SDK, todo lo que tiene que hacer para obtener la nueva versión es volver a compilar la aplicación. Si desea incluir adaptadores de mediación para otros SDK en build.gradlesu , consulte la sección Let us Mediate other Networks of Mediate with Android (Permitir mediar otras redes de mediación con Android).

Nota:

Estos son bloques de nivel superior, no forman parte del bloque buildscript.

Advertencia

Gradle ya no admite el comando de compilación; se ha reemplazado por el comando de implementación.

// Android: Gradle config to install the SDK
repositories {
    mavenCentral()
}

dependencies {
    implementation 'com.appnexus.opensdk:appnexus-sdk:[9,10)'
}
   

Paso 2. Editar permisos de aplicación (opcional)

Edite el manifiesto de Android para incluir los siguientes permisos (opcionales pero recomendados):

<!-- Android: XML to include recommended permissions -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android">

<!-- Add the permissions here... -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
  • ACCESS_COARSE_LOCATION (recomendado): concede al SDK permiso para acceder a la ubicación aproximada basada en la torre de celdas.
  • ACCESS_FINE_LOCATION (recomendado): concede al SDK permiso para acceder a una ubicación más precisa basada en GPS.

Sugerencia

Los permisos de ubicación deben preguntar al usuario:

En nivel de API 23 (Marshmallow) y versiones posteriores, debe solicitar al usuario un cuadro de diálogo en tiempo de ejecución de la aplicación para cualquiera de los permisos de ubicación enumerados anteriormente. El SDK solo puede acceder a los permisos de ubicación con el consentimiento del usuario.

Para obtener más información, consulte Solicitar permisos en la documentación de Android.

Aunque técnicamente no es necesario, los permisos de ubicación permiten al SDK enviar datos basados en ubicación a anunciantes. El envío de mejores datos de ubicación generalmente conduce a una mejor monetización.

Nota:

El SDK nunca reactivará el teléfono para solicitar que se actualice la ubicación; esto llevaría tiempo y batería. En su lugar, usará estos permisos para acceder a la última ubicación conocida del dispositivo.

Paso 3. Edición de la configuración de ProGuard

Si la aplicación usa ProGuard, debe editar la configuración de ProGuard para evitar quitar Google Play de la aplicación. El SDK no requiere que Google Play funcione, pero perderá el acceso al id. de anunciante de Android (AAID), que se usa para la selección de destino de aplicaciones y el límite de frecuencia. Edite el archivo del proguard-project.txt proyecto para agregar lo siguiente:

### Proguard settings to support Android Advertiser ID
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient {
    com.google.android.gms.ads.identifier.AdvertisingIdClient$Info getAdvertisingIdInfo(android.content.Context);
}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info {
    java.lang.String getId();
    boolean isLimitAdTrackingEnabled();
}     

Paso 4. Configuración de la mediación (opcional)

Para obtener instrucciones sobre cómo configurar la mediación, consulte Mediar con Android.

Nota de implementación: Devolución de llamada del ciclo de vida de reenvío

El SDK permite reenviar devoluciones de llamada del ciclo de vida para las subclases de AdView: BannerAdView y InterstitialAdView.

Se recomienda encarecidamente reenviar devoluciones de llamada del ciclo de vida para mejorar el rendimiento. Para cualquier persona que media en banners de AdMob/DFP, es un requisito que se les llame, ya que es necesario reenviar las devoluciones de llamada del ciclo de vida al banner de AdMob/DFP según lo requieran. Vea el ejemplo de código siguiente para obtener información sobre qué métodos llamar y cuándo.

Para obtener más información sobre los ciclos de vida de la actividad, consulte Administración del ciclo de vida de la actividad en la documentación de Android.

    /**
     * To be called by the developer when the fragment/activity's onDestroy() function is called.
     */
    abstract public void activityOnDestroy();

    /**
     * To be called by the developer when the fragment/activity's onPause() function is called.
     */
    abstract public void activityOnPause();

    /**
     * To be called by the developer when the fragment/activity's onResume() function is called.
     */
    abstract public void activityOnResume();