القيود على المعدل
تجمّع واجهة Google Ads API طلبات تحديد المعدل حسب طلبات البحث في الثانية الواحدة (QPS) لكل رقم تعريفي للعميل (CID) والرمز المميز للمطوِّر، ما يعني أنه يتم فرض فرض الضريبة بشكل مستقل على كل من الأرقام التعريفية للعملاء والرموز المميزة للمطوِّر. تستخدم Google Ads API خوارزمية حزمة الرموز المميّزة لقياس الطلبات وتحديد الحدّ المناسب لعدد الطلبات في الثانية (QPS)، وبالتالي سيختلف الحدّ الأقصى تحديدًا وفقًا لتحميل الخادم العام في أي وقت.
والغرض من فرض حدود لمعدل الزيارات هو منع أحد المستخدمين من تعطيل الخدمة للمستخدمين الآخرين عن طريق (سواء عن قصد أو غير قصد) إرباك خوادم Google Ads API بكمية كبيرة من الطلبات.
سيتم رفض الطلبات التي تخالف حدود المعدّل، مع ظهور الخطأ:
RESOURCE_TEMPORARILY_EXHAUSTED
.
يمكنك التحكّم في تطبيقك والحدّ من معدّل الزحف من خلال خفض عدد الطلبات بشكل فعّال وتقييد الطلبات في الثانية من جهة العميل.
تتوفّر عدة طرق لتقليل فرص تجاوز الحدّ الأقصى لمعدّل الزحف. التعرف على مفاهيم أنماط تكامل المؤسسة (EIP) مثل المراسلة وإعادة التسليم والتقييد يمكن أن يساعدك في إنشاء تطبيق عميل أكثر فعالية.
الممارسات الموصى بها التالية مرتبة حسب التعقيد، مع استراتيجيات أكثر بساطة في الأعلى وبنيات أكثر قوة ولكن متطورة بعد:
- الحد من المهام المتزامنة
- طلبات التجميع
- تقييد تدفق البيانات وحدود المعدّل
- إضافة إلى قائمة المحتوى التالي
الحد من المهام المتزامنة
أحد الأسباب الأساسية لتجاوز حدود المعدّل هو أن تطبيق العميل يؤدي إلى إنشاء عدد مفرط من المهام المتوازية. على الرغم من أنّنا لا نحدّ من عدد الطلبات المتوازية التي يمكن لتطبيق عميل الحصول عليها، يمكن أن يتجاوز هذا بسهولة الحدّ الأقصى للطلبات في الثانية على مستوى الرمز المميّز للمطوِّر.
يوصى بوضع حد أعلى معقول لإجمالي عدد المهام المتزامنة التي ستقدم الطلبات (عبر جميع العمليات والأجهزة)، والتعديل لأعلى لتحسين سرعة معالجة البيانات دون تجاوز حد المعدل.
علاوةً على ذلك، يمكنك التفكير في تقييد عدد الطلبات في الثانية من جهة العميل (راجِع مقالة التقييد وحدود المعدّل).
طلبات التجميع
يمكنك تجميع عدة عمليات في طلب واحد. ينطبق ذلك بشكل أكبر
على مكالمات MutateFoo
. على سبيل المثال، في حال تعديل الحالة لمثيلات متعددة من AdGroupAd
، بدلاً من طلب MutateAdGroupAds
مرة واحدة لكل AdGroupAd
، يمكنك الاتصال بـ
MutateAdGroupAds
مرة واحدة، وإدراج operations
متعددة. راجِع إرشادات العمليات المجمّعة للاطّلاع على بعض الأمثلة الإضافية.
في حين يؤدي تجميع الطلبات إلى تقليل العدد الإجمالي للطلبات والحدّ من حدّ معدّل الطلبات لكل دقيقة، قد يؤدي إلى ظهور حدّ معدّل العمليات لكل دقيقة في حال إجراء عدد كبير من العمليات على حساب واحد.
تقييد المحتوى وحدود معدّل الزحف
بالإضافة إلى الحد من إجمالي عدد سلاسل المحادثات في تطبيق العميل، يمكنك أيضًا تنفيذ محددات لمعدل الوصول من جانب العميل. ويمكن أن يضمن ذلك خضوع جميع سلاسل المحادثات في العمليات و / أو المجموعات لحدّ محدد من طلبات البحث في الثانية من جهة العميل.
يمكنك الاطّلاع على محدد معدّل Guava أو تنفيذ خوارزمية خاصة بك تستند إلى حزمة الرموز المميّزة لبيئة مجمّعة. على سبيل المثال، يمكنك إنشاء رموز مميزة وتخزينها في مساحة تخزين مشتركة لمعاملات مثل قاعدة بيانات، وسيتعين على كل عميل الحصول على رمز مميز واستخدامه قبل معالجة الطلب. إذا تم استهلاك الرموز المميزة، فسيتعين على العميل الانتظار حتى يتم إنشاء الدفعة التالية من الرموز المميزة.
الإضافة إلى قائمة المحتوى التالي
تمثل قائمة انتظار الرسائل الحل المخصّص لتوزيع حِمل العمليات والتحكم في الوقت نفسه في الطلبات وأسعار المستهلكين. هناك عدد من الخيارات المتاحة لقائمة انتظار الرسائل، بعضها مفتوح المصدر وبعضها الآخر خاص، ويمكن أن يعمل العديد منها بلغات مختلفة.
عند استخدام قوائم انتظار الرسائل، يمكن أن يرسل العديد من المنتجين الرسائل إلى قائمة الانتظار ويعالج العديد من المستهلكين هذه الرسائل. يمكن فرض هذه القيود من جانب المستهلك من خلال الحد من عدد المستهلكين المتزامنين، أو استخدام محدِّدات لمعدل نقل البيانات أو تقييدات لكل من المنتجين أو المستهلكين.
على سبيل المثال، إذا واجه مستهلك رسالة خطأ متعلقًا بحدود الأسعار، يمكن لهذا المستهلك إعادة الطلب إلى قائمة الانتظار لإعادة المحاولة. وفي الوقت نفسه، يمكن لهذا المستهلك أيضًا إعلام جميع المستهلكين الآخرين بإيقاف المعالجة مؤقتًا لعدد من الثواني للتعافي من الخطأ.