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

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

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

แม้ว่าหมวดหมู่เหล่านี้จะไม่ได้ครอบคลุมข้อผิดพลาดที่เป็นไปได้ทั้งหมด และบางหมวดหมู่อาจจัดอยู่ในมากกว่า 1 หมวดหมู่ แต่ก็ยังสามารถเป็นจุดเริ่มต้นในการจัดโครงสร้างการจัดการข้อผิดพลาดของแอปได้ โปรดดูข้อผิดพลาดที่พบบ่อยสำหรับรายละเอียดเพิ่มเติมเกี่ยวกับข้อผิดพลาดนั้นๆ

ข้อผิดพลาดในการตรวจสอบสิทธิ์

การตรวจสอบสิทธิ์คือการที่แอปได้รับสิทธิ์จากผู้ใช้ให้เข้าถึง Google Ads ในนามของผู้ใช้รายนั้นหรือไม่ การตรวจสอบสิทธิ์จะจัดการผ่านข้อมูลเข้าสู่ระบบที่สร้างโดยขั้นตอน OAuth2

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