لا تتوفر عروض أسعار تطبيقات الهواتف المحمولة إلا لمجموعة مختارة من الناشرين.

عروض الأسعار من خادم إلى خادم

الخدمة الوسيطة الداخلية ليست متوفرة للعامة

عروض الأسعار الداخلية مع Audience Network متاحة حاليًا في الإصدار التجريبي المغلق وليست متوفرة للعامة. سنقدم المزيد من التحديثات إذا تغير هذا الأمر.

وكبديل، يمكنك الوصول إلى عروض أسعار Audience Network من خلال إحدى منصات الخدمات الوسيطة التي تجمعنا معها شراكة.

في هذه الصفحة:

تدعم Audience Network من Facebook عروض الأسعار في تطبيقات الهواتف المحمولة، بالإضافة إلى مواقع ويب الهواتف المحمولة. ويمكن أن تتم عمليات دمج عروض أسعار تطبيقات الهواتف المحمولة من برنامج هواتف محمولة إلى خادمنا أو من خادمك إلى خادمنا. ستتناول هذه النظرة العامة المفاهيم الشاملة لعروض أسعار التطبيقات.

مقدمة

تعريف عروض أسعار التطبيقات

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

أسباب استخدام عروض أسعار التطبيقات

  • يمثل المزاد الفوري فرصة لتحسين كل طلبات عرض الإعلانات.
  • توفر إمكانية العرض للقيمة الحقيقية للمخزون الإعلاني لديك.
  • سهلة الصيانة وتتطلب موارد عمليات إعلانية أقل.

هياكل الدمج

تتوفر عروض أسعار التطبيقات من خلال نقطة النهاية التي تنفذ بروتوكول عروض الأسعار المفتوحة والفورية (ORTB) لتوفير عروض الأسعار وفقًا لفرص الظهور الفردية. ويلزم توفير مجموعة SDK لـ Audience Network في عروض أسعار التطبيقات لتنفيذ الإجراءات التالية:

  • احصل على buyeruid (يُسمى bidderToken في مجموعة Audience Network SDK). يُعد هذا الرمز المميز حقلاً مطلوبًا في طلب عرض الأسعار، ويكون فريدًا لكل من المستخدم والتطبيق؛ حيث لا يصلح الرمز المميز لمستخدم أو تطبيق آخر.
  • تحميل استجابة عرض الأسعار وعرض الإعلان في حالة فوز مقدم عرض الأسعار بالمزاد.
  • تسجيل عدد مرات الظهور والنقرات.

الخطوات الرئيسية في دفق عروض الأسعار

  1. الحصول على الرمز المميز لمقدم عرض الأسعار. تحتاج Audience Network إلى توفر سلسلة غير واضحة ليستجيب إلى طلب عرض الأسعار.
  2. إرسال طلب عرض الأسعار والحصول على استجابة عرض الأسعار. هذا هو التفاعل الأساسي مع نقطة نهاية عروض الأسعار. في هذه الخطوة، يمكنك إرسال طلب لعرض أسعار ORTB ثم ستتلقى إما استجابة عرض أسعار صالحة أو خطأ.
  3. تشغيل المزاد. قم بتشغيل المزاد وتحديد فائز من بين استجابات عرض الأسعار. تقارن معظم المزادات عروض الأسعار في الوقت الفعلي مع التكاليف لكل ألف ظهور من مصادر الطلب الأخرى (مثل المتوسط التاريخي للتكاليف لكل ألف ظهور)؛ ويتم ذلك لأن بعض مصادر الطلب لا تدعم عروض الأسعار في الوقت الفعلي. ويمكن تشغيل المزادات وفقًا لأحد الخيارات التالية:
    • خادم داخلي يعمل على تشغيل منطق المزاد المخصص الخاص
    • خادم مزاد تابع لجهة خارجية
    • العميل الموجود على جهاز المستخدم
  4. استرد الإعلان من خلال استجابة عرض الأسعار. إذا فاز Audience Network بالمزاد، فقم بتحميل الإعلان من خلال إرسال الحقل adm الوارد من استجابة عرض الأسعار إلى مجموعة Audience Network SDK في جهاز المستخدم. لاحظ أن الحقل adm لا يحتوي على الإعلان الفعلي؛ حيث يحتوي على معلومات تسمح لمجموعة SDK باسترداد الإعلان من خادم Audience Network.

أنواع الدمج

عند تشغيل المزاد (الخطوة الثالثة في دفق عروض الأسعار أعلاه)، يمكن استضافته من جانب العميل أو من جانب الخادم. توجد 3 أنواع مختلفة من الدمج أدناه:

هيكل دمج خادم إلى خادم

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


دمج خادم الإعلان الخارجي

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

طلب/استجابة ORTB وتنسيقات الإعلانات المدعومة

طلب ORTB

تدعم نقطة نهاية عروض الأسعار التي نوفرها مجموعة فرعية من بروتوكول OpenRTB بالإصدار 2.5.

ملاحظة: يرجى الاطّلاع على عينة كاملة من الطلب في دليل إعداد خادم المزاد

'id' => string, // platform's auction identifier,
'imp' => vec< // slots to bid on
shape(
'id' => string, // platform's identifier for this slot auction
// only for banner impression opportunities
'banner' => shape(
'w' => int, // width
'h' => int, // height
),
// only for native impression opportunities
'native' => shape(
'w' => int, // width 
'h' => int, // height 
),
// only for video impression opportunities
'video' => shape(
'w' => int, // width
'h' => int, // height
'linearity' => int, // 1 = instream, optional
'ext' => shape(
'videotype' => string, // 'rewarded' for Rewarded Video impression opportunities, optional
),
),
'tagid' => string, // Placement ID
'instl' => int, // interstitial flag, 1 = On, 0 = Off, optional
)
>,
// app details (in-app bidding only)
'app' => shape( 
'publisher' => shape(
'id' => string, // publisher app ID
),
),
'device' => shape(
'ua' => string, // device user-agent
'ifa' => string, // ID sanctioned for advertiser use
// Do not send ip or ipv6 if you are requesting bids from the client device.
// For server-side bid requests set ip or ipv6.
'ip' => string, // device IPv4
'ipv6' => string, // device IPv6
'dnt' => int, // "do not track", 1 = On, 0 = Off, optional
'lmt' => int, // "limit ad tracking", 1 = On, 0 = Off
),
'regs' => shape( // regulations object
'coppa' => int, // US FTC regulations for Children's Online Privacy Protection Act, 1 = On, 0 = Off, optional
),
'user' => shape(
'buyeruid' => string, // Audience Network Identity Token, mandatory
),
'ext' => shape(
'platformid' => string, // Mediation partner Platform ID or publisher FB app ID, mandatory
'authentication_id' => string // Authentication token to validate the originator of the request                     
),
'at' => int, // auction type: 1 = First Price, 2 = Second Price
'tmax' => int, // auction timeout in milliseconds
'test' => int, // 0 = normal, 1 = test-mode (we bid $99.99, but don't pay out), optional

تنسيقات الإعلانات المدعومة

ندعم حاليًا أربعة أنواع من الإعلانات التي يمكن طلبها من خلال OpenRTB: إعلان البانر، والإعلان الأصلي (إعلان أصلي أو بانر أصلي) والفيديو (فيديو بمكافأة أو إعلان الفيديو المضمن في المحتوى)، والإعلان الخلالي. ملاحظة: إعلان البانر وكائنات الإعلان الأصلي والفيديو تستبعد بعضها بعضًا، ولكن أحدها يكون مطلوبًا.

فيما يلي قائمة بتنسيقات الإعلانات المدعومة في طلب عروض الأسعار:

تنسيق الإعلان المعلمات في طلب عرض الأسعار

الإعلان الأصلي

{'id': ${AUCTION_ID}, 'native': { 'h': -1, 'w': -1 }, 'tagid': ${PLACEMENT_ID}}

البانر الأصلي

{'id': ${AUCTION_ID}, 'native': { 'h': -1, 'w': -1 }, 'tagid': ${PLACEMENT_ID}}

الإعلان الخلالي

{'id': ${AUCTION_ID}, 'banner': { 'h': 0, 'w': 0 }, 'tagid': ${PLACEMENT_ID}, 'instl': 1}

فيديو بمكافأة

{'id': ${AUCTION_ID}, 'video': { 'h': 0, 'w': 0, 'ext': { 'videotype': 'rewarded' } }, 'tagid': ${PLACEMENT_ID}}

إعلان خلالي بمكافأة

{'id': ${AUCTION_ID}, 'video': { 'h': 0, 'w': 0, 'ext': { 'videotype': 'rewarded_interstitial' } }, 'tagid': ${PLACEMENT_ID}}

بانر - الارتفاع: 50

{'id': ${AUCTION_ID}, 'banner': { 'h': 50, 'w': -1 }, 'tagid': ${PLACEMENT_ID}}

بانر - الارتفاع: 250*

{'id': ${AUCTION_ID}, 'banner': { 'h': 250, 'w': -1 }, 'tagid': ${PLACEMENT_ID}}

*يمكنك إنشاء بانر أو موضع مستطيل متوسط في مدير الأرباح لتنسيق الإعلان هذا

استجابة ORTB

تظل استجابة عرض الأسعار صالحة لمدة 30 دقيقة. ويمكنك طلب الإعلان في أي وقت خلال 30 دقيقة بداية من وقت تلقي استجابة عرض الأسعار. ولن يتم الدفع مقابل أي مرات ظهور تستند إلى عرض أسعار لمدة تتجاوز 30 دقيقة.

ملاحظة: بمجرد طلب إعلان من خلال استجابة عرض الأسعار، يمكن تخزين الإعلان مؤقتًا لدى العميل ولكن يجب عرضه خلال 60 دقيقة من بداية وقت تحميله. ولن يتم الدفع مقابل أي مرات ظهور تستند إلى إعلان تم تخزينه مؤقتًا لمدة تتجاوز 60 دقيقة.

1  
'id' => string // platform's request identifier
'seatbid' => vec<
    shape(
        'bid' => vec<
            shape(
                'id' => string, // Our identifier for this bid
                'impid' => string, // platform's identifier for this slot auction
                'price' => float, // Our bid price on CPM basis, in USD
                'adm' => string, // Our creative - see Rendering The Ad
                'nurl' => string, // URL to get if we win the impression
                'lurl' => string, // URL to get if we lose the impression
            )
        >,
    ),
>,
'bidid' => string, // Our identifier for this response
'cur' => string, // bid currency: USD

إشعارات تتعلق بالفوز/الخسارة/الفوترة/انتهاء المهلة

نطلب إشعارات الفوز والخسارة والفوترة وانتهاء المهلة مع الرموز البرمجية الصحيحة للخسارة كما هو محدد في ORTB. ويتم تقديم nurl وlurl وburl الخاصة بـ ORTB في استجابة عرض الأسعار. ويرجى التحقق من القسم السابق للحصول على مثال على استجابة عرض الأسعار. ففي حالة انتهاء مهلة عرض الأسعار، نوفر لك مسار الإبلاغ البديل.

إشعار الفوز

سيتوفر nurl الخاص بالفوز في استجابة عرض الأسعار. تحتاج إلى ملء سعر التسوية في nurl:

"https://www.facebook.com/audiencenetwork/nurl/?partner=${PARTNER_FBID}&app=${APP_FBID}&placement=${PLACEMENT_FBID}&auction=${AUCTION_ID}&impression=${IMPRESSION_ID}&request=${BID_REQUEST_ID}&bid=${BID_ID}&ortb_loss_code=0&clearing_price=${AUCTION_PRICE}"
  • ${AUCTION_PRICE}: يجب استبدال هذا السعر بـسعر التسوية الخاص بالمزاد في الوحدة نفسها الموجودة في عرض الأسعار الخاص بنا (على سبيل المثال، الدولار الأمريكي على أساس التكلفة لكل ألف ظهور).

إشعار الخسارة

يحتوي lurl الخاص بالخسارة لدينا على علامتين تحتاج إلى ملئهم:

"https://www.facebook.com/audiencenetwork/nurl/?partner=${PARTNER_FBID}&app=${APP_FBID}&placement=${PLACEMENT_FBID}&auction=${AUCTION_ID}&impression=${IMPRESSION_ID}&request=${BID_REQUEST_ID}&bid=${BID_ID}&ortb_loss_code=${AUCTION_LOSS}&clearing_price=${AUCTION_PRICE}"
  • ${AUCTION_LOSS}: يجب استبدال هذا بالرمز البرمجي للخسارة الخاص بـ ORTB.
  • ${AUCTION_PRICE}: يجب استبدال هذا بـسعر المسح للمزاد في الوحدة نفسها كعرض الأسعار الخاص بنا (على سبيل المثال الدولار على أساس التكلفة لكل ألف ظهور).

فيما يلي قائمة بمختلف الرموز البرمجية للخسارة وأسباب الخسارة المطابقة.

سبب الخسارةالوصفالرمز البرمجي للخسارة الخاص بـ ORTB بالإصدار 2.5

استجابة عرض الأسعار غير صالحة

عرض الأسعار غير صالح (لكن في الوقت المحدد، ولا ينقصه عرض الأسعار، وصالح بما فيه الكفاية بحيث يمكنك استخراج nurl)

3

انتهاء مهلة عرض الأسعار *

تم تلقي استجابة عرض الأسعار، ولكن متأخرًا جدًا عن موعد انتهاء المزاد

2

لا يوجد عرض أسعار

يُشار إلى عدم وجود عروض أسعار على أنه HTTP 204 (على سبيل المثال، لا يوجد nurl لاستدعائه)، ولكن قد تفسر الاستجابة الخاصة بنا على أنها عدم وجود عرض أسعار (قد تكون مشكلة تكامل). وقد يمكنك أيضًا طلب عروض أسعار للعديد من مرات الظهور، وسنقدم عرض أسعار لبعض مرات الظهور وليس جميعها.

9

ليس أعلى مُقدم عرض أسعار RTB

تغلّب علينا مُقدم عرض أسعار آخر بما في ذلك عروض الأسعار الصناعية (على سبيل المثال، التبادلات بخلاف RTB)، إذا تم إدخالها في المزاد نفسه.

102

لم يتحقق المخزون

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

4902

تم إرساله إلى خادم الإعلان

أرسل هذا في حالة قيام نقطة الاتصال الأخيرة لديك متضمنة عملية اتخاذ القرار بإرسال عرض الأسعار العالي الخاص بنا إلى خادم الإعلان. وقد يظل عدد مرات الظهور مفقودًا عن طريق عناصر السطر المفقودة أو خادم الإعلان الذي يلغي المزاد أو عدم تحقيق المخزون.

4900

لم يتم اختيار فائز RTB بواسطة خادم الإعلان

فزنا بمزاد RTB، ولكن خادم الإعلان ألغى المزاد (على سبيل المثال، مزاد مباشر).

4903

الفوز

فزنا بشجرة القرار الكاملة وتم وضع إشارة على الصفحة (الويب) أو تخزين كائن الإعلان مؤقتًا (التطبيق). وقد يستمر عدم إنتاج عدد مرات الظهور القابل للعرض.

0

إشعار الفوترة

نطلب إشعار الفوترة في حالة استدعاء عدد مرات الظهور الذي تم تشغيله في مجموعة Audience Network SDK. تحتاج إلى ملء سعر التسوية في burl:

"https://www.facebook.com/audiencenetwork/burl/?partner=${PARTNER_FBID}&app=${APP_FBID}&placement=${PLACEMENT_FBID}&auction=${AUCTION_ID}&impression=${IMPRESSION_ID}&request=${BID_REQUEST_ID}&bid=${BID_ID}&ortb_loss_code=0&clearing_price=${AUCTION_PRICE}"
  • ${AUCTION_PRICE}: يجب استبدال هذا بـسعر المسح للمزاد في الوحدة نفسها كعرض الأسعار الخاص بنا (على سبيل المثال الدولار على أساس التكلفة لكل ألف ظهور).

إشعار انتهاء المهلة

في حالة انتهاء مهلة عرض الأسعار، نقدم لك مسار الإبلاغ البديل. وهذا هو nurl العام الذي قد يتم استدعاؤه دون الحاجة إلى انتظار وصول عرض الأسعار. ويكون التنسيق كما يلي:

"https://www.facebook.com/audiencenetwork/nurl/?partner=${PARTNER_FBID}&app=${APP_FBID}&auction=${AUCTION_ID}&ortb_loss_code=2"

ملاحظة: يجب ملء ${PARTNER_FBID} و${APP_FBID} و${AUCTION_ID} بالقيم الصحيحة. ويقدم الجدول أدناه شرحًا لتلك القيم.

المعلمةالنوعالوصف

PARTNER_FBID

Int (عدد صحيح)

معرف خادم المزاد الإعلاني الصادر عن فيسبوك. واستخدم معرف تطبيقك هنا إذا لم يكن لديك شريك مخصص للمزاد الإعلاني.

APP_FBID

عدد صحيح

معرف صادر عن فيسبوك للتطبيق/النشاط التجاري الذي بدأ مزادًا.

AUCTION_ID

String (سلسلة)

معرف أنشأه العميل للمزاد الذي استخدمته لإصدار طلب عرض أسعار.

العوائد والمزادات وإمكانية العرض وزمن الاستجابة

الأسعار والعوائد

يتم تحديد الأسعار بالدولار الأمريكي على أساس التكلفة لكل ألف ظهور (على سبيل المثال، 4.25 تعني أننا سندفع 4.25 دولارات أمريكية لكل 1000 ظهور في حالة الفوز). ويجب استخدام الوحدة ذاتها لسعر التسوية في nurl وlurl. ويتم إرسال العوائد مباشرة إلى الناشر.

آليات المزاد

نقدم دومًا عرض أسعار بناءً على سعر افتتاح عرض الأسعار، مما يعني أننا ندفع المبلغ الذي نقدم به عرض الأسعار، ونقدم عرض الأسعار على افتراض أننا سندفع المبلغ بالكامل. ويعني هذا أننا نكون في وضع غير مناسب عند عرض السعر الثاني في المزاد، حيث يمكن لمقدمي عروض الأسعار الآخرين تقديم عروضهم بافتراض أنهم سيدفعون أقل من المبلغ المعروض.

إمكانية العرض

بالنسبة لمرات الظهور في التطبيق، ندفع فقط في حالة عرض هذا الظهور، بغض النظر عما إذا كنا نقدم عرض الأسعار الأعلى أم لا.

زمن الاستجابة

  • لتقليل زمن الاستجابة قدر الإمكان، اطلب عرض أسعار واحد لكل استدعاء لواجهة API (على سبيل المثال، إذا كنت تزايد للحصول على خمس مساحات إعلانية، فيجب استدعاء واجهة API خمس مرات، بحيث تستدعي في كل مرة عرض أسعار واحد).
  • لا نوفر نقاط النهاية حسب المنطقة. وستوجه بنية Facebook الأساسية طلب عرض الأسعار إلى أقرب مركز بيانات.
  • استخدم الاتصالات الثابتة HTTP/2.
  • قم بملء الحقل ORTB tmax في طلب عرض الأسعار بموعد انتهاء مهلة المزاد، وسنختار إستراتيجية عرض الأسعار للموازنة بين زمن الاستجابة والأداء. (يُرجى مراجعة مثال على طلب عرض الأسعار أعلاه لمزيد من المعلومات حول tmax)
  • لتحقيق أهداف زمن الاستجابة، قد نؤجل بعض العمليات لعرض الوقت (على سبيل المثال، قد يعني عرض الأسعار الأسرع أن يتم عرض الإعلان بصور أبطأ، وينتج عن عرض الأسعار الأبطأ إعلان يتم عرضه بصورة أسرع).
  • نعمل باجتهاد على تحسين زمن الاستجابة. ونوصي حاليًا بتعيين المهلة على 800 ميللي ثانية في عروض أسعار خادم إلى خادم.