ספריית הלקוח של PHP מאפשרת לבצע אינטראקציות עם Google Ads API בקלות, עם הגדרה מינימלית מצידכם. עם זאת, הביצועים תלויים מאוד באופן השימוש בספרייה ובשילוב שלה.
רוב השיטות המומלצות האלה רלוונטיות לכל השפות. המדריך הזה עוסק בבעיות הספציפיות ל-PHP.
הטמעת Protobuf
Protobuf משמש את gRPC ואת Google Ads API להודעות של בקשות ותשובות. יש שתי הטמעות זמינות, אבל ההטמעה שנכתבה ב-C מניבה ביצועים טובים יותר.
מידע נוסף זמין במדריך ל-Protobuf.
מצב הפעולה של מתורגם ה-PHP
PHP היא שפת סקריפט גמישה עם הרבה מצבי פעולה, בהתאם לשימוש. ל-PHP CGI (Common Gateway Interface) יש יתרון משמעותי כי הוא יכול לשתף משאבים בין פעולות.
גרסת PHP
מומלץ לשדרג באופן קבוע לגרסה חדשה יותר של PHP, כי בדרך כלל היא כוללת ביצועים טובים יותר באופן כללי. רשימה של גרסאות PHP נתמכות
גרסאות Google Ads API שלא בשימוש
כל הגרסאות של ספריית הלקוח תומכות בכמה גרסאות של Google Ads API. לכל גרסה של Google Ads API שנתמכת על ידי ספריית הלקוח יש חבילות ייעודיות לגרסה.
אפשר להסיר באופן בטוח מספריית הלקוח את החבילות שמיועדות לגרסאות של Google Ads API שלא נעשה בהן שימוש. ספריית הלקוח מספקת כלי עזר שאפשר להשתמש בהם באופן פרוגרמטי כדי לזרז את הביצועים או לצמצם את שטח הזיכרון שנדרש.
דוגמה
נניח שאתם מטמיעים את ספריית הלקוח שמשתמשת רק בגרסה העדכנית ביותר של ה-API: v18
, ואתם רוצים להסיר את התמיכה בגרסאות ה-API שלא בשימוש: v17
ו-v16
.
בקובץ 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 v16 and v17 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- 16 17
# 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
פלט הדוגמה של הביצוע שלמטה מציין שהגודל של הקובץ קטן ב-50MB, והגרסה הנתמכת היחידה שנותרה היא V18
:
# Supported Google Ads API versions:
V16
V17
V18
# Vendor folder size:
110M ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 16 of Google Ads API...
Done
Removing support for the version 17 of Google Ads API...
Done
# Supported Google Ads API versions:
V18
# Vendor folder size:
60M ./vendor
פיתוח לעומת ייצור
PHP היא שפה מפורשת, כלומר קודם מתבצע הידור של ההוראות ואז הן מופעלות. בדרך כלל זה מועיל, כי במהלך הפיתוח המקורות משתנים לעיתים קרובות, בעוד שזמן הביצוע לא קריטי כל כך. אבל ההפך הוא נכון בזמן הייצור, כי היציבות והביצועים הופכים לחששות העיקריים.
מטמון
השמירה במטמון היא נפוצה, ומומלץ מאוד להשתמש בה כי היא משפרת את הביצועים וגם מגבירה את היציבות על ידי אחסון הוראות סקריפט שעברו הידור מראש.
OPcache הוא הפתרון הנפוץ ביותר, והוא זמין כברירת מחדל.
טעינה אוטומטית
טעינה אוטומטית היא שיטה נפוצה, כי היא משפרת את הביצועים ומגבירה את היציבות על ידי טעינת מידע מקודד מראש על הכיתות.
ספריית הלקוח של PHP תואמת ל-PSR-4 להפעלה אוטומטית, ומספקת את ההגדרה כחלק מהקובץ composer.json
. לאחר מכן תוכלו להשתמש באפשרויות הייעודיות של Composer, כמו --optimize-autoloader
או --classmap-authoritative
, מבלי שתצטרכו להגדיר אותן.
רישום ביומן
הגדרת הרישום ביומני לוג לרמה גבוהה כמו ERROR
יכולה לעזור לצמצם את זמן הביצוע ואת צריכת הזיכרון.
מידע נוסף זמין במדריך הרישום ביומן.
ניפוי באגים ויצירת פרופילים
מומלץ להשבית את הכלים לניפוי באגים ולכלי ליצירת פרופילים, כי בדרך כלל הם גוזרים זמן תקורה של זמן ביצוע.
טעינה מראש
החל מ-PHP 7.4, אפשר להשתמש בטעינה מראש של OPcache כדי לטעון מראש סקריפטים בזיכרון, צעד אחד קדימה מעל לשמירת קבצים במטמון רגילה.
צריך לתכנן סקריפט כדי לנצל את התכונה הזו, אבל ספריית הלקוח של PHP לא עושה זאת כי אין דרך גנרית להטמיע את הטעינה מראש של OPcache, והפשרה בין השימוש בזיכרון לבין שיפור הביצועים ספציפית מאוד לפרויקט ולביצוע נתונים.