ไลบรารีของไคลเอ็นต์ PHP ช่วยให้การโต้ตอบกับ Google Ads API ง่ายขึ้นโดยที่คุณกำหนดค่าเองน้อยที่สุด อย่างไรก็ตาม ประสิทธิภาพขึ้นอยู่กับวิธีใช้งานและผสานรวมไลบรารี
แนวทางปฏิบัติแนะนำเหล่านี้ส่วนใหญ่ใช้ได้กับ ทุกภาษา คู่มือนี้จะกล่าวถึงหลักเกณฑ์เฉพาะสำหรับ PHP
การใช้งาน Protobuf
gRPC และ Google Ads API จะใช้ Protobuf สำหรับข้อความคำขอและข้อความตอบกลับ โดยมี 2 การติดตั้งใช้งาน ดังนี้
ดูข้อมูลเพิ่มเติมได้ในคู่มือโปรโตคอล
โหมดการทำงานของล่าม PHP
PHP เป็นภาษาสคริปต์อเนกประสงค์และมีโหมดการดำเนินการหลายแบบตามการใช้งาน PHP CGI (Common Gateway Interface) มีข้อได้เปรียบที่โดดเด่นเพราะสามารถใช้ทรัพยากรร่วมกันระหว่างการดำเนินการได้
เวอร์ชัน PHP
ควรอัปเกรดเป็นเวอร์ชัน PHP ใหม่อยู่เสมอ เนื่องจากมักจะมีประสิทธิภาพโดยรวมดีขึ้น รายการเวอร์ชัน PHP ที่รองรับ
เวอร์ชัน Google Ads API ที่ไม่ได้ใช้
ไลบรารีของไคลเอ็นต์ทุกเวอร์ชันรองรับ Google Ads API หลายเวอร์ชัน สำหรับ Google Ads API แต่ละเวอร์ชันที่ไลบรารีของไคลเอ็นต์รองรับจะมีแพ็กเกจเฉพาะสำหรับเวอร์ชันนั้นๆ
คุณสามารถนำแพ็กเกจที่มีไว้สำหรับ Google Ads API เวอร์ชันที่ไม่ได้ใช้งานออกจากไลบรารีของไคลเอ็นต์ได้อย่างปลอดภัย เนื่องจากไลบรารีของไคลเอ็นต์สามารถช่วยเพิ่มความเร็วในการดำเนินการหรือลดร่องรอยของหน่วยความจำ ไลบรารีของไคลเอ็นต์จะให้โปรแกรมยูทิลิตีในการดำเนินการดังกล่าวโดยใช้โปรแกรม
ตัวอย่าง
สมมติว่าคุณใช้ไลบรารีของไคลเอ็นต์ที่ใช้เฉพาะ API เวอร์ชันล่าสุด: v17
และต้องการยกเลิกการรองรับ API เวอร์ชันที่ไม่ได้ใช้ v16
และ v15
ในไฟล์ 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 v15 and v16 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- 15 16
# 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
ตัวอย่างเอาต์พุตของการดำเนินการด้านล่างระบุว่าไฟล์ลดขนาดลง 50 MB และเวอร์ชันที่รองรับที่เหลือคือ V17
รายการ
# Supported Google Ads API versions:
V15
V16
V17
# Vendor folder size:
110M ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 15 of Google Ads API...
Done
Removing support for the version 16 of Google Ads API...
Done
# Supported Google Ads API versions:
V17
# Vendor folder size:
60M ./vendor
การพัฒนาเทียบกับเวอร์ชันที่ใช้งานจริง
PHP เป็นภาษาที่มีการตีความ ซึ่งจะรวบรวมข้อมูลคำสั่งก่อนการใช้งานจริง ซึ่งปกติมีข้อได้เปรียบ เนื่องจากในระหว่างเวลาการพัฒนา แหล่งที่มามักเปลี่ยนแปลงในขณะที่เวลาดำเนินการไม่ใช่เรื่องสำคัญ แต่ในขณะที่ผลิตงานเป็นเรื่องตรงกันข้ามเนื่องจากความเสถียรและประสิทธิภาพกลายเป็นข้อกังวลหลัก
แคช
ขอแนะนำให้ใช้แคชบ่อยๆ เนื่องจากจะช่วยปรับปรุงประสิทธิภาพและเพิ่มความเสถียรด้วยการจัดเก็บคำสั่งสคริปต์ที่คอมไพล์ไว้ล่วงหน้า
OPcache เป็นโซลูชันที่ใช้บ่อยที่สุดและพร้อมให้ใช้งานโดยค่าเริ่มต้น
โหลดอัตโนมัติ
การโหลดอัตโนมัติเป็นเรื่องปกติเนื่องจากทั้งช่วยปรับปรุงประสิทธิภาพและเพิ่มความเสถียรด้วยการโหลดข้อมูลเกี่ยวกับชั้นเรียนที่คอมไพล์ไว้ล่วงหน้า
ไลบรารีของไคลเอ็นต์ PHP สอดคล้องกับ PSR-4 สำหรับการโหลดอัตโนมัติและระบุคำจำกัดความไว้เป็นส่วนหนึ่งของไฟล์ composer.json
จากนั้นคุณจะใช้ตัวเลือกคอมโพสเซอร์โดยเฉพาะ เช่น --optimize-autoloader
หรือ --classmap-authoritative
ได้ทันที
Logging
การตั้งค่าตัวบันทึกเป็นระดับสูง เช่น ERROR
จะช่วยลดโอเวอร์เฮดค่าใช้จ่ายในการดำเนินการและการใช้หน่วยความจำได้
ดูข้อมูลเพิ่มเติมในคู่มือการบันทึก
การแก้ไขข้อบกพร่องและการทำโปรไฟล์
เราขอแนะนำให้ปิดใช้เครื่องมือแก้ไขข้อบกพร่องและเครื่องมือสร้างโปรไฟล์ เนื่องจากเครื่องมือเหล่านี้มักจะมาพร้อมกับเวลาในการดำเนินการบางส่วน
โหลดล่วงหน้า
ตั้งแต่ PHP 7.4 คุณสามารถใช้การโหลดล่วงหน้า OPcache เพื่อโหลดสคริปต์ในหน่วยความจำล่วงหน้า ซึ่งก้าวไปไกลกว่าการแคชแบบปกติหนึ่งขั้น
ต้องมีการออกแบบสคริปต์เพื่อใช้ประโยชน์จากฟีเจอร์นี้ แต่ไลบรารีของไคลเอ็นต์ PHP ยังไม่มีการใช้งานเนื่องจากไม่มีวิธีทั่วไปในการใช้ OPcache โหลดล่วงหน้า และการตัดกันระหว่างการใช้งานหน่วยความจำกับประสิทธิภาพที่ได้รับนั้นมีความเฉพาะเจาะจงสูงกับโปรเจ็กต์และการดำเนินการนั้นๆ