API Topics para Web

A API Topics ativa a publicidade com base em interesses sem usar cookies de terceiros.

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.

Tópicos na Web na prática

Na Web, os temas são inferidos com base nos nomes de domínio das páginas que o usuário visita. Por exemplo, o tópico inferido para o site dogs.example pode ser /Pets & Animals/Pets/Dogs.

O diagrama a seguir mostra um exemplo simplificado para demonstrar como a API Topics pode ajudar uma plataforma de adtech a selecionar um anúncio adequado. O exemplo pressupõe que o navegador do usuário já tenha um modelo de mapeamento dos nomes do host dos sites para os temas.

Diagrama mostrando os estágios no ciclo de vida da API Topics, desde um usuário que visita sites até um anúncio sendo veiculado.
O diagrama do ciclo de vida da API Topics apresenta os estágios das ações da API de um ponto de vista geral.

O navegador determina a origem do autor da chamada com base no contexto do código que chama a API Topics. Na prática, isso significa que os usuários da API Topics chamam a API em um iframe da origem ou incluem temas em um fetch para a origem.

Por exemplo, uma plataforma de fornecimento (SSP, na sigla em inglês) pode ser incorporada em vários sites de editores. A SSP poderia chamar a API Topics em um iframe da origem, permitindo que ela observe os temas associados a um usuário nos sites do editor. Esses temas podem ser compartilhados com uma plataforma de demanda (DSP) para ajudar a selecionar um anúncio relevante para o usuário.

Como a API decide quais autores de chamadas podem ver quais temas

Os autores das chamadas de API só recebem temas observados recentemente, e os temas de um usuário são atualizados uma vez a cada época, um período definido como uma semana na implementação do Chrome. Isso significa que a API fornece uma janela contínua em que um autor da chamada pode receber temas observados.

A tabela a seguir descreve um exemplo (embora não realista) de um histórico de navegação hipotético de um usuário durante uma única época, mostrando temas associados aos sites que ele visitou e os autores de chamadas de API presentes em cada site (as entidades que chamam document.browsingTopics() no código JavaScript incluído no site).

Site Tópicos Autores da chamada da API no site
running.example Running & Walking
Athletic Shoes
adtech1.example
adtech2.example
dogs.example Dogs adtech1.example
holiday.example Hotels & Accommodations adtech2.example
sunglasses.example Sunglasses [nenhum]

No final da época (uma semana por padrão), a API Topics gera os principais temas do navegador para a semana.

  • adtech1.example agora está qualificado para receber os temas Running & Walking, Athletic Shoes e Dogs, porque os observou em running.example e também em dogs.example.
  • adtech1.example não está qualificado para receber o tema Hotels & Accommodations deste usuário porque não está presente nos sites visitados recentemente associados a esse tema.
  • adtech2.example observou os temas Running & Walking, Athletic Shoes e Hotels & Accommodations, mas não o Dogs.

O usuário visitou o site óculos-de-sol.example, que tem o tema Sunglasses, mas não houve chamadas à API Topics nesse site. Neste ponto, isso significa que o tema Sunglasses não seria retornado pela API para nenhum autor da chamada.

Na segunda semana, o usuário visita outro site:

Site Tópicos Autores da chamada da API no site
cameras.example Camera & Photo Equipment adtech2.example

Além disso, o código de adtech2.example é adicionado a sunglasses.example:

Site Tópicos Autores da chamada da API no site
sunglasses.example Sunglasses adtech2.example

Assim como Running & Walking, Athletic Shoes e Hotels & Accommodations da semana 1, isso significa que adtech2.example agora pode receber os temas Camera & Photo Equipment e Sunglasses, mas não até a época seguinte, na terceira semana. Isso garante que terceiros não possam saber mais sobre o passado de um usuário do que conseguiriam usando cookies, como nesse caso, saber sobre um interesse em moda.

Depois de mais duas semanas, Running & Walking, Athletic Shoes e Hotels & Accommodations podem sair da lista de temas qualificados de adtech2.example se o usuário não acessar sites com esses temas que incluem código de adtech2.example.

As etapas que a API Topics segue quando os usuários visitam sites que usam a API.
Como a API observa e acessa tópicos.

Modelo de classificador

A API Topics usa um modelo de classificador que mapeia os nomes de host de sites para zero ou mais temas. A análise de outras informações, como URLs completos ou conteúdo da página, pode permitir anúncios mais relevantes, mas também reduzir a privacidade.

Taxonomia

Os temas são selecionados em uma taxonomia. Esses temas foram selecionados pelo Chrome com o objetivo de tornar a taxonomia um recurso mantido por colaboradores confiáveis do ecossistema. A taxonomia precisa ser pequena o suficiente para que muitos navegadores de usuários sejam associados a cada tema. O objetivo final é que a taxonomia seja proveniente de uma parte externa que incorpore feedback e ideias de todo o setor.

Para evitar categorias sensíveis, os temas precisam ser públicos, selecionados por pessoas e atualizados. A taxonomia usada pelo Chrome foi selecionada por pessoas para excluir categorias consideradas sensíveis, como etnia ou orientação sexual.

Classificação de temas

Os temas são selecionados manualmente para 50.000 sites principais, e essa lista de substituição de nomes de host e temas é usada para treinar o modelo do classificador. Para os principais sites, os tópicos são acessados na lista de substituição em vez de usar o modelo de classificador. É possível acessar a lista de substituição localmente no seu computador.

Página chrome://topics-internals com o painel do classificador selecionado.
O painel chrome://topics-internals da página Classificador lista a versão do modelo, o caminho dele e os tópicos associados a cada host listado.

A implementação da API Topics no Chrome faz o download de um arquivo TensorFlow Lite que representa o modelo para que ele possa ser usado localmente no dispositivo do usuário.

Como os cinco principais temas do usuário são selecionados

A API retorna um tema para cada período, até um máximo de três. Se três temas forem retornados, eles incluem temas da época atual e das duas anteriores.

  1. No final de cada período, o navegador compila uma lista de páginas que atendem a estes critérios:
    • A página foi visitada pelo usuário durante a época.
    • A página inclui um código que chama document.browsingTopics().
    • A API foi ativada (por exemplo, não foi bloqueada pelo usuário ou por um cabeçalho de resposta).
  2. No dispositivo do usuário, o navegador usa o modelo de classificador fornecido pela API Topics para mapear o nome do host de cada página para uma lista de temas.
  3. O navegador gera uma lista dos cinco temas principais.

    • Cada um dos 22 tópicos raiz na taxonomia é atribuído a um bucket de "utilidade alta" ou "utilidade padrão" com base no feedback do ecossistema de publicidade. Primeiro, o navegador classifica os tópicos pela atribuição de bucket. Todos os tópicos descendentes herdam a atribuição de bucket do tópico raiz pai. Os tópicos de "alta utilidade" são priorizados.
    • Em seguida, o navegador classifica os tópicos por frequência em cada intervalo.
    • Os cinco principais temas dessa lista classificada são selecionados como os principais temas do usuário para essa época.

O método document.browsingTopics() retorna um tema aleatório entre os cinco principais de cada período, com uma chance de 5% de que qualquer um deles seja escolhido aleatoriamente da taxonomia completa dos temas. No Chrome, os usuários também podem remover temas individuais ou limpar o histórico de navegação para reduzir o número de temas retornados pela API. Os usuários também podem desativar a API.

Você pode conferir informações sobre os tópicos observados durante a época atual na 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.

Consulte também

Confira nossos recursos para entender melhor a API Topics na Web.