لا تتوفر عروض أسعار تطبيقات الهواتف المحمولة إلا لمجموعة مختارة من الناشرين.
الخدمة الوسيطة الداخلية ليست متوفرة للعامة
عروض الأسعار الداخلية مع Audience Network متاحة حاليًا في الإصدار التجريبي المغلق وليست متوفرة للعامة. سنقدم المزيد من التحديثات إذا تغير هذا الأمر.
وكبديل، يمكنك الوصول إلى عروض أسعار Audience Network من خلال إحدى منصات الخدمات الوسيطة التي تجمعنا معها شراكة.
تدعم Audience Network من Facebook عروض الأسعار في تطبيقات الهواتف المحمولة، بالإضافة إلى مواقع ويب الهواتف المحمولة. ويمكن أن تتم عمليات دمج عروض أسعار تطبيقات الهواتف المحمولة من برنامج هواتف محمولة إلى خادمنا أو من خادمك إلى خادمنا. ستتناول هذه النظرة العامة المفاهيم الشاملة لعروض أسعار التطبيقات.
عروض أسعار التطبيقات عبارة عن طريقة يتمكّن من خلالها الناشرون من تأسيس مزاد وفتحه بطريقة محايدة عبر مخزونهم الإعلاني، من خلال تقديم كل الفرص الإعلانية إلى عدة مصادر طلب في الوقت الفعلي. وتسنح الفرصة لكل مصدر طلب بالتنافس والفوز بكل مرة ظهور إعلان، عندما تكون القيمة أعلى ما يمكن.
تتوفر عروض أسعار التطبيقات من خلال نقطة النهاية التي تنفذ بروتوكول عروض الأسعار المفتوحة والفورية (ORTB) لتوفير عروض الأسعار وفقًا لفرص الظهور الفردية. ويلزم توفير مجموعة SDK لـ Audience Network في عروض أسعار التطبيقات لتنفيذ الإجراءات التالية:
buyeruid
(يُسمى bidderToken
في مجموعة Audience Network SDK). يُعد هذا الرمز المميز حقلاً مطلوبًا في طلب عرض الأسعار، ويكون فريدًا لكل من المستخدم والتطبيق؛ حيث لا يصلح الرمز المميز لمستخدم أو تطبيق آخر.adm
الوارد من استجابة عرض الأسعار إلى مجموعة Audience Network SDK في جهاز المستخدم. لاحظ أن الحقل adm
لا يحتوي على الإعلان الفعلي؛ حيث يحتوي على معلومات تسمح لمجموعة SDK باسترداد الإعلان من خادم Audience Network.عند تشغيل المزاد (الخطوة الثالثة في دفق عروض الأسعار أعلاه)، يمكن استضافته من جانب العميل أو من جانب الخادم. توجد 3 أنواع مختلفة من الدمج أدناه:
هيكل دمج خادم إلى خادم
في عملية تكامل خادم إلى خادم، يستدعي خادم المزاد نقطة نهاية عروض أسعار Audience Network من فيسبوك وجميع مصادر الطلب الأخرى للحصول على استجابات عروض الأسعار. وبعد ذلك، يقوم خادم المزاد بتشغيل المزاد واختيار عرض الأسعار الفائز. ويمكن أن يكون خادم المزاد هذا خادمًا داخليًا يقوم بتشغيل العملية المنطقية للمزاد التي أنشأتها أو قد يكون خادمًا تابعًا لجهة خارجية يتكامل مع عروض أسعار تطبيق Audience Network. يتيح لك ذلك الاستفادة من موارد الخادم والشبكة المتاحة لاستدعاء نقاط نهاية عروض أسعار مصادر الطلب. ويسمح لك أيضًا بإجراء تغييرات على عمليات تكامل نقطة النهاية هذه دون الحاجة إلى تحديثات العميل بالضرورة.
دمج خادم الإعلان الخارجي
يسمح تكامل خادم الإعلان الخارجي بتجاوز الفجوة في عالم الخدمات الوسيطة لتعاقب العرض حاليًا من خلال عروض أسعار التطبيقات. ويعمل ذلك من خلال إجراء تكامل خادم إلى خادم باستخدام مصادر الطلبات التي تدعم عروض أسعار التطبيقات، ثم تمرير الفائز بالمزاد إلى منصة الخدمة الوسيطة لتعاقب العرض والتي تدير تعاقب العرض وتختار إجمالي مصادر الطلبات الفائزة. والغرض من هذا التكامل هو بناء جسر مؤقت بين عوالم الخدمة الوسيطة لتعاقب العرض وعرض أسعار التطبيقات. باستخدام هذا النوع من التكامل، فإنك لا تحتاج إلى كتابة العملية المنطقية للمزاد الخاصة بك.
تدعم نقطة نهاية عروض الأسعار التي نوفرها مجموعة فرعية من بروتوكول 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: إعلان البانر، والإعلان الأصلي (إعلان أصلي أو بانر أصلي) والفيديو (فيديو بمكافأة أو إعلان الفيديو المضمن في المحتوى)، والإعلان الخلالي. ملاحظة: إعلان البانر وكائنات الإعلان الأصلي والفيديو تستبعد بعضها بعضًا، ولكن أحدها يكون مطلوبًا.
فيما يلي قائمة بتنسيقات الإعلانات المدعومة في طلب عروض الأسعار:
تنسيق الإعلان | المعلمات في طلب عرض الأسعار |
---|---|
الإعلان الأصلي |
|
البانر الأصلي |
|
الإعلان الخلالي |
|
فيديو بمكافأة |
|
إعلان خلالي بمكافأة |
|
بانر - الارتفاع: 50 |
|
بانر - الارتفاع: 250* |
|
*يمكنك إنشاء بانر أو موضع مستطيل متوسط في مدير الأرباح لتنسيق الإعلان هذا
تظل استجابة عرض الأسعار صالحة لمدة 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. ويتم إرسال العوائد مباشرة إلى الناشر.
نقدم دومًا عرض أسعار بناءً على سعر افتتاح عرض الأسعار، مما يعني أننا ندفع المبلغ الذي نقدم به عرض الأسعار، ونقدم عرض الأسعار على افتراض أننا سندفع المبلغ بالكامل. ويعني هذا أننا نكون في وضع غير مناسب عند عرض السعر الثاني في المزاد، حيث يمكن لمقدمي عروض الأسعار الآخرين تقديم عروضهم بافتراض أنهم سيدفعون أقل من المبلغ المعروض.
بالنسبة لمرات الظهور في التطبيق، ندفع فقط في حالة عرض هذا الظهور، بغض النظر عما إذا كنا نقدم عرض الأسعار الأعلى أم لا.