ไลบรารีของไคลเอ็นต์สำหรับ Perl ช่วยให้การโต้ตอบกับ Google Ads API ง่ายขึ้นโดยคุณไม่ต้องกำหนดค่าอะไรมาก อย่างไรก็ตาม ประสิทธิภาพจะขึ้นอยู่กับวิธีใช้และผสานรวมไลบรารีเป็นอย่างมาก
แนวทางปฏิบัติแนะนำทั่วไปส่วนใหญ่ใช้ได้กับทุกภาษา หน้านี้ครอบคลุมคำแนะนำด้านประสิทธิภาพที่เฉพาะเจาะจงสำหรับ Perl
สร้างโปรไฟล์แอปพลิเคชัน
สร้างโปรไฟล์แอปพลิเคชันสำหรับการใช้งาน CPU และหน่วยความจำเพื่อระบุคอขวดด้านประสิทธิภาพ Devel::NYTProf เป็นโปรแกรมสร้างโปรไฟล์ซอร์สโค้ด Perl ที่มีฟีเจอร์มากมาย ซึ่งคุณสามารถใช้เพื่อวิเคราะห์เวลาในการดำเนินการได้
เวอร์ชัน Perl
อัปเกรดเป็นเวอร์ชัน Perl ใหม่กว่าเป็นประจำเพื่อรับประโยชน์จากการปรับปรุงประสิทธิภาพรันไทม์ ดาวน์โหลดเวอร์ชันล่าสุดจากการเผยแพร่ซอร์ส Perl ของ CPAN และตรวจสอบเวอร์ชันขั้นต่ำที่จำเป็นสำหรับไลบรารีใน ข้อกำหนดของ README
การบันทึก
การบันทึกอย่างละเอียดอาจทำให้เกิดค่าปรับเวลาในการดำเนินการและการใช้หน่วยความจำจำนวนมาก ตั้งค่าระดับการบันทึกเป็น WARN สำหรับโค้ดใดๆ ในเวอร์ชันจริง
ดูรายละเอียดเพิ่มเติมเกี่ยวกับการกำหนดค่า เครื่องมือบันทึกสรุปและรายละเอียดได้ที่คู่มือการบันทึก
SearchStream เทียบกับ Search
Google Ads API มี 2 วิธีหลักในการดึงข้อมูลออบเจ็กต์:
Search (ซึ่งใช้การแบ่งหน้า) และ
SearchStream (ซึ่งใช้การสตรีม) SearchStream
มีประสิทธิภาพดีกว่า Search แม้ว่าจะมีบางสถานการณ์
ที่อาจต้องการใช้ Search มากกว่า
ดูการเปรียบเทียบโดยละเอียดของทั้ง 2 วิธีได้ที่คู่มือการสตรีม
การเพิ่มประสิทธิภาพเพย์โหลดและการจัดกลุ่ม
วิธีลดค่าใช้จ่ายเครือข่ายและการใช้หน่วยความจำ
- ขอเฉพาะฟิลด์ที่แอปพลิเคชันของคุณต้องการในการค้นหา Google Ads Query Language (GAQL)
- จัดกลุ่มการดำเนินการเปลี่ยนแปลงหลายรายการเป็นคำขอ
mutateเดียวแทนที่จะส่งคำขอแต่ละรายการสำหรับการเปลี่ยนแปลงแต่ละรายการ
การหมดเวลาของ HTTP
ไลบรารีของไคลเอ็นต์ Perl มีการตั้งค่าสำหรับการกำหนดค่าการหมดเวลาของ HTTP ที่ระดับไคลเอ็นต์
my $api_client = Google::Ads::GoogleAds::Client->new({
# Set HTTP timeout to 5 minutes (300 seconds).
http_timeout => 300,
});
ค่าเริ่มต้นคือ 3600 วินาที (1 ชั่วโมง) ซึ่งตั้งค่าตามค่าคงที่
DEFAULT_HTTP_TIMEOUT ใน Constants.pm
ตั้งค่าการหมดเวลาของไคลเอ็นต์ที่กำหนดเอง หากต้องการบังคับใช้
ขีดจำกัดที่สั้นกว่าสำหรับเวลาสูงสุดของการเรียก API
คุณสามารถตั้งค่าการหมดเวลาเป็น 2 ชั่วโมงขึ้นไปได้ แต่ API อาจยังคงหมดเวลาสำหรับคำขอที่ใช้เวลานานมากและแสดงข้อผิดพลาด DEADLINE_EXCEEDED หากพบข้อผิดพลาดนี้ ให้แบ่งคำขอออกเป็นส่วนเล็กๆ และดำเนินการแบบขนาน วิธีนี้จะช่วยหลีกเลี่ยงสถานการณ์ที่คำขอที่ใช้เวลานานล้มเหลวและวิธีเดียวที่จะกู้คืนได้คือการทริกเกอร์คำขออีกครั้งตั้งแต่เริ่มต้น