Узнайте, как идентификаторы отчетов работают на аукционе защищенной аудитории.
Обзор
Идентификаторы отчетов — это идентификаторы, связанные с объявлением, которые доступны для использования при создании ставок, их оценке и составлении отчетов. Идентификаторы отчетов предоставляются покупателем в конфигурации группы интересов, и они становятся доступными в generateBid()
, scoreAd()
, reportResult()
и reportWin()
при различных условиях, которые обсуждаются в этом руководстве.
Идентификаторы отчетов позволяют вам сообщать идентификатор объявления, а также включать такие варианты использования, как сделки .
Существует три идентификатора отчетности двух типов:
- Невыбираемые идентификаторы отчетов
-
buyerReportingId
(строка) -
buyerAndSellerReportingId
(строка)
-
- Выбираемые идентификаторы отчетов
-
selectableBuyerAndSellerReportingIds
(массив строк)
-
Идентификаторы отчетов ведут себя по-разному в зависимости от того, используются ли выбираемые идентификаторы отчетов. Если используются только невыбираемые идентификаторы отчетов, эти идентификаторы становятся доступными только внутри функций отчетов. Когда используются выбираемые идентификаторы отчетов, а также невыбираемые идентификаторы отчетов, если это необходимо, все определенные идентификаторы также становятся доступными внутри generateBid()
и scoreAd()
.
Невыбираемые идентификаторы отчетов
buyerReportingId
и buyerAndSellerReportingId
— это невыбираемые идентификаторы отчетов, определенные в конфигурации группы интересов, которые становятся доступными в функциях отчетности покупателей и продавцов. Функции отчетности покупателя и продавца будут выполняться только для объявления-победителя, и эти функции получат идентификаторы отчетов, определенные для этого объявления-победителя.
При использовании без выбираемых идентификаторов отчетов функция отчетов о покупателях получает buyerReportingId
или buyerAndSellerReportingId
в зависимости от поведения перезаписи , а функция отчетов о продавцах получает buyerAndSellerReportingId
. Если ни buyerReportingId
ни buyerAndSellerReportingId
не определены в конфигурации группы интересов, то функция reportWin()
получает имя группы интересов ( interestGroupName
) выигравшей ставки.
Невыбираемые идентификаторы недоступны внутри generateBid()
и scoreAd()
если они не используются вместе с выбираемыми идентификаторами отчетов.
Идентификаторы отчетности в группах по интересам
Идентификаторы отчетов определяются покупателем для каждого объявления в группе интересов:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
// buyerAndSellerReportingId goes to the buyer and seller reporting functions
buyerAndSellerReportingId: 'bsrid123',
// buyerReportingId is defined here as an example, but
// is not used due to the overwrite rules described later
buyerReportingId: 'brid123',
}]
});
Отчетность продавца
На этапе отчетности продавца значение buyerAndSellerReportingId
становится доступным для reportResult()
:
function reportResult(..., browserSignals, ...) {
const {
buyerAndSellerReportingId // 'bsrid123'
} = browserSignals;
sendReportTo(`https://seller.example/report?bsrid=${buyerAndSellerReportingId}`);
}
Прежде чем идентификатор станет доступен внутри reportResult()
, он проверяется на k-анонимность с участием владельца группы интересов, URL-адреса сценария назначения ставок, URL-адреса отображения и размера объявления (размер объявления исключается из этой проверки как минимум до первого квартала 2025 года). Если он не является k-анонимным, функция reportResult()
все равно будет работать, но значение идентификатора отчета не будет доступно внутри функции.
Отчеты о покупателях
На этапе отчета покупателя на аукционе для reportWin()
становится доступным один идентификатор отчета. Если в группе интересов определено более одного идентификатора отчетности, то применяется правило перезаписи, при котором buyerAndSellerReportingId
перезаписывает buyerReportingId
:
- Если оба
buyerAndSellerReportingId
иbuyerReportingId
определены, тоbuyerAndSellerReportingId
перезапишетbuyerReportingId
, аbuyerAndSellerReportingId
будет доступен внутриreportWin()
. - Если определен только
buyerReportingId
, тоbuyerReportingId
будет доступен. - Если ни
buyerAndSellerReportingId
, ниbuyerReportingId
не определены, тоinterestGroupName
будет доступен.
function reportWin(..., browserSignals, ...) {
const {
buyerAndSellerReportingId // 'bsrid123'
} = browserSignals;
sendReportTo(`https://seller.example/report?bsrid=${buyerAndSellerReportingId}`);
}
Идентификатор отчета, который становится доступен внутри reportWin()
проверяется на k-анонимность с владельцем группы интересов, URL-адресом сценария назначения ставок, URL-адресом отображения и размером объявления (размер объявления исключается из этой проверки как минимум до первого квартала 2025 года). Если проверка k-анонимности не пройдена, reportWin()
все равно будет работать, но значение идентификатора отчета не будет доступно внутри функции.
Определен только buyerReportingId
Если в конфигурации группы интересов определен только buyerReportingId
:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
buyerReportingId: 'brid123',
}]
});
Тогда buyerReportingId
доступен внутри reportWin()
:
function reportWin(..., browserSignals, ...) {
const {
buyerReportingId, // 'brid123'
} = browserSignals;
}
Прежде чем стать доступным для reportWin()
, buyerReportingId
проверяется на k-анонимность с владельцем группы интересов, URL-адресом сценария назначения ставок, URL-адресом отображения и размером объявления (размер объявления исключается из этой проверки как минимум до первого квартала 2025 года).
Определен только buyAndSellerReportingId.
Если в конфигурации группы интересов определен только buyerAndSellerReportingId
:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
buyerAndSellerReportingId: 'bsrid123',
}]
});
Тогда buyerAndSellerReportingId
доступен внутри reportWin()
:
function reportWin(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'bsrid123'
} = browserSignals;
}
Прежде чем стать доступным для reportWin()
, buyerAndSellerReportingId
проверяется на k-анонимность с владельцем группы интересов, URL-адресом сценария назначения ставок, URL-адресом отображения и размером объявления (размер объявления исключается из этой проверки как минимум до первого квартала 2025 года).
Определены оба buyerAndSellerReportingId
и buyerReportingId
Если в конфигурации группы интересов определены и buyerAndSellerReportingId
, и buyerReportingId
:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
buyerReportingId: 'brid123',
buyerAndSellerReportingId: 'bsrid123',
}]
});
Тогда внутри reportWin()
доступен только buyerAndSellerReportingId
из-за поведения перезаписи :
function reportWin(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'bsrid123'
} = browserSignals;
}
Прежде чем стать доступным для reportWin()
, buyerAndSellerReportingId
проверяется на k-анонимность с владельцем группы интересов, URL-адресом сценария назначения ставок, URL-адресом отображения и размером объявления (размер объявления исключается из этой проверки как минимум до первого квартала 2025 года).
Ни buyerAndSellerReportingId
, ни buyerReportingId
не определены.
Если ни один идентификатор отчетности не определен в конфигурации группы интересов:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
}]
});
Тогда name
группы интересов будет доступно внутри reportWin()
:
function reportWin(..., browserSignals, ...) {
const {
interestGroupName, // 'example-interest-group'
} = browserSignals;
}
Прежде чем стать доступным для reportWin()
, имя группы интересов ( interestGroupName
) проверяется на k-анонимность с владельцем группы интересов, URL-адресом сценария назначения ставок, URL-адресом отображения и размером объявления (размер объявления исключается из этой проверки как минимум до первого квартала 2025 г.). ).
Выбираемые идентификаторы отчетов
Выбираемые идентификаторы отчетов позволяют покупателю выбрать идентификатор во время формирования ставки, а браузер делает выбранное значение доступным для функции scoreAd()
и отчетов. Значение selectableBuyerAndSellerReportingIds
, которое представляет собой массив строк, предоставляется для generateBid()
, и покупатель может вернуть один выбранный идентификатор как selectedBuyerAndSellerReportingId
.
Функции generateBid()
и scoreAd()
будут выполняться для каждого объявления, определенного в конфигурации группы интересов, и получать идентификаторы отчетов для каждого объявления. Функции отчетности покупателя и продавца будут выполняться только для объявления-победителя, и эти функции получат идентификаторы отчетов, определенные для этого объявления-победителя.
Когда невыбираемые идентификаторы отчетов используются вместе с выбираемыми идентификаторами отчетов, их поведение отличается от рабочего процесса, описанного в предыдущем разделе. В отличие от первоначального поведения невыбираемых идентификаторов отчетов, которые доступны только внутри функций отчетности, выбираемые идентификаторы отчетов позволяют невыбираемым идентификаторам отчетов стать доступными также внутри generateBid()
и scoreAd()
.
Группа по интересам
Поле выбираемых идентификаторов отчетов — selectableBuyerAndSellerReportingIds
— представляет собой массив строк, определенных покупателем в группе интересов для объявления. Невыбираемые идентификаторы отчетов также можно определить вместе с выбираемыми идентификаторами отчетов:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
buyerReportingId: 'brid123',
buyerAndSellerReportingId: 'bsrid123',
selectableBuyerAndSellerReportingIds: ['sbsrid1', 'sbsrid2', 'sbsrid3']
}]
});
Формирование ставок покупателя
Если selectableBuyerAndSellerReportingIds
был определен в конфигурации группы интересов, он становится доступен внутри generateBid()
вместе с другими идентификаторами отчетов, которые были определены.
function generateBid(interestGroup, ...) {
const [{
buyerReportingId, // 'brid123'
buyerAndSellerReportingId, // 'bsrid123'
selectableBuyerAndSellerReportingIds // ['sbsrid1', 'sbsrid2', 'sbsrid3']
}] = interestGroup.ads;
return {
bid: 1,
render: 'https://buyer.example/ad.html',
selectedBuyerAndSellerReportingId: 'sbsrid2' // Buyer returns the selected ID
};
}
Покупатель может выбрать один из идентификаторов из массива selectableBuyerAndSellerReportingIds
в generateBid()
и вернуть выбранный идентификатор как selectedBuyerAndSellerReportingId
. Ставка отклоняется, если выбранное значение отсутствует в массиве selectableBuyerAndSellerReportingIds
. Если selectableBuyerAndSellerReportingIds
определен в конфигурации группы по интересам, и покупатель не возвращает selectedBuyerAndSellerReportingId
из generateBid()
, тогда идентификаторы отчетов вернутся к поведению, описанному для невыбираемых идентификаторов отчетов .
Ставка с возвращаемым значением для selectedbuyerAndSellerReportingId
может выиграть аукцион только в том случае, если значение selectedbuyerAndSellerReportingId
является совместно k-анонимным вместе с buyerAndSellerReportingId
(если присутствует), buyerReportingId
(если присутствует), владельцем группы интересов, URL-адресом скрипта ставок, URL-адресом отображения и размер объявления (размер объявления исключен из этой проверки как минимум до первого квартала 2025 г.).
Оценка рекламы продавца
Для продавца selectedBuyerAndSellerReportingId
, которое было возвращено покупателем из generateBid()
становится доступным scoreAd()
вместе с значением buyerAndSellerReportingId
, если оно было определено в конфигурации группы интересов.
function scoreAd(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'bsrid123'
selectedBuyerAndSellerReportingId, // 'sbsrid2'
} = browserSignals;
// ...
}
Отчетность продавца
Для отчетов о продавцах selectedBuyerAndSellerReportingId
, которое было возвращено покупателем из generateBid()
становится доступным в reportResult()
вместе с значением buyerAndSellerReportingId
, если оно было определено в группе интересов.
function reportResult(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'bsrid123'
selectedBuyerAndSellerReportingId // 'sbsrid2'
} = browserSignals;
// ...
}
Если selectableBuyerAndSellerReportingIds
был определен в конфигурации группы интересов, а selectedBuyerAndSellerReportingId
был возвращен generateBid()
, то он не сможет выиграть аукцион, если только selectedBuyerAndSellerReportingId
и buyerAndSellerReportingId
(если присутствуют) не являются k-анонимными с владельцем группы интересов, URL-адресом сценария назначения ставок, URL-адресом рендеринга, и размер объявления (размер объявления исключен из этой проверки как минимум до первого квартала 2025 г.), а reportResult()
не будет выполняться для этой ставки. Таким образом, если reportResult()
вызывается со значением selectedBuyerAndSellerReportingId
, это означает, что идентификаторы отчетов прошли проверку k-анонимности, и все определенные идентификаторы отчетов будут доступны внутри reportResult()
.
Отчеты о покупателях
Если selectableBuyerAndSellerReportingIds
был определен в конфигурации группы интересов, а selectedBuyerAndSellerReportingId
был возвращен generateBid()
, то все идентификаторы отчетности, которые были определены в конфигурации группы интересов, становятся доступными. Обратите внимание: как и в случае с отчетами продавцов, если идентификаторы отчетов не являются k-анонимными, они не смогут выиграть аукцион, и reportWin()
не будет работать для этой ставки.
function reportWin(..., browserSignals, ...) {
const {
buyerReportingId, // 'brid123'
buyerAndSellerReportingId, // 'bsrid123'
selectedBuyerAndSellerReportingId // 'sbsrid2'
} = browserSignals;
// ...
}
Перезаписать правила
Здесь мы суммируем правила перезаписи как для невыбираемых идентификаторов отчетов, так и для выбираемых идентификаторов отчетов. Какой из selectableBuyerAndSellerReportingIds
, buyerAndSellerReportingId
, buyerReportingId
и имени группы интересов передается в reportWin()
определяется браузером с помощью следующей логики:
- Если
selectedBuyerAndSellerReportingId
возвращается из ставки, тоselectedBuyerAndSellerReportingId
,buyerAndSellerReportingId
(если определено в группе интересов) иbuyerReportingId
(если определено в группе интересов) доступны для отчетов. - В противном случае, если в группе интересов определен
buyerAndSellerReportingId
, для отчетов доступен толькоbuyerAndSellerReportingId
. - В противном случае, если в группе интересов определен
buyerReportingId
, для отчетов доступен толькоbuyerReportingId
. - В противном случае для отчетов будет доступно только
name
группы интересов.
В следующей таблице описано поведение перезаписи:
Определены ли идентификаторы отчетов в конфигурации группы интересов? | Доступны идентификаторы отчетов | |||
selectableBuyerAnd | buyerAndSeller | buyerReportingId | reportWin() | reportResult() |
Да , и выбрано в generateBid() | Необязательный | Необязательный | 1) selectableBuyerAnd 2) buyerAndSeller (если определено)3) buyerReportingId (если определено) | 1) selectableBuyerAnd 2) buyerAndSeller (если определено) |
Нет или не выбрано в generateBid() | Да | игнорируется | buyerAndSeller | buyerAndSeller |
Нет или не выбрано в generateBid() | Нет | Да | buyerReportingId | Никто |
Нет или не выбрано в generateBid() | Нет | Нет | interestGroupName | Никто |
Привлекайте и делитесь отзывами
- Дополнительную информацию об идентификаторах отчетов см. в разделе «Идентификатор отчетов» пояснения к защищенной аудитории .
- GitHub : задавайте вопросы и следите за обсуждением проблем в репозитории API.
- W3C : Обсудите варианты использования в отрасли на телеконференции WICG .
- Объявления : Присоединяйтесь к списку рассылки или просмотрите его.
- Поддержка разработчиков Privacy Sandbox : задавайте вопросы и присоединяйтесь к обсуждениям в репозитории поддержки разработчиков Privacy Sandbox.
- Chromium : сообщите об ошибке Chromium , чтобы задать вопросы о реализации, доступной для тестирования в Chrome.