การแก้ปัญหา

วิดีโอ: ดูการสนทนาเกี่ยวกับการจัดการข้อผิดพลาดจากเวิร์กช็อปปี 2019

ข้อผิดพลาดอาจเกิดจากการตั้งค่าสภาพแวดล้อมที่ไม่ถูกต้อง หรือข้อบกพร่องใน ซอฟต์แวร์ของคุณ หรืออินพุตที่ไม่ถูกต้องจากผู้ใช้ ไม่ว่าจะมาจากแหล่งใด ต้องแก้ปัญหาและแก้ไขโค้ดหรือเพิ่มตรรกะเพื่อจัดการ ข้อผิดพลาดของผู้ใช้ คู่มือนี้กล่าวถึงแนวทางปฏิบัติแนะนำบางส่วนในการแก้ปัญหา จาก Google Ads API

การเชื่อมต่ออินเทอร์เน็ต

  1. ตรวจสอบว่าคุณมีสิทธิ์เข้าถึง Google Ads API และมีการตั้งค่าที่ถูกต้อง หาก การตอบกลับจะแสดงข้อผิดพลาด HTTP ทั้งหมด โปรดตรวจสอบว่าคุณระบุข้อผิดพลาดเหล่านั้นอย่างรอบคอบและ ว่าคุณกำลังเข้าถึงบริการที่คุณตั้งใจจะใช้จากโค้ดของคุณ

  2. ข้อมูลเข้าสู่ระบบของคุณจะฝังอยู่ใน request เพื่อให้ เพื่อตรวจสอบสิทธิ์ของคุณ ทำความคุ้นเคยกับโครงสร้างของ Google Ads API คำขอและการตอบกลับ โดยเฉพาะในกรณีที่คุณจะจัดการการโทรโดยไม่มี โดยใช้ไลบรารีของไคลเอ็นต์ ไลบรารีของไคลเอ็นต์แต่ละรายการจัดส่งมาพร้อม วิธีการใส่ข้อมูลเข้าสู่ระบบในไฟล์การกำหนดค่า (ดูที่ README ของไลบรารีไคลเอ็นต์)

  3. ตรวจสอบว่าคุณใช้ข้อมูลเข้าสู่ระบบที่ถูกต้อง การเริ่มต้นอย่างรวดเร็วจะอธิบายขั้นตอนการรับ ได้ตามที่ต้องการ ตัวอย่างเช่น การตอบกลับที่ล้มเหลวต่อไปนี้แสดงให้เห็นว่าฟังก์ชัน ผู้ใช้ ได้ส่งข้อมูลรับรองการตรวจสอบสิทธิ์ที่ไม่ถูกต้อง:

    {
      "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" }
    }
  ]
}

ไลบรารีของไคลเอ็นต์ทั้งหมดของเราจะมีข้อยกเว้นที่ สรุปข้อผิดพลาดในการตอบกลับ การบันทึกข้อยกเว้นเหล่านี้และ การพิมพ์ข้อความลงในบันทึกหรือหน้าจอการแก้ปัญหาเป็นวิธีที่ดี เพื่อเริ่มต้น การผสานรวมข้อมูลนี้กับเหตุการณ์อื่นๆ ที่บันทึกไว้ในบัญชี แอปพลิเคชันจะให้ภาพรวมที่ดีเกี่ยวกับสิ่งที่อาจทำให้เกิดปัญหา เมื่อคุณระบุข้อผิดพลาดในบันทึกแล้ว คุณจะต้องหาสาเหตุ หมายความว่าอย่างไร

การค้นคว้าเกี่ยวกับข้อผิดพลาด

  1. โปรดดูที่ข้อผิดพลาดที่พบบ่อยของเรา ซึ่งครอบคลุมข้อผิดพลาดที่พบบ่อยที่สุด ทั้งนี้ ข้อความแสดงข้อผิดพลาด การอ้างอิง API ที่เกี่ยวข้อง และวิธีหลีกเลี่ยง จัดการข้อผิดพลาด

  2. หากเอกสารประกอบของข้อผิดพลาดที่พบบ่อยไม่ได้กล่าวถึงข้อผิดพลาดอย่างเฉพาะเจาะจง ดูเอกสารอ้างอิงและมองหาสตริงข้อผิดพลาด

  3. ค้นหาช่องทางการสนับสนุนเพื่อรับสิทธิ์เข้าถึง มาแชร์ประสบการณ์การใช้งาน API กัน อาจมีผู้อื่นที่ ได้ค้นพบและแก้ปัญหาที่คุณพบ

  4. หากพบข้อผิดพลาดที่ไม่ได้รับการบันทึกไว้ในเอกสารประกอบ ให้นำไปที่ ความสนใจของเราในฟอรัม

  5. ไปที่ศูนย์ช่วยเหลือของ Google Ads สำหรับความช่วยเหลือในการแก้ปัญหาด้านการตรวจสอบความถูกต้องหรือปัญหาการจํากัดบัญชี Google Ads API จะนำกฎและข้อจำกัดของผลิตภัณฑ์ Google Ads หลักมาใช้

  6. บล็อกโพสต์ จะเป็นข้อมูลอ้างอิงที่ดีเมื่อแก้ปัญหาใบสมัครของคุณในบางครั้ง

หลังจากค้นคว้าเกี่ยวกับข้อผิดพลาดแล้ว ก็ถึงเวลาหาสาเหตุที่แท้จริง

การค้นหาสาเหตุ

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