การแก้ปัญหา

ข้อผิดพลาดอาจเกิดจากการตั้งค่าสภาพแวดล้อมที่ไม่ถูกต้อง บั๊กในซอฟต์แวร์ หรือข้อมูลที่ไม่ถูกต้องจากผู้ใช้ ไม่ว่าข้อผิดพลาดจะมาจากแหล่งใด คุณจะต้องแก้ปัญหาและแก้ไขโค้ดหรือเพิ่มตรรกะเพื่อจัดการข้อผิดพลาดของผู้ใช้ คู่มือนี้จะกล่าวถึงแนวทางปฏิบัติแนะนำบางส่วนเมื่อแก้ปัญหาข้อผิดพลาดจาก 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.match_type'.",
      "location": {
        "fieldPathElements": [
          { "fieldName": "operations", "index": 1 }
        ]
      }
    }
  ]
}

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

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

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

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

  3. ค้นหาช่องทางสนับสนุนของเราเพื่อเข้าถึง นักพัฒนาซอฟต์แวร์คนอื่นๆ ที่แชร์ประสบการณ์การใช้งาน API อาจมีคนอื่นๆ ที่พบและแก้ปัญหาที่คุณกำลังประสบอยู่

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

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

  6. หากพบข้อผิดพลาดที่ไม่มีเอกสารประกอบ โปรดติดต่อ ทีมสนับสนุน

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

หาสาเหตุ

ตรวจสอบข้อความแสดงข้อยกเว้นเพื่อหาสาเหตุของข้อผิดพลาด หลังจากดูการตอบกลับแล้ว ให้ตรวจสอบคำขอเพื่อหาสาเหตุที่เป็นไปได้ ข้อความแสดงข้อผิดพลาดบางรายการของ Google Ads API มี fieldPathElements ในช่อง location ของ GoogleAdsError ซึ่งระบุตำแหน่งที่เกิดข้อผิดพลาดในคำขอ เช่น

{
  "errors": [
    {
      "errorCode": {"criterionError": "CANNOT_ADD_CRITERIA_TYPE"},
      "message": "Criteria type can not be targeted.",
      "trigger": { "stringValue": "" },
      "location": {
        "fieldPathElements": [
          { "fieldName": "operations", "index": 0 },
          { "fieldName": "create" },
          { "fieldName": "keyword" }
        ]
      }
    }
  ]
}

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

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

วิธีรับความช่วยเหลือ

บางครั้งคุณอาจไม่สามารถระบุและแก้ปัญหาได้ด้วยตนเอง คุณสามารถ ติดต่อ ทีมสนับสนุน เพื่อขอความช่วยเหลือ

พยายามใส่ข้อมูลให้มากที่สุดเท่าที่จะทำได้ในการค้นหา รายการที่แนะนำมีดังนี้

  • คำขอและการตอบกลับ JSON ที่ผ่านการล้างข้อมูล โปรดนำข้อมูลที่ละเอียดอ่อนออก เช่น โทเค็นเพื่อการเข้าถึง OAuth, โทเค็นการรีเฟรช และรหัสลูกค้า
  • ข้อมูลโค้ด หากพบปัญหาที่เฉพาะเจาะจงกับภาษาหรือต้องการความช่วยเหลือในการใช้งาน API โปรดใส่ข้อมูลโค้ดเพื่อช่วยอธิบายสิ่งที่คุณกำลังทำ
  • request-idซึ่งจะช่วยให้สมาชิกทีม Google Developer Relations ค้นหาคำขอของคุณได้หากส่งคำขอไปยังสภาพแวดล้อมฮาร์ดแวร์และซอฟต์แวร์ เราขอแนะนำให้บันทึก request-id ที่รวมอยู่ในส่วนหัวการตอบกลับหรือข้อยกเว้นที่ห่อหุ้มข้อผิดพลาดในการตอบกลับ รวมถึงบริบทเพิ่มเติมมากกว่า request-id เพียงอย่างเดียว
  • ข้อมูลเพิ่มเติม เช่น เวอร์ชันรันไทม์หรือเวอร์ชันตัวแปลภาษาและแพลตฟอร์ม ก็อาจเป็นประโยชน์เมื่อแก้ปัญหาด้วย

แก้ไขปัญหา

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

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

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

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