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

- يزور أحد المستخدِمين موقعًا إلكترونيًا يعرض إعلانات.
- ينفذ رمز البائع
navigator.runAdAuction()
. يحدّد هذا الحقل مساحات الإعلانات التي يتم بيعها والمستخدمين الذين يمكنهم تقديم عروض أسعار. على البائعين أيضًا تضمين نص برمجي يحدّد درجة كل عرض سعر،scoreAd()
. - يتم تنفيذ رمز المشتري المدعو لإنشاء عرض أسعار وعنوان URL لمادة عرض إعلان ملائمة وغيرها من البيانات. يمكن أن يطلب نص عروض الأسعار بيانات في الوقت الفعلي، مثل الميزانية المتبقية للحملة الإعلانية، من خدمة المفتاح/القيمة الخاصة بالمشتري.
- يحدِّد رمز البائع نتيجة كلّ عرض سعر ويختار الفائز. يستخدم هذا المنطق قيمة عرض السعر وبيانات أخرى لعرض مدى ملاءمة عرض السعر. ويتم رفض الإعلانات التي لا يمكنها التغلب على الإعلان الفائز السياقي. يمكن للبائع استخدام خدمة مفتاح/قيمة الخاصة به للبيانات في الوقت الفعلي.
- يتم عرض الإعلان الفائز كقيمة غير شفافة، ويتم عرضه في إطار محدود. ولن يتمكّن كل من البائع والناشر من الاطّلاع على هذه القيمة.
- يتم إبلاغ البائع والمشترين الفائزين بالمزاد.
يمكن أن يتمّ إجراء مزاد عندما ينتقل أحد المستخدِمين إلى صفحة تعرض إعلانًا. قد يتمّ إجراء المزادات مسبقًا لكي يكون تصميم الإعلان جاهزًا عند ظهور المساحة الإعلانية.
يبدأ البائعون مزاد الإعلانات، ويحدّدون ترتيب الإعلانات المرشّحة باستخدام منطق مخصّص مقدَّم
كوسيطة scoreAd()
، وهم مسؤولون عن إعداد تقارير نتائج المزاد لأنفسهم وللمشتري الفائز أيضًا. يمكن للبائعين أيضًا
فرض قواعد الناشرين والفلترة حسب جودة الإعلان باستخدام scoreAd()
دالة.
يمكن للبائع الإشارة إلى ما يلي:
- ناشرو المحتوى الذين يستضيفون المحتوى الإعلاني على موقعهم الإلكتروني بأنفسهم
- منصّات عرض إعلانات المورِّدين (SSP)، التي تعمل مع ناشر الإعلانات وتقدّم خدمات أخرى
- النصوص البرمجية التابعة لجهات خارجية التي تعمل نيابةً عن الناشرين لتفعيل المشاركة في مزادات الإعلانات
المتطلبات الأساسية لبدء مزاد
يحتاج البائع إلى دالّتَي JavaScript محدّدتَين لتشغيل مزاد:
scoreAd()
، الذي يُحسِّن أداء إعلان مُحتمَل-
reportResult()
، التي تُبلغ البائع بنتيجة المزاد بنفسها
يجب عرض هذه النصوص البرمجية من نقطة نهاية واحدة يملكها البائع.
scoreAd()
على البائع تحديد دالة scoreAd()
يتم عرضها من نقطة نهاية
يملكها. يتم تحديد نقطة النهاية في إعدادات المزاد على أنّه
decisionLogicUrl
. تحتوي الدالة scoreAd()
على التوقيع التالي:
scoreAd(
adMetadata,
bid,
auctionConfig,
trustedScoringSignals,
browserSignals,
directFromSellerSignals)
مَعلمات scoreAd()
هي:
-
adMetaData
، وهي بيانات وصفية عشوائية عن تصميم الإعلان الذي يقدّمه المشتري. هذا عنصر قابل للتسلسل بتنسيق JSON على البائعين والمشتريِين تحديد البنية والموافقة عليها. bid
، وهي قيمة رقمية تمثّل عرض السعر.auctionConfig
، وهي إعدادات المزاد المستخدَمة لتنفيذ المزاد.trustedScoringSignals
، وهي إشارات يتم قراءتها في وقت المزاد من خادم المفتاح/القيمة الخاص بالبائع. ستستخدم المنصةrenderUrl
للإعلان المُقترَح كمفتاح لهذا البحث.-
browserSignals
، وهو عنصر ينشئه المتصفّح، بما في ذلك المعلومات التي يعرفها المتصفّح والتي قد يريد النص البرمجي للمزاد الذي يتبع البائع التحقّق منها. directFromSellerSignals
هو عنصر قد يحتوي على الحقول التالية: **sellerSignals
: مثلauctionConfig.sellerSignals
، ولكن يتم تمريره باستخدام آليةdirectFromSellerSignals
. **auctionSignals
: مثلauctionConfig.auctionSignals
، ولكن تم تمريرها باستخدام آليةdirectFromSellerSignals
.
في ما يلي مثال على browserSignals
. يُرجى العِلم أنّ renderUrl
للإعلان المُقترَح متوفّر من خلال الإشارات التالية:
{ 'topWindowHostname': 'www.example-publisher.com',
'interestGroupOwner': 'https://www.example-buyer.com',
'renderURL': 'https://cdn.com/render_url_of_bid',
'renderSize': {width: 100, height: 200}, /* if specified in the bid */
'adComponents': ['https://cdn.com/ad_component_of_bid',
'https://cdn.com/next_ad_component_of_bid',
...],
'biddingDurationMsec': 12,
'bidCurrency': 'USD', /* bidCurrency returned by generateBid, or '???' if none */
'dataVersion': 1, /* Data-Version value from the trusted scoring signals server's response */
}
reportResult()
على البائع تحديد دالة reportResult()
يتم عرضها من نقطة نهاية
يملكها. يتم تحديد نقطة النهاية في إعدادات المزاد
بصفتها decisionLogicUrl
. تحتوي الدالة reportResult()
على التوقيع التالي:
reportResult(auctionConfig, browserSignals) {
...
return signalsForWinner;
}
مَعلمات reportResult()
هي:
auctionConfig
، وهي إعدادات المزاد المستخدَمة لتنفيذ المزاد.-
browserSignals
، وهو عنصر ينشئه المتصفّح، بما في ذلك المعلومات التي يعرفها المتصفّح والتي قد يريد النص البرمجي للمزاد الذي يتبع البائع التحقّق منها. هذا هو العنصر نفسه الذي تم تمريره إلى الدالةscoreAds()
.
تُعرِض الدالة reportResult()
القيمة signalsForWinner
، وهي عنصر JSON عشوائي
يتم تمريره إلى وظيفة إعداد تقارير المشتري الفائز. ويجب أن يتضمّن ذلك
أي معلومات ذات صلة يمكن للبائع تقديمها عن المزاد الذي يحتاجه العميل
لإعداد تقاريره.
تنفيذ مزاد يستخدم Protected Audience API
هناك أربع خطوات رئيسية يجب أن يتّخذها البائع لبدء مزاد. تجدر الإشارة إلى أنّ هذه الخطوات تفترض أنّ البائع قد أعدّ نقطة نهاية لعرض JavaScript المطلوبة المذكورة سابقًا في هذا الدليل.
- اضبط المزاد. تتضمّن هذه الخطوة إنشاء عنصر
auctionConfig
. يتيح ذلك للبائع تحديد المشترين الذين يجب أن يشاركوا في المزاد، بالإضافة إلى تقديم أي إشارات قد تكون ذات صلة أثناء إنشاء عروض الأسعار أو تقييم الإعلانات. - نفِّذ المزاد من خلال استدعاء
navigator.runAdAuction()
، مع إدخال الإعداد الذي تم إنشاؤه في الخطوة السابقة. يؤدي ذلك إلى بدء سلسلة المشترين، ثمّ إنشاء عروض الأسعار، ثمّ احتساب النقاط. النتيجة النهائية لهذه الخطوة هي إعلان مُحتمَل يمكن عرضه. - عرض الإعلان الفائز في إطار أو إطار iframe محدود
- سجِّل نتيجة المزاد. هناك دالة،
navigator.sendReportTo()
، ستبدأ عملية إعداد التقارير. سيتلقّى البائع دائمًا تقريرًا عن نتائج المزاد. لن يتلقّى سوى المشتري الذي فاز بالمزاد تقريرًا. ويستخدم هذا الإجراءreportResult()
البائع الموضّح سابقًا في هذا الدليل للإبلاغ إلى خادمه.