اندازه گیری دسترسی منحصر به فرد

بسیاری از تولیدکنندگان محتوا و تبلیغ‌کنندگان می‌خواهند بدانند چه تعداد از افراد منحصربه‌فرد محتوای آنها را دیده‌اند. از فضای ذخیره‌سازی مشترک برای ضبط اولین باری که کاربر تبلیغ، ویدیوی جاسازی شده یا انتشارات شما را مشاهده کرد و از شمارش تکراری همان کاربر در سایت‌های مختلف جلوگیری کنید. سپس می توانید از Private Aggregation API برای خروجی یک گزارش خلاصه برای دسترسی خود استفاده کنید.

Shared Storage API یک پیشنهاد Privacy Sandbox برای اهداف عمومی، فضای ذخیره‌سازی بین سایتی است که از بسیاری از موارد استفاده ممکن پشتیبانی می‌کند. Private Aggregation API خروجی موجود در ذخیره سازی مشترک است که به شما امکان می دهد داده های بین سایتی را جمع آوری کنید.

اندازه گیری دسترسی منحصر به فرد را امتحان کنید

برای آزمایش اندازه‌گیری دسترسی منحصربه‌فرد با فضای ذخیره‌سازی مشترک و تجمیع خصوصی، تأیید کنید که از Chrome M107 یا جدیدتر استفاده می‌کنید. سپس پرچم آزمایش Privacy Sandbox Ads APIs را در chrome://flags/#privacy-sandbox-ads-apis فعال کنید.

آزمایش APIهای Privacy Sandbox Ads را برای استفاده از این APIها فعال کنید

همچنین می‌توانید ذخیره‌سازی مشترک را با پرچم --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames در خط فرمان فعال کنید.

با نمونه کد آزمایش کنید

ممکن است بخواهید تعداد کاربران منحصربه‌فرد محتوای شما را در سایت‌های مختلف مشاهده کنید. در این مثال، بعد Content ID در کلید جمع‌آوری (سطل) کدگذاری می‌شود و تعداد به‌عنوان مقدار قابل جمع‌آوری استفاده می‌شود. گزارش خلاصه حاوی اطلاعاتی مانند "تقریباً 391 کاربر شناسه محتوای 123 را دیده اند."

در این مثال: * unique-reach-measurement.js از طریق یک فریم بارگیری می شود و مسئول بارگیری Worklet ذخیره سازی مشترک است. * unique-reach-measurement-worklet.js یک ابزار ذخیره‌سازی مشترک است که پرچم را در فضای ذخیره‌سازی مشترک بررسی می‌کند و گزارشی را از طریق 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 this.sharedStorage.get(key)) === 'true';

    // Do not 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 via the Private Aggregation API
    privateAggregation.sendHistogramReport({ bucket, value });

    // Set the report submission status flag
    await this.sharedStorage.set(key, true);
  }
}

// Register the operation
register('reach-measurement', ReachMeasurementOperation);

مشارکت کنید و بازخورد را به اشتراک بگذارید

پیشنهاد ذخیره‌سازی مشترک در دست بحث فعال است و ممکن است در آینده تغییر کند. اگر این API را امتحان کردید و بازخورد دارید، مایلیم آن را بشنویم.