ประเภทข้อผิดพลาด

เราได้จัดหมวดหมู่ข้อผิดพลาดออกเป็นหมวดหมู่กว้างๆ ดังต่อไปนี้

  • การตรวจสอบสิทธิ์
  • ลองใหม่ได้
  • การตรวจสอบความถูกต้อง
  • เกี่ยวข้องกับการซิงค์

แม้ว่าหมวดหมู่เหล่านี้จะไม่ครอบคลุมข้อผิดพลาดทั้งหมดที่เป็นไปได้ และ บางข้อผิดพลาดอาจจัดอยู่ในหมวดหมู่มากกว่า 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 Exponential Backoff ช่วยให้มั่นใจว่าคุณไม่ได้เรียก 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 ควรทำให้แอปของคุณทำเครื่องหมายโฆษณาดังกล่าวว่า นำออกแล้วในฐานข้อมูลในเครื่อง ข้อผิดพลาดที่คุณจัดการด้วยวิธีนี้ไม่ได้อาจทำให้แอปเปิดตัวงานซิงค์ที่สมบูรณ์ยิ่งขึ้น หรือถูกเพิ่มลงในคิวเพื่อให้ผู้ปฏิบัติงานที่เป็นมนุษย์ตรวจสอบ