Publicidad basada en intereses con la API de Topics

Enviar comentarios

Acerca de la API de Topics

En la publicidad para dispositivos móviles, los anunciantes desean publicar anuncios relevantes que se relacionen con el interés de un usuario. Por ejemplo, si a un usuario le interesa la información relacionada con la cocina, es posible que piense que los anuncios relacionados con ese tema son más relevantes que los que no se relacionan con sus intereses.

La publicidad basada en intereses (IBA) es una forma de publicidad personalizada en la que un anuncio se selecciona para el usuario en función de los intereses provenientes de las apps con las que participó en el pasado. Esto es diferente de la publicidad contextual, que se basa solo en los intereses derivados del contenido que se visualiza en el momento. Uno de los beneficios de IBA en comparación con la publicidad contextual es que permite que las apps muestren anuncios más relevantes y atractivos a los usuarios.

La API de Topics infiere indicadores generales de interés en el dispositivo a partir de las apps que usa un usuario. Estos indicadores, llamados temas, se comparten con los anunciantes y admiten los casos de uso de IBA sin necesidad de hacer un seguimiento de los usuarios individuales en las apps.

Conceptos clave

  • Un tema es aquel que es de interés legible para un usuario y forma parte de la taxonomía de Topics.
  • Un llamador (una app o un SDK de terceros que se usa en la app) observa un tema si envía una solicitud a la API de Topics desde una app asociada con este tema durante los últimos 3 ciclos de entrenamiento.
  • Un ciclo de entrenamiento es un período de procesamiento de temas, como una semana.

Cómo funciona

Con esta propuesta, la API de Topics tiene la intención de proporcionar a los llamadores temas de interés generales y basados en el uso de la app del usuario. Estos temas se pueden usar para complementar cualquier información contextual relacionada con la app que desee mostrar un anuncio y se pueden combinar a fin de ayudar a encontrar un anuncio adecuado para el usuario.

Consulta la Guía para desarrolladores de la API de Topics para obtener ejemplos de código que muestran cómo configurar la capacidad de recuperar temas para la publicidad basada en intereses. Nota: Las APIs aún no están finalizadas.

Los temas se seleccionan desde una taxonomía de código abierto predefinida.

La plataforma usa un modelo clasificador para inferir temas. La implementación de la API de Topics y su uso del clasificador formarán parte del Proyecto de código abierto de Android y mejorarán con el tiempo.

A fines ilustrativos, el siguiente ejemplo de código demuestra el uso de temas para obtener un anuncio basado en intereses. Las APIs que se usan aquí no son definitivas.

// Initialize the Topics API.
…
topicsFuture = AdvertisingTopicsClient.getTopics();

// Retrieve Topics and use them in Ad request.
Futures.addCallback(
    topicsFuture,
    new FutureCallback<AdvertisingTopicsInfo>() {
        @Override
        public void onSuccess(@Nullable AdvertisingTopicsInfo topicsInfo) {
            // Sanitize Topics result.
            ...
            // Initialize ad request with Topics obtained.
            AdRequest adRequest = AdRequest.initialize(topicsInfo);
        }

        @Override
        public void onFailure(Throwable t) {
            // Handle error.
            ...
        }
});

Para comprender mejor cómo funciona el modelo de clasificación, puedes probar cómo reaccionan los diferentes datos de app en el sistema mediante el Colab del clasificador de Topics de Android.

Obtén acceso a las APIs de Topics

Las plataformas de tecnología publicitaria deben inscribirse para acceder a la API de Topics. Consulta Inscríbete para obtener una cuenta de Privacy Sandbox si quieres obtener más información.

Detalles

  • Una vez en cada ciclo de entrenamiento (p. ej., una vez a la semana), los 5 temas principales del usuario se calculan usando información almacenada en el dispositivo.

    • Cuando se llama a la API de Topics, la plataforma verificará si se asignó un tema a la app que invoca la API. Si no hay ningún tema asignado, se elegirá uno de la siguiente manera y se asignará a esta app durante el resto del ciclo de entrenamiento.
      • Con una probabilidad del 95%, se elige un tema de forma aleatoria de la lista de los 5 temas principales calculados para ese ciclo de entrenamiento.
      • Con un 5% de probabilidad, se elige de forma aleatoria un tema de la taxonomía.
      • Un llamador puede especificar que le gustaría recuperar temas sin modificar el estado llamando a getTopics con el parámetro shouldRecordObservation = false. Esto significa que se pueden mostrar temas, pero la llamada no se incluirá en el cálculo de la época semanal, ni actualizará la lista de temas observados para el llamador.
    • La razón por la que cada app recibe uno de varios temas es para garantizar que las diferentes apps tengan temas distintos y, así, dificultar la correlación cruzada de un mismo usuario.
      • Por ejemplo, la app A podría ver el tema T1 del usuario, pero la app B podría ver el tema T2. Esto hace que sea más difícil para las dos apps determinar que esta información está asociada con el mismo usuario.
  • La API de Topics muestra una lista de hasta 3 temas, 1 de cada uno de los últimos 3 ciclos de entrenamiento.

    • Si proporcionas hasta 3 temas, las apps que se usan con poca frecuencia tendrán suficientes temas para encontrar anuncios relevantes, pero las que se usan con mucha frecuencia aprenderán como máximo 1 tema nuevo por semana.
    • La información del tema que se muestra incluye un ID de tema (int) que corresponde a una entrada en la taxonomía, una versión de taxonomía y una versión de modelo de clasificador.
    • Solo los llamadores que observaron al usuario usan una app asociada con el tema en cuestión dentro los últimos 3 ciclos de entrenamiento pueden recibir el tema.
    • Todos los temas que se muestran representan los intereses del usuario, y puedes seleccionar cualquiera o todos los temas para la personalización de anuncios en tu solicitud de anuncio.
  • Después de que se asigna un tema a la app que invoca la API de Topics, la plataforma determinará si el llamador puede recibir este tema.

    • Solo los llamadores que observaron la participación de los usuarios de una app asociada con el tema en cuestión en los últimos 3 ciclos de entrenamiento pueden recibir el tema.
    • Si el llamador no llamó a la API con anterioridad para ese usuario en una app relacionada con ese tema, el tema no se incluirá en la lista que muestra la API.
    • Si el llamador no recibió ningún tema en los últimos 3 ciclos de entrenamiento, la API de Topics mostrará una lista vacía.

    Por ejemplo, supongamos que el usuario tiene 7 apps instaladas en el dispositivo: A, B, C, D, E, F y G. Supongamos que la clasificación del tema de la app y los SDKs de tecnología publicitaria en estas apps son los siguientes:

    App Clasificación de temas SDK de tecnología publicitaria
    A T1, T5 ad-sdk1, ad-sdk2
    B T2 ad-sdk2
    C T3, T6 ad-sdk3, ad-sdk4
    D T1, T4 ad-sdk1
    E T5 ad-sdk4, ad-sdk5
    F T6 ad-sdk2, ad-sdk3, ad-sdk4
    G T7 ad-sdk2
    • Final de la semana 1: la API de Topics genera los 5 temas principales del usuario para este ciclo de entrenamiento.
    Tema principal Llamadores que pueden aprender el tema
    T1 ad-sdk1, ad-sdk2
    T2 ad-sdk2
    T3 ad-sdk3, ad-sdk4
    T4 ad-sdk1
    T5 ad-sdk1, ad-sdk2, ad-sdk4, ad-sdk5
    • En la semana 2, si un llamador de cualquier app llama a la API, la lista de temas mostrada solo incluirá temas para los que el llamador esté en la columna "Llamadores que pueden aprender el tema" de un tema y app determinados para ese ciclo de entrenamiento.
    • La ventana del historial incluida en el cálculo de los temas disponibles para cada llamador comprende 3 ciclos de entrenamiento (o 3 semanas).
    • Solo se usan los temas asociados con apps que invocan la API de Topics, ya sea directamente o a través de los SDKs de anuncios. Esto significa que, si una app no incluye ningún SDK de anuncios que llame a la API de Topics y no invoca la API en sí, los temas asociados con esa app no contribuyen a los temas compartidos con otras apps o SDKs de anuncios.
    • Una app también puede inhabilitar declarativamente la API de Topics a través de nuevos elementos de manifiesto y XML para impedir que los SDKs de anuncios usen la API para esa app. Los temas asociados con las apps inhabilitadas no contribuyen al cálculo semanal de temas. Este documento se actualizará para incluir los detalles de implementación relacionados.
  • Si no existe suficiente uso de la app para que la plataforma infiera 5 temas, esta podría, por ejemplo, generar temas restantes de forma aleatoria.

Taxonomía

  • En la propuesta actual, la taxonomía inicial incluirá entre cientos y miles de temas. La propuesta inicial de taxonomía se compartirá en una actualización futura de este documento.
  • Esta taxonomía será curada por seres humanos, por lo que no se incluirán temas sensibles.
  • La taxonomía se adaptará a las categorías de anuncios que se pueden mostrar en las apps para dispositivos móviles en Android.
  • La taxonomía es de código abierto y está sujeta a cambios. Las sugerencias se pueden registrar con el botón de comentarios en la parte superior de esta página.

Clasificador de temas

Los temas de interés derivan de un modelo clasificador que se entrena en función de la información pública de la app (como el nombre, la descripción y el nombre del paquete).

  • Cuando se usa el modelo clasificador para la inferencia a fin de indicar los temas para un ciclo de entrenamiento determinado, el conjunto de indicadores utilizados permanece en el dispositivo. Este conjunto de indicadores puede incluir apps instaladas o usadas recientemente y, además, podría expandirse más tarde para incluir otros indicadores.
  • Google entrenará los modelos iniciales, en los que los datos de entrenamiento incluirán etiquetas seleccionadas por seres humanos para obtener información disponible de manera pública sobre la app. El modelo estará disponible sin cargo para que las apps prueben los temas a fin de ver en cuáles clasifican.
  • Los modelos iniciales se entrenarán con información disponible públicamente de las apps de un conjunto limitado de tiendas de aplicaciones, como Google Play Store.
  • Es posible que una app se asigne a más de 1 tema, a ninguno, o bien que no se agregue al historial de temas del usuario. En caso de que una app se asigne a más de 1 tema en la taxonomía, la cantidad de temas elegidos para esta app se limitará a los 3 principales.

Controles de usuario

  • El objetivo del diseño es que los usuarios puedan ver y quitar los temas asociados con su uso de la app. La implementación de esta función de control de usuario es un trabajo en curso y se incluirá en una actualización futura.
  • Si el usuario desinstala una app que contribuyó a la selección de un tema inferido en los últimos 3 ciclos, ese tema no se quitará de la lista de temas mostrados en los últimos 3 ciclos para evitar la divulgación sobre la desinstalación.

Para facilitar la prueba de la experiencia del usuario final, también puedes iniciar un intent en la app para ver la IU de configuración de Topics de manera similar a como lo vería un usuario final. A continuación, se muestra un ejemplo de esa llamada:

//Button that launches settings UI
private Button mSettingsAppButton;
private static final String RB_SETTING_APP_INTENT = "android.adservices.ui.SETTINGS";

//Does setup for button on screen that will launch settings UI to observe Topics
private void registerLauchSettingsAppButton() {
    mSettingsAppButton.setOnClickListener(
        new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                Context context = getApplicationContext();
                Intent activity2Intent = new Intent(RB_SETTING_APP_INTENT);
                activity2Intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(activity2Intent);
            }
        });
}