Выберите обзор URL

Функция «Выбрать URL» позволяет выбрать, какой контент показывать пользователю на основе данных, хранящихся в общем хранилище, без раскрытия самих сохраненных данных.

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

  • A/B-тестирование контента для обеспечения единообразного пользовательского опыта на нескольких сайтах.
  • Отображение разных кнопок входа для пользователей, имеющих учетную запись, и пользователей, не имеющих ее.
  • Использование ротации рекламных материалов позволяет ограничить частоту показа одной и той же рекламы пользователю на разных сайтах.

Что такое API выбора URL-адреса?

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

Диаграмма, показывающая iframe shoes.example, встроенный в сайты различных издателей, включая news.example и blog.example. Сайт shoes.com может получать доступ к собственному неразделённому хранилищу с каждого из сайтов верхнего уровня.

На приведенной выше диаграмме сайт shoes.example можно встроить в другие сайты издателей, такие как news.example , и при этом получить доступ к тем же данным, используя функцию «Выбрать URL с общим хранилищем», чтобы выбрать подходящий контент для встраивания.

Как работает функция выбора URL-адреса

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

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

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

В этом примере вы управляете туристическим сайтом и запускаете рекламную кампанию с тремя различными рекламными креативами. Вам нужно расположить эти креативы в последовательности в зависимости от действий пользователя (просмотр или клик).

Три рекламных креатива, которые отображаются пользователям в зависимости от их предыдущих взаимодействий.
Первый рекламный ролик для нового пользователя гласит: «Отправляйтесь в свое следующее приключение». После просмотра без клика следующий ролик, который увидит пользователь, гласит: «Изучите варианты отдыха на выходные». После просмотра или клика третий ролик призывает пользователей: «Кликните, чтобы получить скидку на отель». Если пользователь кликнет на первый ролик, следующий ролик, который он увидит, будет третьим.

Когда сайт впервые обнаруживает выигрышное рекламное место, вы можете сохранить идентификатор и статус клика для этого креатива в общем хранилище.

Например:

await sharedStorage.set('last-creative', 'globe');
await sharedStorage.set('click', 'true');

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

Демонстрация работы сервиса общего хранилища данных с тремя вариантами рекламных креативов и взаимодействием с пользователем.

Ваш JavaScript-код выполняется в SharedStorageWorklet для получения этой информации, но ваш код не может взаимодействовать или обмениваться данными за пределами iframe или фрейма, заключенного в защитную оболочку, на родительской странице.

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

Использование функции «Выбрать URL» позволяет принимать обоснованные решения на основе данных, полученных с разных сайтов, без передачи информации о пользователях (например, истории браузера или других личных данных) на сайт, на который вы размещаете контент, и без утечки данных на ваши собственные серверы.

Бюджеты

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

  • Долгосрочный бюджет : Долгосрочный бюджет составляет 12 бит на каждый вызывающий сайт в день при использовании selectURL() . Этот бюджет взимается только в том случае, если фрейм, на котором размещен выбранный URL, выполняет навигацию верхнего уровня, при этом стоимость рассчитывается как log2(number of URLs) . Таким образом, если вы предоставляете 8 URL на выбор, стоимость составляет 3 бита. Любой оставшийся бюджет на день рассчитывается как 12 - (sum of bits deducted in the last 24 hours) . Если бюджета недостаточно, возвращается URL по умолчанию (первый URL в списке), и регистрируется 1 бит, если осуществляется переход на URL по умолчанию.
  • Краткосрочные ограничения : Краткосрочные ограничения представляют собой дополнительные лимиты на каждую загрузку страницы до тех пор, пока не будет полностью внедрена защита фреймов и пока доступна отчетность на уровне событий. Существует ограничение в 6 бит на каждый вызывающий сайт и на каждую загрузку страницы , которое ограничивает объем утечки данных, которую может допустить один вызывающий сайт с помощью selectURL() . Также существует общее ограничение в 12 бит на каждую загрузку страницы , которое является суммарным лимитом для всех вызывающих сайтов на странице.

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

    Вы можете реализовать сохранение запросов, добавив свойство savedQuery с выбранным вами именем запроса в объект options, как показано в этом примере.

    const topProductUrls = [
      { url: 'https://ad.example/default-top-product.html' },
      { url: 'https://ad.example/experiment-top-product.html' }];
    const relatedProductUrls = [
      { url: 'https://ad.example/default-related-product.html' },
      { url: 'https://ad.example/experiment-related-product.html' }];
    
    // This is the first call to `selectURL()` with `savedQuery: 'control_or_experiment'`
    // on this page, so it will be charged to both per-page budgets.
    const topProductsConfig = await sharedStorage.selectURL(
      'productExperiment', topProductUrls, {
        savedQuery: 'control_or_experiment',
        keepAlive: true,
        resolveToConfig: true
    });
    document.getElementById('topProductsFencedFrame').config = topProductsConfig;
    
    // This next call with this savedQuery won't charge either of the per-page budgets.
    const relatedProductConfig = await sharedStorage.selectURL(
      'productExperiment', relatedProductUrls, {
        savedQuery: 'control_or_experiment',
        resolveToConfig: true
    });
    document.getElementById("relatedProductFencedFrame").config = relatedProductConfig;
    

Выберите варианты использования URL API

Если вы создаёте веб-сайт с функциями, которые должны работать на разных доменах, у вас может возникнуть один из следующих сценариев использования:

  • Ротация рекламных креативов : Ограничьте частоту показа одной и той же рекламы пользователю на разных сайтах, сохраняя данные, такие как идентификатор креатива, количество просмотров и взаимодействие с пользователем, чтобы определить, какие креативы будут отображаться на разных сайтах. Это позволяет сбалансировать просмотры и избежать перенасыщения определенным контентом, чтобы ограничить возможное негативное взаимодействие с пользователем. Для получения дополнительной информации об этом варианте использования см. Ротация рекламных креативов .
  • Выбор рекламного креатива по частоте показа : сохраняйте данные о количестве просмотров в браузере в общем хранилище, чтобы ограничить частоту показа одной и той же рекламы пользователю на нескольких сайтах. Для получения дополнительной информации об этом варианте использования см. раздел «Выбор рекламного креатива по частоте показа» .
  • Настройка пользовательского интерфейса для известных клиентов : Обеспечьте единообразный интерфейс на разных доменах. Делитесь пользовательским контентом и призывами к действию в зависимости от статуса регистрации пользователя или других состояний пользователя и обеспечивайте единообразный интерфейс на разных доменах. Для получения дополнительной информации об этом варианте использования см. раздел «Настройка пользовательского интерфейса для известных клиентов» .
  • Проведение A/B-тестирования : A/B-тестирование сравнивает две или более версий конфигурации, чтобы определить, какая из них работает лучше всего. Вы можете назначить пользователя в экспериментальную группу, а затем сохранить эту группу в общем хранилище для доступа между сайтами. Это позволяет собирать информацию о поведении пользователей в вашей сети сайтов, не отслеживая отдельных пользователей. Для получения дополнительной информации об этом варианте использования см. раздел «Проведение A/B-тестирования» .

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

Поэкспериментируйте с демо-версией.

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

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

Вы также можете ознакомиться с кодом демонстрационной версии на GitHub .

статус API

API выбора URL-адреса находится в общедоступной версии . Чтобы использовать API выбора URL-адреса или включить его для локальной разработки, следуйте инструкциям по регистрации в «песочнице конфиденциальности» .

Предложение Статус
Отчеты на уровне событий для выбора контента ( selectURL() ) Доступно как минимум до 2026 года.
Бюджетирование по каждому сайту
Объяснитель
Доступен в исполнении M119.
Отладка рабочих модулей общего хранилища с помощью DevTools
Раздел
Доступен в M120

Привлекайте и делитесь отзывами

Обратите внимание, что предложение Select URL API находится в стадии активного обсуждения и разработки и может быть изменено.

Мы с нетерпением ждем вашего мнения об API Select URL.