ספריית הלקוח של 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, והפשרה בין השימוש בזיכרון לבין שיפור הביצועים ספציפית מאוד לפרויקט ולביצוע נתונים.