تحسين الحصة

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

تعرض هذه الصفحة بالتفصيل أفضل الممارسات العامة وتسلّط الضوء على الميزات التكميلية في "مساحة العرض والفيديو 360 API" التي يمكن أن تساعدك في تقليل استخدام حصتك.

إجراء طلبات متزامنة ضد معلنين مختلفين

تحدّد معظم الطرق في "مساحة العرض والفيديو 360 API" معلنًا في عنوان URL. بالإضافة إلى الحصة على مستوى المشروع، يتم فرض حدود أكثر صرامة لمعدل"لكل معلن لكل مشروع" لهذه الطرق عند إجراء مكالمات لتحديد المعلن نفسه.

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

استخدام المعلمتَين filter وorderBy

يمكنك استخدام طرق list بدلاً من طرق get عند استرداد موارد متعددة. مع ذلك، يمكن أن تستهلك مكالمات list الكثير من الحصة بسبب القيود المفروضة على حجم الصفحة. إذا كنت تريد استرداد مجموعة فرعية فقط من استجابة القائمة الكاملة، يمكنك تحسين استخدام الحصة من خلال الاستفادة من المعلّمتَين filter وorderBy الاختياريتَين.

تتيح لك المعلَمة filter حصر الموارد التي تم استردادها من خلال استدعاء list على الموارد التي تلتزم خصائصها بتعبيرات معيّنة. تُعد هذه المعلمة مفيدة عند محاولة استرداد:

  • مورد معيّن بمعرّف غير معروف لكنّه خصائص معروفة. إذا البحث عن مورد معين، يمكنك تصفية القائمة المعروضة حسب الخصائص المعروفة للمورد المطلوب. تشمل الأمثلة فلترة العناصر حسب displayName معروف، وتصميمات الإعلانات حسب creativeType، ومصادر المستودع ذات الصلة حسب exchange.
  • المراجع المرتبطة: غالبًا ما ترتبط الموارد في "مساحة العرض والفيديو 360" ببعضها البعض. يمكنك استخدام عوامل التصفية لقصر الموارد التي تم إرجاعها على تلك التي لديها علاقة محددة مع أخرى. ومن الأمثلة على ذلك استرداد جميع طلبات الإدراج ضمن campaignId محدّدة وجميع تصميمات الإعلانات المخصّصة إلى عنصر.
  • فقط الموارد التي تحتوي على سمات قابلة للتنفيذ: تتيح لك وظائف واجهة برمجة التطبيقات التحقق بسهولة من حالة الموارد والاستجابة آليًا. باستخدام الفلاتر، يمكنك استخدام عبارات list للحصول فقط على الموارد التي تحتاج إلى اتخاذ إجراء. وتشمل الأمثلة استرداد جميع العناصر التي تعرض عنصرًا lineItemWarningMessage قابلاً للتنفيذ معيّنًا، أو كل طلبات الإدراج التي تم تعديلها منذ تاريخ محدّد، أو جميع تصميمات الإعلانات التي تعذّر تنفيذها approvalStatus.

تسمح لك المعلَمة orderBy بترتيب الموارد التي تم استردادها حسب خصائص محددة، تصاعديًا أو تنازليًا. يمكن استخدام علامة orderBy، خاصةً عند استخدامها مع filter، للحدّ من عدد الصفحات التي يجب اجتيازها قبل العثور على مورد محدّد. كما تمكّنك من الحصول بسهولة على الحدين الأعلى والأدنى لقائمة الموارد. على سبيل المثال، سيسمح لك الطلب حسب updateTime بالعثور بسرعة على العناصر أو طلبات الإدراج الأحدث للمعلنِين.

استخدام الوظائف المجمّعة والوظائف على مستوى الموارد

توفّر واجهة برمجة التطبيقات "مساحة العرض والفيديو 360" عددًا من الوظائف المجمّعة وعلى مستوى الموارد التي تنفّذ إجراءات متعددة من خلال طلب واحد. تتضمن أمثلة هذه الأنواع من الدوال ما يلي:

  • إجراء تعديلات مجمّعةللمواقع الإلكترونية التي تنتمي إلى قناة واحدة: يمكن أن يتم تخصيص آلاف المواقع الإلكترونية للقنوات من أجلها. وبدلاً من إدارة قائمة المواقع الإلكترونية لقناة تتضمّن طلبات create أو delete فردية، يمكنك استخدام طلب bulkEdit أو replace واحد لإضافة عدة مواقع إلكترونية وإزالتها أو استبدال المحتوى الكامل في القناة، على التوالي.
  • إدارة مجموعة الاستهداف الكاملة لأحد المعلنين. يتم تعيين مجموعة استهداف المورد عبر أنواع استهداف متعددة. تسمح لك وظائف الاستهداف على مستوى الموارد، مثل listAssignedTargetingOptions وeditAssignedTargetingOptions في خدمة advertisers، باسترداد الاستهداف وإنشائه وإزالته على مستوى أنواع استهداف متعدّدة في طلب واحد. يؤدي ذلك إلى تقليل تكلفة الحصة لإعداد مجموعة استهداف المعلِن لطلب واحد.
  • ضبط قيود الاستهداف نفسها على مستوى عناصر متعدّدة: إذا كنت بحاجة إلى إجراء تغييرات الاستهداف نفسها على مستوى عناصر متعدّدة في الوقت نفسه، يمكن تنفيذ ذلك من خلال طلب advertisers.lineItems.bulkEditAssignedTargetingOptions واحد.
  • تفعيل عناصر متعددة أو إيقافها مؤقتًا: يجب تفعيل البنود بعد إنشائها قبل بدء عرضها. إذا كنت بصدد إنشاء عناصر متعددة في تتابع سريع، يمكنك تفعيلها جميعًا من خلال طلب advertisers.lineItems.bulkUpdate واحد. يمكن استخدام الطريقة نفسها لإيقاف عناصر متعددة مؤقتًا لمنع عرضها.

ذاكرة التخزين المؤقت والتحقّق من المعرّفات المستخدَمة بانتظام

يتطلّب العديد من العمليات في "مساحة العرض والفيديو 360 API" استخدام أرقام تعريف الموارد التي يتم استردادها من خلال واجهة برمجة التطبيقات نفسها، بما في ذلك أرقام تعريف خيارات الاستهداف وأرقام تعريف شرائح الجمهور من Google وغير ذلك. لتجنّب استرداد المعرّفات من واجهة برمجة التطبيقات عند كل استخدام، ننصحك بتخزين هذه المعرّفات محليًا.

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

تنفيذ التراجع الأسي للعمليات الطويلة المدى

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

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

يمكنك العثور على استراتيجية الرقود الأسي الثنائي التي تم تنفيذها باستخدام مكتبات العملاء في أمثلة رموز تنزيل أداة SDF. يكون التدفق خطوة بخطوة لتنفيذ الرقود الأسي البسيط على النحو التالي:

  • يمكنك تقديم طلب sdfdownloadtasks.operations.get إلى واجهة برمجة التطبيقات.
  • استرجع كائن العملية.
    • إذا لم يكن الحقل done صحيحًا، هذا يعني أنّه يجب إعادة محاولة الطلب.
    • انتظِر لمدة 5 ثوانٍ بالإضافة إلى عدد عشوائي من المللي ثانية وأعِد محاولة إرسال الطلب.
  • استرجع كائن العملية.
    • إذا لم يكن الحقل done صحيحًا، هذا يعني أنّه يجب إعادة محاولة الطلب.
    • انتظِر لمدة 10 ثوانٍ + عدد عشوائي من المللي ثانية ثم أعِد محاولة إرسال الطلب.
  • استرجع كائن العملية.
    • إذا لم يكن الحقل done صحيحًا، هذا يعني أنّه يجب إعادة محاولة الطلب.
    • انتظِر لمدة 20 ثانية + عدد عشوائي من المللي ثانية ثم أعِد محاولة إرسال الطلب.
  • استرجع كائن العملية.
    • إذا لم يكن الحقل done صحيحًا، هذا يعني أنّه يجب إعادة محاولة الطلب.
    • انتظِر لمدة 40 ثانية + عدد عشوائي من المللي ثانية ثم أعِد محاولة إرسال الطلب.
  • استرجع كائن العملية.
    • إذا لم يكن الحقل done صحيحًا، هذا يعني أنّه يجب إعادة محاولة الطلب.
    • انتظِر لمدة 80 ثانية + عدد عشوائي من المللي ثانية ثم أعِد محاولة إرسال الطلب.
  • مواصلة هذا النمط حتى يتم تعديل كائن طلب البحث أو الوصول إلى الحدّ الأقصى للوقت المنقضي.