Khắc phục sự cố

Video: Xem bài nói chuyện về cách xử lý lỗi trong hội thảo năm 2019

Lỗi có thể xảy ra do thiết lập môi trường không chính xác, lỗi trong phần mềm hoặc dữ liệu đầu vào không hợp lệ từ người dùng. Bất kể nguồn, bạn sẽ cần khắc phục vấn đề và sửa mã hoặc thêm logic để xử lý lỗi người dùng. Hướng dẫn này thảo luận một số phương pháp hay nhất để khắc phục các lỗi của API Google Ads.

Đảm bảo khả năng kết nối

  1. Hãy đảm bảo bạn có quyền truy cập vào API Google Ads và thiết lập đúng cách. Nếu phản hồi của bạn trả về bất kỳ lỗi HTTP nào, hãy nhớ giải quyết các lỗi đó một cách cẩn thận và bạn đang truy cập vào các dịch vụ mà bạn định sử dụng từ mã của mình.

  2. Thông tin xác thực của bạn được nhúng trong yêu cầu để các dịch vụ có thể xác thực bạn. Làm quen với cấu trúc của các yêu cầu và phản hồi của API Google Ads, đặc biệt là khi bạn định xử lý các lệnh gọi mà không sử dụng thư viện ứng dụng. Mỗi thư viện ứng dụng đều được chuyển kèm theo hướng dẫn cụ thể về cách đưa thông tin xác thực của bạn vào tệp cấu hình (tham khảo tệp README của thư viện ứng dụng).

  3. Xác minh rằng bạn đang sử dụng đúng thông tin đăng nhập. Phần Bắt đầu nhanh của chúng tôi sẽ hướng dẫn bạn thực hiện quy trình để có được bộ mà bạn cần. Ví dụ: lỗi phản hồi sau đây cho thấy người dùng đã gửi thông tin xác thực không hợp lệ:

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

Nếu bạn đã làm theo các bước này mà vẫn gặp vấn đề, thì đã đến lúc tìm hiểu cách khắc phục các lỗi về API Google Ads.

Xác định sự cố

API Google Ads thường báo cáo lỗi dưới dạng đối tượng lỗi JSON, chứa danh sách các lỗi trong phản hồi. Các đối tượng này cung cấp một mã lỗi cũng như thông báo làm rõ lý do xảy ra lỗi. Chúng là những tín hiệu đầu tiên về vấn đề có thể đang xảy ra.

{
  "errors": [
    {
      "errorCode": { "fieldMaskError": "FIELD_NOT_FOUND" },
      "message": "The field mask contained an invalid field: 'keyword/matchtype'.",
      "location": { "operationIndex": "1" }
    }
  ]
}

Tất cả thư viện ứng dụng của chúng tôi đều gửi ngoại lệ đóng gói lỗi trong phản hồi. Việc ghi lại các ngoại lệ này và in thông báo trong nhật ký hoặc màn hình khắc phục sự cố là một cách tuyệt vời để bắt đầu. Việc tích hợp thông tin này với các sự kiện khác đã ghi nhật ký trong ứng dụng sẽ cung cấp thông tin tổng quan đầy đủ về những yếu tố có thể đang gây ra vấn đề. Khi đã xác định được lỗi trong nhật ký, bạn cần tìm hiểu ý nghĩa của lỗi đó.

Nghiên cứu lỗi

  1. Hãy tham khảo tài liệu về Các lỗi thường gặp, bao gồm các lỗi thường gặp nhất. Hướng dẫn này mô tả thông báo lỗi, các tệp tham chiếu API liên quan và cách tránh hoặc xử lý lỗi.

  2. Nếu tài liệu về các lỗi thường gặp không đề cập cụ thể đến lỗi đó, hãy tham khảo tài liệu tham khảo của chúng tôi và tìm chuỗi lỗi.

  3. Tìm kiếm trên các kênh hỗ trợ của chúng tôi để tiếp cận các nhà phát triển khác đang chia sẻ trải nghiệm của họ với API. Một ai đó khác có thể đã gặp phải và giải quyết được vấn đề bạn đang gặp phải.

  4. Nếu bạn gặp bất kỳ lỗi nào không được ghi lại, hãy thông báo cho chúng tôi trên diễn đàn.

  5. Truy cập vào Trung tâm trợ giúp của Google Ads để được trợ giúp khắc phục các vấn đề về việc xác thực hoặc hạn mức tài khoản – API Google Ads kế thừa các quy tắc và giới hạn của sản phẩm Google Ads chính.

  6. Bài đăng trên blog đôi khi sẽ là tài liệu tham khảo hữu ích khi khắc phục sự cố cho ứng dụng của bạn.

Sau khi nghiên cứu lỗi, đã đến lúc xác định nguyên nhân gốc rễ.

Tìm nguyên nhân

Kiểm tra thông báo ngoại lệ để xác định nguyên nhân gây ra lỗi. Sau khi xem xét phản hồi, hãy kiểm tra yêu cầu để tìm nguyên nhân có thể xảy ra. Một số thông báo lỗi của API Google Ads bao gồm fieldPathElements trong trường location của GoogleAdsError, cho biết vị trí xảy ra lỗi trong yêu cầu. Ví dụ:

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

Khi khắc phục một sự cố, có thể ứng dụng của bạn đang cung cấp sai thông tin cho API. Bạn nên sử dụng Môi trường phát triển tương tác (IDE) như Eclipse (IDE nguồn mở và miễn phí, chủ yếu dùng để phát triển Java, nhưng có trình bổ trợ cho các ngôn ngữ khác) để hỗ trợ bạn gỡ lỗi. Công cụ này cho phép bạn đặt các điểm ngắt và duyệt qua từng dòng mã.

Kiểm tra kỹ để đảm bảo rằng yêu cầu khớp với dữ liệu đầu vào của ứng dụng (ví dụ: tên của Chiến dịch có thể không được đưa vào yêu cầu). Hãy đảm bảo bạn gửi mặt nạ trường phù hợp với nội dung cập nhật mà bạn muốn thực hiện – API Google Ads hỗ trợ nội dung cập nhật thưa thớt. Việc bỏ qua một trường của mặt nạ trường trong một yêu cầu thay đổi cho biết rằng API không nên để nguyên trường này. Nếu ứng dụng của bạn truy xuất một đối tượng, thực hiện thay đổi và gửi lại đối tượng, thì có thể bạn đang ghi vào một trường không hỗ trợ cập nhật. Hãy kiểm tra nội dung mô tả về trường đó trong tài liệu tham khảo để xem có quy định hạn chế nào về thời điểm hoặc liệu bạn có thể cập nhật trường đó hay không.

Cách yêu cầu trợ giúp

Không phải lúc nào bạn cũng có thể tự xác định và giải quyết vấn đề. Việc đặt câu hỏi trên diễn đàn sẽ giúp hàng nghìn nhà phát triển biết được câu hỏi của bạn, những người này có thể đã phải giải quyết cùng một vấn đề.

Hãy cố gắng đưa nhiều thông tin nhất có thể vào truy vấn của mình. Các mục đề xuất bao gồm:

  • Yêu cầu và phản hồi JSON được dọn dẹp. Hãy nhớ xoá thông tin nhạy cảm như mã thông báo của nhà phát triển hoặc AuthToken.
  • Đoạn mã. Nếu bạn gặp sự cố về ngôn ngữ cụ thể hoặc yêu cầu trợ giúp xử lý API, hãy cung cấp một đoạn mã để giúp giải thích việc bạn đang làm.
  • Mã yêu cầu. Thông tin này giúp các thành viên trong nhóm Quan hệ nhà phát triển của Google xác định được yêu cầu của bạn nếu yêu cầu đó được đưa ra so với môi trường thực tế. Bạn nên đăng ký trong nhật ký, requestId được đưa vào dưới dạng thuộc tính trong các trường hợp ngoại lệ đóng gói các lỗi phản hồi, cũng như khi có nhiều ngữ cảnh hơn so với chỉ requestId.
  • Những thông tin bổ sung, chẳng hạn như phiên bản thời gian chạy/phiên dịch và nền tảng cũng có thể hữu ích khi khắc phục sự cố.

Khắc phục vấn đề

Giờ đây, khi bạn đã tìm ra vấn đề và tìm ra giải pháp, đã đến lúc thực hiện thay đổi và kiểm thử bản sửa lỗi so với tài khoản kiểm thử (ưu tiên) hoặc tài khoản chính thức (nếu lỗi chỉ áp dụng với dữ liệu trong một tài khoản sản xuất cụ thể).

Cân nhắc chia sẻ

Nếu bạn đã đăng câu hỏi trong diễn đàn về một lỗi chưa từng xuất hiện ở đó trước đây và bạn đã tìm ra giải pháp, hãy cân nhắc thêm lỗi đó vào chuỗi. Lần tới, khi gặp cùng một vấn đề, nhà phát triển sẽ có thể giải quyết ngay lập tức.

Các bước tiếp theo

Sau khi giải quyết xong vấn đề này, bạn có nhận thấy cách nào để cải thiện mã nhằm tránh điều này ngay từ đầu không?

Việc tạo một bộ kiểm thử đơn vị phù hợp sẽ giúp cải thiện đáng kể chất lượng và độ tin cậy của mã. Điều này cũng đẩy nhanh quá trình kiểm thử các thay đổi mới để đảm bảo chúng không làm hỏng chức năng trước đó. Một chiến lược xử lý lỗi hiệu quả cũng là chìa khoá để trình bày mọi dữ liệu cần thiết cho việc khắc phục sự cố.