API тем для Интернета

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&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.

Темы в Интернете на практике

В Интернете темы определяются по именам хостов страниц, которые посещает пользователь. Например, тема, предполагаемая для веб-сайтаdogs.example, может быть /Pets & Animals/Pets/Dogs .

На следующей диаграмме показан упрощенный пример, демонстрирующий, как API Topics может помочь платформе рекламных технологий выбрать подходящее объявление. В примере предполагается, что в браузере пользователя уже есть модель для сопоставления имен хостов веб-сайтов с темами.

Диаграмма, показывающая этапы жизненного цикла API Topics: от посещения пользователем веб-сайтов до отображения рекламы.
Диаграмма жизненного цикла API Topics описывает этапы действий API с точки зрения высокого уровня.

Браузер определяет происхождение вызывающего объекта из контекста кода, вызывающего API тем. На практике это означает, что пользователи Topics вызывают API в iframe из своего источника или включают темы в выборку из своего источника.

Например, платформа предложения (SSP) может быть встроена на сайты нескольких издателей . Затем SSP может вызвать API тем внутри iframe из его источника, что позволяет ему наблюдать за темами, связанными с пользователем, на сайтах этих издателей. Затем эти темы можно будет передать платформе спроса (DSP), чтобы помочь ей выбрать подходящую рекламу для пользователя.

Как API решает, какие абоненты видят какие темы

Вызывающие API получают только темы, которые они недавно наблюдали, а темы для пользователя обновляются один раз в каждую эпоху : период времени, установленный в одну неделю в реализации Chrome. Это означает, что API предоставляет скользящее окно, в течение которого конкретный вызывающий объект может получать наблюдаемые темы.

В следующей таблице приведен пример (хотя и нереально небольшой) гипотетической истории просмотров для пользователя в течение одной эпохи, показаны темы, связанные с сайтами, которые он посетил, и вызывающие API, присутствующие на каждом сайте (сущности, вызывающие document.browsingTopics() в коде JavaScript, включенном в сайт).

Сайт Темы Вызывающие API на сайте
бег.пример Running & Walking
Athletic Shoes
adtech1.пример
adtech2.пример
собаки.пример Dogs adtech1.пример
праздник.пример Hotels & Accommodations adtech2.пример
солнцезащитные очки.пример 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 .

Пользователь посетил сайт солнцезащитные очки.example, где есть тема Sunglasses , но на этом сайте не было вызовов API тем. На данный момент это означает, что тема Sunglasses не будет возвращена API ни для одного вызывающего объекта.

На второй неделе пользователь посещает другой сайт:

Сайт Темы Вызывающие API на сайте
камеры.пример Camera & Photo Equipment adtech2.пример

Кроме того, в sunglasses.example добавляется код из adtech2.example:

Сайт Темы Вызывающие API на сайте
солнцезащитные очки.пример Sunglasses adtech2.пример

Помимо Running & Walking , Athletic Shoes и Hotels & Accommodations с первой недели, это означает, что adtech2.example теперь сможет получать темы Camera & Photo Equipment и Sunglasses , но не раньше следующей эпохи, недели 3. Это гарантирует что третьи стороны не могут узнать больше о прошлом пользователя (в данном случае об интересе к моде), чем они могли бы с помощью файлов cookie.

Еще через две недели Running & Walking , Athletic Shoes и Hotels & Accommodations могут исчезнуть из списка подходящих тем adtech2.example, если пользователь не посещает сайты с этими темами, которые содержат код из adtech2.example.

Действия, которые выполняет API тем при посещении пользователями сайтов, использующих API.
Как API наблюдает за темами и получает к ним доступ.

Модель классификатора

В темах используется модель классификатора , которая сопоставляет имена хостов веб-сайтов с нулевым или более темами (анализ дополнительной информации, такой как полные URL-адреса или содержимое страниц, может обеспечить более релевантную рекламу, но также может снизить конфиденциальность).

Таксономия

Темы выбираются из таксономии . Эти темы курируются Chrome с целью сделать таксономию ресурсом, поддерживаемым доверенными участниками экосистемы. Таксономия должна быть достаточно маленькой, чтобы браузеры многих пользователей ассоциировались с каждой темой. Конечная цель состоит в том, чтобы таксономия была получена от внешней стороны, которая учитывает отзывы и идеи со всей отрасли.

Чтобы избежать деликатных категорий, темы должны быть общедоступными, курируемыми людьми и оставаться актуальными. Таксономия, используемая Chrome, была создана людьми для исключения категорий, которые обычно считаются конфиденциальными , таких как этническая принадлежность или сексуальная ориентация.

Классификация тем

Темы вручную отбираются для 50 000 лучших сайтов, и этот тщательно подобранный список имен хостов и тем используется для обучения модели классификатора. Для лучших сайтов доступ к темам осуществляется из списка переопределения, а не с использованием модели классификатора. Вы можете просмотреть список переопределений локально на своем компьютере.

Страница chrome://topics-internals с выбранной панелью «Классификатор».
На панели классификатора страницы chrome://topics-internals указана версия модели, ее путь и темы, связанные с каждым перечисленным хостом.

Реализация API Topics в Chrome загружает файл TensorFlow Lite, представляющий модель, чтобы его можно было использовать локально на устройстве пользователя.

Как выбираются пять самых популярных тем пользователя

API возвращает одну тему для каждой эпохи (максимум три). Если возвращаются три, это включает темы для текущей эпохи и двух предыдущих.

  1. В конце каждой эпохи браузер составляет список страниц, соответствующих следующим критериям:
    • Страница была посещена пользователем в указанную эпоху.
    • Страница содержит код, который вызывает document.browsingTopics() .
    • API был включен (например, не заблокирован пользователем или заголовком ответа ).
  2. Браузер на устройстве пользователя использует модель классификатора, предоставляемую API тем, для сопоставления имени хоста каждой страницы со списком тем.
  3. Браузер генерирует список из пяти самых популярных тем.

    • Каждая из 22 основных тем в таксономии отнесена к категории «высокая полезность» или «стандартная полезность» на основе отзывов рекламной экосистемы. Браузер сначала сортирует темы по их назначению. Все дочерние темы наследуют назначение корзины родительской корневой темы. Темы «высокой полезности» имеют приоритет.
    • Затем браузер сортирует темы по частоте в каждом сегменте.
    • Пять лучших тем из этого отсортированного списка выбираются как самые популярные темы пользователя за эту эпоху.

Затем метод document.browsingTopics() возвращает случайную тему из пяти лучших для каждой эпохи с вероятностью 5%, что любая из них может быть случайно выбрана из полной таксономии тем. В Chrome пользователи также могут удалять отдельные темы или очищать историю просмотров, чтобы уменьшить количество тем, возвращаемых API. Пользователи также могут отказаться от API.

Вы можете просмотреть информацию о темах, наблюдаемых в текущую эпоху, на странице chrome://topics-internals .

Следующие шаги

Подготовьте свою среду для тестирования и разработки веб-приложений с помощью API Topics.
Ознакомьтесь с подробностями реализации и примерами кода, чтобы вызывающие абоненты могли наблюдать и получать доступ к темам.

См. также

Ознакомьтесь с нашими ресурсами, чтобы лучше понять API Topics в Интернете.