Compartir a través de


Mediar con instrucciones del SDK de Android

Nota:

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.

La mediación le permite vender impresiones de anuncios a través de varias redes para generar más ingresos. Esto lo inicia el SDK principal (de mediación), que llama a uno o más SDK mediados en un proceso similar a la cascada. Si el SDK principal no puede mostrar un anuncio por algún motivo, puede recorrer en iteración la lista de SDK mediados y ponerse en contacto con ellos en el orden especificado. Esto continuará hasta que se rellene la impresión o se haya quedado sin SDK mediados.

Entre los motivos para mediar en otro SDK se incluyen los siguientes:

  • Para proporcionar una mejor monetización en circunstancias específicas
  • Para proporcionar acceso a información como un identificador de usuario único o el sistema operativo, la ubicación o el identificador del dispositivo
  • Algunas redes solo aceptan solicitudes de sus propios SDK, lo que le obliga a usar su SDK para acceder a su demanda.

Redes y tipos de medios admitidos

En esta sección se enumeran las redes que se admiten con adaptadores de mediación, así como los tipos de medios que admite cada adaptador. Para cada adaptador, se muestra si el adaptador admite banners, intersticiales, nativos o los tres.

Adaptador Versión Banner Intersticial Nativa Docs
Google AdMob y DFP 22.3.0 Google Mobile Ads: mediación de Android
SmartAdServer 7.23.0 No Documentación del SDK de SmartAdServer

Configuración de Maven

Para mediar en estas redes, necesitará una versión compatible de nuestro SDK y un adaptador de mediación que permita que nuestro SDK se comunique con el SDK de la red. La manera más fácil de obtener el SDK y los adaptadores es usar Maven desde el build.gradle , como se muestra en el ejemplo siguiente. El primer bloque incluye las dependencias del propio SDK. En el segundo bloque se enumeran los adaptadores para mediar otros SDK. Tenga en cuenta que se trata de bloques de nivel superior, no parte del bloque buildscript. Puede incluir o excluir cualquiera de los adaptadores del segundo bloque. La inclusión de un adaptador hace que incluya automáticamente el SDK de terceros adecuado (que se descarga de nuestra red CDN en la hora de sincronización de Gradle).

Por último, tenga en cuenta que la [9,10) notación significa que, cuando se compila la aplicación, se incluirá la versión más reciente del SDK de la serie 9.x. Cuando publicamos una nueva versión del SDK, todo lo que tendrá que hacer para obtener la nueva versión es volver a compilar la aplicación.

repositories {
    mavenCentral()
}
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.appnexus.opensdk:appnexus-sdk:[9,10)'
    implementation 'com.appnexus.opensdk.mediatedviews:appnexus-googleplay-mediation:[9,10)'
    implementation 'com.appnexus.opensdk.mediatedviews:appnexus-smartadserver-mediation:[9,10)'
}

Advertencia

No modifique los archivos de los adaptadores de build.gradle mediación. Esto puede interrumpir la compilación.

Configuración específica de la red

Esta sección tiene información sobre cómo configurar los SDK de otras redes para la mediación, incluidos ejemplos de código (cuando se requiere una configuración especial) y vínculos a la documentación de ese SDK.

Admob

Nota:

Para Mobile SDK 7.22 o posterior, la mediación con la versión de Google Ad Mob requerirá una dependencia explícita de androidx.work:work-runtime:2.7.0 para corregir un error que provoca bloqueos de aplicaciones en Android S. Para corregir este error, agregue las siguientes dependencias del SDK de Google Mobile Ads al archivo Gradle de nivel de aplicación del módulo:

dependencies {
  implementation 'com.google.android.gms:play-services-ads:20.4.0'
  // For apps targeting Android 12, add WorkManager dependency.
  constraints {
    implementation('androidx.work:work-runtime:2.7.0') {
      because '''androidx.work:work-runtime:2.1.0 pulled from
      play-services-ads has a bug using PendingIntent without
      FLAG_IMMUTABLE or FLAG_MUTABLE and will fail in Apps
      targeting S+.'''
    }
  }
}

Advertencia

Se requieren devoluciones de llamada del ciclo de vida

Al mediar banners de AdMob/DFP, debe agregar devoluciones de llamada del ciclo de vida al código, como se describe en la sección siguiente.

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

Como es necesario reenviar las devoluciones de llamada del ciclo de vida al banner de AdMob/DFP según lo requieran. 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.

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();

Mediación nativa

Nota:

A partir de la versión 5.1 del SDK, el código del adaptador de mediación nativa de AdMob se modificó para admitir Google UnifiedNativeAd.

Los siguientes ya no son pertinentes y se han quitado:

AdMobNativeSettings.setEnableAppInstallAd();
AdMobNativeSettings.setEnableContentAd();

Para la mediación nativa, agregue código de inicialización como se describe aquí:

Si tiene previsto usar MediaView para mostrar imágenes o vídeos, debe habilitar MediaView antes de realizar una solicitud de anuncio. Si no lo habilita explícitamente, descargaremos las imágenes automáticamente y MediaView no las rellenaremos automáticamente.

AdMobNativeSettings.setEnableMediaView(true);

Si es NativeAdResponse de AdMob, cree una vista de tipo UnifiedNativeAdView.

private NativeAdRequestListener nativeAdRequestListener = new NativeAdRequestListener() {
 
    @Override
    public void onAdLoaded(NativeAdResponse response) {
        if (response.getNetworkIdentifier() == NativeAdResponse.Network.ADMOB) {
                // Instantiate UnifiedNativeAdView 
                // Set MediaView - Sets a media view for media content.
                // The media content gets loaded on the MediaView, if attached to the layout hierarchy and is registered using the setMediaView(...)
        }
    }
 
    @Override
    public void onAdFailed(ResultCode errorcode) {
  
    }
}

Establecimiento de la palabra clave personalizada

Para pasar la dirección URL de contenido al SDK de Google, contenturl debe pasarse como una palabra clave personalizada con el objeto de anuncio del solicitante (BannerAdView, InterstitialAdView, NativeAdRequest). La clave que se va a usar es content_url. A continuación le mostramos un ejemplo:

// Add key content_url with a value (www.appnexus.com).
adView.addCustomKeywords("content_url", "www.appnexus.com");

Para obtener más información sobre el SDK de Google, consulte el SDK de Google Mobile Ads.

SmartAdServer

No se requiere ninguna configuración especial.

Para obtener más información sobre el SDK de SmartAdServer, consulte la documentación del SDK.

Si tiene previsto admitir dispositivos Huawei que ya no cuentan con servicios de Google (necesarios para la recuperación de Advertising Id), también debe declarar el repositorio de bibliotecas de soporte técnico de Huawei. Para admitir dispositivos Huawei con adaptador sas, los publicadores deben agregar lo siguiente en el nivel raíz build.gradle del proyecto:

// Optional: Huawei services dependencies repository  
maven { url '[https://developer.huawei.com/repo/](https://developer.huawei.com/repo/)' }

Advertencia

Interstitials

Si usa SmartAdServer intersticial, tenga en cuenta que SASInterstitialView no tiene loadAd() y showAd() los métodos correspondientes a nuestro SDK InterstitialAdViewmóvil. SASInterstitialView solo tiene el loadAd() método que realiza la carga y la visualización de anuncios solo en una llamada.

Para ser coherentes con la secuencia de llamadas de InterstitialAdView loadAd() nuestro SDK móvil y InterstitialAdView.showAd() el método, no se muestra hasta SASInterstitialViewInterstitialAdView.showAd() que se llama a .

En otras palabras, se espera que la aplicación llame inmediatamente a showAd()InterstitialAdView.onAdLoaded()en . Si no es así, SASInterstitialView no se mostrará.

Configuración de ubicación para la mediación intersticial

Use la siguiente configuración de ubicación para la mediación intersticial.

Mediación intersticial

Si desea realizar una mediación intersticial, asegúrese de que la ubicación está configurada con:

  • Tamaño: 1x1
  • Tipo de medio: intersticial

Mediación intersticial más RTB o demanda administrada

Si desea realizar una mediación intersticial y aceptar RTB o la demanda administrada a través de la misma ubicación, debe asegurarse de que la ubicación esté configurada con:

  • Tamaño: 1x1
  • Tipo de medio: intersticial
  • Tipo de medio: Banner

Para obtener más instrucciones sobre cómo crear ubicaciones, consulte Creación de una ubicación en la documentación monetizar.

En el caso de la demanda no mediada, debes pasar los tamaños reales de las creatividades en las llamadas de anuncios mediante el promo_sizes parámetro de etiqueta de selección de ubicación.

Para obtener instrucciones sobre cómo pasar tamaños intersticiales personalizados, consulte "Uso de tamaños intersticiales personalizados" en la documentación Mostrar intersticiales en Android .

Redes móviles personalizadas

La interfaz de usuario de Xandr tiene compatibilidad integrada con varias redes de anuncios móviles populares. Si quiere mediar en una red que no es compatible, deberá: