วิดีโอ: ดูการสนทนาเกี่ยวกับการจัดการข้อผิดพลาดจากเวิร์กช็อปปี 2019
ข้อผิดพลาดอาจเกิดจากการตั้งค่าสภาพแวดล้อมที่ไม่ถูกต้อง หรือข้อบกพร่องใน ซอฟต์แวร์ของคุณ หรืออินพุตที่ไม่ถูกต้องจากผู้ใช้ ไม่ว่าจะมาจากแหล่งใด ต้องแก้ปัญหาและแก้ไขโค้ดหรือเพิ่มตรรกะเพื่อจัดการ ข้อผิดพลาดของผู้ใช้ คู่มือนี้กล่าวถึงแนวทางปฏิบัติแนะนำบางส่วนในการแก้ปัญหา จาก Google Ads API
การเชื่อมต่ออินเทอร์เน็ต
ตรวจสอบว่าคุณมีสิทธิ์เข้าถึง Google Ads API และมีการตั้งค่าที่ถูกต้อง หาก การตอบกลับจะแสดงข้อผิดพลาด HTTP ทั้งหมด โปรดตรวจสอบว่าคุณระบุข้อผิดพลาดเหล่านั้นอย่างรอบคอบและ ว่าคุณกำลังเข้าถึงบริการที่คุณตั้งใจจะใช้จากโค้ดของคุณ
ข้อมูลเข้าสู่ระบบของคุณจะฝังอยู่ใน request เพื่อให้ เพื่อตรวจสอบสิทธิ์ของคุณ ทำความคุ้นเคยกับโครงสร้างของ 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 เป็นหลัก แต่มีปลั๊กอินสำหรับ ภาษาอื่นๆ) เพื่อช่วยให้คุณสามารถแก้ไขข้อบกพร่องได้ ทำให้คุณสามารถตั้งค่าเบรกพอยท์ และแสดงโค้ดทีละบรรทัด
ตรวจสอบอีกครั้งว่าคำขอตรงกับข้อมูลแอปพลิเคชันของคุณ (สำหรับ ตัวอย่างเช่น ชื่อแคมเปญอาจไม่เป็นที่ต้องการ) ตรวจสอบว่า คุณส่ง ฟิลด์มาสก์ ที่ตรงกับการอัปเดตที่คุณต้องการ โดย Google Ads API รองรับการอัปเดตแบบกะทันหัน การละเว้นช่องจากมาสก์ของช่องในคำขอการเปลี่ยนรูปแบบแสดงว่า API ควรปล่อยไว้เฉยๆ หากแอปพลิเคชันของคุณเรียกออบเจ็กต์ ให้ทำการเปลี่ยนแปลง และส่งกลับมา คุณอาจเขียนลงในช่องที่ไม่ได้ การสนับสนุนการอัปเดต ตรวจสอบคำอธิบายของช่องในข้อมูลอ้างอิง เพื่อดูว่ามีข้อจำกัดใดๆ เกี่ยวกับกรณีหรือ สามารถอัปเดตฟิลด์
วิธีรับความช่วยเหลือ
บางครั้งก็ไม่สามารถระบุและแก้ปัญหาด้วยตนเองได้ การถามในฟอรัมเปิดเผย คำถามถึงนักพัฒนาซอฟต์แวร์หลายพันคน ที่อาจต้องรับมือ ปัญหา
พยายามใส่ข้อมูลในข้อความค้นหาให้มากที่สุดเท่าที่จะเป็นไปได้ รายการที่แนะนำมีดังนี้
- คำขอและการตอบกลับ JSON ที่ปลอดภัย อย่าลืมนําเนื้อหาที่ละเอียดอ่อนออก เช่น โทเค็นของนักพัฒนา หรือ AuthToken
- ข้อมูลโค้ด หากคุณมีปัญหาเฉพาะภาษาหรือ ขอความช่วยเหลือในการทำงานกับ API ให้รวมข้อมูลโค้ดเพื่อช่วย อธิบายสิ่งที่คุณกำลังทำอยู่
- รหัสคำขอ ซึ่งจะช่วยให้สมาชิกทีมนักพัฒนาสัมพันธ์ของ Google ค้นหาตำแหน่ง คำขอหากดำเนินการกับสภาพแวดล้อมการใช้งานจริง พ เราขอแนะนำให้ลงทะเบียนในบันทึก โดยใส่ requestId ไว้เป็นพร็อพเพอร์ตี้ ข้อยกเว้นที่รวมข้อผิดพลาดในการตอบกลับ รวมถึงบริบทเพิ่มเติม requestId เพียงอย่างเดียว
- ข้อมูลเพิ่มเติม เช่น เวอร์ชันรันไทม์/เวอร์ชันล่าม และ แพลตฟอร์มอาจเป็นประโยชน์เมื่อแก้ปัญหา
การแก้ปัญหา
เมื่อเข้าใจปัญหาและหาทางแก้ไขได้แล้วก็ถึงเวลา ทำการเปลี่ยนแปลงและทดสอบการแก้ไขกับบัญชีทดสอบ (แนะนำ) หรือ เวอร์ชันที่ใช้งานจริง (หากข้อบกพร่องมีผลกับข้อมูลในบัญชีเวอร์ชันที่ใช้งานจริงที่เฉพาะเจาะจงเท่านั้น)
พิจารณาแชร์
หากคุณโพสต์คำถามในฟอรัมเกี่ยวกับข้อผิดพลาดที่ไม่ได้ เคยปรากฏตรงนั้น และเมื่อคุณพบโซลูชันแล้ว ให้ลองเพิ่มโซลูชันนั้นลงใน ชุดข้อความ ครั้งถัดไปที่นักพัฒนาซอฟต์แวร์มีปัญหาเดิม เขาจะสามารถแก้ไขได้ ตอนนี้เลย
ขั้นตอนถัดไป
เมื่อคุณแก้ปัญหานี้ได้แล้ว คุณสังเกตเห็นวิธีปรับปรุง เพื่อหลีกเลี่ยงปัญหานี้ตั้งแต่แรกได้
การสร้างชุดการทดสอบ 1 หน่วยที่ดีจะช่วยปรับปรุงคุณภาพและความน่าเชื่อถือของโค้ด เป็นอย่างมาก และยังทำให้การทดสอบการเปลี่ยนแปลงใหม่ๆ เร็วขึ้นเพื่อให้มั่นใจว่า ไม่ได้ทำให้ฟังก์ชันการทำงานก่อนหน้านี้เสียหาย กลยุทธ์การจัดการข้อผิดพลาดที่ดียัง การแสดงข้อมูลที่จำเป็นทั้งหมดสำหรับการแก้ปัญหา