API Topics позволяет показывать рекламу, основанную на интересах пользователей, без использования сторонних файлов cookie.
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&Band/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.htmlor download the appcats. - 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.
- Greenhouse, for example an app named Greenhouse or a website greenhouse.example, associated with the topic
- 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 & Gardenas 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/Tennisas 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 & GardenorSports/Tennistopic (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 topicSports/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.
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.
Практические аспекты использования Интернета: темы, актуальные в сети.
В интернете темы определяются по именам хостов страниц, которые посещает пользователь. Например, тема, определенная для веб-сайта dogs.example, может быть /Pets & Animals/Pets/Dogs .
На следующей диаграмме представлен упрощенный пример, демонстрирующий, как API тем может помочь рекламной технологической платформе выбрать подходящую рекламу. В примере предполагается, что браузер пользователя уже имеет модель для сопоставления имен хостов веб-сайтов с темами.

Браузер определяет источник вызова из контекста кода, который обращается к API тем. На практике это означает, что пользователи тем вызывают API в iframe из своего источника или включают темы в запрос на получение данных из своего источника.
Например, платформа со стороны предложения (SSP) может быть встроена в сайты нескольких издателей . Затем SSP может вызывать API тем внутри iframe со своего исходного сайта, что позволит ей отслеживать темы, связанные с пользователем на сайтах этих издателей. Эти темы затем могут быть переданы платформе со стороны спроса (DSP), чтобы помочь ей выбрать релевантную рекламу для пользователя.
Как API определяет, какие вызывающие стороны видят какие темы
Пользователи, вызывающие API, получают только те темы, которые они недавно отслеживали, и темы для пользователя обновляются один раз за эпоху : период времени, установленный на одну неделю в реализации Chrome. Это означает, что API предоставляет скользящее окно, в течение которого данный пользователь может получать отслеживаемые темы.
В следующей таблице приведен пример (хотя и нереалистично малый) гипотетической истории просмотров пользователя за один период времени, показывающий темы, связанные с посещенными им сайтами, и API-интерфейсы, присутствующие на каждом сайте (сущности, которые вызывают document.browsingTopics() в JavaScript-коде, включенном на сайте).
| Сайт | Темы | API-вызывающие на сайте |
|---|---|---|
| running.example | Running & WalkingAthletic Shoes | adtech1.example adtech2.example |
| собаки.пример | Dogs | adtech1.example |
| отпуск.пример | Hotels & Accommodations | adtech2.example |
| солнцезащитные очки.пример | Sunglasses | [никто] |
В конце эпохи (по умолчанию — одна неделя) API тем генерирует список самых популярных тем браузера за неделю.
- Теперь adtech1.example имеет право получать сообщения по темам
Running & Walking,Athletic ShoesиDogs, поскольку обнаружил их на сайтах running.example и dogs.example. - Сайт adtech1.example не имеет права получать информацию по теме
Hotels & Accommodationsдля данного пользователя, поскольку он отсутствует на сайтах, которые пользователь посещал недавно и которые связаны с этой темой. - Пользователь adtech2.example просмотрел темы
Running & Walking,Athletic ShoesиHotels & Accommodations, но не видел тему «Dogs.
Пользователь посетил сайт sunglasses.example, который содержит тему Sunglasses , но на этом сайте не было обращений к API тем. В этом случае API не вернет тему Sunglasses ни одному вызывающему пользователю.
На второй неделе пользователь посещает другой сайт:
| Сайт | Темы | API-вызывающие на сайте |
|---|---|---|
| камеры.пример | Camera & Photo Equipment | adtech2.example |
Кроме того, код из файла adtech2.example добавлен в файл sunglasses.example :
| Сайт | Темы | API-вызывающие на сайте |
|---|---|---|
| солнцезащитные очки.пример | Sunglasses | adtech2.example |
Помимо тем Running & Walking , Athletic Shoes и Hotels & Accommodations с первой недели, adtech2.example теперь сможет получать информацию по темам Camera & Photo Equipment и Sunglasses — но не раньше следующей эпохи, третьей недели. Это гарантирует, что третьи стороны не смогут узнать о прошлом пользователя (в данном случае, об его интересе к моде) больше, чем с помощью файлов cookie.
Через две недели темы Running & Walking , Athletic Shoes и Hotels & Accommodations могут исчезнуть из списка подходящих тем adtech2.example, если пользователь не будет посещать сайты, посвященные этим темам и содержащие код с adtech2.example.

Модель классификатора
В Topics используется модель классификации , которая сопоставляет имена хостов веб-сайтов с нулем или более темами (анализ дополнительной информации, такой как полные URL-адреса или содержимое страниц, может позволить показывать более релевантную рекламу, но также может снизить уровень конфиденциальности).
Таксономия
Темы выбираются из таксономии . Эти темы были отобраны Chrome с целью превращения таксономии в ресурс, поддерживаемый надежными участниками экосистемы. Таксономия должна быть достаточно небольшой, чтобы каждая тема была связана с браузерами многих пользователей. Конечная цель состоит в том, чтобы таксономия создавалась сторонним источником, учитывающим отзывы и идеи со всей отрасли.
Чтобы избежать использования деликатных категорий, темы должны быть общедоступными, модерироваться людьми и оставаться актуальными. Таксономия, используемая Chrome, была разработана людьми для исключения категорий, которые обычно считаются деликатными , таких как этническая принадлежность или сексуальная ориентация.
Классификация тем
Для 50 000 ведущих сайтов вручную отбираются темы, и этот тщательно составленный список имен хостов и тем используется для обучения модели классификатора. Для ведущих сайтов доступ к темам осуществляется из списка переопределений, а не с помощью модели классификатора. Вы можете просмотреть список переопределений локально на своем компьютере.

chrome://topics-internals в панели «Классификатор» отображается версия модели, её путь и темы, связанные с каждым из перечисленных хостов.В Chrome реализация API Topics загружает файл TensorFlow Lite , представляющий модель, чтобы его можно было использовать локально на устройстве пользователя.
Как выбираются пять наиболее важных для пользователя тем
API возвращает одну тему для каждой эпохи, максимум три. Если возвращается три темы, это включает темы текущей эпохи и двух предыдущих.
- В конце каждой эпохи браузер составляет список страниц, отвечающих следующим критериям:
- Пользователь посетил эту страницу в течение указанной эпохи.
- На странице содержится код, который вызывает метод
document.browsingTopics(). - API был активирован (например, не заблокирован пользователем или заголовком ответа ).
- На устройстве пользователя браузер использует модель классификации, предоставляемую API тем, для сопоставления имени хоста каждой страницы со списком тем.
Браузер генерирует список из пяти наиболее популярных тем.
- Каждой из 22 основных тем в таксономии присваивается либо категория «высокая полезность», либо категория «стандартная полезность» на основе обратной связи от рекламной экосистемы. Браузер сначала сортирует темы по присвоенной им категории. Все дочерние темы наследуют присвоенную им категорию от родительской основной темы. Темы категории «высокая полезность» имеют приоритет.
- Затем браузер сортирует темы по частоте их появления в каждой группе.
- Пять тем из этого отсортированного списка выбираются в качестве наиболее важных тем пользователя за данную эпоху.
Метод document.browsingTopics() возвращает случайную тему из пяти самых популярных для каждой эпохи, с 5% вероятностью того, что любая из них может быть случайно выбрана из полной таксономии тем. В Chrome пользователи также могут удалять отдельные темы или очищать историю просмотров, чтобы уменьшить количество тем, возвращаемых API. Пользователи также могут отказаться от использования API.
Информацию о темах, наблюдавшихся в течение текущей эпохи, можно просмотреть на странице chrome://topics-internals .
Next steps
Setup
Implement Topics
См. также
Ознакомьтесь с нашими ресурсами, чтобы лучше понять API Topics в Интернете.
- Ознакомьтесь с демонстрациями Topics, совместными видеороликами и пошаговыми руководствами .
- Ознакомьтесь со списком флагов Chrome , которые позволяют разработчикам настраивать API тем для тестирования.
- Узнайте, как пользователи и разработчики могут управлять API.
- Ознакомьтесь с ресурсами, где можно найти технические пояснения и поддержку. Задавайте вопросы, участвуйте и делитесь отзывами.