การแก้ปัญหา

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

การแก้ปัญหา

เมื่อทราบปัญหาและหาวิธีแก้ปัญหาได้แล้ว ก็ถึงเวลาทําการเปลี่ยนแปลงและทดสอบการแก้ไขกับบัญชีทดสอบ (แนะนำ) หรือบัญชีที่ใช้งานจริง (หากข้อบกพร่องมีผลกับข้อมูลในบัญชีที่ใช้งานจริงบางบัญชีเท่านั้น)

พิจารณาการแชร์

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

ขั้นตอนถัดไป

เมื่อแก้ปัญหานี้แล้ว คุณสังเกตเห็นวิธีปรับปรุงโค้ดเพื่อหลีกเลี่ยงปัญหานี้ตั้งแต่แรกไหม

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