La limitación de frecuencia es una práctica publicitaria que limita la cantidad de anuncios de una categoría determinada que se muestran a un usuario en un período específico. La limitación de frecuencia mejora la experiencia del usuario, ya que mantiene las impresiones de anuncios actualizadas e interesantes, y ayuda a los anunciantes a administrar la inversión publicitaria.
En esta propuesta, se presenta cómo usar FLEDGE en Android para implementar la funcionalidad de limitación de frecuencia de forma precisa y que preserve la privacidad.
FLEDGE implementa la limitación de frecuencia con la combinación de dos características: el almacenamiento en el dispositivo de contadores para eventos específicos de anuncios y la capacidad de filtrar anuncios según un conjunto predefinido de estrategias de filtro. La limitación de frecuencia permite a los anunciantes indicar un umbral de contador en una suma de valores de histogramas para un período determinado.
Los contadores son únicos para cada combinación de perfil de dispositivo, AdTech y clave de contador. Cada anuncio debe contener un conjunto de claves de contador para usar en caso de que se registre una vista o impresión. Para cada clave, FLEDGE almacena un conjunto de contadores, y cada uno de ellos tiene todos los eventos específicos del anuncio que ocurren dentro de un intervalo de tiempo específico. Los contadores en el dispositivo aumentan cuando se produce una impresión o una vista, y los datos de los contadores se conservarán en el dispositivo. El tiempo de persistencia exacto se definirá más adelante.
La lógica de filtrado de anuncios en el flujo de trabajo de selección de anuncios de FLEDGE tiene acceso a contadores, anuncios de remarketing y anuncios contextuales, lo que le permite a la limitación de frecuencia de FLEDGE trabajar con todos estos tipos de solicitudes de anuncios.
Nota: El filtrado de anuncios solo está disponible en Privacy Sandbox en Android. Actualmente, la implementación de FLEDGE de Chrome no implementa un mecanismo para filtrar anuncios de segmentación contextual que no sean de FLEDGE. Esta propuesta solo abarca la compra. Si hay demanda, agregaremos asistencia para vendedores más adelante.
La limitación de frecuencia de FLEDGE admite una amplia gama de requisitos, incluidos los siguientes:
- Filtrado en tiempo real, con un retraso mínimo del servidor cuando se actualizan los contadores en el dispositivo
- Jerarquía de claves flexible (incluidos los anuncios individuales, las campañas o cualquier otro grupo)
- Congruencia con otros métodos de limitación de frecuencia, sin depender del ID del anuncio
- Compatibilidad con diferentes apps en un perfil de usuario determinado del dispositivo
- Contadores precisos y completos
- Compatibilidad con definiciones personalizadas de eventos de anuncios, como vistas o impresiones
- Una función para el remarketing y los anuncios contextuales
Para configurar la limitación de frecuencia, sigue estos pasos:
Paso 1: Agrega información sobre la limitación de frecuencia a los anuncios
Los anuncios contextuales y de remarketing indicarán cuáles son los contadores de histogramas relevantes que deben actualizarse en caso de una vista o impresión mediante un nuevo campo on_device_counters_keys
, que contendrá una lista de valores clave arbitrarios. El campo no está incluido en el campo metadata
que FLEDGE no analiza.
En el siguiente ejemplo, se muestra el formato de datos para el campo adsData
en AdSelectionConfig
. Para el remarketing, el formato de la lista de anuncios para un público personalizado determinado es coherente con el contenido del campo ads
que se muestra a continuación:
'adsData': [
{
"buyer": "ads.example.com",
"ads": [
{
'render_url': 'exampleUrl',
'metadata': {...}, /* metadata are opaque to FLEDGE and
just required to be in valid JSON
format */
'on_device_counters_keys': [
'campaign_id:1234',
'campaign_id:1234+adgroup_id:5678'
]
}]
}]
}
Paso 2: Registra una vista o impresión
Las AdTech pueden invocar el método updateEventHistogram
a fin de registrar casos de eventos que se usan para la limitación de frecuencia. Se puede invocar un método de manera repetida en el mismo evento para las claves especificadas en el eventType
del anuncio ganador.
void updateEventHistogram(@EventType eventType, long adSelectionId)
Entradas:
eventType
: Identifica si un evento se cuenta como una vista, una impresión o la victoria del proceso de selección de anuncios.adSelectionId
: Son los valores de ID en el objetoAdSelectionOutcome
que muestran las llamadasselectAds
.
La llamada updateEventHistogram
actualiza el histograma del conjunto de claves definidas como parte de los anuncios de remarketing recuperados por un CustomAudience
o los anuncios contextuales incluidos en el parámetro AdSelectionConfig
para selectAds
. Además de las claves en on_device_counters_keys
, la llamada también actualizará el histograma de un contador identificado por el valor render_url
del anuncio.
Si suponemos que el anuncio del Paso 1 es el ganador de una AdSelection
con un valor de id
de 9999
, una llamada a updateEventHistogram(EventType.VIEW,
adSelectionId: 999)
aumenta los contadores de las siguientes tres claves primarias:
{'ads.example.com', 'campaign_id:1234', VIEW}
{'ads.example.com', 'campaign_id:1234+adgroup_id:5678', VIEW}
{'ads.example.com', 'exampleUrl', VIEW}
.
El nombre de AdTech se toma del campo del comprador, ya sea de los anuncios contextuales o de los públicos personalizados, según el origen de los anuncios ganadores.
FLEDGE para Android aumentará de forma automática todos los contadores mencionados anteriormente para el tipo de evento EventType.AD_SELECTION_WIN
para los anuncios que muestra una llamada a la API selectAds
. Esto es funcionalmente equivalente a agregar el argumento prev_wins
a browser_signals
en generateBid
en la implementación de FLEDGE de Chrome.
Paso 3: Implementa filtros de limitación de frecuencia
Para obtener un rendimiento óptimo, la función de filtrado de limitación de frecuencia se ejecuta en AdServices
. FLEDGE entiende si un mensaje debe filtrarse con la lectura del campo de filtros en el objeto AdsData
. En frequency_cap
, se especifica una lista de filtros. Los valores de clave, event_type
y interval_seconds
se usan a fin de recuperar un histograma de eventos que se usan para filtrar y FLEDGE.
Se puede especificar información de filtros para los anuncios de remarketing proporcionados por un público personalizado y para los anuncios contextuales como parte del objeto AdSelectionConfig
.
Para los anuncios contextuales con filtros de limitación de frecuencia, los anuncios se pasan con el campo de anuncios en el objeto AdSelectionConfig
. Los anuncios se filtran y el que tenga la oferta más alta se muestra como resultado de la llamada selectAds
.
En el caso de los anuncios de remarketing con filtros de limitación de frecuencia, los anuncios se filtran antes de que se invoque la función de JavaScript generateBid()
proporcionada por el comprador.
En el siguiente ejemplo, se muestra un mensaje con filtro de limitación de frecuencia:
{
'render_url': 'url',
'metadata': {...}, /* metadata are opaque to FLEDGE and assumed
to be in valid JSON format */
'on_device_counters_keys': [
'campaign_id:1234',
'campaign_id:1234+adgroup_id:5678'
],
"filters": {
"frequency_cap": {
"view": {
"campaign_id:1234": {
"cap": 10,
"interval_seconds": 86400
},
"adgroup_id:5678": {
"cap": 10,
"interval_seconds": 86400
},
},
"win": {
"campaign_id:1234": {
"cap": 5,
"interval_seconds": 604800
},
"adgroup_id:5678": {
"cap": 5,
"interval_seconds": 345600
},
}
},
// This field is only required in contextual ads and is used in
// reportImpression calls to fetch the reportWin function.
'reportingJS': "https://ads.example.com?reportWin.js"
}
Paso 4: Genera informes sobre los anuncios ganadores
Una vez que se completa el proceso de selección de anuncios, se muestra un objeto AdSelectionOutcome
que contiene renderUri
y adSelectionId
, un identificador numérico para la llamada selectAds
. Este ID se puede usar para invocar la API de reportImpression
, que actualmente admite informes a nivel de evento. En la versión beta 1, este método admite la generación de informes de anuncios de remarketing y se extenderá para admitir informes de anuncios contextuales en una versión posterior. En el caso de los anuncios contextuales, el comprador debe indicar dónde se puede recuperar la función reportWin
durante una llamada a reportImpression
con un campo adicional llamado reportingJS
en la estructura del anuncio, como se muestra en el ejemplo anterior.
Prácticas recomendadas para seleccionar candidatos de anuncios
FLEDGE traslada la aplicación de la limitación de frecuencia del servidor al dispositivo. Aunque las ofertas ganadoras se informan con Privacy Sandbox, los desarrolladores no sabrán los motivos por los que no se muestra un anuncio. Es posible que los anuncios no se muestren debido a una oferta perdida o a la limitación de frecuencia. Sin una visibilidad completa de los motivos por los que ciertos anuncios no ganan, los sistemas de ofertas requieren trabajo adicional para garantizar que se publiquen los anuncios óptimos. Estas prácticas recomendadas ayudarán a garantizar una publicación de anuncios óptima con FLEDGE.
Envía suficientes anuncios de remarketing
Los anuncios de remarketing no se pueden optimizar por usuario. Si un usuario ve una cantidad significativa de anuncios de un público personalizado y los límites son bajos, es posible que se filtren todos los anuncios. Los anuncios de remarketing se actualizan periódicamente, por lo que se debe pasar suficiente inventario de anuncios a través de la limitación de frecuencia para garantizar que los anuncios de remarketing sigan publicándose. Esto debe equilibrarse con limitaciones en el tamaño de los anuncios que se pueden especificar durante la llamada a joinCustomAudience
y durante el proceso de recuperación en segundo plano de públicos personalizados. Los compradores deben considerar que puede haber un aumento en la latencia durante la fase de oferta. Para minimizar el impacto de estos problemas, se filtra la limitación de frecuencia antes de la llamada a generateBid
.
Usa contadores contextuales en el servidor
Con la estimación del servidor, un desarrollador puede tener estimaciones aproximadas de cuándo la limitación de frecuencia puede estar activa. Estas estimaciones pueden indicar que es probable que un anuncio haya alcanzado el límite de frecuencia y, por lo tanto, deben enviarse con más candidatos de anuncios o eliminarse por completo.
Envía varios candidatos de anuncios en la respuesta contextual
Debes enviar varios candidatos de anuncios con una respuesta contextual antes de una subasta de FLEDGE. Esto garantiza que, si se filtran varios anuncios, se seguirán mostrando otros. Se puede priorizar a los candidatos de anuncios para que algunos anuncios se proporcionen como copia de seguridad.
Dado que la ejecución está limitada por el tiempo, los candidatos de anuncios deben elegirse según su probabilidad de ganar una subasta y de no quedar filtrados.
Limitaciones
Las siguientes son limitaciones de frecuencia conocidas de FLEDGE:
- La limitación de frecuencia de FLEDGE funciona a nivel del perfil del usuario del dispositivo y, actualmente, no tiene contadores compartidos en otros dispositivos y perfiles. Si se desea, cualquier incremento de anuncios que se muestren desde otros dispositivos deberá incorporarse de forma manual.
- Los contadores del dispositivo se almacenan y se accede a ellos en el dispositivo. Los contadores del servidor deben administrarse por separado.
- Como la limitación de frecuencia y el filtrado de anuncios relacionado se procesan en un dispositivo, las plataformas de AdTech no tienen control directo sobre estas operaciones. Para borrar el umbral de limitación de frecuencia del dispositivo, las plataformas de AdTech pueden enviar varios anuncios candidatos.
- No se admiten los ajustes de la oferta en función de la frecuencia registrada. Las funciones
generateBid
no pueden ver los contadores de frecuencia.