إعداد تقارير المزادات في Protected Audience API

قياس بيانات ونتائج مزاد Protected Audience API

في هذه المقالة، ستجد نظرة عامة على الآليات المختلفة المتاحة لك لإرسال بيانات مزاد Protected Audience API إلى الخادم، بالإضافة إلى آليات النقل المتاحة لك حاليًا لاستخدامها أثناء عملية نقل البيانات إلى أن تصبح الحلول البديلة جاهزة.

لإعداد تقارير عن المقاييس المهمة التي تجمعها من مزاد الإعلانات، تعمل Protected Audience API مع ما يلي:

  • Private Aggregation التي تجمع إشارات ونتائج المزاد لإنشاء تقارير تلخيصية
  • Ads Reporting API من أجل الإطارات المحصّنة وإطارات iframe، وهي قناة داخل الإطارات للتواصل مع وحدات عمل Protected Audience API تتيح واجهة برمجة التطبيقات ربط البيانات على مستوى الحدث بإشارات المزاد. تُعدّ ميزة "إعداد التقارير على مستوى الحدث" في Ads Reporting API آلية انتقالية إلى حين تصميم آلية إعداد تقارير أكثر خصوصية.
  • Attribution Reporting API التي تتيح لك ربط بيانات الإحالات الناجحة بإشارات المزاد
  • Shared Storage التي تتيح لك كتابة إشارات المزاد في مساحة تخزين على مستوى المواقع الإلكترونية، ثم تتيح لك إعداد تقارير عن هذه البيانات لاحقًا باستخدام Private Aggregation

نظرة عامة على إعداد التقارير في Protected Audience API

سير العمل العام في Protected Audience
سير العمل العام في Protected Audience

هناك ثلاث فترات زمنية رئيسية يمكن فيها إرسال بيانات من مسار مزاد Protected Audience API إلى خادمك: وقت المزاد عندما يتم تنفيذ المزاد من الموقع الإلكتروني للناشر، ووقت العرض عندما يتم عرض الإعلان في إطار محمي أو إطار iframe على الموقع الإلكتروني للناشر، ووقت الإحالة الناجحة عندما يتّخذ المستخدِم إجراءً على موقع إلكتروني آخر يمكن ربطه بالمزاد.

أثناء وقت المزاد، يمكنك تسجيل بيانات المزاد باستخدام وحدات عمل إعداد التقارير. أثناء وقت العرض، يمكنك إرسال بيانات التفاعل من إطار iframe أو إطار محصور. أثناء وقت الإحالة الناجحة، يمكنك إعداد تقارير عن بيانات تحديد المصدر من الصفحة المقصودة باستخدام Attribution Reporting API.

مواقع الإبلاغ

في المزاد، يمكن للمشترين إعداد تقارير عن الإشارات المتوفّرة في وحدتَي العمل generateBid() وreportWin()، ويمكن للبائعين إعداد تقارير عن الإشارات المتوفّرة في وحدتَي العمل scoreAd() وreportResult(). خارج نطاق المزاد، يمكن للمشترين والبائعين إعداد تقارير عن البيانات من إطار عرض الإعلان، ومن الموقع الإلكتروني الذي تمّت منه الإحالة الناجحة.

الفترة الزمنية الوجهة الموقع الجغرافي البيانات متوفرة واجهات Reporting API المتاحة
المزاد مشتري generateBid() الإشارات ونتائج المزاد وأداء المزاد Private Aggregation API
reportWin() Private Aggregation API
Ads Reporting API
البائع scoreAd() Private Aggregation API
reportResult() Private Aggregation API
Ads Reporting API
عرض المشتري / البائع إطار على الموقع الإلكتروني للناشر البيانات على مستوى الحدث ضمن إطار الإعلان Private Aggregation API
Ads Reporting API
الإحالة الناجحة المشتري / البائع الموقع الإلكتروني للإحالة الناجحة بيانات الإحالات الناجحة وبيانات الأحداث على مستوى الحدث من الموقع الإلكتروني للإحالة الناجحة ‫Attribution Reporting API
Private Aggregation API
Ads Reporting API

خلال كل فترة من الفترات الزمنية المُدرَجة، سيتمكّن المشترون والبائعون من الوصول إلى واجهات برمجة التطبيقات المختلفة لإعداد التقارير المتاحة لإعداد تقارير عن بيانات مثل إشارات المزاد والبيانات على مستوى الحدث وبيانات الإحالات الناجحة.

البيانات المتاحة ضِمن مزاد يستخدم Protected Audience API

تتوفّر البيانات التالية لإعداد التقارير من وحدة معالجة Protected Audience API أثناء المزاد.

الإشارات

الإشارات هي بيانات السياق في المزاد، وبيانات المستخدم، والبيانات في الوقت الفعلي، وبيانات المتصفّح المتاحة للمشترين والبائعين ضمن وحدة عمل صغيرة لإنشاء عرض سعر، وتقييم إعلان، وإعداد تقرير بنتائج المزاد.

Signal الوصف ضبط الموقع الجغرافي المستخدِمون مدى التوفّر
auctionSignals البيانات المتاحة في سياق المكان الذي يتم فيه إجراء المزاد ويمكن أن تتضمّن هذه البيانات معلومات عن محتوى الصفحة وبيانات المستخدمين التابعة للطرف الأول وغير ذلك. يتم ضبطها من قِبل البائع من الموقع الإلكتروني للناشر في إعدادات المزاد. المشتري
البائع
generateBid scoreAd reportWin reportResult
directFromSellerSignals البيانات نفسها الخاصة بـ auctionSignals وperBuyerSignals وsellerSignals، ولكنّ الإشارات مضمونة المصدر من البائع المحدّد. يتم ضبطها من خلال عناوين استجابة HTTP من البائع المشتري
البائع
generateBid scoreAd reportWin reportResult
browserSignals بيانات مختلفة يقدّمها المتصفّح (topWindowHostname وinterestGroupOwner وrenderUrl وadComponents وbiddingDurationMsec وIGJoinCount وIGRecency وmodelingSignals) يتم ضبطها من خلال المتصفّح. المشتري
البائع
generateBid scoreAd reportWin reportResult
sellerSignals الإشارات المقدَّمة إلى البائع لتسجيل الإعلانات يتم ضبطها من قِبل البائع من الموقع الإلكتروني للناشر في إعدادات المزاد. البائع scoreAd
reportWin
reportResult
trustedScoringSignals إشارات في الوقت الفعلي يتمّ تقديمها إلى البائع لتسجيل نتائج الإعلانات يحدّد البائع عنوان URL من موقع الناشر الإلكتروني في إعدادات المزاد. البائع scoreAd reportResult
perBuyerSignals بيانات سياقية عن المزادات يتم تقديمها إلى مشترين محدّدين يمكن للبائع استرداد قيم المشترين قبل بدء المزاد. يشير ذلك إلى معرفة المشتري بفرصة عرض الإعلان. يتم ضبطها من قِبل البائع من الموقع الإلكتروني للناشر في إعدادات المزاد. مشتري generateBid scoreAd reportWin reportResult
trustedBiddingSignals إشارات في الوقت الفعلي يتم تقديمها إلى المشترين لتقديم عروض أسعار للإعلانات يحدّد المشتري عنوان URL من الموقع الإلكتروني للمعلِن عند إعداد المجموعة ذات الاهتمامات المشترَكة. مشتري generateBid
userBiddingSignals بيانات المستخدم المقدَّمة من المشتري يتمّ ضبطها من قِبل المشتري من الموقع الإلكتروني للمعلِن عند ضبط مجموعة الاهتمامات . مشتري generateBid

عنصر إعدادات المزاد هو المصدر الأساسي للبيانات التي يتم توفيرها لتصبح متاحة كإشارات في عناصر العمل. يمكن للناشر والبائع تقديم بيانات سياقية وبيانات الطرف الأول في إعدادات المزاد، ويمكن تحسين هذه الإشارات باستخدام بيانات فئة الاهتمامات من المشتري، والبيانات على مستوى الحدث من إطار عرض الإعلان، وبيانات تحديد المصدر من الصفحة التي يتم الانتقال إليها عند النقر. يمكن استخدام البيانات المُسجّلة في إعداد تقارير للمشترين/البائعين والفوترة ووضع الميزانية وتدريب نماذج تعلُّم الآلة وغير ذلك.

البيانات الأخرى المتاحة

  • بيانات النتائج المرتبطة ببيانات الفوز والخسارة في المزاد، مثل سعر عرض السعر الفائز وسبب رفض عرض السعر
  • بيانات الأداء التي تحتوي على معلومات حول وقت الاستجابة، مثل المدة التي استغرقتها عملية جلب وتنفيذ وحدة عرض عروض الأسعار

البيانات المتاحة خارج مزاد Protected Audience API

خارج مزاد Protected Audience API، هناك فترتان زمنيتان تتوفّر فيهما البيانات لإعداد التقارير.

أثناء وقت العرض، عندما يتم عرض الإعلان على موقع الناشر الإلكتروني، يمكن ربط البيانات على مستوى الحدث من داخل إطار iframe أو الإطار المحصّن ببيانات مزاد Protected Audience API، وإرسالها إلى الخادم. تشمل البيانات على مستوى الحدث، على سبيل المثال، مرّات ظهور الإعلان والنقر إلى الموقع والتمرير فوق الإعلان وأي أحداث أخرى تحدث داخل الإطار.

أثناء وقت الإحالة الناجحة، عندما يتّخذ المستخدِم إجراءً معيّنًا في صفحة النقر التي يتم إحالتها إلى المزاد، يمكن ربط البيانات على مستوى الحدث من صفحة الإحالة الناجحة ببيانات مزاد Protected Audience API، وإرسالها إلى الخادم.

إعداد التقارير على مستوى الحدث

تقدّم التقارير على مستوى الحدث تفاصيل عن حدث واحد أو أكثر. يمكن أن يكون الحدث فوزًا في مزاد أو مرّة ظهور إعلان أو إحالة ناجحة. حتى عام 2026 على الأقل، سيظلّ إعداد التقارير عن الفوز بالمزاد على مستوى الحدث متاحًا، ولن يكون من الضروري استخدام إطارات محصّنة لعرض إعلان Protected Audience، ويمكن استخدام إطار iframe مع إمكانية الوصول غير المحدود إلى الشبكة لإعداد التقارير على مستوى الحدث. بالإضافة إلى ذلك، تتوفّر Ads Reporting API في الإطارات المحصّنة وإطارات iframe لتتمكّن من ربط بيانات المزاد والإحالات الناجحة بالبيانات على مستوى الحدث من الإطار. تم تصميم هذه الفترة لتسهيل عملية نقل البيانات في النظام المتكامل، إذ يمكنك مواصلة استخدام البنية الأساسية الحالية لإعداد التقارير حتى عام 2026 على الأقل أثناء نقل نظامك إلى Protected Audience.

إعداد تقارير عن الفوز بالمزاد على مستوى الحدث باستخدام sendReportTo()

إحدى الآليات المتاحة لإعداد تقارير عن البيانات على مستوى الحدث داخل مزاد Protected Audience API هي sendReportTo() function عند الفوز بالمزاد. تتوفّر هذه الوظيفة في وحدات عمل إعداد التقارير الخاصة بالمعلِنين والمشترين، ويُجري المتصفّح طلب GET إلى سلسلة عنوان URL المقدَّمة عند بدء عرض الإعلان. يمكنك ترميز أي إشارة متاحة في وحدات العمل الصغيرة كمعلَمات طلب لعنوان URL.

على سبيل المثال، يمكن للمشتري إعداد تقارير عن مبلغ عرض السعر الفائز من reportWin() worklet لأغراض إعداد الفواتير:

// Buyer reporting worklet
function reportWin(auctionSignals, perBuyerSignals, sellerSignals, browserSignals, directFromSellerSignals) {
  sendReportTo(`https://buyer-reporting-server.example/reporting?bid=${browserSignals.bid}`);
}

يمكن استخدام الدالة sendReportTo() لإنشاء تقرير فوز للبائع عند استدعائها من reportResult()، وتقرير فوز للمشتري عند استدعائها من reportWin(). ستبقى وظيفة sendReportTo() متاحة حتى عام 2026 على الأقل،

تقرير التفاعل

يحتوي تقرير التفاعل على بيانات على مستوى الحدث من تصميم إعلان، مثل بيانات مرّات الظهور أو النقرات المرتبطة بالإشارات في مزاد Protected Audience API الذي عرض الإعلان. بما أنّ الإعلان يتم عرضه بعد انتهاء المزاد، لا تتوفّر إشارات المزاد داخل الإطار الذي يعرض الإعلان. لربط هذه البيانات من فترات زمنية مختلفة، نوفّر لك آليتَي نقل لإنشاء تقارير التفاعل.

يمكن استخدام الدالة sendReportTo() الموضّحة أعلاه لربط بيانات المزاد بالبيانات على مستوى الحدث من إطار iframe، ولكنّها لا تعمل مع الإطار المحصَّن لأنّه لا يمكن تمرير معرّف فريد من أداة التضمين لأنّ التواصل بين أداة التضمين والإطار المحصَّن محدود. لربط بيانات المزاد بالبيانات على مستوى الحدث من إعلان في إطار محمي، يمكن استخدام Ads Reporting API.

Ads Reporting API لإطارات Fenced Frame وإطارات iframe

توفّر Ads Reporting API للإطارات المحصورة وإطارات iframe آلية تتيح لك ربط البيانات على مستوى حدث المستخدِم من إطار إعلان بالإشارات ضِمن مزاد Protected Audience.

في وحدة معالجة تقارير Protected Audience API، يمكنك تسجيل إشارة إعلان باستخدام الدالة registerAdBeacon() وتمرير عنوان URL لإعداد التقارير مع الإشارات المُضافة كمعلَمات طلب بحث. عليك أيضًا تحديد الحدث المخصّص الذي تريد ربطه بعنوان URL الخاص بإعداد التقارير. بعد ذلك، عندما يتم عرض الإعلان في إطار محصور في وقت لاحق، يمكنك تشغيل الحدث المخصّص من خلال استدعاء الدالة window.fence.reportEvent(). يمكن إضافة البيانات المتاحة داخل الإطار المحصور كحمولة بيانات.

لا تتوفّر الدالة registerAdBeacon() إلا في دوال إعداد التقارير، ولا تتوفّر في منطق عروض أسعار المشترين ومنطق تسجيل البائعين.

في المثال التالي، يتم ربط رقم تعريف حملة بحِمل على مستوى الحدث يتضمّن إحداثيات النقرة:

// Protected Audience API buyer win reporting worklet
function reportWin(auctionSignals) {
  const { campaignId } = auctionSignals

  registerAdBeacon({
    click: `https://buyer-server.example/report/click?campaignId=${campaignId}`
  })
}
// Protected Audience API seller reporting worklet
function reportResult(auctionConfig) {
  const { campaignId } = auctionConfig.auctionSignals;

  registerAdBeacon({
    click: `https://seller-server.example/report/click?campaignId=${campaignId}`
  })
}
// Ad frame
window.fence.reportEvent({
  eventType: 'click',
  eventData: JSON.stringify({'clickX': '123', 'clickY': '456'}),
  destination:['buyer', 'seller']
});

ستتوفّر أيضًا واجهة برمجة التطبيقات Fenced Frames Ads Reporting API حتى عام 2026 على الأقل للأسباب نفسها التي تتعلّق بإعداد تقارير مرات الفوز.

لمزيد من التفاصيل، يمكنك الاطّلاع على الشرح.

الوصول غير المقيّد إلى الشبكة

ستسمح الإطارات المحصّنة بتحميل موارد الشبكة بالطريقة نفسها التي يسمح بها إطار iframe، ويمكنك إرسال بيانات على مستوى الحدث داخل الإطارات المحصّنة إلى الخادم. يمكنك إنشاء تقارير على مستوى الحدث من جهة الخادم لاحقًا عن طريق ربط البيانات على مستوى الحدث من إطار محصور ببيانات المزاد التي تم إرسالها باستخدام sendReportTo() التي تمّت مناقشتها في القسم آلية إعداد التقارير على مستوى الحدث في المزادات أعلاه.

سيتم تقييد الوصول إلى الشبكة في المستقبل.

تقرير الإحالة

يتيح لك تقرير تحديد المصدر ربط إحالة ناجحة على موقع إلكتروني بإعلان تم اختياره من مزاد Protected Audience API. على سبيل المثال، قد ينقر مستخدم على إعلان عن منتج تعرضه، ويتمّت إعادة توجيهه إلى الموقع الإلكتروني للمعلن، ويجري عملية شراء هناك، ويهمّك تحديد مصدر عملية الشراء هذه من الإعلان الذي تمّ عرضه. سيتم دمج Attribution Reporting API مع Protected Audience API لدمج بيانات المزاد من موقع الناشر وبيانات الإحالات الناجحة من موقع المعلِن.

أثناء تصميم حلّ أكثر ديمومة، يمكنك استخدام Ads Reporting API للإطارات المحصورة كآلية انتقالية لإنشاء تقرير على مستوى الحدث وقابل للتجميع باستخدام Attribution Reporting. يُرجى العِلم أنّ هذه التقارير مخصّصة لقياس الإحالات الناجحة، وهي منفصلة عن تقارير التفاعل على مستوى الحدث والقابلة للتجميع التي يتمّ إنشاؤها من المزاد وإطار الإعلان. سننشر شرحًا للحلّ الدائم عندما يصبح جاهزًا.

الآلية الانتقالية

عند تسجيل إشارة إعلان، يمكنك استخدام الكلمة الرئيسية reserved.top_navigation التي ستضيف تلقائيًا العنوان Attribution-Reporting-Eligible للإشارة لتصبح مؤهَّلة للتسجيل كمصدر تحديد مصدر الإحالة.

registerAdBeacon({
 'reserved.top_navigation': 'https://adtech.example/click?buyer_event_id=123',
});

لإرفاق بيانات على مستوى الحدث بالإشارة التي سجّلتها، يمكنك طلب setReportEventDataForAutomaticBeacons() من الإطار المحصور مع حمولة الحدث.

window.fence.setReportEventDataForAutomaticBeacons({
  eventType: 'reserved.top_navigation',
  eventData: 'data from the frame',
  destination:['seller', 'buyer']
})

يمكنك الاطّلاع على قسم "تحديد المصدر" في شرح Ads Reporting API لمعرفة المزيد.

مثال على إعداد تقارير التفاعل والإحالات الناجحة

في هذا المثال، سننظر إلى الأمر من منظور المشتري المهتم بربط البيانات من المزاد وإطار الإعلان وموقع الإحالة الناجحة معًا.

في سير العمل هذا، ينسّق المشتري مع البائع لإرسال معرّف فريد إلى المزاد. أثناء المزاد، يرسل المشتري هذا المعرّف الفريد مع بيانات المزاد. أثناء وقت العرض ووقت الإحالة الناجحة، يتم أيضًا إرسال البيانات من الإطار المحمي أو iframe مع المعرّف الفريد نفسه. يمكن استخدام المعرّف الفريد لاحقًا لربط هذه التقارير معًا.

سير العمل:

  1. قبل بدء المزاد، يرسل المشتري رقم تعريف فريدًا إلى البائع كجزء من استجابة عرض الأسعار في الوقت الفعلي ("RTB") الآلية. يمكن ضبط رقم التعريف كمتغيّر مثل auctionId. يتم تمرير المعرّف كـ perBuyerSignals في auctionConfig، ويصبح متاحًا في وحدات عمل المشتري.
  2. أثناء وقت المزاد، يمكن للمشتري تسجيل إشارة إعلان يتم تشغيلها أثناء وقت عرض الإعلان ووقت الإحالة الناجحة (registerAdBeacon()).
    1. لربط إشارات المزاد بحدث إطار إعلان، اضبط auctionId كمَعلمة طلب بحث لعنوان URL الخاص بإشارة التتبّع.
    2. لربط إشارات المزاد بحدث إحالة ناجحة، اضبط auctionId في عنوان URL الخاص بإشارة التتبُّع.
  3. أثناء عرض الإعلان، يمكن تفعيل الإشارات التي سجّلتها أثناء المزاد أو تحسينها باستخدام بيانات على مستوى الحدث.
    1. فعِّل حدث الإطار باستخدام reportEvent() وأدخِل البيانات على مستوى الحدث.
    2. إضافة حمولة على مستوى الحدث إلى إشارة تحديد المصدر باستخدام setReportEventDataForAutomaticBeacons()
    3. سجِّل الإعلان باستخدام Attribution Reporting API من خلال الردّ على طلبات إشارات الإعلان باستخدام العنوان Attribution-Reporting-Register-Source.
  4. أثناء وقت الإحالة الناجحة، يمكنك تفعيل المصدر الذي سجّلته أثناء وقت المزاد.

بعد العملية المذكورة أعلاه، سيحصل المشتري على تقرير مزاد وتقرير تفاعل وتقرير إحالات ناجحة، وكلّها مرتبطة بمفتاح فريد واحد يمكن استخدامه للربط بينها.

ينطبق سير العمل المشابه على البائع إذا كان بحاجة إلى الوصول إلى بيانات تحديد المصدر، ويمكن للبائع أيضًا استخدام معرّف فريد لإرساله مع registerAdBeacon(). من الإطار، يحتوي طلب reportEvent() على سمة وجهة يمكن استخدامها لإرسال التقرير إلى كلّ من المشتري والبائع. يُرجى العِلم أنّه يجب أن يكون مورّد منصة العرض من جهة الخادم متوفّرًا أيضًا على الصفحة المقصودة ليتم إسناد عامل التشغيل إلى المصدر.

تجميع بيانات Protected Audience

‫Private Aggregation API هي الآلية المستخدَمة لإعداد تقارير عن بيانات Protected Audience من أجل إنشاء تقرير تلخيصي، وهو تقرير مجمَّع يتضمّن بعض التشويش عن البيانات التي تم جمعها في مجموعات. يتم تمثيل المجموعة بمفتاح تجميع، ويمكن ترميز بعض المعلومات في المفتاح.

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

يمكنك الاطّلاع على مقالة Private Aggregation لمعرفة المزيد عن واجهة برمجة التطبيقات.

تجميع إشارات المزاد

يمكنك تجميع الإشارات المتاحة في وحدات العمل الصغيرة على خادمك باستخدام Private Aggregation API. لتجميع الإشارات، يمكنك استخدام طريقة privateAggregation.contributeToHistogram() المتاحة في وحدة عمل عروض أسعار المشترين ووحدة عمل تسجيل نقاط البائعين ووحدات عمل إعداد التقارير للمشترين/البائعين.

في هذا المثال، يتم تجميع عرض السعر الفائز في مجموعة مالك المجموعة ذات الاهتمامات المشترَكة:

function convertBuyerToBucket(igOwner) {}
function convertWinningBidToValue(winningBid) {}

function reportResult(auctionConfig, browserSignals) {
  privateAggregation.contributeToHistogram({
    bucket: convertBuyerToBucket(browserSignals.interestGroupOwner),
    value: convertWinningBidToValue(browserSignals.bid)
  });
} 

هذه هي الآلية العامة التي يجب استخدامها عندما لا تكون الإشارات التي تريد تجميعها مرتبطة بالبيانات على مستوى الحدث ولا يتم تشغيلها بواسطة حدث خارج المزاد. لمزيد من المعلومات عن إعداد تقارير عن إشارات المزاد، يُرجى الاطّلاع على الشرح.

تجميع إشارات المزاد مع بيانات الأحداث

يمكنك تجميع إشارات المزاد مع معلومات محدودة عن حدث يقع في إطار إعلان. على سبيل المثال، يمكنك قياس عدد النقرات التي تلقّاها إعلان لحملة بشكل إجمالي عن طريق إنشاء مجموعة تمثّل هذه الحملة وحدث النقرة. يُرجى العِلم أنّه من إطار الإعلان، يمكنك تحديد الحدث الذي وقع، ولكن لا يمكنك إرفاق حمولة على مستوى الحدث.

لتجميع إشارات المزاد حسب الأحداث، يمكنك استخدام privateAggregation.contributeToHistogramOnEvent(eventType, contribution) التي تأخذ سلسلة تحدّد نوع الحدث والمساهمة التي سيتمّ تسجيلها عند تشغيل هذا الحدث. يمكنك استدعاء الطريقة باستخدام نوع حدث مخصّص، ثم استدعاء window.fence.reportEvent(eventType) من إطار الإعلان لتفعيل إرسال التقرير.

لنفترض أنّك تريد قياس عدد النقرات التي تلقّاها إعلان تابع لإحدى الحملات.

// Protected Audience API worklet
function getClickReportBucketForCampaign(campaignId) {
  // return a bucket for the campaign ID and the click event
}

function generateBid(interestGroup) {
  privateAggregation.contributeToHistogramOnEvent('click', {
    bucket: getClickReportBucketForCampaign(interestGroup.ads.metadata.campaignId), 
    value: 1
  });
}

في وظيفة إنشاء عروض الأسعار، يمكنك تحديد مجموعة على أنّها مزيج من رقم تعريف الحملة وحدث النقر، ثم زيادة قيمة هذه المجموعة بمقدار 1 في كل مرة يتم فيها تشغيل الحدث.

// Ad frame
window.fence.reportEvent('click');

بعد ذلك، يمكنك في وقت لاحق إرسال البلاغ من إطار الإعلان عن طريق استدعاء reportEvent(eventType):

يمكنك الاطّلاع على مزيد من المعلومات حول بدء المساهمات في Private Aggregation API من إطار من الشرح.

إعداد تقارير عن نتائج مزاد الإعلانات والأداء

يمكنك أيضًا تجميع نتائج المزاد عند تفعيلها من خلال حدث الفوز أو الخسارة في المزاد باستخدام contributeToHistogramOnEvent(eventType, contribution) عند إدخال كلمات رئيسية لأنواع الأحداث المحجوزة (reserved.win, reserved.loss وreserved.always).

توفّر ميزة "التجميع الخاص" قائمة بالقيم الأساسية التي يمكنك حساب الفئة وقيمة مساهمتك منها. قيم الأساس المتاحة لنتائج المزاد هي قيمة عرض السعر للإعلان الفائز، وقيمة عرض السعر التي تم تسجيلها كأعلى عرض سعر ثانٍ، وسبب رفض عرض سعر من المزاد.

عند تقديم بعض القيم الأساسية، مثل مبلغ عرض السعر الفائز، يمكنك تحديد المبلغ الذي تريد إضافته أو طرحه من هذه القيمة، ثم إعداد تقرير عن القيمة النهائية. على سبيل المثال، إذا تم تقديم عرض السعر الفائز البالغ 5 دولارات أمريكية كقيمة أساسية، يمكنك طرح عرض السعر البالغ 2 دولار أمريكي لحساب القيمة الفعلية البالغة 3 دولارات أمريكية التي خسرت بها المزاد.

إعداد تقارير نتائج المزاد

لنفترض أنّك خسرت مزادًا وتريد معرفة الفرق بين عرض سعرك وسعر تسوية المزاد.

لمعرفة مقدار خسارتك في المزاد، يمكنك طرح سعر عرضك من سعر العرض الفائز:

function generateBid() {
  const bid = calculateBidAmount();

  privateAggregation.contributeToHistogramOnEvent('reserved.loss', {
    bucket: getBucketForCampaign(interestGroup.ads.metadata.campaignId),
    value: {
      baseValue: 'winning-bid',
      scale: 1 // Scale the value to minimize noise-to-signal ratio 
      offset: -bid, // Numbers added to browser value after scaling 
    }
  });
}

عند إرسال التقرير، ستكون القيمة الفعلية المُسجَّلة هي baseValue المعدَّلة بمقدار القيمة offset. لمزيد من المعلومات، يمكنك الاطّلاع على الشرح.

تقارير الأداء

يمكن للمشترين والبائعين الإبلاغ عن المدة التي استغرقها تنفيذ البرنامج النصي، والمدة التي استغرقها جلب الإشارات الموثوقة. يمكن للبائعين جمع وقت إنشاء عروض الأسعار ووقت إشارة "عروض الأسعار الموثوقة" لكل مشترٍ بإذنه.

يمكنك الاطّلاع على الشرح لمعرفة المزيد.

تخزين إشارات المزاد في Shared Storage

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

يمكنك أيضًا الكتابة إلى مساحة التخزين المشتركة من خلال وحدات عمل Protected Audience API الخاصة بتقديم عروض الأسعار وتسجيل النتائج وإعداد التقارير. في وقت لاحق، يمكنك إرسال هذه القيم إلى خادمك في مساحة التخزين المشتركة باستخدام Private Aggregation . يمكنك أيضًا استخدام القيم المخزّنة في عملية اختيار عنوان URL.

من خلال وحدة عمل Protected Audience API، يمكنك كتابة أي مفاتيح وقيم في مساحة التخزين المشتركة:

// Protected Audience API worklet
function generateBid() {
  sharedStorage.set('test-bucket', 123);
}

في وقت لاحق، يمكنك تحميل worklet في مساحة التخزين المشتركة لقراءة هذه القيمة وإرسالها باستخدام Private Aggregation:

// Shared Storage worklet
class SendReachReport{
  async run() {
    const testBucket = await this.sharedStorage.get('test-bucket');

    privateAggregation.contributeToHistogram({
      bucket: testBucket,
      value: 1
    });
  }
}

register('send-report', SendReachReport);

لمزيد من المعلومات عن Shared Storage، يمكنك الاطّلاع على قسم مساحة التخزين المشتركة في دليل المطوّرين الخاص بإعداد التقارير في Protected Audience API، والشرح، والعرض التوضيحي المباشر، ورمز العرض التوضيحي على GitHub.

ما هي الخطوات التالية؟

نريد المشاركة في محادثات معك للتأكد من أننا ننشئ واجهة برمجة تطبيقات تناسب الجميع.

مناقشة واجهة برمجة التطبيقات

مثل واجهات برمجة التطبيقات الأخرى في "مبادرة حماية الخصوصية"، يتم توثيق واجهة برمجة التطبيقات هذه ومناقشتها بشكل علني.

إجراء التجارب باستخدام واجهة برمجة التطبيقات

يمكنك تجربة الميزة والمشاركة في محادثة حول Protected Audience API.