بصفتك مشتري إعلانات (منصّات عرض الطلب والمعلِنين)، قد يهمّك المشاركة في مزاد إعلانات Protected Audience على موقع الناشر الإلكتروني لاستهداف مجموعة الاهتمامات التي حدّدتها على موقع المعلِن الإلكتروني. من خلال المشاركة في مزاد Protected Audience API، يمكنك الوصول إلى عملائك المحدّدين على مواقع إلكترونية أخرى بطريقة تحافظ على الخصوصية.
في مزاد Protected Audience، يمكنك تقديم منطق لإنشاء عرض السعر، ويحسب المتصفّح عرض السعر باستخدام هذا المنطق. يختلف ذلك عن بنى المزادات الأخرى التي تُرسِل فيها عرض السعر مباشرةً بدلاً من تقديم منطق العرض.
يمكنك تقديم منطق إنشاء عروض الأسعار في دالة JavaScript generateBid()
، ويتم استضافة الملف على خادمك. عند إضافة مستخدم إلى مجموعة اهتمامات، يتم تمرير موقع هذا الملف إلى إعدادات مجموعة الاهتمامات كـ biddingLogicUrl
.
أثناء المزاد، يستردّ المتصفّح منطق عروض الأسعار الذي حدّدته في الحقل biddingLogicUrl
، وينفّذ الدالة generateBid()
لكل مجموعة اهتمامات في بيئة آمنة ومعزولة ومحدودة التواصل مع السياق الخارجي. عند تنفيذ generateBid()
، يمرِّر المتصفّح الإشارات إلى الدالة كوسيطات. تحتوي هذه الإشارات على معلومات مختلفة من مصادر متعدّدة، مثل بيانات الطرف الأوّل للناشر وبيانات البائع والبيانات في الوقت الفعلي وغير ذلك. يمكنك استخدام هذه الإشارات لاحتساب عرض السعر، ويتم عرض القيمة من خلال طلب generateBid()
. بعد إرسال عروض الأسعار، سينفّذ المتصفّح منطق التسجيل الخاص بالبائع على كل عرض سعر لاحتساب نتيجة الجاذبية الخاصة بالبائع.
generateBid()
في ما يلي وصف لوسيطات الدالة generateBid()
وبنية عرض السعر الذي يتم إرجاعه من الدالة:
generateBid(interestGroup, auctionSignals, perBuyerSignals,
trustedBiddingSignals, browserSignals, directFromSellerSignals) {
return {
ad: adObject,
adCost: optionalAdCost,
bid: bidValue,
bidCurrency: 'USD',
render: {
url: renderURL,
width: renderWidth,
height: renderHeight
},
adComponents: [
{url: adComponent1, width: componentWidth1, height: componentHeight1},
{url: adComponent2, width: componentWidth2, height: componentHeight2},
// ...
],
allowComponentAuction: false,
modelingSignals: 123 // 0-4095 integer (12-bits)
};
}
الوسيطات
تتلقّى الدالة generateBid()
الوسيطات التالية:
الوسيطة | الدور |
---|---|
|
كائن يمرّره مشتري الإعلان. قد يتم تعديل مجموعة الاهتمامات لتصبح dailyUpdateUrl . |
|
هي إحدى سمات وسيطة إعدادات المزاد التي يمرّرها البائع إلى navigator.runAdAuction() . يوفّر ذلك معلومات عن سياق الصفحة (مثل حجم الإعلان ومعرّف الناشر) ونوع المزاد (السعر الأول أو السعر الثاني) وبيانات وصفية أخرى. |
|
هي إحدى خصائص وسيطة إعدادات المزاد التي يمرّرها البائع. يمكن أن يوفّر ذلك إشارات سياقية من خادم المشتري حول الصفحة، إذا كان البائع عبارة عن منصّة عرض من جهة الخادم (SSP) تجري طلب عرض أسعار في الوقت الفعلي إلى خوادم المشتري وتعيد الردّ، أو إذا كانت صفحة الناشر تتواصل مع خادم المشتري مباشرةً. في هذه الحالة، قد يريد المشتري التحقّق من توقيع تشفير لهذه الإشارات داخل generateBid() كإجراء وقائي ضد التلاعب. |
|
كائن تكون مفاتيحه هي trustedBiddingSignalsKeys لفئة الاهتمامات، ويتم عرض قيمه في طلب trustedBiddingSignals . |
|
عنصر ينشئه المتصفّح، وقد يتضمّن معلومات عن سياق الصفحة (مثل hostname للصفحة الحالية، والذي يمكن للبائع تزييفه بطريقة أخرى) وبيانات لمجموعة الاهتمامات نفسها (مثل سجلّ بالوقت الذي فازت فيه المجموعة بمزاد سابقًا، وذلك للسماح بالحدّ من التكرار على الجهاز). |
|
الإشارات التي تأتي من بائع معيّن، على عكس auctionSignals وsellerSignals اللتين يمكن أن تأتيا من أي مشارك متواجد في سياق تنفيذ runAdAuction |
إشارات المتصفّح
يحتوي الكائن browserSignals
على السمات التالية:
{
topWindowHostname: 'publisher.example',
seller: 'https://ssp.example',
topLevelSeller: 'https://www.top-level-ssp.com',
requestedSize: {width: 100, height: 200}, /* if specified in auction config */
joinCount: 3,
recency: 3600000,
bidCount: 17,
prevWinsMs: [[timeDeltaMs1,ad1],[timeDeltaMs2,ad2],...],
wasmHelper: ...
dataVersion: 1,
adComponentsLimit: 40
}
الموقع | الوصف |
---|---|
|
اسم المضيف الذي تمّ منه إجراء مكالمة runAdAuction() |
|
البائع الذي يتم إرسال عرض السعر إليه. في مزاد المكوّنات، تكون هذه القيمة هي بائع المكوّنات. |
|
البائع الأعلى مستوى في مزاد المكوّنات، ولا يظهر إلا في مزاد المكوّنات. |
|
تقترح السمة requestedSize حجم إطار للمزاد. يحدّد البائع الحجم المطلوب في إعدادات المزاد، وتصبح القيمة متاحة للمزايدين في generateBid() . قد يختار مقدّمو عروض الأسعار داخل المزاد حجم محتوى مختلفًا للإعلان، وسيتم تغيير حجم الإعلان الناتج بشكل مرئي ليلائم حجم حاوية العنصر. |
|
الحقل joinCount هو عدد المرات التي انضم فيها هذا الجهاز إلى هذه المجموعة ذات الاهتمامات المشتركة خلال آخر 30 يومًا أثناء تخزين المجموعة بشكل مستمر (أي لا توجد فجوات في تخزين المجموعة على الجهاز بسبب المغادرة أو انتهاء صلاحية العضوية). |
|
الحقل recency هو مدة الوقت (بالدقائق) منذ انضمام هذا الجهاز إلى مجموعة الاهتمامات هذه وحتى الآن |
|
عدد المرّات التي قدّمت فيها مجموعة الاهتمامات عرض سعر. |
|
يحتوي الحقل prevWinMs على الإعلانات الفائزة في مجموعة الاهتمامات، والوقت المنقضي منذ فوزها السابق بالملّي ثانية. يُرجى العِلم أنّ عنصر الإعلان هنا لا يحتوي إلا على الحقلَين renderURL والبيانات الوصفية. |
|
كائن WebAssembly.Module استنادًا إلى biddingWasmHelperURL للمجموعة ذات الاهتمامات المشتركة. |
|
قيمة Data-Version من استجابات خدمة المفتاح/القيمة الخاصة بالمشتري |
|
يمكن أن تعرض هذه الطريقة generateBid() عنصر إعلان كحدّ أقصى. |
احتساب عرض سعر
لحساب قيمة عرض السعر، يمكن أن يستخدم الرمز البرمجي في generateBid()
خصائص مَعلمات الدالة.
على سبيل المثال:
function generateBid(interestGroup, auctionSignals, perBuyerSignals,
trustedBiddingSignals, browserSignals) {
return {
// ...
bid: auctionSignals.is_above_the_fold ? perBuyerSignals.atf_value : perBuyerSignals.btf_value,
// ...
}
}
إرجاع عرض سعر
تعرض الدالة generateBid()
عنصرًا يتضمّن السمات التالية:
الموقع | الدور |
---|---|
ad |
بيانات وصفية عشوائية حول الإعلان، مثل المعلومات التي يتوقّع البائع معرفتها عن عرض السعر هذا أو تصميم الإعلان يستخدم البائع هذه المعلومات في مزاده ومنطق اتخاذ القرار. |
adCost |
قيمة رقمية تُستخدَم لنقل تكلفة النقرة أو الإحالة الناجحة للمُعلِن من generateBid إلى reportWin. تقتصر دقة هذا الرقم على جزء كسري من 8 بت وأس من 8 بت، ويتم إجراء أي عملية تقريب بشكل عشوائي. |
adComponents |
قائمة اختيارية تضمّ ما يصل إلى 20 عنصرًا للإعلانات المكوّنة من أجزاء متعدّدة، مأخوذة من السمة adComponents لوسيطة مجموعة الاهتمامات التي تمّ تمريرها إلى navigator.joinAdInterestGroup() . |
allowComponentAuction |
قيمة منطقية تشير إلى ما إذا كان يمكن استخدام هذا العرض في مزاد على مستوى المكوّنات. يتم ضبط القيمة التلقائية على "false" في حال عدم تحديدها. |
bid |
عرض سعر رقمي سيتم إدخاله في المزاد. يجب أن يكون البائع قادرًا على مقارنة عروض الأسعار من مشتريين مختلفين، لذا يجب أن تكون عروض الأسعار بوحدة يختارها البائع (مثل"دولار أمريكي لكل ألف"). إذا كان عرض السعر صفرًا أو سالبًا، لن تشارك مجموعة الاهتمامات هذه في مزاد البائع على الإطلاق. باستخدام هذه الآلية، يمكن للمشتري تطبيق أي قواعد للمعلِنين بشأن الأماكن التي يمكن أن تظهر فيها إعلاناتهم أو لا تظهر. |
bidCurrency |
العملة المستخدَمة في عرض السعر، والتي تُستخدَم في التحقّق من العملة |
render |
قاموس يصف تصميم الإعلان الذي يجب عرضه إذا فاز عرض السعر هذا بالمزاد. ويشمل ذلك:
|
|
عدد صحيح يتراوح بين 0 و4095 (12 بت) يتم تمريره إلى reportWin() ، مع إضافة التشويش، كما هو موضّح في مخطط إضافة التشويش وتقسيم البيانات إلى مجموعات. سيتم تجاهل القيم غير الصالحة، مثل القيم السالبة واللانهائية وقيم NaN ، ولن يتم تمريرها. سيتم تمرير أقل 12 بت فقط. يمكن للمشتري استخدام الإشارات المتاحة داخل الدالة generateBid() ، بما في ذلك البيانات من بيانات المشتري الخاصة بالطرف الأول التي تم جمعها في وقت إنشاء "فئة الاهتمامات" في userBiddingSignals ، وذلك لاستخلاص بعض القيم التي يتم تمريرها إلى دالة إعداد تقارير الفوز الخاصة بالمشتري من أجل تفعيل تدريب نموذج تعلُّم الآلة. |