API тем позволяет размещать рекламу на основе интересов без использования сторонних файлов cookie.
Как работает API тем
API тем может использоваться для наблюдения и предоставления доступа к темам, которые кажутся интересными пользователю, на основе его активности. API тем может затем предоставить вызывающим API (например, рекламным технологическим платформам) доступ к темам, представляющим интерес для пользователя, но без раскрытия дополнительной информации о его активности.
Ключевые понятия
- Тема — это понятная человеку тема, представляющая интерес для текущего пользователя, и является частью таксономии Темы .
- Вызывающая сторона — это сущность, например приложение, сторонний SDK, веб-сайт или служба, которая отправляет запрос к API тем для наблюдения или доступа к интересам пользователя.
- Тема считается наблюдаемой вызывающим объектом, если вызывающий объект сделал запрос API тем с веб-страницы или из приложения, связанного с этой темой, в течение последних трех эпох.
- Эпоха — это период расчета темы, который по умолчанию составляет одну неделю.
- Таксономия представляет собой иерархический список категорий, который включает, например, такие категории, как
/Arts & Entertainment/Music & Audio/Soul & R&B
и/Business & Industrial/Business Services/Corporate Events
. - Темы выводятся с помощью модели классификатора , которая сопоставляет активность пользователя с нулем или более тем.
Основные шаги потока API тем
Жизненный цикл API тем состоит из трех основных этапов:
- Наблюдайте за действиями пользователей, например, когда они посещают веб-страницу
https://cats.example/tabby/index.html
или загружают приложениеcats
. - Создавайте темы на основе активности пользователей, например
/Pets & Animals/Pets/Cats
. - Доступ к темам, ранее наблюдавшимся пользователем, например, как сигнал для выбора релевантной рекламы (например, рекламной акции на корм для кошек).
Соблюдайте темы
Звонящие могут получить доступ только к интересующим их темам, которые они наблюдали . Звонящий наблюдает тему, когда делает запрос API тем из контекста, связанного с этой темой. Чтобы проиллюстрировать эту концепцию, рассмотрим следующий упрощенный пример.
- Предположим, что есть два вызова API тем: A и B.
- Есть два контекста:
- Greenhouse , например, приложение с названием Greenhouse или веб-сайт greenhouse.example, связанный с темой
Home & Garden
. - Упражнения по теннису , например, приложение под названием «Упражнения по теннису» или веб-сайт tennis.example, связанный с темой
Sports/Tennis
.
- Greenhouse , например, приложение с названием Greenhouse или веб-сайт greenhouse.example, связанный с темой
- Оба абонента A и B присутствуют в контексте Greenhouse .
- В контексте упражнений по теннису присутствует только абонент B.
- Предположим для упрощения, что до эпохи 1 темы для пользователя не наблюдались.
- Пользователь посещает приложение Greenhouse , а вызывающие стороны A и B выполняют вызов API Topics для записи посещения пользователем страницы или приложения (см. руководство по внедрению, предложенное в разделе Следующие шаги , чтобы узнать, как вызвать API Topics). Эта запись (имя хоста или данные приложения) позже используется для получения тем, представляющих интерес. API Topics позже отметит тему
Home & Garden
, как ее наблюдают оба вызывающих стороны A и B. - Пользователь посещает приложение Tennis exercises . Только вызывающий B отправляет запрос Topics API. Topics API позже отметит тему
Sports/Tennis
как наблюдал вызывающий B. - К концу эпохи API тем обновляет главные темы пользователя и определяет абонентов, которые просматривали эти темы, на основе активности пользователя.
- Позже, когда вызывающая сторона B сделает еще один вызов API тем, она может получить либо тему
Home & Garden
, либо темуSports/Tennis
(или, с вероятностью 5%, случайную тему) для этого пользователя в массиве ответов. - Абонент A может получить доступ только к теме
Home & Garden
, поскольку он никогда не наблюдал темуSports/Tennis
. Это означает, что третья сторона узнает о теме, представляющей интерес для пользователя, только в определенном контексте (приложение или веб-сайт), где он присутствует.

Выводить темы
Topics выводит темы, представляющие интерес, из активности пользователя. Темы выбираются из предопределенной таксономии с открытым исходным кодом. Один раз за эпоху Topics обновляет пять основных тем пользователя и звонящих, которые наблюдали их в течение эпохи. Модель классификатора Topics выводит темы из активности пользователя: имя хоста для посещения веб-страницы, информация о приложении на Android.
Звонящий получает доступ к темам, интересующим пользователя
API возвращает только темы, которые были просмотрены вызывающей стороной в течение последних трех эпох. Вызывающей стороне может быть возвращено максимум три темы, по одной теме для каждой из трех последних эпох (если вызывающая сторона просмотрела темы для этой эпохи). Вызывающая сторона может использовать возвращенные темы для дополнения любой контекстной информации и может объединять их, чтобы помочь найти более релевантную рекламу для пользователя.
Эпохи
API тем должен гарантировать, что темы, которые он предоставляет, актуальны. Темы выводятся для пользователя на основе его активности в течение периода времени, называемого эпохой, по умолчанию это одна неделя. У каждого пользователя есть свои собственные эпохи (эпохи «на пользователя»), а начальное время начала рандомизировано.
После каждой эпохи API тем вычисляет пять основных тем пользователя и определяет, какие абоненты наблюдали эти темы, используя информацию на устройстве. Тема, выбранная для каждой эпохи, выбирается случайным образом из пяти основных тем пользователя за этот период времени. Для дальнейшего повышения конфиденциальности и обеспечения того, что все темы могут быть представлены, существует 5%-ная вероятность того, что тема будет выбрана случайным образом из всех возможных тем в таксономии интересов .
Темы в Интернете на практике
В Интернете темы выводятся из имен хостов страниц, которые посещает пользователь. Например, тема, выведенная для веб-сайта 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 & 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
.
Пользователь посетил glasses.example, где есть тема Sunglasses
, но на этом сайте не было вызовов к API тем. На этом этапе это означает, что тема Sunglasses
не будет возвращена API ни для одного вызывающего.
На второй неделе пользователь посещает другой сайт:
Сайт | Темы | Вызывающие API на сайте |
---|---|---|
камеры.пример | Camera & Photo Equipment | adtech2.пример |
Кроме того, код из adtech2.example добавляется в sunglasses.example
:
Сайт | Темы | Вызывающие API на сайте |
---|---|---|
солнцезащитные очки.пример | Sunglasses | adtech2.пример |
Это означает, что наряду с темами Running & Walking
, Athletic Shoes
и Hotels & Accommodations
с 1-й недели adtech2.example теперь сможет получать темы Camera & Photo Equipment
и Sunglasses
, но не раньше следующей эпохи, 3-й недели. Это гарантирует, что третьи стороны не смогут узнать больше о прошлом пользователя (в данном случае об интересе к моде), чем они могли бы с помощью файлов cookie.
Еще через две недели темы Running & Walking
, Athletic Shoes
и Hotels & Accommodations
могут исчезнуть из списка допустимых тем adtech2.example, если пользователь не посетит ни одного сайта с этими темами, включающего код из adtech2.example.

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

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