Многие создатели контента и рекламодатели хотят знать, сколько уникальных пользователей увидели их контент. Используйте Shared Storage для записи первого просмотра пользователем вашей рекламы, встроенного видео или публикации, чтобы избежать дублирования подсчета одного и того же пользователя на разных сайтах. Затем вы можете использовать Private Aggregation API для вывода сводного отчета по охвату.
API общего хранилища — это предложение по созданию «песочницы конфиденциальности» для универсального межсайтового хранилища, поддерживающее множество возможных вариантов использования. API частной агрегации — это доступный в общем хранилище инструмент, позволяющий агрегировать данные между сайтами. Чтобы узнать больше о методах реализации этих измерений, ознакомьтесь с нашим техническим документом Reach .
Попробуйте уникальные методы измерения досягаемости.
Чтобы поэкспериментировать с измерением уникального охвата с помощью общего хранилища и частной агрегации, убедитесь, что вы используете Chrome M107 или более позднюю версию. Включите все API конфиденциальности рекламы в разделе chrome://settings/adPrivacy .
Также можно включить общее хранилище с помощью флага --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames в командной строке.
Поэкспериментируйте с примерами кода.
Возможно, вам потребуется отслеживать, сколько уникальных пользователей просмотрели ваш контент на разных сайтах. В этом примере параметр ID контента закодирован в ключе агрегации (корзине), а количество используется в качестве агрегируемого значения. Сводный отчет будет содержать информацию, например: «Приблизительно 391 пользователь просмотрел контент с ID 123».
В этом примере:
-
unique-reach-measurement.jsзагружается с помощью фрейма и отвечает за загрузку рабочего модуля общего хранилища. -
unique-reach-measurement-worklet.js— это рабочий модуль для общего хранилища, который проверяет наличие соответствующего флага в общем хранилище и отправляет отчет, используя API частной агрегации.
async function measureUniqueReach() {
// Load the Shared Storage worklet
await window.sharedStorage.worklet.addModule('reach-measurement-worklet.js');
// Run the reach measurement operation
await window.sharedStorage.run('reach-measurement', { data: { contentId: '1234' } });
}
measureUniqueReach();
// Learn more about noise and scaling from the Private Aggregation fundamentals
// documentation on Chrome blog
const SCALE_FACTOR = 65536;
function convertContentIdToBucket(contentId) {
return BigInt(contentId);
}
class ReachMeasurementOperation {
async run(data) {
const { contentId } = data;
// Read from Shared Storage
const key = 'has-reported-content';
const hasReportedContent = (await sharedStorage.get(key)) === 'true';
// Don't report if a report has been sent already
if (hasReportedContent) {
return;
}
// Generate the aggregation key and the aggregatable value
const bucket = convertContentIdToBucket(contentId);
const value = 1 * SCALE_FACTOR;
// Send an aggregatable report using the Private Aggregation API
privateAggregation.contributeToHistogram({ bucket, value });
// Set the report submission status flag
await sharedStorage.set(key, true);
}
}
// Register the operation
register('reach-measurement', ReachMeasurementOperation);
Engage and share feedback
Note that the Shared Storage API proposal is under active discussion and development and therefore subject to change.
We're eager to hear your thoughts on the Shared Storage API.
- Proposal: Review the detailed proposal.
- Discussion: Join the ongoing discussion to ask questions and share your insights.