La mediación es una forma común en que las plataformas de anuncios orientadas a la venta ofrecen administración del rendimiento. En un flujo de trabajo de mediación, el SDK de mediación ("mediador") invoca varias redes de publicidad ("mediado" o "mediados") para obtener el mejor anuncio para un espacio determinado. En algunos casos, tanto el mediador como las redes de publicidad que invoca necesitan que sus SDKs estén en el dispositivo y puedan interactuar.
En este documento, se describen los cambios clave en los flujos de trabajo de mediación en el SDK Runtime. Abarca los siguientes temas:
- Diferencias entre los flujos de mediación anteriores y la compatibilidad actual con la mediación de SDK Runtime
- Acciones de configuración para los flujos de trabajo de mediación en el entorno de ejecución de SDK y las diferentes etapas de transición
- Orientación para controlar situaciones en las que no todos los SDKs se migraron al entorno de ejecución
La compatibilidad con los anuncios mediados en el entorno de ejecución de SDK está disponible desde AGP 8.5 y desde las siguientes versiones de las bibliotecas de Jetpack del entorno de ejecución de SDK:
| Biblioteca de AndroidX | Versión |
|---|---|
| androidx.privacysandbox.activity | 1.0.0-alpha01 |
| androidx.privacysandbox.sdkruntime | 1.0.0-alpha13 |
| androidx.privacysandbox.tools | 1.0.0-alpha08 |
| androidx.privacysandbox.ui | 1.0.0-alpha09 |
Glosario
Los siguientes términos son clave para comprender la mediación en el entorno de ejecución del SDK:
- SDK habilitado para el entorno de ejecución (SDK de RE): Es un SDK creado para ejecutarse en el entorno de ejecución de SDK y comunicarse con la app a través de la comunicación entre procesos (IPC).
- SDK compatible con el entorno de ejecución (SDK RA): Es un SDK no habilitado para el entorno de ejecución, vinculado a la app de forma estática, que puede contener el código existente de tu SDK, así como código nuevo para llamar a tu SDK habilitado para el entorno de ejecución.
- SDK integrado en la app: Es un SDK que se ejecuta vinculado a la app de forma estática y no tiene conocimiento del entorno de ejecución de SDK. Puede tratarse de una red de publicidad que no realizó la transición al entorno de ejecución de SDK o de un adaptador personalizado del publicador.
- Mediador: SDK de mediación de anuncios que proporciona un servicio de mediación en el dispositivo a través de la interacción con otros SDKs de redes de publicidad.
- Mediatee: Es el SDK de la red de publicidad al que llama el mediador para proporcionar y renderizar un anuncio.
- Adaptador de mediación: Son los SDKs que utiliza el SDK del mediador para proporcionar la traducción de la interfaz de la API y permitir la interoperabilidad con varios SDKs de mediación, que suelen ser proporcionados por el mediador. Pueden ser compatibles o no con el tiempo de ejecución.
Flujos de mediación típicos
Si tu SDK necesita admitir casos de uso de mediación en el entorno de ejecución del SDK, deberás implementar algunos cambios. En esta sección, se revisan los elementos clave de los flujos de mediación para que podamos abordar los cambios necesarios para los mediadores y los mediandos.
Los flujos que describimos representan una versión simplificada de la mediación en el dispositivo con varios SDKs de redes de publicidad y sirven como base para analizar los cambios necesarios para que los recorridos de mediación sean compatibles con el SDK Runtime.
Dada la variación en las implementaciones del flujo de mediación, nos enfocamos en los siguientes dos flujos principales:
- Inicialización (incluida la detección de redes de publicidad y la comunicación)
- Presentación de la interfaz de usuario (IU) de anuncios
Inicialización
A continuación, se muestra un flujo estándar de inicialización, detección de redes publicitarias y comunicación:
- La app cliente inicia el mediador
- El mediador descubre e inicializa los mediadores y adaptadores pertinentes.
- El mediador usa sus adaptadores para comunicarse con cada mediado.
- La app cliente solicita al mediador que cargue un anuncio
- La app cliente solicita al mediador que muestre este anuncio
Presentación de la IU del anuncio
Cuando se trata de renderizar el anuncio después de la solicitud final del paso anterior, el flujo depende del tipo de anuncio:
| Anuncios de banner | Anuncios de pantalla completa | Anuncios nativos |
|---|---|---|
| El SDK del mediador crea una vista de anuncio que contiene la vista de anuncio del mediado ganador. También puede establecer listeners en esta View o actualizar automáticamente el anuncio (con el mismo objeto mediático o uno diferente). |
El SDK del mediador solicita un anuncio de pantalla completa al mediado, que, a su vez, inicia una actividad. | El publicador administra el control y la expansión de la vista con los componentes que devuelve el SDK del mediador. |
Flujos de mediación en el entorno de ejecución de SDK
El funcionamiento de la mediación dentro del entorno de ejecución de SDK varía según si el elemento mediado está habilitado para el entorno de ejecución o no. Según esto, podemos tener las siguientes situaciones:
- Tanto el mediador como el mediado se encuentran en el entorno de ejecución de SDK: Mediado habilitado para el entorno de ejecución
- El mediador está en el entorno de ejecución de SDK y el mediado está integrado en la app: Mediado integrado en la app
RE Mediatee
En el siguiente diagrama de arquitectura, se muestra una descripción general de alto nivel de la interacción de los SDKs habilitados para el entorno de ejecución (RE) y compatibles con el entorno de ejecución (RA) del mediador, los adaptadores de mediación de RE y los SDKs de RE de los elementos mediados.
Los adaptadores de mediación deben estar en el mismo proceso que el elemento mediado con el que se conectan, por lo que también deberán migrar al entorno de ejecución del SDK.
Inicialización
Cuando se considera la inicialización, el descubrimiento y la comunicación del mediador y el mediado habilitados para el tiempo de ejecución, el flujo seguirá estos pasos:
- La app (o el SDK de RA) carga e inicializa el SDK del mediador con
SdkSandboxManager#loadSdk. - Durante su inicialización, el SDK del mediador carga e inicializa los mediatees requeridos en el tiempo de ejecución del SDK con
SdkSandboxController#loadSdk. - El SDK de RE puede descubrir todos los SDKs cargados en el entorno de ejecución llamando a
SdkSandboxController#getSandboxedSdks.
Presentación de la IU del anuncio
En la siguiente sección, se explica cómo cargar banners y anuncios de pantalla completa desde un mediado de RE.
Anuncios de banner de RE Mediatee
Dada una solicitud de la app para cargar un anuncio de banner, el flujo para completar la renderización es el siguiente:
- El mediador selecciona el mediado ganador para este anuncio.
- El mediador obtiene un
SandboxedUiAdapterdel mediado. - El mediador reenvía el UiAdapter a la app.
Superposiciones en anuncios de banner
Si los mediadores quieren agregar una superposición al anuncio, deberán modificar el flujo de la siguiente manera:
- El mediador crea un diseño con su diseño superpuesto y un
SandboxedSdkView. - El mediador selecciona el mediado ganador para este anuncio.
- El mediador obtiene un
SandboxedUiAdapterdel mediado. - El mediador establece el
UiAdapterdel mediado enSandboxedSdkView. - El mediador comparte la vista completada con la app.
RE Mediatee full-screen ads
Dada una solicitud de la app para cargar un anuncio de pantalla completa, el flujo sigue estos pasos:
- La app (o el SDK de RA) pasa un objeto
SdkActivityLauncheral mediador con la solicitud para cargar un anuncio.- El cliente puede restringir la creación de actividades con un predicado.
- El mediador selecciona el mediado ganador para este anuncio.
- El mediador solicita al mediado que cargue un anuncio y pasa el objeto
SdkActivityLauncherde la app. - El mediatee registra un controlador de actividad y obtiene un token de identificador para la actividad registrada.
- El mediatee usa
SdkActivityLauncherpara solicitar el inicio de una actividad con este token. - Si el predicado de la app cliente lo permite, el entorno de ejecución del SDK iniciará esta actividad en el proceso dedicado.
Mediatee en la app
En el siguiente diagrama de arquitectura, se muestra una descripción general de alto nivel de la interacción de los SDK de RE y RA del mediador, de los adaptadores de mediación que no conocen el SDK Runtime y de los SDK de los mediandos vinculados de forma estática a la app (que tampoco conocen el entorno de ejecución).
Inicialización
Dado que, en este caso, los elementos mediados se vinculan de forma estática a la app y aún no se migraron al entorno de ejecución de SDK, el SDK habilitado para el entorno de ejecución del mediador debe tener un proceso para registrarlos.
Se debe poder acceder a este registro a través de la API del mediador, pero los detalles de implementación quedan a discreción de cada mediador. Llamamos a esta API MediationSandboxedSdk#registerInAppMediatee.
Cuando se considera la inicialización, el descubrimiento y la comunicación de un SDK de mediador de RE y los SDKs de mediado en la app, el flujo seguirá estos pasos:
- La app carga e inicializa el SDK compatible con el tiempo de ejecución del mediador.
- El SDK de RA del mediador:
- Inicializa el SDK de RE del mediador con
SdkSandboxManager#loadSdk. - Inicializa todos los SDKs de mediatees integrados en la app.
- Descubre y registra los SDKs de Mediatee integrados en la app con la API que proporciona el SDK de RE,
MediationSandboxedSdk#registerInAppMediate.
- Inicializa el SDK de RE del mediador con
Además de tener registrados todos los SDKs de mediación integrados en la app, el SDK RE del mediador puede descubrir todos los SDKs cargados en el entorno de ejecución de SDK con SdkSandboxController#getSandboxedSdks.
Presentación de la IU del anuncio
En la siguiente sección, se explica cómo cargar banners y anuncios de pantalla completa desde un mediador integrado en la app.
Anuncios de banner mediados en la aplicación
Dada una solicitud de la app para cargar un anuncio de banner, el flujo para completar la renderización es el siguiente:
- El SDK compatible con el entorno de ejecución del mediador reenvía la solicitud de la app a su SDK habilitado para el entorno de ejecución.
- El SDK de RE del mediador selecciona el mediado pertinente.
- El SDK habilitado para el entorno de ejecución del mediador recupera la referencia al mediado y solicita cargar un anuncio a través del SDK de RA.
- El SDK de RA obtiene una vista del elemento de medios integrado en la app.
- El SDK de RA crea un objeto
SandboxedUiAdapterpara la vista que recibió. - El SDK de RA reenvía el objeto
UiAdapteral SDK de RE. - El SDK de RE reenvía el
UiAdaptera la app.
Anuncios de pantalla completa de Mediatee en la aplicación
Dada una solicitud de la app para cargar un anuncio de pantalla completa, el flujo sigue estos pasos:
- La app pasa un
SdkActivityLauncheral SDK de RA del mediador con la solicitud para cargar un anuncio.- El cliente puede restringir la creación de actividades con un predicado.
- El SDK de RA del mediador reenvía la solicitud de la app a su SDK de RE.
- El SDK de RE del mediador:
- Selecciona el mediatee pertinente.
- Recupera la referencia al mediatee integrado en la app.
- Son las solicitudes para cargar un anuncio a través del SDK de RA.
- El SDK de RA solicita al mediatee que cargue un anuncio.
- El mediado inicia la actividad directamente. No se respetará el predicado de la app.
Interactúa y comparte comentarios
Privacy Sandbox en Android es un proyecto en curso, y este documento refleja su diseño actual. Tus comentarios son fundamentales a medida que seguimos desarrollando y mejorando sus funciones. Informa un error para proporcionar comentarios.