Реализация сделок, также известных как частные торговые площадки (PMP), в рамках аукциона с защищенной аудиторией.
Обзор
Сделки, также называемые частными торговыми площадками (PMP), предоставляют покупателям ограниченный доступ или льготные цены на определенный набор товаров. Для упрощения программных сделок используются идентификаторы прав доступа и идентификаторы сделок :
- Идентификатор места (seat ID) формируется покупателем и представляет собой идентификатор клиента покупателя. Идентификатор места может иметь значение для выставления счетов, например, если на место действует скидка у конкретного продавца.
- Идентификатор сделки (deal ID) формируется либо покупателем, либо продавцом и представляет собой соглашение между покупателем и продавцом. Идентификатор сделки может содержать такие свойства, как стоимость/цена, объем заказа, информация об аудитории, эксклюзивность и многое другое.
Система Protected Audience упрощает заключение сделок, используя идентификаторы отчетов, которые позволяют получать идентификаторы мест и сделок для участия в аукционах, оценки и составления отчетов. Идентификаторы отчетов предоставляют компаниям, работающим в сфере рекламных технологий, механизм для получения этих идентификаторов сделок и мест в отчетах Protected Audience после аукциона, что позволяет заключать сделки и организовывать выставление счетов. Мы ожидаем, что покупатели, продавцы, агентства и рекламодатели могут иметь собственные стратегии для интерпретации и понимания получаемых ими идентификаторов сделок и мест.
Пошаговое руководство
Последовательность действий для заключения сделок на аукционе с защищенной аудиторией следующая:
- Покупатель регистрирует идентификаторы сделки и места в конфигурации группы интересов до начала аукциона.
- Идентификаторы сделок и мест можно задать в поле «Выбираемые идентификаторы отчетов » (
selectableBuyerAndSellerReportingIds). - Если идентификатор места одинаков для всех сделок, то этот идентификатор места можно задать в поле
buyerAndSellerReportingId, а идентификаторы сделок — в поле selectable reporting IDs (selectableBuyerAndSellerReportingIds).
- Идентификаторы сделок и мест можно задать в поле «Выбираемые идентификаторы отчетов » (
- В процессе генерации ставок становятся доступны идентификаторы сделок и мест. Покупатель выбирает идентификатор сделки из списка
selectableBuyerAndSellerReportingIds. Покупатель генерирует ставку, включающую связанный с этой ставкой идентификатор сделки, возвращая значениеselectedBuyerAndSellerReportingId. Ставка может выиграть аукцион только в том случае, если возвращенный идентификатор сделки является k-анонимным наряду с другими идентификаторами отчетов и выбранными свойствами группы интересов. - В процессе оценки рекламных объявлений выбранные идентификаторы сделки и места становятся доступны продавцу.
- Идентификаторы сделки и места становятся доступны в функциях отчетности продавца.
- Идентификаторы сделки и места становятся доступны в функциях отчетности покупателя.
1. Регистрация идентификаторов предложения и места.
Покупатель регистрирует идентификаторы сделки и места в конфигурации группы интересов до начала аукциона. Идентификаторы сделки и места задаются в поле selectableBuyerAndSellerReportingIds в виде массива строк. Если идентификатор места одинаков для всех сделок и их не нужно повторять, идентификатор места можно добавить в поле buyerAndSellerReportingId , которое принимает строку:
const interestGroupConfig = {
owner: 'https://buyer.example',
name: 'example-ig',
ad: [
{
renderURL: 'https://buyer.example/ad.html',
selectableBuyerAndSellerReportingIds: ['deal123', 'deal456', 'deal789'], // Deal IDs
buyerAndSellerReportingId: 'seat123', // Seat ID
// Though it is not used to facilitate deals, the buyer
// reporting ID can be defined with other reporting IDs
buyerReportingId: 'brid123'
},
],
};
navigator.joinAdInterestGroup(interestGroupConfig);
Если идентификатор места для каждого предложения отличается, можно использовать следующую настройку:
const interestGroupConfig = {
owner: 'https://buyer.example',
name: 'example-ig',
ad: [
{
renderURL: 'https://buyer.example/ad.html',
selectableBuyerAndSellerReportingIds: [
'deal123seat123',
'deal456seat456',
'deal789seat456'
], // Deal and Seat IDs
},
],
};
navigator.joinAdInterestGroup(interestGroupConfig);
2. Идентификаторы сделок и мест для покупателей во время формирования заявок.
В процессе генерации ставок покупатель решает, хочет ли он сделать ставку на определенный ID сделки. В generateBid() покупатель может выбрать ID сделки из массива selectableBuyerAndSellerReportingIds и вернуть значение в качестве selectedBuyerAndSellerReportingId . Ставка отклоняется, если выбранный ID сделки отсутствует в массиве selectableBuyerAndSellerReportingIds .
function generateBid(interestGroup, ...) {
const [{
buyerAndSellerReportingId, // 'seat123'
selectableBuyerAndSellerReportingIds // ['deal123', 'deal456', 'deal789']
buyerReportingId // 'brid123' - Not used for deals, but the value is available
}] = interestGroup.ads;
// ...
return {
bid: 1,
render: 'https://buyer.example/ad.html',
selectedBuyerAndSellerReportingId: 'deal456', // Buyer selects a deal ID
};
}
Ставка с возвращаемым значением для selectedbuyerAndSellerReportingId может выиграть аукцион только в том случае, если значение selectedbuyerAndSellerReportingId является совместно k-анонимным с buyerAndSellerReportingId (если присутствует), buyerReportingId (если присутствует), владельцем группы интересов, URL скрипта торгов, URL рендеринга и размером объявления (размер объявления исключается из этой проверки как минимум до первого квартала 2025 года).
Даже если параметр selectablebuyerAndSellerReportingIds определен в конфигурации группы интересов, функция generateBid() все равно может возвращать ставку, не содержащую selectedbuyerAndSellerReportingId ; в этом случае идентификаторы отчетов, предоставляемые функциям отчетности в случае выигрыша этой ставки, будут соответствовать поведению, характерному для невыбираемых идентификаторов отчетов .
В случаях, когда generateBid() запускается повторно, потому что первоначальный вызов не выдал ни одной ставки с объявлениями, прошедшими проверку k-анонимности, то selectableBuyerAndSellerReportingIds , не прошедшие проверку k-анонимности, не будут присутствовать в группе интересов при повторном запуске.
3. Идентификаторы сделок и мест для продавцов при оценке рекламы.
Выбранный идентификатор сделки, а также идентификатор места (если он присутствует), становятся доступными для scoreAd() . Продавец присваивает выигрышной ставке оценку привлекательности с учетом идентификатора сделки и любых особых условий. Если продавец считает, что выбранный покупателем идентификатор сделки не подходит, он отклоняет ставку, присваивая ей нулевую или отрицательную оценку привлекательности.
function scoreAd(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'seat123'
selectedBuyerAndSellerReportingIds, // 'deal456'
} = browserSignals;
// ...
}
4. Идентификаторы сделок и мест для продавцов, предоставляющих отчеты.
Напомним, что ставка может выиграть аукцион только в том случае, если selectedBuyerAndSellerReportingId , buyerAndSellerReportingId (если присутствует) и buyerReportingId (если присутствует) являются k-анонимными по отношению к владельцу группы интересов, URL скрипта торгов, URL рендеринга и размеру объявления (размер объявления исключен из этой проверки как минимум до первого квартала 2025 года). Таким образом, значения идентификаторов отчетов, включающие selectedBuyerAndSellerReportingId , всегда будут доступны внутри reportResult() . Обратите внимание, что, хотя buyerReportingId проверяется на k-анонимность, это значение доступно только функции отчетности покупателя, а не функции отчетности продавца.
function reportResult(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'seat123'
selectedBuyerAndSellerReportingIds // 'deal456'
} = browserSignals;
// ...
}
5. Идентификаторы сделок и мест для отчетности покупателя.
Тот же принцип, что и при отчетности продавцов, применяется и к отчетности покупателей. Напомним, что ставка может выиграть аукцион только в том случае, если selectedBuyerAndSellerReportingId , buyerAndSellerReportingId (если присутствует) и buyerReportingId (если присутствует) являются k-анонимными с владельцем группы интересов, URL скрипта торгов, URL рендеринга и размером объявления (размер объявления исключен из этой проверки как минимум до первого квартала 2025 года). Таким образом, значения идентификаторов отчетов, включающие selectedBuyerAndSellerReportingId , всегда будут доступны внутри reportWin() .
function reportWin(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'seat123'
selectedBuyerAndSellerReportingId // 'deal456'
buyerReportingId // 'brid123' - Not used for deals, but the value is available
} = browserSignals;
}
Принимайте участие и делитесь отзывами.
- Чтобы узнать больше об идентификаторах для отправки отчетов, см. раздел «Идентификаторы для отправки отчетов» в пояснительной записке по защищенной аудитории .
- GitHub : Задавайте вопросы и следите за обсуждением в разделе Issues в репозитории API.
- W3C : Обсудите примеры применения в отрасли в рамках конференции WICG .
- Объявления : Подпишитесь на рассылку или просмотрите её.
- Поддержка разработчиков Privacy Sandbox : Задавайте вопросы и участвуйте в обсуждениях в репозитории поддержки разработчиков Privacy Sandbox.
- Chromium : Сообщите об ошибке в Chromium , чтобы задать вопросы о доступной для тестирования реализации в Chrome.