ספריית הלקוח של PHP מאפשרת אינטראקציות קלות עם Google Ads API, עם מינימום הגדרות מצדכם. עם זאת, הביצועים תלויים מאוד באופן השימוש בספרייה ובאופן השילוב שלה.
רוב השיטות המומלצות האלה רלוונטיות לכל השפות. במדריך הזה מוסבר על הכלים שספציפיים ל-PHP.
הטמעה של Protobuf
Protobuf משמש את gRPC ואת Google Ads API להודעות של בקשות ותגובות. יש שתי אפשרויות הטמעה, אבל האפשרות שנכתבה ב-C מציעה ביצועים טובים יותר.
מידע נוסף זמין במדריך בנושא Protobuf.
מצב הפעולה של מתורגמן PHP
PHP היא שפת סקריפטים רב-תכליתית, ויש לה הרבה מצבי פעולה בהתאם לשימוש. ל-PHP CGI (ממשק שער משותף) יש יתרון משמעותי כי הוא יכול לשתף משאבים בין הפעלות.
גרסת PHP
מומלץ לשדרג באופן קבוע לגרסה חדשה יותר של PHP, כי בדרך כלל היא מגיעה עם ביצועים טובים יותר באופן כללי. רשימה של גרסאות PHP נתמכות.
גרסאות של Google Ads API שלא נעשה בהן שימוש
כל הגרסאות של ספריית הלקוח תומכות בכמה גרסאות של Google Ads API. לכל גרסה של Google Ads API שספריית הלקוח תומכת בה, יש חבילות ייעודיות לגרסה.
אפשר להסיר בבטחה מספריית הלקוח את החבילות שמוקדשות לגרסאות של Google Ads API שלא נעשה בהן שימוש. ספריית הלקוח מספקת כלי עזר לביצוע הפעולות האלה באופן פרוגרמטי, כי הן יכולות לעזור להאיץ את ההרצה או לצמצם את הזיכרון שבשימוש.
דוגמה
נניח שאתם מטמיעים את ספריית הלקוח שמשתמשת רק בגרסת ה-API האחרונה: v24, ואתם רוצים להסיר את התמיכה בגרסאות ה-API שלא נמצאות בשימוש: v23 ו-v22.
בקובץ 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 Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* -maxdepth 0 | grep -o '..$'
echo "# Vendor folder size:"
du -sh ./vendor
# Use the Composer script to remove the unused versions v22 and v23 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- 22 23
# Output the vendor folder size and the list of Google Ads API versions that are
# supported after removing support for Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* -maxdepth 0 | grep -o '..$'
echo "# Vendor folder size:"
du -sh ./vendor
הפלט של ההרצה שמופיע בהמשך מציין שהקובץ קטן ב-50M ושהגרסה הנתמכת היחידה שנותרה היא V24:
# Supported Google Ads API versions:
V22
V23
V24
# Vendor folder size:
110M ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 22 of Google Ads API...
Done
Removing support for the version 23 of Google Ads API...
Done
# Supported Google Ads API versions:
V24
# Vendor folder size:
60M ./vendor
פיתוח לעומת ייצור
PHP היא שפה מפורשת, כלומר היא קודם מהדרת את ההוראות לפני שהיא מבצעת אותן. בדרך כלל זה יתרון, כי במהלך הפיתוח המקורות משתנים לעיתים קרובות, בעוד שזמן הביצוע לא כל כך קריטי. עם זאת, בזמן הייצור המצב הפוך, כי היציבות והביצועים הופכים להיות הדאגות העיקריות.
מטמון
שמירה במטמון היא פעולה נפוצה ומומלצת מאוד, כי היא משפרת את הביצועים ומגדילה את היציבות על ידי אחסון של הוראות סקריפט שעברו קומפילציה מראש.
OPcache הוא הפתרון הנפוץ ביותר והוא זמין כברירת מחדל.
טעינה אוטומטית
טעינה אוטומטית היא תכונה נפוצה כי היא משפרת את הביצועים ומגדילה את היציבות על ידי טעינה של מידע שעבר קומפילציה מראש לגבי מחלקות.
ספריית הלקוח PHP תואמת ל-PSR-4 לטעינה אוטומטית, וההגדרה שלה מופיעה בקובץ composer.json. אחר כך אפשר להשתמש באפשרויות ייעודיות של כלי ההלחנה, כמו --optimize-autoloader או --classmap-authoritative, בלי לבצע שינויים.
רישום ביומן
הגדרת רמת היומן לרמה גבוהה כמו ERROR יכולה לעזור לצמצם את התקורה של זמן הביצוע ואת צריכת הזיכרון.
מידע נוסף זמין במדריך לרישום ביומן.
ניפוי באגים ופרופיילינג
מומלץ להשבית את כלי הניפוי באגים ואת כלי הפרופיל, כי בדרך כלל הם מגיעים עם תקורה מסוימת של זמן ביצוע.
טעינה מראש
החל מ-PHP 7.4, אפשר להשתמש בטעינה מראש של OPcache כדי לטעון מראש סקריפטים בזיכרון, וזהו שלב נוסף מעבר לשמירה רגילה במטמון.
צריך לתכנן סקריפט כדי להשתמש בתכונה הזו, אבל ספריית הלקוח של PHP לא עושה זאת כי אין דרך כללית להטמיע טעינה מראש של OPcache, והאיזון בין השימוש בזיכרון לבין שיפור הביצועים הוא ספציפי מאוד לפרויקט ולביצוע נתונים.