ספריית הלקוח 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 האחרונה: v21
, ואתם רוצים להסיר את התמיכה בגרסאות ה-API שלא נמצאות בשימוש: v20
ו-v19
.
בקובץ 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 v19 and v20 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- 19 20
# 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 ושהגרסה הנתמכת היחידה שנותרה היא V21
:
# Supported Google Ads API versions:
V19
V20
V21
# Vendor folder size:
110M ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 19 of Google Ads API...
Done
Removing support for the version 20 of Google Ads API...
Done
# Supported Google Ads API versions:
V21
# Vendor folder size:
60M ./vendor
פיתוח לעומת ייצור
PHP היא שפה מפורשת, כלומר היא קודם מהדרת את ההוראות לפני שהיא מבצעת אותן. בדרך כלל זה יתרון כי בזמן הפיתוח, המקורות משתנים לעיתים קרובות, בעוד שזמן הביצוע לא כל כך קריטי. אבל בזמן הייצור המצב הפוך, כי היציבות והביצועים הם הדברים הכי חשובים.
מטמון
שמירה במטמון היא פעולה נפוצה ומומלצת מאוד, כי היא משפרת את הביצועים ומגדילה את היציבות על ידי אחסון של הוראות סקריפט שעברו קומפילציה מראש.
OPcache הוא הפתרון הנפוץ ביותר והוא זמין כברירת מחדל.
טעינה אוטומטית
טעינה אוטומטית היא תכונה נפוצה כי היא משפרת את הביצועים ומגדילה את היציבות על ידי טעינה של מידע שעבר קומפילציה מראש לגבי מחלקות.
ספריית הלקוח של PHP תואמת ל-PSR-4 לטעינה אוטומטית, ומספקת את ההגדרה כחלק מהקובץ composer.json
. אפשר להשתמש באפשרויות ייעודיות של הכלי ליצירת מוזיקה, כמו --optimize-autoloader
או --classmap-authoritative
, מיד אחרי ההתקנה.
רישום ביומן
הגדרת רמת היומן לרמה גבוהה כמו ERROR
יכולה לעזור לצמצם את התקורה של זמן הביצוע ואת צריכת הזיכרון.
מידע נוסף זמין במדריך לרישום ביומן.
ניפוי באגים ופרופיילינג
מומלץ להשבית את כלי הניפוי באגים ואת כלי הפרופיל, כי בדרך כלל הם מגיעים עם תקורה מסוימת של זמן ביצוע.
טעינה מראש
החל מ-PHP 7.4, אפשר להשתמש בטעינה מראש של OPcache כדי לטעון מראש סקריפטים בזיכרון, וזהו שלב נוסף מעבר לשמירה רגילה במטמון.
צריך לתכנן סקריפט כדי להשתמש בתכונה הזו, אבל ספריית הלקוח של PHP לא עושה זאת כי אין דרך כללית להטמיע טעינה מראש של OPcache, והאיזון בין השימוש בזיכרון לבין שיפור הביצועים הוא ספציפי מאוד לפרויקט ולביצוע נתונים.