การแก้ปัญหา

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

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

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

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

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