Обзор API тем для мобильных устройств

Оставьте отзыв

Об API тем

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

Ключевые понятия

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

Как это работает

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

Темы выбираются из предопределенной таксономии с открытым исходным кодом.

Платформа использует модель классификатора для определения тем. Реализация Topics API и использование классификатора будут частью проекта Android с открытым исходным кодом и со временем будут улучшаться.

В иллюстративных целях следующий пример кода демонстрирует использование тем для получения рекламы на основе интересов. Используемые здесь API не являются окончательными.

// Initialize the Topics API.
…
topicsFuture = AdvertisingTopicsClient.getTopics();

// Retrieve Topics and use them in Ad request.
Futures.addCallback(
    topicsFuture,
    new FutureCallback<AdvertisingTopicsInfo>() {
        @Override
        public void onSuccess(@Nullable AdvertisingTopicsInfo topicsInfo) {
            // Sanitize Topics result.
            ...
            // Initialize ad request with Topics obtained.
            AdRequest adRequest = AdRequest.initialize(topicsInfo);
        }

        @Override
        public void onFailure(Throwable t) {
            // Handle error.
            ...
        }
});

Чтобы лучше понять, как работает модель классификатора, вы можете протестировать, как различные данные приложения реагируют в системе, с помощью Android Topics Classifier Colab .

Получите доступ к API тем

Платформам рекламных технологий необходимо зарегистрироваться для доступа к API тем. Дополнительную информацию см. в разделе Регистрация учетной записи Privacy Sandbox .

Подробности

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

    • При вызове API тем платформа проверяет, назначена ли тема приложению, которое вызывает API. Если назначенных тем нет, одна из них будет выбрана следующим образом, и выбранная тема будет назначена этому приложению до конца этой эпохи.
      • С вероятностью 95% тема выбирается случайным образом из списка 5 лучших тем, рассчитанного для этой эпохи.
      • С вероятностью 5% тема выбирается из таксономии случайным образом.
      • Вызывающий может указать, что он хотел бы получить темы без изменения состояния, вызвав getTopics с использованием параметра shouldRecordObservation = false . Это означает, что темы могут быть возвращены, но вызов не будет включен в расчет еженедельной эпохи и не будет обновлять список тем, наблюдаемых для вызывающего абонента.
    • Причина, по которой каждое приложение получает одну из нескольких тем, заключается в том, чтобы разные приложения получали разные темы, что затрудняет перекрестную корреляцию между приложениями одного и того же пользователя.
      • Например, приложение A может видеть для пользователя тему T1, а приложение B — тему T2. Из-за этого двум приложениям сложнее определить, связана ли эта информация с одним и тем же пользователем.
  • API тем возвращает список, содержащий до трех тем, по одной для каждой из трех последних эпох.

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

    • Только абоненты, которые наблюдали за взаимодействием пользователей с приложением, связанным с рассматриваемой темой, в течение последних трех эпох, могут получить эту тему.
    • Если вызывающая сторона ранее не вызывала API для этого пользователя в приложении по этой теме, эта тема не будет включена в список, возвращаемый API.
    • Если вызывающий абонент не получал ни одной темы за последние 3 эпохи, API тем вернет пустой список.

    Например, предположим, что на устройстве пользователя установлено 7 приложений: A, B, C, D, E, F и G. Предположим, что классификация тем для приложения и SDK рекламных технологий в этих приложениях следующая:

    Приложение Классификация тем SDK рекламных технологий
    А Т1, Т5 объявление-SDK1, объявление-SDK2
    Б Т2 реклама-SDK2
    С Т3, Т6 реклама-sdk3, реклама-sdk4
    Д Т1, Т4 объявление-SDK1
    Э Т5 реклама-sdk4, реклама-sdk5
    Ф Т6 реклама-sdk2, реклама-sdk3, реклама-sdk4
    Г Т7 реклама-SDK2
    • Конец недели 1. API тем генерирует 5 популярных тем пользователя за эту эпоху.
    Самая популярная тема Звонящие, которые могут узнать о теме
    Т1 объявление-SDK1, объявление-SDK2
    Т2 реклама-SDK2
    Т3 реклама-sdk3, реклама-sdk4
    Т4 объявление-SDK1
    Т5 реклама-sdk1, реклама-sdk2, реклама-sdk4, реклама-sdk5
    • На второй неделе, если вызывающий абонент в каком-либо приложении вызывает API, то возвращаемый список тем будет включать только темы, для которых вызывающий абонент находится в столбце «Вызывающие абоненты, которые могут узнать о теме» для этой темы для этого приложения для этой эпохи.
    • Окно истории, включенное в расчет тем, доступных каждому звонящему, составляет 3 эпохи (или 3 недели).
    • Используются только темы, связанные с приложениями, которые вызывают API тем через рекламные SDK. Это означает, что если приложение не включает в себя какие-либо рекламные SDK, вызывающие API тем, темы, связанные с этим приложением, не входят в пул тем, доступных рекламным SDK.
    • Приложение также может декларативно отказаться от API Topics с помощью новых элементов манифеста и XML, чтобы запретить рекламным SDK использовать API для этого приложения. Темы, связанные с отключенными приложениями, не будут учитываться при еженедельном подсчете тем. Этот документ будет обновлен и будет включать соответствующие подробности реализации.
  • Если платформы недостаточно используют приложение, чтобы определить 5 тем, платформа может рассмотреть такие варианты, как случайное создание оставшихся тем.

Таксономия

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

Классификатор тем

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

  • Когда модель классификатора используется для вывода для вычисления тем для данной эпохи, набор используемых сигналов остается на устройстве. Этот набор сигналов может включать установленные или недавно использованные приложения, а позже он может быть расширен за счет включения других сигналов.
  • Первоначальные модели будут обучены Google, причем данные обучения включают созданные человеком метки для общедоступной информации о приложениях. Модель будет доступна бесплатно для приложений, которые смогут протестировать ее, чтобы увидеть, к каким темам относится их приложение.
  • Первоначальные модели будут обучаться на общедоступной информации о приложениях из ограниченного набора магазинов приложений, таких как Google Play Store.
  • Возможно, что приложение соответствует более чем одной теме, не имеет ни одной темы или не добавляется в историю тем пользователя. Если приложение соответствует более чем одной теме в таксономии, количество тем, выбранных для этого приложения, будет ограничено тремя лучшими.

Пользовательские элементы управления

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

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

//Button that launches settings UI
private Button mSettingsAppButton;
private static final String RB_SETTING_APP_INTENT = "android.adservices.ui.SETTINGS";


//Does setup for button on screen that will launch settings UI to observe Topics
private void registerLaunchSettingsAppButton() {
    mSettingsAppButton.setOnClickListener(
        new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                Context context = getApplicationContext();
                Intent activity2Intent = new Intent(RB_SETTING_APP_INTENT);
                activity2Intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(activity2Intent);
            }
        });
}

Зарегистрируйте платформу рекламных технологий

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

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

Шифрование возвращаемых тем

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

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

Privacy Sandbox попросит рекламных специалистов подтвердить доступность конечной точки, предоставленной рекламной технологией, во время процесса регистрации. Более подробную информацию о действиях, требуемых действующими и вновь зарегистрированными специалистами по рекламе, см. в Руководстве разработчика по регистрации.

Детали шифрования

С введением шифрования вызовы GetTopics() теперь будут генерировать ответ со списком объектов EncryptedTopic. Расшифровка этих результатов приведет к созданию объекта с тем же форматом JSON, что и у предыдущего объекта Topic .

API Topics поддерживает однократную реализацию HPKE (гибридное шифрование с открытым ключом). Мы ожидаем, что зарегистрированный абонент разместит 32-битный открытый ключ в конечной точке URL-адреса общедоступного шифрования, указанной во время регистрации. Ожидается, что эти ключи будут закодированы в Base64.

Объект EncryptedTopic имеет 3 поля. Список возвращаемых тем можно получить, используя соответствующий закрытый ключ для открытого ключа.

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

{% дословно %} {% дословно %} {% дословно %} {% дословно %}