قياس مدى الوصول الفريد

يريد العديد من صنّاع المحتوى والمعلنين معرفة عدد المستخدمين الفرديين الذين شاهدوا محتواهم. استخدِم Shared Storage API لتسجيل المرة الأولى التي شاهد فيها المستخدم إعلانك أو الفيديو المضمّن أو المنشور، ولمنع احتساب المستخدم نفسه بشكل مكرّر على مواقع إلكترونية مختلفة. يمكنك بعد ذلك استخدام Private Aggregation API لإخراج تقرير تلخيصي عن مدى وصولك إلى الجمهور.

Shared Storage API هي اقتراح ضمن "مبادرة حماية الخصوصية" لتوفير مساحة تخزين عامة الأغراض على مستوى المواقع الإلكترونية، وهي تتيح العديد من حالات الاستخدام المحتملة. Private Aggregation API هي ناتج متاح في Shared Storage يتيح لك تجميع البيانات على مستوى المواقع الإلكترونية. لمزيد من المعلومات عن طرق تنفيذ هذه القياسات، يمكنك الاطّلاع على التقرير الموجز عن مدى الوصول.

تجربة قياس مدى الوصول الفريد

لتجربة قياس مدى الوصول الفريد باستخدام Shared Storage وPrivate Aggregation، تأكَّد من استخدام الإصدار 107 من Chrome أو الإصدارات الأحدث. فعِّل جميع واجهات برمجة التطبيقات الخاصة بالخصوصية في عرض الإعلانات ضِمن chrome://settings/adPrivacy.

يمكنك أيضًا تفعيل "مساحة التخزين المشتركة" باستخدام العلامة --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames في سطر الأوامر.

تجربة عيّنات التعليمات البرمجية

قد تحتاج إلى تتبُّع عدد المستخدمين الفريدين الذين اطّلعوا على المحتوى الخاص بك على مواقع إلكترونية مختلفة. في هذا المثال، يتم ترميز سمة معرّف المحتوى في مفتاح التجميع (الحزمة)، ويتم استخدام العدد كقيمة قابلة للتجميع. سيتضمّن تقرير الملخّص معلومات مثل "شاهد المحتوى الذي يحمل المعرّف 123 حوالي 391 مستخدمًا".

في هذا المثال:

  • يتم تحميل unique-reach-measurement.js باستخدام إطار، وهو المسؤول عن تحميل وحدة معالجة مساحة التخزين المشتركة.
  • unique-reach-measurement-worklet.js هي وحدة عمل Shared Storage التي تتحقّق من العلامة في مساحة التخزين المشتركة وترسل تقريرًا باستخدام Private Aggregation API.

reach-measurement.js

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();

reach-measurement-worklet.js

// 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);

التفاعل مع الملاحظات ومشاركتها

يُرجى العِلم أنّ اقتراح واجهة برمجة التطبيقات Shared Storage API يخضع حاليًا لمناقشة وتطوير نشطَين، وبالتالي قد يتغيّر.

نتطلّع إلى معرفة رأيك في واجهة برمجة التطبيقات Shared Storage API.