يُشار إليها أحيانًا باسم "معدّل التكرار الفعّال"، وغالبًا ما يكون هناك حدّ أدنى لعدد المشاهدات قبل أن يتعرّف المستخدم على محتوى معيّن أو يتذكّره (غالبًا في سياق مشاهدات الإعلانات). يمكنك استخدام Shared Storage لإنشاء تقارير عن المستخدمين الفريدين الذين شاهدوا جزءًا من المحتوى K مرّة على الأقل.
Shared Storage API هي اقتراح ضمن "مبادرة حماية الخصوصية" لتوفير مساحة تخزين عامة الأغراض على مستوى المواقع الإلكترونية، وهي تتيح العديد من حالات الاستخدام المحتملة. Private Aggregation API هي ناتج متاح في Shared Storage يتيح لك تجميع البيانات على مستوى المواقع الإلكترونية.
تجربة قياس عدد مرّات الظهور بعدد مرّات ظهور أكبر من حدّ معيّن
للتجربة على قياس عدد مرّات الظهور باستخدام K+ مع "مساحة التخزين المشتركة" و"التجميع الخاص"، تأكَّد من استخدام الإصدار 107 من Chrome أو إصدار أحدث. فعِّل جميع واجهات برمجة التطبيقات الخاصة بالخصوصية في عرض الإعلانات ضِمن chrome://settings/adPrivacy.
يمكنك أيضًا تفعيل "مساحة التخزين المشتركة" باستخدام العلامة --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames في سطر الأوامر.
تجربة عيّنات التعليمات البرمجية
قد تحتاج إلى قياس عدد المستخدمين الذين شاهدوا محتواك K أو أكثر من مرّة على عميل معيّن في مواقع إلكترونية مختلفة. في هذا المثال، تتم إضافة عدد مرّات الظهور إلى مساحة التخزين المشترَكة، حيث يزيد بمقدار 1 كلّما تم تحميل المحتوى. عندما يصل عدد مرّات الظهور إلى 3، يتم استدعاء Private Aggregation API. يتم ترميز سمة "معرّف المحتوى" كمفتاح تجميع، ويتم استخدام العدد كقيمة قابلة للتجميع. سيقدّم التقرير الموجز معلومات مثل "شاهد حوالي 391 مستخدمًا الحملة الإعلانية التي تحمل المعرّف 123 ثلاث مرات على الأقل".
في هذا المثال:
- يتم تحميل
k-frequency-measurement.jsباستخدام إطار، وهو المسؤول عن تحميل وحدة معالجة مساحة التخزين المشتركة. -
k-frequency-measurement-worklet.jsهي وحدة عمل في Shared Storage تقرأ عدد مرّات الظهور في مساحة التخزين المشتركة وترسل تقريرًا باستخدام Private Aggregation API.
k-frequency-measurement.js
async function injectContent() {
// Load the Shared Storage worklet
await window.sharedStorage.worklet.addModule('k-freq-measurement-worklet.js');
// Run the K-frequency measurement operation
await window.sharedStorage.run('k-freq-measurement', { data: { kFreq: 3, contentId: 123 });
}
injectContent();
kuency-measurement-worklet.js
// Learn more about noise and scaling from the Private Aggregation fundamentals
// documentation on Chrome blog
const SCALE_FACTOR = 65536;
/**
* The bucket key must be a number, and in this case, it is just the content
* ID itself. For more complex bucket key construction, see other use cases in
* this demo.
*/
function convertContentIdToBucket(contentId) {
return BigInt(contentId);
}
class KFreqMeasurementOperation {
async run(data) {
const { kFreq, contentId } = data;
// Read from Shared Storage
const hasReportedContentKey = 'has-reported-content';
const impressionCountKey = 'impression-count';
const hasReportedContent = (await sharedStorage.get(hasReportedContentKey)) === 'true';
const impressionCount = parseInt((await sharedStorage.get(impressionCountKey)) || 0);
// Don't report if a report has been sent already
if (hasReportedContent) {
return;
}
// Check impression count against frequency limit
if (impressionCount < kFreq) {
await sharedStorage.set(impressionCountKey, impressionCount + 1);
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(hasReportedContentKey, 'true');
}
}
// Register the operation
register('k-freq-measurement', KFreqMeasurementOperation); \
التفاعل مع الملاحظات ومشاركتها
يُرجى العِلم أنّ اقتراح واجهة برمجة التطبيقات Shared Storage API يخضع حاليًا لمناقشة وتطوير نشطَين، وبالتالي قد يتغيّر.
نتطلّع إلى معرفة رأيك في واجهة برمجة التطبيقات Shared Storage API.
- العرض: راجِع العرض التفصيلي.
- المناقشة: انضم إلى المناقشة الجارية لطرح الأسئلة ومشاركة آرائك.