วิดีโอ: ดูการพูดคุยเกี่ยวกับการจัดการข้อผิดพลาดจากเวิร์กช็อปปี 2019
ข้อผิดพลาดอาจเกิดจากการตั้งค่าสภาพแวดล้อมที่ไม่ถูกต้อง ข้อบกพร่องในซอฟต์แวร์ หรืออินพุตที่ไม่ถูกต้องจากผู้ใช้ ไม่ว่าข้อผิดพลาดจะมาจากแหล่งใด คุณจะต้องแก้ปัญหาและแก้ไขโค้ดหรือเพิ่มตรรกะเพื่อจัดการข้อผิดพลาดของผู้ใช้ คู่มือนี้จะพูดถึงแนวทางปฏิบัติแนะนำบางอย่างเมื่อแก้ปัญหาข้อผิดพลาดจาก Google Ads API
ตรวจสอบการเชื่อมต่อ
ตรวจสอบว่าคุณมีสิทธิ์เข้าถึง Google Ads API และตั้งค่าอย่างถูกต้อง หากการตอบกลับแสดงข้อผิดพลาด HTTP ให้ตรวจสอบข้อผิดพลาดเหล่านั้นอย่างละเอียดและตรวจสอบว่าคุณเข้าถึงบริการที่ต้องการใช้จากโค้ดได้
ระบบจะฝังข้อมูลเข้าสู่ระบบไว้ใน คำขอเพื่อให้บริการ ตรวจสอบสิทธิ์คุณได้ ทำความคุ้นเคยกับโครงสร้างของคำขอและการตอบกลับของ Google Ads API โดยเฉพาะอย่างยิ่งหากคุณจะจัดการการเรียกโดยไม่ใช้ไลบรารีของไคลเอ็นต์ ไลบรารีของไคลเอ็นต์แต่ละรายการจะมาพร้อมกับวิธีการเฉพาะในการใส่ข้อมูลเข้าสู่ระบบในไฟล์กำหนดค่า (โปรดดู README ของไลบรารีของไคลเอ็นต์)
ตรวจสอบว่าคุณใช้ข้อมูลเข้าสู่ระบบที่ถูกต้อง คู่มือเริ่มต้นใช้งานฉบับย่อ จะแนะนำขั้นตอนในการรับ ชุดข้อมูลที่ถูกต้องที่คุณต้องการ ตัวอย่างเช่น การตอบกลับที่ล้มเหลวด้านล่างแสดงว่าผู้ใช้ส่งข้อมูลเข้าสู่ระบบสำหรับการตรวจสอบสิทธิ์ที่ไม่ถูกต้อง
{ "error": { "code": 401, "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. Visit https://developers.google.com/identity/sign-in/web/devconsole-project.", "status": "UNAUTHENTICATED", "details": [ { "@type": "type.googleapis.com/google.rpc.DebugInfo", "detail": "Authentication error: 2" } ] } }
หากทำตามขั้นตอนเหล่านี้แล้วแต่ยังพบปัญหาอยู่ ก็ถึงเวลาเจาะลึกเพื่อแก้ปัญหาข้อผิดพลาดของ Google Ads API
ระบุปัญหา
โดยทั่วไป Google Ads API จะรายงานข้อผิดพลาดเป็นออบเจ็กต์การล้มเหลว JSON ซึ่งมีรายการข้อผิดพลาดในการตอบกลับ ออบเจ็กต์เหล่านี้จะมีรหัสข้อผิดพลาดและข้อความที่อธิบายสาเหตุที่เกิดข้อผิดพลาด ซึ่งเป็นสัญญาณแรกที่บ่งบอกว่าปัญหาอาจเกิดจากอะไร
{
"errors": [
{
"errorCode": { "fieldMaskError": "FIELD_NOT_FOUND" },
"message": "The field mask contained an invalid field: 'keyword/matchtype'.",
"location": { "operationIndex": "1" }
}
]
}
ไลบรารีของไคลเอ็นต์ทั้งหมดของเราจะแสดงข้อยกเว้นที่ ห่อหุ้มข้อผิดพลาดในการตอบกลับ การบันทึกข้อยกเว้นเหล่านี้และพิมพ์ข้อความในบันทึกหรือหน้าจอการแก้ปัญหาเป็นวิธีเริ่มต้นที่ดี การผสานรวมข้อมูลนี้กับเหตุการณ์อื่นๆ ที่บันทึกไว้ในแอปพลิเคชันจะช่วยให้คุณเห็นภาพรวมที่ดีเกี่ยวกับสิ่งที่อาจทำให้เกิดปัญหา เมื่อระบุข้อผิดพลาดในบันทึกได้แล้ว คุณจะต้องหาความหมายของข้อผิดพลาดนั้น
ค้นหาข้อมูลเกี่ยวกับข้อผิดพลาด
โปรดดูเอกสารประกอบเกี่ยวกับข้อผิดพลาดที่พบบ่อย ซึ่งครอบคลุมข้อผิดพลาดที่พบบ่อยที่สุด เอกสารประกอบนี้จะอธิบายข้อความแสดงข้อผิดพลาด การอ้างอิง API ที่เกี่ยวข้อง และวิธีหลีกเลี่ยงหรือจัดการข้อผิดพลาด
หากเอกสารประกอบเกี่ยวกับข้อผิดพลาดที่พบบ่อยไม่ได้กล่าวถึงข้อผิดพลาดนั้นโดยเฉพาะ โปรดดูเอกสารอ้างอิงและค้นหาสตริงข้อผิดพลาด
ค้นหาช่องทางสนับสนุนของเราเพื่อเข้าถึง นักพัฒนาซอฟต์แวร์คนอื่นๆ ที่แชร์ประสบการณ์การใช้งาน API อาจมีคนอื่นๆ ที่เคยพบและแก้ปัญหาที่คุณกำลังพบอยู่
ไปที่ ศูนย์ช่วยเหลือของ Google Ads เพื่อขอความช่วยเหลือในการแก้ปัญหาการตรวจสอบหรือขีดจำกัดบัญชี เนื่องจาก Google Ads API สืบทอดกฎและข้อจำกัดของผลิตภัณฑ์หลักของ Google Ads
โพสต์ในบล็อก บางครั้งอาจเป็นแหล่งข้อมูลอ้างอิงที่ดีเมื่อแก้ปัญหาแอปพลิเคชัน
หากพบข้อผิดพลาดที่ไม่มีเอกสารประกอบ โปรดติดต่อ ทีมสนับสนุน
หลังจากค้นหาข้อมูลเกี่ยวกับข้อผิดพลาดแล้ว ก็ถึงเวลาพิจารณาสาเหตุหลัก
หาสาเหตุ
ตรวจสอบข้อความแสดงข้อยกเว้นเพื่อหาสาเหตุของข้อผิดพลาด หลังจากดูการตอบกลับแล้ว ให้ตรวจสอบคำขอเพื่อหาสาเหตุที่เป็นไปได้ ข้อความแสดงข้อผิดพลาดบางรายการของ Google Ads API จะมี fieldPathElements
ในช่อง location ของ
GoogleAdsError ซึ่งระบุตำแหน่งที่เกิดข้อผิดพลาดในคำขอ เช่น
{
"errors": [
{
"errorCode": {"criterionError": "CANNOT_ADD_CRITERIA_TYPE"},
"message": "Criteria type can not be targeted.",
"trigger": { "stringValue": "" },
"location": {
"operationIndex": "0",
"fieldPathElements": [ { "fieldName": "keyword" } ]
}
}
]
}
เมื่อแก้ปัญหา คุณอาจพบว่าแอปพลิเคชันของคุณส่งข้อมูลที่ไม่ถูกต้องไปยัง API เราขอแนะนำให้ใช้ สภาพแวดล้อมการพัฒนาแบบโต้ตอบ (IDE) เช่น Eclipse (IDE แบบโอเพนซอร์สและใช้งานได้ฟรี ซึ่งส่วนใหญ่ใช้ในการพัฒนา Java แต่มี ปลั๊กอินสำหรับภาษาอื่นๆ) เพื่อช่วยคุณในการดีบัก IDE จะช่วยให้คุณตั้งค่าเบรกพอยต์และดำเนินการโค้ดทีละบรรทัดได้
ตรวจสอบอีกครั้งเพื่อให้แน่ใจว่าคำขอตรงกับอินพุตของแอปพลิเคชัน (เช่น ชื่อแคมเปญอาจไม่ปรากฏในคำขอ) ตรวจสอบว่า คุณส่ง ฟิลด์มาสก์ ที่ตรงกับการอัปเดตที่ต้องการทำ เนื่องจาก Google Ads API รองรับการอัปเดตแบบ Sparse การละเว้นฟิลด์จากฟิลด์มาสก์ในคำขอ Mutate จะระบุว่า API ควรปล่อยฟิลด์นั้นไว้ หากแอปพลิเคชันดึงข้อมูลออบเจ็กต์ ทำการเปลี่ยนแปลง และส่งข้อมูลกลับ คุณอาจเขียนข้อมูลลงในฟิลด์ที่ไม่รองรับการอัปเดต โปรดดูคำอธิบายของฟิลด์ในเอกสารอ้างอิงเพื่อดูว่ามีข้อจำกัดเกี่ยวกับเวลาหรือเงื่อนไขในการอัปเดตฟิลด์หรือไม่
วิธีรับความช่วยเหลือ
บางครั้งคุณอาจไม่สามารถระบุและแก้ปัญหาได้ด้วยตนเอง โปรดติดต่อ ทีมสนับสนุนเพื่อขอความช่วยเหลือ
พยายามใส่ข้อมูลให้ได้มากที่สุดในคำขอ รายการที่แนะนำมีดังนี้
- คำขอและการตอบกลับ JSON ที่ผ่านการล้างข้อมูล โปรดนำข้อมูลละเอียดอ่อนออก เช่น โทเค็นของนักพัฒนาซอฟต์แวร์หรือ AuthToken
- ข้อมูลโค้ด หากพบปัญหาที่เฉพาะเจาะจงกับภาษาหรือต้องการความช่วยเหลือในการใช้งาน API โปรดใส่ข้อมูลโค้ดเพื่อช่วยอธิบายสิ่งที่คุณกำลังทำ
- RequestId ซึ่งจะช่วยให้สมาชิกทีม Google Developer Relations ค้นหาคำขอของคุณได้หากส่งคำขอไปยังสภาพแวดล้อมฮาร์ดแวร์และซอฟต์แวร์ เราขอแนะนำให้ลงทะเบียน requestId ในบันทึกเป็นพร็อพเพอร์ตี้ในข้อยกเว้นที่ห่อหุ้มข้อผิดพลาดในการตอบกลับ รวมถึงบริบทเพิ่มเติมมากกว่า requestId เพียงอย่างเดียว
- ข้อมูลเพิ่มเติม เช่น เวอร์ชันรันไทม์หรือเวอร์ชันอินเทอร์พรีเตอร์ และแพลตฟอร์ม ก็อาจเป็นประโยชน์เมื่อแก้ปัญหา
แก้ไขปัญหา
เมื่อทราบปัญหาและคิดหาวิธีแก้ปัญหาได้แล้ว ก็ถึงเวลาทำการเปลี่ยนแปลงและทดสอบการแก้ไขกับบัญชีทดสอบ (แนะนำ) หรือบัญชีที่ใช้งานจริง (หากข้อบกพร่องใช้ได้กับข้อมูลในบัญชีที่ใช้งานจริงที่เฉพาะเจาะจงเท่านั้น)
ขั้นตอนถัดไป
เมื่อแก้ปัญหานี้ได้แล้ว คุณสังเกตเห็นวิธีปรับปรุงโค้ดเพื่อหลีกเลี่ยงปัญหานี้ตั้งแต่แรกหรือไม่
การสร้างชุดการทดสอบหน่วยที่ดีจะช่วยปรับปรุงคุณภาพและความน่าเชื่อถือของโค้ดได้อย่างมาก นอกจากนี้ยังช่วยเร่งกระบวนการทดสอบการเปลี่ยนแปลงใหม่ๆ เพื่อให้แน่ใจว่าการเปลี่ยนแปลงดังกล่าวไม่ได้ทำให้ฟังก์ชันการทำงานก่อนหน้านี้เสียหาย กลยุทธ์การจัดการข้อผิดพลาดที่ดีเป็นสิ่งสำคัญในการแสดงข้อมูลที่จำเป็นทั้งหมดสำหรับการแก้ปัญหา