ملاحظة: تم إيقاف خدمات ألعاب "منصة خرائط Google" اعتبارًا من 18 تشرين الأول (أكتوبر) 2021. وسيظل بإمكان المستخدمين الحاليين الوصول إلى التطبيق حتى 31 كانون الأول (ديسمبر) 2022. وخلال هذه الفترة، سنواصل تقديم الدعم والإصلاحات للأخطاء الرئيسية والأعطال. يُرجى الاطّلاع على دليل نقل خدمات ألعاب الفيديو للحصول على مَراجع لمساعدتك في التخطيط للخطوات التالية المتعلقة بمشاريعك.

أفضل الممارسات المتعلقة بالإنتاج

وتنصح Google باتباع أفضل الممارسات التالية عند إدارة تطبيقك وتشغيله.

تأمين مفاتيح واجهة برمجة التطبيقات

تحتاج إلى مفتاح واجهة برمجة تطبيقات لاستخدام خدماتنا على الإنترنت، ويسمح استخدامه لـ Google بقياس استخدامك. ننصحك بتقييد مفاتيح واجهة برمجة التطبيقات لمنع الاستخدام غير المصرّح به.

أنواع القيود المفروضة على مفتاح واجهة برمجة التطبيقات

هناك نوعان من القيود على مفتاح واجهة برمجة التطبيقات، ويمكنك استخدامهما في الوقت نفسه.

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

اقتراحات القيود المفروضة على مفتاح واجهة برمجة التطبيقات

وننصحك بتكليف مفاتيح واجهة برمجة التطبيقات (API) منفصلة للسيناريوهات التالية.

السيناريوالإجراء المقترَح
تستدعي خوادم اللعبة الخلفية واجهة برمجة التطبيقات Playable Locations API لاسترداد المواقع الجغرافية القابلة للتشغيل. اضبط مفتاحًا مع قيدَين:
  • قيد واجهة برمجة التطبيقات: السماح بالمكالمات إلى واجهة برمجة تطبيقات المواقع القابلة للتشغيل فقط.
  • قيد التطبيق: السماح بالمكالمات الصادرة من عناوين IP لخادم اللعبة الخلفية فقط.
يستدعي إصدار Android من تطبيقك حزمة تطوير البرامج (SDK) لتطبيق "خرائط Google" لبرنامج Unity لاسترداد البيانات الجغرافية. يمكنك ضبط مفتاح يتضمّن قيودًا على التطبيق للسماح بالمكالمات من إصدار Android فقط لتطبيقك.
يستدعي إصدار iOS من تطبيقك حزمة تطوير البرامج (SDK) للخرائط الخاصة بواجهة Unity API لاسترداد البيانات الجغرافية. يمكنك ضبط مفتاح يتضمّن قيودًا على التطبيق للسماح بالمكالمات من إصدار iOS فقط لتطبيقك.

لمزيد من المعلومات، يُرجى الاطِّلاع على أفضل ممارسات أمان واجهة برمجة التطبيقات.

لإعداد قيود مفتاح واجهة برمجة التطبيقات

  1. انتقِل إلى لوحة بيانات الاعتماد في Google Cloud Console.
  2. اختَر مفتاح واجهة برمجة التطبيقات الذي تريد فرض قيود عليه. ستظهر لك صفحة خصائص مفتاح واجهة برمجة التطبيقات.
  3. ضمن قيود المفاتيح، اختَر علامة التبويب قيود التطبيقات، ثم اختَر أحد أنواع قيود التطبيقات الأربعة.
    نوع التقييد الوصف
    مُحيلات HTTP قبول الطلبات من قائمة المواقع الإلكترونية التي تقدّمها
    عناوين IP يمكنك قبول الطلبات من قائمة عناوين IP التي تقدّمها لخادم الويب.
    التطبيقات المتوافقة مع Android أضِف اسم الحزمة وبصمة الإصبع لشهادة التوقيع SHA-1 لتقييد الاستخدام على تطبيق Android.
    تطبيقات iOS اقبل الطلبات من تطبيق iOS الذي يحتوي على معرّف الحزمة الذي تقدّمه.
  4. ضمن Keyالقيود، اختَر علامة التبويب قيود واجهة برمجة التطبيقات ثم اختَر واجهة برمجة التطبيقات التي تريد تقييد مفتاح واجهة برمجة التطبيقات إليها.
  5. انقر على Save (حفظ).

تحديثات مفتاح واجهة برمجة التطبيقات للدعم

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

استخدِم مفاتيح منفصلة لكل تطبيق، ما يتيح لك تبديل المفتاح بسهولة في مفتاح واحد بدون التأثير في التطبيقات الأخرى.

اقتراحات حول أمان خادم اللعبة

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

للحدّ من هذه المشكلة، تطلب منك Google تنفيذ عملية Binary Exponential Back-off على خادم اللعبة. إنه نهج منهجي لإبعاد محاولات الاتصال. وعلى وجه التحديد، يمكنك تنفيذ خوارزمية تنتظر N ثانية بعد محاولة إعادة الاتصال الفاشلة قبل إعادة المحاولة. وإذا لم تنجح المحاولة التالية، تضاعف خوارزميتك فترة الانتظار ثم تعيد المحاولة. وإذا لم تنجح المحاولة التالية، ستضاعف خوارزميتك فترة الانتظار مرة أخرى، ثم تعيد المحاولة. تستمر في مضاعفة فترة الانتظار بعد كل محاولة - حتى تنجح محاولتك الأخيرة.

التعامل مع رموز حالة إرجاع HTTP

يجب تنفيذ عملية التراجع الأسية الثنائية لبعض رموز إرجاع HTTP، ولكن ليس كلها.

400 ثانية
هذه أخطاء في البرنامج لا يتم استردادها بشكل عام، لذا لن تنجح إعادة محاولة تنفيذ الطلبات التي تعذّر تنفيذها والتي تؤدي إلى ظهور رموز الخطأ هذه. يجب اكتشاف هذه الأنواع من الأخطاء أثناء الاختبار.
429
هذا خطأ يستنفد الموارد ويحدث عند بدء نفاد حصة واجهة برمجة التطبيقات. للاطّلاع على حدود عدد الطلبات في الثانية (QPS) في واجهة برمجة التطبيقات الخاصة بمشروعك، يُرجى الانتقال إلى حصص واجهات Google API.
الخمسينيات
في ما يلي الأخطاء من جانب الخادم، وهي نوع الأخطاء التي تكون ميزة "التراجع الأسّي" أكثر فائدةً لها.