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

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 .
  • Оба абонента 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 . Это означает, что третья сторона узнает о теме, представляющей интерес для пользователя, только в определенном контексте (приложение или веб-сайт), где он присутствует.
Диаграмма, показывающая, что API тем отмечает темы как наблюдаемые только в том случае, если вызывающие стороны присутствуют в контексте.
API тем отмечает темы, которые наблюдаются только вызывающими, которые присутствуют в контексте этих тем. Вызывающие смогут получить доступ только к тем темам, которые они наблюдали.

Выводить темы

Topics выводит темы, представляющие интерес, из активности пользователя. Темы выбираются из предопределенной таксономии с открытым исходным кодом. Один раз за эпоху Topics обновляет пять основных тем пользователя и звонящих, которые наблюдали их в течение эпохи. Модель классификатора Topics выводит темы из активности пользователя: имя хоста для посещения веб-страницы, информация о приложении на Android.

Звонящий получает доступ к темам, интересующим пользователя

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

Эпохи

API тем должен гарантировать, что темы, которые он предоставляет, актуальны. Темы выводятся для пользователя на основе его активности в течение периода времени, называемого эпохой, по умолчанию это одна неделя. У каждого пользователя есть свои собственные эпохи (эпохи «на пользователя»), а начальное время начала рандомизировано.

После каждой эпохи API тем вычисляет пять основных тем пользователя и определяет, какие абоненты наблюдали эти темы, используя информацию на устройстве. Тема, выбранная для каждой эпохи, выбирается случайным образом из пяти основных тем пользователя за этот период времени. Для дальнейшего повышения конфиденциальности и обеспечения того, что все темы могут быть представлены, существует 5%-ная вероятность того, что тема будет выбрана случайным образом из всех возможных тем в таксономии интересов .

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

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

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

Диаграмма, показывающая этапы жизненного цикла API тем: от посещения пользователем веб-сайтов до показа рекламы.
Диаграмма жизненного цикла API тем рассматривает этапы действий 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.

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

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

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

Таксономия

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

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

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

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

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

Реализация API тем в 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 в Интернете.