تسهّل مكتبة عميل PHP التفاعلات مع Google Ads API من خلال الحد الأدنى من الإعدادات من جانبك. ومع ذلك، يعتمد الأداء بشكل كبير على كيفية استخدام المكتبة ودمجها.
تنطبق معظم أفضل الممارسات العامة على جميع اللغات. يتناول هذا الدليل تحسينات الأداء الخاصة بلغة PHP.
عمليات تنفيذ Protobuf وgRPC
يستخدم gRPC وGoogle Ads API تنسيق Protobuf لـ
رسائل الطلبات والردود. يتوفّر تنفيذان (PHP فقط وامتداد C)، وتوفّر امتدادات C لكل من protobuf وgrpc أداءً أفضل بكثير في ما يتعلق بالتسلسل والأداء على الشبكة.
لمزيد من المعلومات، يُرجى الاطّلاع على دليل Protobuf ودليل Transport guide.
وضع تشغيل مفسّر PHP
PHP هي لغة البرمجة النصية متعددة الاستخدامات ولها عدة أوضاع تشغيل حسب الاستخدام. تتميّز خوادم التطبيقات المستمرة أو PHP-FPM (مدير عمليات FastCGI) بميزة ملحوظة مقارنةً بواجهة CGI العادية لأنّه يمكن لعمليات العامل المستمرة إعادة استخدام الرموز البرمجية المخزّنة مؤقتًا (من خلال OPcache) والموارد في جميع الطلبات.
إصدار PHP
يُرجى الترقية بانتظام إلى إصدار أحدث من PHP للاستفادة من تحسينات الأداء في وقت التشغيل. يُرجى الاطّلاع على قائمة إصدارات PHP المتوافقة.
إصدارات Google Ads API غير المستخدَمة
تتيح جميع إصدارات مكتبة العميل استخدام إصدارات متعدّدة من Google Ads API. لكل إصدار من Google Ads API متوافق مع مكتبة العميل، تتوفّر حِزم مخصّصة لهذا الإصدار.
يمكن إزالة الحِزم المخصّصة لإصدارات Google Ads API التي لا يستخدمها تطبيقك بأمان من مكتبة العميل. لتقليل مساحة الذاكرة المستخدَمة وتسريع التنفيذ، توفّر مكتبة العميل أداة لإزالة إصدارات واجهة برمجة التطبيقات غير المستخدَمة آليًا.
مثال
لنفترض أنّك تعمل على تنفيذ تطبيق عميل لا يستخدم سوى أحدث إصدار من واجهة برمجة التطبيقات (v26)، وتريد إزالة إمكانية استخدام إصدارات واجهة برمجة التطبيقات غير المستخدَمة (v23 وv24 وv25).
في ملف composer.json الخاص بمشروعك، حدِّد نصًا برمجيًا لـ Composer (يُسمى
remove-google-ads-api-version-support) يستفيد من الأداة التي توفّرها
مكتبة العميل في ApiVersionSupport:
"scripts": {
"remove-google-ads-api-version-support": [
"Google\\Ads\\GoogleAds\\Util\\ApiVersionSupport::remove"
]
}
بعد ذلك، شغِّل النص البرمجي لـ Composer باستخدام أرقام الإصدارات كمعلّمات واطبع رسائل الحالة:
# Change the current directory to the project directory.
cd /path/to/the/project
# Install the project.
composer install
# Output the vendor folder size and the list of Google Ads API versions that are
# supported before removing support for unused Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* \
-maxdepth 0 | grep -oE 'V[0-9]+$'
echo "# Vendor folder size:"
du -sh ./vendor
# Use the Composer script to remove the unused versions
# v23, v24, and
# v25 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- \
23 \
24 \
25
# Output the vendor folder size and the list of Google Ads API versions that are
# supported after removing support for unused Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* \
-maxdepth 0 | grep -oE 'V[0-9]+$'
echo "# Vendor folder size:"
du -sh ./vendor
تعرض نتيجة التنفيذ النموذجية التالية انخفاض حجم الملف، مع V26 كالإصدار الوحيد المتبقي المتوافق:
# Supported Google Ads API versions:
V23
V24
V25
V26
# Vendor folder size:
135M ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 23 of Google Ads API...
Done
Removing support for the version 24 of Google Ads API...
Done
Removing support for the version 25 of Google Ads API...
Done
# Supported Google Ads API versions:
V26
# Vendor folder size:
60M ./vendor
التطوير مقابل الإصدار العلني
PHP هي لغة مفسَّرة تُجمِّع التعليمات قبل تنفيذها. ويكون ذلك مفيدًا أثناء التطوير، عندما تتغيّر الملفات المصدرية بشكل متكرّر ويكون وقت التنفيذ أقل أهمية. في بيئات الإصدار العلني، يصبح الثبات والأداء هما الشاغلان الأساسيان.
ذاكرة التخزين المؤقت
يُنصح باستخدام التخزين المؤقت لأنّه يحسّن الأداء ويزيد الثبات من خلال تخزين الرموز البرمجية للنصوص البرمجية التي تم تجميعها مسبقًا في الذاكرة المشترَكة.
OPcache هو الحلّ العادي ويتم تضمينه مع PHP تلقائيًا.
إضافة الأموال تلقائيًا
تحسّن ميزة إضافة الأموال تلقائيًا الأداء والثبات من خلال تحميل معلومات خريطة الفئات التي تم تجميعها مسبقًا.
تتوافق مكتبة عميل PHP مع PSR-4 لإضافة الأموال تلقائيًا وتوفّر
التعريف كجزء من ملف composer.json. يمكن بعد ذلك استخدام خيارات سطر الأوامر المخصّصة لـ
Composer، مثل --optimize-autoloader أو
--classmap-authoritative، بدون أي إعدادات إضافية في الإصدارات العلنية.
التسجيل
يساعد ضبط أدوات التسجيل على حد أعلى، مثل ERROR أو WARNING في الإصدار العلني، في تقليل النفقات العامة لوحدات الإدخال والإخراج واستهلاك الذاكرة.
لمزيد من المعلومات، يُرجى الاطّلاع على دليل التسجيل.
تصحيح الأخطاء وقياس الأداء
يُرجى إيقاف الإضافات الخاصة بأدوات تصحيح الأخطاء وقياس الأداء (مثل Xdebug) في الإصدار العلني لأنّها تؤدي إلى زيادة كبيرة في النفقات العامة للتنفيذ.
التحميل المسبق
بدءًا من PHP 7.4، يمكن استخدام ميزة التحميل المسبق في OPcache لتحميل النصوص البرمجية مسبقًا في الذاكرة عند بدء تشغيل الخادم، ما يمثل خطوة إضافية مقارنةً بالتخزين المؤقت العادي في OPcache.
يجب تصميم نص برمجي للتحميل المسبق خصيصًا لتطبيقك. لا توفّر مكتبة عميل PHP نصًا برمجيًا عامًا للتحميل المسبق لأنّ المفاضلة بين استخدام الذاكرة وتحسين الأداء تكون خاصة بكل مشروع وبيئة نشر.