تسهّل مكتبة برامج Perl التفاعلات مع Google Ads API، مع الحدّ الأدنى من الإعدادات من جانبك. ومع ذلك، يعتمد الأداء بشكل كبير على كيفية استخدام المكتبة ودمجها.
تنطبق معظم أفضل الممارسات العامة على جميع اللغات. تتناول هذه الصفحة إرشادات الأداء الخاصة بلغة Perl.
إنشاء ملف تعريف لتطبيقك
يمكنك إنشاء ملف تعريف لتطبيقك لكل من استخدام وحدة المعالجة المركزية والذاكرة لتحديد المؤثّرات السلبية في الأداء. Devel::NYTProf هو أداة تحليل لرمز المصدر Perl غنية بالميزات، ويمكنك استخدامها لتحليل وقت التنفيذ.
إصدار Perl
يجب الترقية بانتظام إلى إصدار أحدث من Perl للاستفادة من التحسينات على مستوى أداء وقت التشغيل. نزِّل أحدث إصدار من إصدارات مصدر CPAN Perl، وتحقَّق من الحدّ الأدنى المطلوب لإصدار المكتبة في متطلبات README.
التسجيل
يمكن أن يؤدي التسجيل المطوَّل إلى فرض عقوبات كبيرة على وقت التنفيذ واستهلاك الذاكرة. اضبط مستوى التسجيل على WARN لأي رمز في مرحلة الإنتاج.
يمكنك الاطّلاع على دليل التسجيل لمزيد من التفاصيل حول ضبط أدوات تسجيل الملخّصات والتفاصيل.
SearchStream مقابل "بحث Google"
توفّر Google Ads API طريقتَين رئيسيتَين لاسترداد العناصر:
Search (التي تستخدم التقسيم على صفحات) وSearchStream (التي تستخدم البث). يحقّق SearchStream أداءً أفضل من Search، ولكن في بعض الحالات، قد يكون Search الخيار الأفضل.
للاطّلاع على مقارنة تفصيلية بين الطريقتَين، يُرجى الرجوع إلى دليل البث.
تحسين الحمولة وتجميعها
لتقليل النفقات العامة للشبكة واستهلاك الذاكرة:
- اطلب فقط الحقول المحدّدة التي يحتاجها تطبيقك في طلبات البحث بلغة طلب البحث في "إعلانات Google" (GAQL).
- يمكنك تجميع عمليات تغيير متعددة في طلب
mutateواحد بدلاً من إرسال طلبات فردية لكل تغيير.
انتهت مهلة HTTP
توفّر مكتبة عميل Perl إعدادًا لضبط مهلات HTTP على مستوى العميل:
my $api_client = Google::Ads::GoogleAds::Client->new({
# Set HTTP timeout to 5 minutes (300 seconds).
http_timeout => 300,
});
القيمة التلقائية هي 3600 ثانية (ساعة واحدة)، ويتم ضبطها استنادًا إلى الثابت DEFAULT_HTTP_TIMEOUT في Constants.pm.
اضبط مهلة مخصّصة للعميل إذا كنت بحاجة إلى فرض حدّ أقصر
لأقصى وقت لطلب بيانات من واجهة برمجة التطبيقات.
يمكنك ضبط المهلة على ساعتين أو أكثر، ولكن قد تنتهي مهلة واجهة برمجة التطبيقات
للطلبات التي تستغرق وقتًا طويلاً جدًا وتعرض خطأ DEADLINE_EXCEEDED. إذا واجهت هذا الخطأ، قسِّم الطلب إلى أجزاء أصغر ونفِّذها بالتوازي. ويجنّب ذلك حدوث عطل في طلب يستغرق وقتًا طويلاً، ولا يمكن استرداد البيانات إلا من خلال إعادة إرسال الطلب من البداية.