دليل التحسين

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

الأمان

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

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

استخدام مفاتيح واجهة برمجة التطبيقات للوصول إلى واجهات برمجة التطبيقات للخرائط

تعد مفاتيح واجهة برمجة التطبيقات طريقة المصادقة المفضلة للوصول إلى واجهات برمجة التطبيقات لخرائط Google. على الرغم من أنّ استخدام معرِّفات العملاء لا يزال متاحًا حاليًا، فإنّ مفاتيح واجهة برمجة التطبيقات تتوافق مع عناصر تحكّم في الأمان بالغة الدقة ويمكن ضبطها للعمل مع عناوين ويب وعناوين IP وحِزم SDK للأجهزة الجوّالة محدَّدة (نظاما التشغيل Android وiOS). للاطّلاع على معلومات حول إنشاء مفتاح واجهة برمجة التطبيقات وتأمينه، يُرجى الانتقال إلى صفحة "استخدام مفتاح واجهة برمجة التطبيقات" لكل واجهة برمجة تطبيقات أو حزمة تطوير برامج (SDK). (على سبيل المثال، بالنسبة إلى Maps JavaScript API، يمكنك الانتقال إلى صفحته في استخدام مفتاح واجهة برمجة تطبيقات).

عروض أداء

استخدام خوارزمية الرقود الأسي الثنائي لمعالجة الأخطاء

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

يعد الرقود الأسي مفيدًا للغاية للأخطاء التي تحدث في القرن 50. لمزيد من المعلومات، راجِع التعامل مع رموز حالة عرض HTTP.

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

إرسال طلبات تفاعل المستخدمين عند الطلب

يجب إرسال الطلبات إلى واجهات برمجة التطبيقات التي تتضمّن تفاعل المستخدم عند الطلب فقط. يعني هذا انتظار أن يتّخذ المستخدم النهائي إجراءً (مثل on-click) لبدء طلب البيانات من واجهة برمجة التطبيقات، ثم استخدام النتائج لتحميل خريطة أو تحديد وجهة أو عرض المعلومات المناسبة. يؤدي استخدام المنهج عند الطلب إلى تجنب الطلبات غير الضرورية إلى واجهات برمجة التطبيقات، ما يقلّل من استهلاك واجهة برمجة التطبيقات.

تجنب عرض محتوى التراكب عند تحرك الخريطة

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

تجنُّب العمليات المكثّفة في طريقة واحدة (Draw)

وكقاعدة عامة، من الأفضل تجنُّب العمليات التي لا تستهلك قدرًا كبيرًا من الأداء باستخدام طريقة Draw(). على سبيل المثال، تجنَّب ما يلي في رمز طريقة Draw():

  • طلبات البحث التي تعرض قدرًا كبيرًا من المحتوى
  • تغييرات عديدة على البيانات المعروضة.
  • معالجة العديد من عناصر نموذج كائن المستند (DOM).

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

استخدام الصور النقطية للعلامات

استخدِم الصور النقطية، مثل الصور بتنسيق .PNG أو .JPG، عند إضافة علامات لتحديد موقع على الخريطة. تجنَّب استخدام صور الرسومات الموجّهة التي يمكن تغيير حجمها (SVG) (SVG)، لأنّ عرض صور SVG قد يؤدي إلى تباطؤ عند إعادة رسم الخريطة.

تحسين العلامات

يؤدي التحسين إلى تحسين الأداء من خلال عرض العديد من العلامات كعنصر ثابت واحد. وهذه الميزة مفيدة في الحالات التي تتطلب استخدام عدد كبير من العلامات. ستقرر واجهة Maps JavaScript API تلقائيًا ما إذا كان سيتم تحسين العلامة أم لا. عند وجود عدد كبير من العلامات، ستحاول واجهة Maps JavaScript API عرض العلامات مع التحسين. لا يمكن تحسين جميع "العلامات"، ففي بعض الحالات، قد تحتاج "واجهة برمجة تطبيقات JavaScript للخرائط" إلى عرض "العلامات" بدون تحسين. أوقِف العرض المحسَّن لملفات GIF أو PNG المتحركة، أو عندما يجب عرض كل علامة كعنصر DOM منفصل.

إنشاء مجموعات لإدارة عرض العلامة

للمساعدة في إدارة عرض العلامات لتحديد المواقع على الخريطة، يمكنك إنشاء مجموعة علامات باستخدام مكتبة مجموعة العلامات. تتضمن مكتبة مجموعة العلامات التجارية خيارات من أجل:

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

مشاهدة المحتوى

للتخطيط لميزانيتك والتحكم في تكاليفك، اتبع ما يلي:

  • ضبط تنبيه بشأن الميزانية لتتبُّع نمو التكاليف باتجاه مبلغ معيّن لا يؤدي تحديد ميزانية إلى تقييد استخدام واجهة برمجة التطبيقات، بل ينبهك فقط عند اقتراب تكاليفك من المبلغ المحدد.
  • حدِّد الاستخدام اليومي لواجهة برمجة التطبيقات لإدارة تكاليف واجهات برمجة التطبيقات القابلة للفوترة. يمكنك تحديد تكاليفك من خلال وضع حدود للطلبات في اليوم. استخدِم معادلة بسيطة لتحديد الحدّ الأقصى اليومي، اعتمادًا على المبلغ الذي تريد إنفاقه: (التكلفة الشهرية/السعر لكل منها )/30 = الحد الأقصى للطلبات في اليوم (لواجهة برمجة تطبيقات واحدة). قد تستخدم عملية التنفيذ المحدَّدة عدة واجهات برمجة تطبيقات قابلة للفوترة، لذا عليك تعديل المعادلة حسب الحاجة. يتوفر رصيد بقيمة 200 دولار أمريكي (أو ما يعادله بالعملة المحلية) من Google Maps API كل شهر، لذا ضع ذلك في الاعتبار في عملياتك الحسابية.
  • استخدم مشاريع متعددة لعزل الاستخدام وتحديد أولويته وتتبّعه. على سبيل المثال، لنفترض أنك تستخدم واجهات برمجة تطبيقات Google Maps Platform API بانتظام في اختباراتك. يمكنك من خلال إنشاء مشروع منفصل لاختباره باستخدام حصصه ومفاتيح واجهة برمجة التطبيقات الخاصة به إجراء اختبار شامل والحماية من الإنفاق المفاجئ الزائد.

إدارة الاستهلاك في "خرائط Google"

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

استخدام الصور الثابتة

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

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

استخدام Maps inline API

يمكنك استخدام "واجهة برمجة التطبيقات لتضمين الخرائط" لإضافة خريطة بعلامة واحدة، أو خريطة ديناميكية، بدون أي تكلفة. استخدِم واجهة Maps inline API للتطبيقات التي تتضمّن علامة واحدة بدون الحاجة إلى تخصيص الخريطة. سيتم إصدار فواتير لطلبات "واجهة برمجة التطبيقات لتضمين خرائط Google" التي تستخدم وضع "الاتجاهات" أو وضع العرض أو وضع "البحث" (يُرجى الاطّلاع على جدول الأسعار للحصول على التفاصيل).

استخدام حزم تطوير البرامج (SDK) لخرائط الأجهزة الجوّالة لتطبيقات الأجهزة الجوّالة

بالنسبة إلى تطبيقات الأجهزة الجوّالة، استخدِم حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لنظام التشغيل Android أو حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لنظام التشغيل iOS عند عرض خريطة. استخدِم واجهة برمجة التطبيقات Maps Static API أو Maps JavaScript API عندما تستثني المتطلبات استخدام حِزم SDK للأجهزة الجوّالة.

إدارة الاستهلاك في المسارات

الحدّ من نقاط الطرق في واجهة برمجة تطبيقات Directions API

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

استخدام تحسين Directions API لتحقيق التوجيه الأمثل

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

تقوم وسيطة التحسين بفرز نقاط الطريق لضمان التوجيه الأمثل، ما يعني أن الانتقال من A إلى E هو تجربة أفضل عند تحسينها (A-B-C-D-E) مقابل التسلسل العشوائي لمسار غير محسّن (مثل A-D-B-C-E).

استخدام نماذج حركة المرور في الوقت الفعلي في واجهة برمجة التطبيقات Directions API وواجهة برمجة التطبيقات لمصفوفة المسافات

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

إذا تم حذف نماذج حركة المرور من الطلب، تعتمد النتائج على عوامل مادية فقط: الطرق والمسافة وحدود السرعة.

استخدام المسار الذي تم قطعه وأقرب طريق عندما تكون بيانات نظام تحديد المواقع العالمي (GPS) غير دقيقة

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

مواقع حدود سرعة أخذ العينات على فترات زمنية تتراوح من 5 إلى 15 دقيقة

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

لتقليل وقت الاستجابة الإجمالي، يمكنك طلب خدمة "حدّ السرعة" بعد تجميع بعض البيانات بدلاً من طلب بيانات من واجهة برمجة التطبيقات في كل مرّة يتم فيها تلقّي موقع مادة عرض جوّال.

إدارة الاستهلاك في الأماكن

تحسين عمليات تنفيذ الإكمال التلقائي للأماكن

لتحسين تكلفة استخدام الإكمال التلقائي للأماكن:

  • استخدام أقنعة الحقول في أدوات الإكمال التلقائي JavaScript وAndroid وiOS لعرض حقول البيانات التي تحتاجها فقط.

  • وتحديد خيارات الفوترة استنادًا إلى حالة الاستخدام واعتمادًا على ما إذا كان التنفيذ يستخدم جلسات الإكمال التلقائي أم لا، سيتم تحصيل رسوم منك إما الإكمال التلقائي - لكل طلب أو الإكمال التلقائي - لكل جلسة.

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

عرض بيانات لحقول محددة في تفاصيل الأماكن وطلبات البحث عن الأماكن

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

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

خفض التكاليف باستخدام واجهة برمجة التطبيقات Geocoding API

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

ولكن إذا كان لديك عنوان دقيق (أو قريب منه)، يمكنك خفض التكاليف باستخدام الترميز الجغرافي بدلاً من الإكمال التلقائي. لمزيد من التفاصيل، راجع أفضل ممارسات عناوين الترميز الجغرافي.

آلية عمل حصص "منصة خرائط Google"

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

يتم احتساب الطلبات والطلبات الناجحة فقط التي تتسبب في أخطاء الخادم ضمن الحصص. لا يتم احتساب الطلبات التي لا تجتاز المصادقة ضمن الحصة.

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

واجهات برمجة تطبيقات "منصة Google للتسويق" التي يتم فرض هذا فرضها كل ثانية في الثانية هي واجهة برمجة تطبيقات الاتجاهات وواجهة برمجة تطبيقات مصفوفة المسافة وواجهة برمجة تطبيقات تحديد الارتفاع وواجهة برمجة تطبيقات الترميز الجغرافي وواجهة برمجة تطبيقات الأماكن وواجهة برمجة تطبيقات الطرق.

تقدير تكاليف أي منتج من منتجات واجهة برمجة تطبيقات "منصّة Google للتسويق" استنادًا إلى إجمالي حجم الطلبات