API de Topics para la Web

La API de Topics habilita la publicidad basada en intereses sin usar cookies de terceros.

How the Topics API works

The Topics API can be used to observe and provide access to topics that appear to be of interest to the user, based on their activity. The Topics API can then give API callers (such as ad tech platforms) access to a user's topics of interest, but without revealing additional information about the user's activity.

Key concepts

  • A topic is a human-readable topic of interest for the current user and is part of the Topics taxonomy.
  • A caller is an entity, such as an app, a third-party SDK, a website, or service, that makes a request to the Topics API to observe or access a user's interests.
  • A topic is observed by a caller, if the caller made a Topics API request from a web page or app associated with this topic during the past three epochs.
  • An epoch is a period of topic computation, which defaults to one week.
  • A taxonomy is a hierarchical list of categories, which includes, for example, such categories as /Arts & Entertainment/Music & Audio/Soul & R&B and /Business & Industrial/Business Services/Corporate Events.
  • Topics are derived using a classifier model that maps user activity to zero or more topics.

Topics API flow core steps

The Topics API lifecycle has three main steps:

  • Observe user activity, such as when they visit the web page https://cats.example/tabby/index.html or download the app cats.
  • Derive topics from user activity, for example /Pets & Animals/Pets/Cats.
  • Access topics previously observed for the user, for example as a signal to select relevant advertising (such as a cat food promotion).

Observe topics

Callers can only access topics of interest that they've observed. A caller observes a topic when they make a Topics API request from a context associated with this topic. To illustrate this concept, consider the following simplified example.

  • Suppose there are two Topics API callers: A and B.
  • There are two contexts:
    • Greenhouse, for example an app named Greenhouse or a website greenhouse.example, associated with the topic Home & Garden.
    • Tennis exercises, for example an app named Tennis Exercises or a website tennis.example, associated with the topic Sports/Tennis.
  • Both caller A and B are present in the context of Greenhouse.
  • Only the caller B is present in the context of Tennis exercises.
  • Assume that no topics were observed for the user before epoch 1, for the sake of simplification.
  • The user visits the Greenhouse app, and callers A and B make a Topics API call to record the user visit to the page or app (see the implementation guide suggested in Next steps to find out how to call the Topics API). This record (a hostname or app data) is later used to derive topics of interest. The Topics API will later mark the topic Home & Garden as observed by both callers A and B.
  • The user visits the Tennis exercises app. Only the caller B sends a Topics API request. The Topics API will later mark the topic Sports/Tennis as observed by the caller B.
  • By the end of the epoch, the Topics API refreshes the user's top topics and determines the callers that observed these topics based on user activity.
  • Later, when the caller B makes another Topics API call, it can get either Home & Garden or Sports/Tennis topic (or, with a 5% chance, a random topic) for this user in the response array.
  • Caller A can only access the topic Home & Garden, as it has never observed the topic Sports/Tennis. This means that a third-party will only learn about a user's topic of interest within the specific context (app or website) where it is present.
Diagram showing tat the Topics API only marks the topics as observed if the callers has presence in the context.
The Topics API marks the topics observed only by the callers that have presence in the context of these topics. The callers will only be able to access the topics they have observed.

Derive topics

Topics derives topics of interest from user activity. The topics are selected from a predefined open-source taxonomy. Once per epoch, Topics refreshes the user's top five topics and the callers that observed them during the epoch. The Topics classifier model derives topics from user activity: hostname for a web page visit, app information on Android.

Caller accesses user's topics of interest

The API returns only topics that have been observed by the caller within the most recent three epochs. A maximum of three topics may be returned to a caller,one topic for each of the three recent epochs (if the caller observed topics for that epoch). The returned topics can be used by the caller to supplement any contextual information and can be combined to help find a more relevant ad for the user.

Epochs

The Topics API must ensure that the topics of interest it provides are kept up to date. The topics are inferred for a user based on their activity during a period of time known as an epoch, one week by default. Each user has their own epochs (epochs are "per user") and the initial start time is randomized.

Once each epoch, the Topics API computes the user's top five topics and determines which callers observed those topics using on-device information. The topic selected for each epoch is randomly selected from the user's top five topics for that time period. To further enhance privacy and ensure that all topics may be represented, there is a 5% chance the topic is randomly selected from all possible topics in the taxonomy of interests.

Temas sobre la Web en la práctica

En la Web, los temas se infieren de los nombres de host de las páginas que visita el usuario. Por ejemplo, el tema inferido para el sitio web dogs.example podría ser /Pets & Animals/Pets/Dogs.

En el siguiente diagrama, se muestra un ejemplo simplificado para demostrar cómo la API de Topics podría ayudar a una plataforma de tecnología publicitaria a seleccionar un anuncio adecuado. En el ejemplo, se supone que el navegador del usuario ya tiene un modelo para asignar nombres de host de sitios web a temas.

Diagrama que muestra las etapas del ciclo de vida de la API de Topics, desde que un usuario visita sitios web hasta que se muestra un anuncio.
El diagrama del ciclo de vida de la API de Topics describe las etapas de las acciones de la API desde un punto de vista de alto nivel.

El navegador determina el origen del llamador a partir del contexto del código que llama a la API de Topics. En la práctica, esto significa que los usuarios de Topics llaman a la API en un iframe desde su origen o incluyen temas en una recuperación a su origen.

Por ejemplo, una plataforma orientada a la oferta (SSP) se puede incorporar en varios sitios de publicadores. Luego, la SSP podría llamar a la API de Topics dentro de un iframe desde su origen, lo que le permitiría observar los temas asociados con un usuario en los sitios de esos publicadores. Luego, estos temas se pueden compartir con una plataforma orientada a la demanda (DSP) para ayudarla a seleccionar un anuncio relevante para el usuario.

Cómo la API decide qué llamadores ven qué temas

Los llamadores de API solo reciben temas que han observado recientemente, y los temas de un usuario se actualizan una vez por cada época: un período que se establece en una semana en la implementación de Chrome. Esto significa que la API proporciona un período de implementación en el que un llamador determinado puede recibir temas observados.

En la siguiente tabla, se describe un ejemplo (aunque poco realista) de un historial de navegación hipotético de un usuario durante una sola época, que muestra los temas asociados con los sitios que visitó y los llamadores de API presentes en cada sitio (las entidades que llaman a document.browsingTopics() en el código JavaScript incluido en el sitio).

Sitio Temas Llamadores de API en el sitio
running.example Running & Walking
Athletic Shoes
adtech1.example
adtech2.example
dogs.example Dogs adtech1.example
holiday.example Hotels & Accommodations adtech2.example
sunglasses.example Sunglasses [none]

Al final de la época (que, de forma predeterminada, es de una semana), la API de Topics genera los temas principales del navegador para la semana.

  • adtech1.example ahora puede recibir los temas Running & Walking, Athletic Shoes y Dogs, ya que los observó en running.example y dogs.example.
  • adtech1.example no es apto para recibir el tema Hotels & Accommodations para este usuario, ya que no está presente en ningún sitio que el usuario visitó recientemente y que esté asociado a ese tema.
  • adtech2.example vio los temas Running & Walking, Athletic Shoes y Hotels & Accommodations, pero no vio el tema Dogs.

El usuario visitó sunglasses.example, que tiene el tema Sunglasses, pero no hubo llamadas a la API de Topics en ese sitio. lo que significa que la API no mostrará el tema Sunglasses para ningún llamador.

En la segunda semana, el usuario visita otro sitio:

Sitio Temas Llamadores de API en el sitio
cameras.example Camera & Photo Equipment adtech2.example

Además, se agrega el código de adtech2.example a sunglasses.example:

Sitio Temas Llamadores de API en el sitio
sunglasses.example Sunglasses adtech2.example

Esto significa que, además de Running & Walking, Athletic Shoes y Hotels & Accommodations de la semana 1, adtech2.example ahora podrá recibir los temas Camera & Photo Equipment y Sunglasses, pero recién en la siguiente época, la semana 3. De esta manera, se garantiza que los terceros no puedan obtener más información sobre el pasado de un usuario (en este caso, un interés en la moda) como sí podrían hacerlo con las cookies.

Después de otras dos semanas, es posible que Running & Walking, Athletic Shoes y Hotels & Accommodations salgan de la lista de temas aptos de adtech2.example si el usuario no visita ningún sitio con esos temas que incluyan el código de adtech2.example.

Los pasos que sigue la API de Topics cuando los usuarios visitan sitios que usan la API.
Cómo la API observa y accede a los temas.

Modelo de clasificador

Topics usa un modelo de clasificación que asigna los nombres de host de los sitios web a cero o más temas (si se analiza información adicional, como las URLs completas o el contenido de las páginas, es posible que se permitan anuncios más relevantes, pero también podría verse afectada la privacidad).

Taxonomía

Los temas se seleccionan de una taxonomía. Chrome seleccionó estos temas con el objetivo de que la taxonomía se convierta en un recurso mantenido por colaboradores de confianza del ecosistema. La taxonomía debe ser lo suficientemente pequeña para que muchos navegadores de los usuarios se asocien con cada tema. El objetivo final es que la taxonomía provenga de una parte externa que incorpore comentarios y ideas de toda la industria.

Para evitar categorías sensibles, los temas deben ser públicos, estar seleccionados por humanos y mantenerse actualizados. La taxonomía que usa Chrome fue seleccionada por humanos para excluir categorías que se suelen considerar sensibles, como la etnia o la orientación sexual.

Clasificación de temas

Los temas se seleccionan manualmente para 50,000 sitios principales, y esta lista de anulación seleccionada de nombres de host y temas se usa para entrenar el modelo de clasificador. En el caso de los sitios principales, se accede a los temas desde la lista de anulación en lugar de usar el modelo de clasificador. Puedes ver la lista de anulación de forma local en tu computadora.

Página chrome://topics-internals con el panel Classifier seleccionado.
En el panel Classifier de la página chrome://topics-internals, se muestra la versión del modelo, su ruta de acceso y los temas asociados con cada host de la lista.

La implementación de la API de Topics por parte de Chrome descarga un archivo TensorFlow Lite que representa el modelo para que se pueda usar de forma local en el dispositivo del usuario.

Cómo se seleccionan los cinco temas principales del usuario

La API muestra un tema para cada época, hasta un máximo de tres. Si se muestran tres, se incluyen temas para la época actual y las dos anteriores.

  1. Al final de cada época, el navegador compila una lista de páginas que cumplen con los siguientes criterios:
    • El usuario visitó la página durante la época.
    • La página incluye código que llama a document.browsingTopics().
    • Se habilitó la API (por ejemplo, no la bloqueó el usuario ni un encabezado de respuesta).
  2. En el dispositivo del usuario, el navegador usa el modelo de clasificación que proporciona la API de Topics para asignar el nombre de host de cada página a una lista de temas.
    • Cada uno de los 22 temas raíz de la taxonomía se asigna a un bucket de "utilidad alta" o "utilidad estándar" según los comentarios del ecosistema publicitario. El navegador primero ordena los temas según su asignación de bucket. Todos los temas secundarios heredan la asignación de bucket de su tema raíz superior. Se priorizaron los temas de "gran utilidad".
    • Luego, el navegador ordena los temas por frecuencia dentro de cada bucket.
    • Los cinco temas principales de esta lista ordenada se seleccionan como los temas principales del usuario para esa época.

Luego, el método document.browsingTopics() muestra un tema aleatorio de los cinco principales para cada época, con un 5% de probabilidades de que cualquiera de estos se elija de forma aleatoria a partir de la taxonomía completa de temas. En Chrome, los usuarios también pueden quitar temas individuales o borrar su historial de navegación para reducir la cantidad de temas que muestra la API. Los usuarios también pueden inhabilitar la API.

Puedes ver información sobre los temas observados durante la época actual en la página chrome://topics-internals.

Next steps

Get your environment ready to test and develop web applications with the Topics API.
Check out implementation details and code samples for callers to observe and access topics.

Consulta también

Consulta nuestros recursos para comprender mejor la API de Topics en la Web.