Por lo general, las plataformas de anuncios orientadas a la venta diversifican sus fuentes de demanda de anuncios a fin de optimizar los ingresos publicitarios. Con la mediación de anuncios, una red de publicidad o un servicio invocan varias redes de publicidad a fin de encontrar el mejor anuncio para un espacio publicitario específico. En esta propuesta, se presenta cómo extender la API de Protected Audience en Android para implementar la funcionalidad de la mediación en cascada de una manera que preserve la privacidad. En la actualidad, las redes de publicidad proporcionan varias formas para que los desarrolladores de apps actúen como intermediarios en las subastas de anuncios de varios vendedores:
- Mediación en cascada: Los desarrolladores de apps definen una lista ordenada de redes de publicidad, a menudo clasificadas por los valores históricos de eCPM para la red determinada. Esta lista se conoce como cadena de mediación. La plataforma de mediación del desarrollador de apps usa esta lista para llamar a las redes de publicidad en el orden en el que se enumeran a fin de identificar las fuentes de demanda de anuncios relevantes.
- Mediación programática: El desarrollador de apps configura varias redes de publicidad para participar en las ofertas de oportunidades de anuncios. Estas redes pueden ofertar en tiempo real en función del valor que asignen a la oportunidad.
- Mediación híbrida: Es una combinación de técnicas de mediación programática y de cascada.
Mediación en cascada
En la mediación en cascada, cuando surge una oportunidad de anuncio, un SDK de anuncios envía una solicitud a su servidor de backend. En lugar de responder a la solicitud con una creatividad de anuncio ganadora, el servidor responde con una cadena de mediación que contiene una lista de redes de publicidad ordenadas por eCPM histórico.
Figura 1: Modelo de mediación en cascada
En el modelo de cascada tradicional, un SDK de anuncios llama a cada red de publicidad (o a su propio SDK de subasta) en el orden que especifica la cadena de mediación. Si una red de publicidad puede cumplir con la solicitud de anuncio, la red de publicidad renderiza el anuncio. De lo contrario, la solicitud se envía a la siguiente red de la cadena. Este proceso se repite hasta que se cumple la solicitud o se agota la cadena.
Para optimizar la mediación en cascada, es posible reordenar con regularidad la cadena de mediación en función de la reevaluación del eCPM de las fuentes de demanda de anuncios propias.
Mediación programática
La mediación programática (también conocida como "oferta de encabezado") es una alternativa al uso del eCPM histórico para determinar qué red de publicidad tiene la oportunidad de publicar una solicitud de anuncio. Con la mediación programática, los proveedores utilizan los valores de ofertas en tiempo real para encontrar el anuncio ganador.
Figura 2: Modelo de mediación programática
Mediación híbrida
Algunas soluciones de mediación programática combinan las redes de publicidad en un modo híbrido de cascada y oferta para proporcionar más control al anuncio y, al mismo tiempo, obtener el beneficio de usar eCPM en tiempo real para maximizar los ingresos de las redes de publicidad participantes.
En los modelos de mediación híbrida, las redes de publicidad y los proveedores de mediación pueden ofrecer mayor flexibilidad a los desarrolladores de apps, ya que combinan elementos de cascada y ofertas en tiempo real. Los modelos híbridos permiten a los desarrolladores de apps configurar redes de publicidad basadas en eCPM históricos, lo que les da la oportunidad de mostrar un anuncio antes de ejecutar ofertas en tiempo real con las redes participantes para cumplir las oportunidades de anuncios.
Mediación en cascada de Protected Audience
La API de Protected Audience para Android admite la mediación en cascada mediante varias subastas, una para cada nodo individual del gráfico de mediación. Si no hay un ganador para una subasta, se llama al siguiente nodo de subasta de la red hasta que se agote la cadena. El proceso de mediación en cascada es el siguiente:
- El SDK de mediación obtiene la cadena de mediación desde el extremo del servidor de anuncios contextuales, que puede mostrar anuncios contextuales o cadenas de mediación.
- Si el extremo del servidor de anuncios muestra una cadena de mediación, el SDK de mediación itera por cada elemento de la cadena en orden y, luego, invoca el SDK de la red de publicidad participante para ejecutar una selección de anuncios contextuales y de remarketing. Cada elemento de la cadena representa la solicitud de una red de publicidad para comprar espacio publicitario a un precio específico por una cantidad específica de impresiones, clics o tiempo del anuncio.
- Si ninguna de las líneas de pedido de la cadena elige un anuncio ganador, el SDK de mediación puede mostrar un anuncio de su propia red de publicidad ejecutando una selección de anuncios de Protected Audience que tenga en cuenta los anuncios contextuales y de remarketing.
Figura 3: Mediación en cascada con la API de Protected Audience
En el diagrama anterior, se representa un ejemplo de un algoritmo de mediación en cascada que puede implementar un SDK de mediación, pero sin la capacidad de optimización para la red de publicidad propia. La API de Protected Audience admite la optimización de redes de publicidad propias, ya que permite el encadenamiento de flujos de trabajo de selección de anuncios y la generación de informes sobre las impresiones ganadoras.
Resultado de AdSelection
El tipo de datos que muestra selectAds()
es un objeto AdSelectionOutcome
.
AdSelectionOutcome
contiene el URI de renderización del anuncio ganador y AdSelectionId
, que es un número entero opaco que identifica la creatividad del anuncio de la línea de pedido ganadora.
AdSelectionOutcome {
Uri renderUri;
Long AdSelectionId;
}
AdSelectionId
funciona como puntero a AdSelectionOutcome
. Actualmente, AdSelectionId
se pasa al método reportResult()
como el parámetro ReportImpressionInput
para ayudar a identificar los anuncios correctos según los que se invocan los métodos reportWin()
y reportResult()
.
Propuesta de selección de anuncios de cadena
Proponemos extender selectAds()
para que se tengan en cuenta los resultados de las selecciones de anuncios anteriores al seleccionar un anuncio ganador por medio del objeto AdSelectionOutcome
.
Esto permite que las redes de publicidad ejecuten una mediación que tenga en cuenta los anuncios contextuales y de remarketing de varias redes de publicidad.
Se agrega ChainedAdSelections
como parámetro opcional para AdSelectionConfig.
ChainedAdSelections
puede contener una lista de resultados de selección de anuncios de invocaciones anteriores del método selectAds()
en la cadena de mediación. En el siguiente ejemplo, un SDK ejecuta AdSelection
con los resultados del SDK A y el SDK B en el dispositivo. Los SDKs A y B comparten explícitamente el AdSelectionOutcome
de sus respectivas llamadas de selectAds()
al SDK que ejecuta la selección de anuncios en cadena.
AdSelectionConfig myAdSelectionConfig = new AdSelectionConfig {
Seller = "example-ssp1.com",
DecisionLogicURL = Uri.parse("https://..."),
CustomAudienceBuyerList = Arrays.asList("example-dsp1.com","example-dsp2.com"),
AdSelectionSignals = "{"min_price": 10,"auction_attempts": 3}"
SellerSignals = "{"seller_type": "news", "content_category": "sports","mature_ads_accepted" :"false"}"
PerBuyerSignals = "{"example-dsp1.com": {"key1" : "value1"},
"example-dsp2.com": {"key1" : "value1", "key2" : "value2"}"
ChainedAdSelections = {network_a_selection_outcome, network_b_selection_outcome}
};
// Invoke ad services API to initiate ad selection workflow.
AdSelectionOutcome winningAd = selectAds(myAdSelectionConfig);
Figura 4: Encadenamiento de selección de anuncios con selectAds()
Ten en cuenta que el valor que se muestra de esta llamada a selectAds()
es otro objeto AdSelectionOutcome
.
- Si no hay un anuncio seleccionado, se muestra un valor de
null
. - Si alguno de los anuncios a los que hace referencia
ChainedAdSelections
no es el anuncio ganador, se muestra un objetoAdSelectionOutcome
nuevo. - Se muestra uno de los resultados pasados en
AdSelection
si se trata del anuncio seleccionado.
Informes de impresiones ganadoras
En caso de que no haya un ganador de la selección de anuncios en cadena, no se espera que se informe ninguna impresión ganadora.
Si se selecciona uno de los objetos AdSelectionOutcome
que se pasa a AdSelectionConfig
, se espera que el SDK que ejecuta la selección de anuncios en cadena se comunique con el SDK del anuncio ganador para informar el resultado. Luego, el SDK del anuncio ganador puede invocar el informe de impresiones ganadoras, tal como lo haría después de ejecutar su propio AdSelection
. Esto garantiza que se use el JavaScript de la lógica de decisión de los SDK del anuncio ganador para informar el resultado. En este caso, el SDK que ejecuta la selección de anuncios en cadena puede informar qué SDK de anuncios tuvo la impresión ganadora.
Si no se selecciona ninguno de los resultados de AdSelectionOutcome
, el SDK que ejecuta la selección de anuncios en cadena invoca su informe de impresiones ganadoras.
Cómo ejecutar la mediación en cascada
Gracias a su capacidad de encadenar instancias de AdSelectionOutcome
, como se describió anteriormente en esta página, un SDK de mediación puede ejecutar la mediación en cascada y, al mismo tiempo, permitir que se optimice una red de publicidad propia. Este proceso se resume de la siguiente manera:
- El SDK de mediación obtiene una cadena de mediación del servidor de mediación mediante una solicitud de anuncio contextual.
- El SDK de mediación ejecuta la selección de anuncios que tiene en cuenta los anuncios de remarketing y los anuncios contextuales.
El SDK de mediación ejecuta una subasta que considera el resultado de la selección de anuncios propios y el eCPM histórico del primer elemento apto de la cadena de mediación.
Si se selecciona un anuncio, se determina el anuncio ganador y finaliza el proceso.
Si no se seleccionó ningún anuncio, el SDK de mediación selecciona el primer elemento apto de la cadena de mediación y, luego, invoca el SDK correspondiente para ejecutar una selección de anuncios contextuales y de remarketing.
Si se selecciona un anuncio, se lo renderiza y finaliza el proceso.
Si no se selecciona un anuncio, se evalúa el siguiente elemento de la cadena y se ejecuta el paso 3.
Si no hay más elementos en la cadena, el SDK de mediación muestra un anuncio propio con una selección de anuncios de Protected Audience que incluye anuncios de remarketing y contextuales, similar al paso 2.
Figura 5: El proceso de mediación en cascada de la API de Protected Audience
Prácticas recomendadas
Ejecuta subastas contextuales antes de la optimización propia
La demanda de remarketing puede generar ofertas altas que pueden dar lugar a resultados ganadores en una cadena de mediación. El truncamiento es un proceso que se suele usar para habilitar la optimización propia a través del perfeccionamiento de la lista de público de remarketing.
La demanda de remarketing de la API de Protected Audience solo está disponible del lado del cliente con las subastas de Protected Audience. Esto puede dificultar la habilitación de la optimización propia en el servidor. Para mitigar problemas con la optimización propia, se debe ejecutar primero la subasta contextual y, luego, la optimización propia en función del resultado del anuncio ganador, tal como se describió anteriormente en esta página.
Usa cadenas de mediación integradas en el dispositivo cortas
Para obtener un rendimiento óptimo, las cadenas de mediación integradas en el dispositivo deben ser cortas. El costo de procesamiento de la ejecución en el dispositivo puede ser lineal con la cantidad de subastas evaluadas como parte de la cadena de mediación. Es decir, más nodos generan más requisitos de ciclo de procesamiento y mayor latencia. Se debe tener en cuenta el impacto de la latencia en los ingresos al pasar nodos a la evaluación de mediación en el dispositivo.
Consideraciones adicionales
Esta propuesta para la mediación de Protected Audience es un trabajo en curso y se aceptan comentarios.
La API de Protected Audience no ofrece una solución integral para la mediación de varios espacios publicitarios. Cada espacio publicitario debe procesarse de forma independiente.
La API de mediación de Protected Audience admite la mediación en cascada y la mediación programática limitada. Se compartirán más detalles sobre casos de uso adicionales de mediación programática en el futuro.
Dado que la selección de anuncios de Protected Audience se ejecuta después de la recuperación de anuncios contextuales, invocar la API de Protected Audience puede afectar la latencia de extremo a extremo de las solicitudes de anuncios.
Recomendaciones para ti
- Nota: El texto del vínculo se muestra cuando JavaScript está desactivado
- Guía para desarrolladores de la API de Protected Audience en Android
- Admite la segmentación por público personalizada con la API de Protected Audience
- Protected Audience: guía de integración