เราได้จัดหมวดหมู่ข้อผิดพลาดออกเป็นหมวดหมู่กว้างๆ ดังต่อไปนี้
- การตรวจสอบสิทธิ์
- ลองใหม่ได้
- การตรวจสอบความถูกต้อง
- เกี่ยวข้องกับการซิงค์
แม้ว่าหมวดหมู่เหล่านี้จะไม่ครอบคลุมข้อผิดพลาดที่เป็นไปได้ทั้งหมด และข้อผิดพลาดบางรายการอาจจัดอยู่ในหมวดหมู่ได้มากกว่า 1 หมวดหมู่ แต่หมวดหมู่เหล่านี้ก็ใช้เป็นจุดเริ่มต้นในการสร้างโครงสร้างการจัดการข้อผิดพลาดของแอปได้ ดูรายละเอียดเพิ่มเติมเกี่ยวกับข้อผิดพลาดที่เฉพาะเจาะจงได้จากแหล่งข้อมูลต่อไปนี้
- ข้อผิดพลาดที่พบบ่อยจะแสดงรายละเอียดเพิ่มเติมเกี่ยวกับข้อผิดพลาดหนึ่งๆ
- google.rpc.Status เพื่อดูรายละเอียดเกี่ยวกับรูปแบบข้อผิดพลาดเชิงตรรกะที่ API ใช้
ข้อผิดพลาดในการตรวจสอบสิทธิ์
การตรวจสอบสิทธิ์หมายถึงการที่ผู้ใช้ให้สิทธิ์แอปของคุณเข้าถึง Google Ads ในนามของผู้ใช้หรือไม่ การจัดการการตรวจสอบสิทธิ์จะดำเนินการผ่านข้อมูลเข้าสู่ระบบที่สร้างขึ้นจากขั้นตอน OAuth2
สาเหตุที่พบบ่อยที่สุดที่ทำให้เกิดข้อผิดพลาดในการตรวจสอบสิทธิ์จากปัจจัยที่อยู่นอกเหนือการควบคุมของคุณคือผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์ได้เพิกถอนสิทธิ์ที่อนุญาตให้แอปของคุณดำเนินการในนามของตน ตัวอย่างเช่น หากแอปจัดการบัญชี Google Ads แยกต่างหากสําหรับลูกค้าอิสระ และตรวจสอบสิทธิ์แยกต่างหากเมื่อจัดการบัญชีของลูกค้าแต่ละราย ลูกค้าจะเพิกถอนสิทธิ์เข้าถึงของแอปได้ทุกเมื่อ API อาจแสดงข้อผิดพลาด AuthenticationError.OAUTH_TOKEN_REVOKED
โดยตรง หรือออบเจ็กต์ข้อมูลเข้าสู่ระบบในตัวในไลบรารีไคลเอ็นต์อาจแสดงข้อยกเว้นการเพิกถอนโทเค็น ทั้งนี้ขึ้นอยู่กับเวลาที่เพิกถอนสิทธิ์เข้าถึง ไม่ว่าในกรณีใด หากแอปมี UI สำหรับลูกค้า แอปอาจขอให้ลูกค้าเปิดใช้ขั้นตอนการขอสิทธิ์ OAuth2 อีกครั้งเพื่อกำหนดสิทธิ์ของแอปในการดำเนินการในนามของลูกค้าอีกครั้ง
ข้อผิดพลาดที่ลองใหม่ได้
ข้อผิดพลาดบางรายการ เช่น TRANSIENT_ERROR
หรือ INTERNAL_ERROR
อาจบ่งบอกถึงปัญหาชั่วคราวที่อาจแก้ไขได้ด้วยการลองส่งคำขออีกครั้งหลังจากหยุดพักสั้นๆ
สําหรับคําขอที่ผู้ใช้เริ่ม กลยุทธ์อย่างหนึ่งคือระบุข้อผิดพลาดใน UI ทันทีและให้ตัวเลือกแก่ผู้ใช้ในการเรียกให้ลองอีกครั้ง หรือแอปอาจลองส่งคำขออีกครั้งโดยอัตโนมัติก่อน แล้วแสดงข้อผิดพลาดใน UI หลังจากที่พยายามส่งคำขอใหม่ถึงจำนวนครั้งที่สูงสุดหรือหลังจากผู้ใช้รอนานที่สุด
สําหรับคําขอที่เริ่มต้นในแบ็กเอนด์ แอปควรลองส่งคําขออีกครั้งโดยอัตโนมัติตามจํานวนครั้งที่ลองสูงสุด
เมื่อลองส่งคำขออีกครั้ง ให้ใช้นโยบาย Exponential Backoff ตัวอย่างเช่น หากหยุดชั่วคราว 5 วินาทีก่อนการลองครั้งแรก คุณอาจหยุดชั่วคราว 10 วินาทีหลังจากครั้งที่ 2 และ 20 วินาทีหลังจากครั้งที่ 3 การลดจำนวนคำขอแบบทวีคูณช่วยให้มั่นใจว่าคุณไม่ได้เรียกใช้ API มากเกินไป
ข้อผิดพลาดจากการตรวจสอบ
ข้อผิดพลาดเกี่ยวกับการตรวจสอบความถูกต้องบ่งชี้ว่าระบบไม่ยอมรับอินพุตสำหรับการดำเนินการ
เช่น PolicyViolationError
DateError
DateRangeError
StringLengthError
และ
UrlFieldError
ข้อผิดพลาดในการตรวจสอบมักเกิดขึ้นในคำขอที่ผู้ใช้เริ่ม ซึ่งผู้ใช้ป้อนข้อมูลที่ไม่ถูกต้อง ในกรณีเหล่านี้ คุณควรแสดงข้อความแสดงข้อผิดพลาดที่เหมาะสมแก่ผู้ใช้โดยอิงตามข้อผิดพลาด API ที่เฉพาะเจาะจงที่คุณได้รับ นอกจากนี้ คุณยังตรวจสอบข้อมูลที่ผู้ใช้ป้อนเพื่อหาข้อผิดพลาดที่พบบ่อยก่อนที่จะทำการเรียก API ได้ ซึ่งจะช่วยให้แอปตอบสนองได้ดีขึ้นและการใช้ API มีประสิทธิภาพมากขึ้น สําหรับคําขอจากแบ็กเอนด์ แอปของคุณอาจเพิ่มการดำเนินการที่ไม่สําเร็จลงในคิวเพื่อให้เจ้าหน้าที่ตรวจสอบ
ข้อผิดพลาดเกี่ยวกับการซิงค์
แอป Google Ads หลายแอปดูแลฐานข้อมูลในเครื่องเพื่อจัดเก็บออบเจ็กต์ Google Ads ปัญหาอย่างหนึ่งของแนวทางนี้คือฐานข้อมูลในเครื่องอาจไม่ซิงค์กับออบเจ็กต์จริงใน Google Ads เช่น ผู้ใช้อาจลบกลุ่มโฆษณาใน Google Ads โดยตรง แต่แอปและฐานข้อมูลในเครื่องไม่รับรู้ถึงการเปลี่ยนแปลงดังกล่าวและยังคงเรียก API ต่อไปราวกับว่ากลุ่มโฆษณายังอยู่ ปัญหาการซิงค์เหล่านี้อาจแสดงเป็นข้อผิดพลาดต่างๆ เช่น DUPLICATE_CAMPAIGN_NAME
,
DUPLICATE_ADGROUP_NAME
,
AD_NOT_UNDER_ADGROUP
,
CANNOT_OPERATE_ON_REMOVED_ADGROUPAD
และอื่นๆ อีกมากมาย
สําหรับคําขอที่ผู้ใช้เริ่ม กลยุทธ์อย่างหนึ่งคือการแจ้งให้ผู้ใช้ทราบถึงปัญหาการซิงค์ที่อาจเกิดขึ้น จากนั้นเปิดใช้งานงานที่ดึงข้อมูลคลาสออบเจ็กต์ Google Ads ที่เกี่ยวข้องและอัปเดตฐานข้อมูลในเครื่องทันที แล้วแจ้งให้ผู้ใช้รีเฟรช UI
สําหรับคําขอแบ็กเอนด์ ข้อผิดพลาดบางรายการจะให้ข้อมูลเพียงพอที่แอปจะแก้ไขฐานข้อมูลในเครื่องโดยอัตโนมัติและทีละรายการ เช่น
CANNOT_OPERATE_ON_REMOVED_ADGROUPAD
ควรทําให้แอปทําเครื่องหมายโฆษณานั้นว่าถูกนําออกในฐานข้อมูลในเครื่อง ข้อผิดพลาดที่คุณจัดการไม่ได้ด้วยวิธีนี้อาจทําให้แอปเปิดงานซิงค์ที่สมบูรณ์มากขึ้นหรือเพิ่มลงในคิวเพื่อให้เจ้าหน้าที่ตรวจสอบ