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

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

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

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