การแก้ปัญหา

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