Khắc phục sự cố

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

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

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

  1. Đảm bảo bạn có quyền truy cập vào API Google Ads và thiết lập chính xác. 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 qua mã của mình.

  2. Thông tin đăng nhập của bạn được nhúng vào yêu cầu để các dịch vụ xác thực bạn. Tìm hiểu 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 nếu bạn sắp 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 được vận chuyển kèm theo hướng dẫn cụ thể về cách đưa thông tin đăng nhập 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 đúng bộ bạn cần. Ví dụ: lỗi phản hồi sau đây cho biết rằng 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 đề, đã đến lúc tìm hiểu cách khắc phục các lỗi về API Google Ads.

Xác định bài toán

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 giải thích chi tiết về lý do xảy ra lỗi. Đó là những tín hiệu đầu tiên về vấn đề có thể là gì.

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

Tất cả các thư viện ứng dụng của chúng tôi đều gửi những 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 được ghi lại khác trong ứng dụng sẽ giúp bạn nắm được thông tin tổng quan về những yếu tố có thể gây ra sự cố. Sau khi đã xác định lỗi trong nhật ký, bạn sẽ 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 phổ biến của chúng tôi, trong đó trình bày 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ài liệu tham khảo 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 của chúng tôi không đề cập cụ thể đến lỗi đó, vui lòng tham khảo tài liệu tham khảo của chúng tôi và tìm chuỗi lỗi đó.

  3. Hãy tìm kiếm trên các kênh hỗ trợ của chúng tôi để có quyền truy cập vào các nhà phát triển khác chia sẻ trải nghiệm của họ với API. Một người nào đó có thể đã gặp phải—và giải quyết—sự cố 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 nhận, 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 Google Ads để được hỗ trợ khắc phục vấn đề về việc xác thực hoặc giới hạn 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 chính của Google Ads.

  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ễ.

Xác định nguyên nhân

Kiểm tra thông báo ngoại lệ để xác định nguyên nhân lỗi. Sau khi xem phản hồi, hãy kiểm tra yêu cầu để tìm nguyên nhân tiềm ẩn. Một số thông báo lỗi của API Google Ads bao gồm biểu tượng 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 sự cố, có thể ứng dụng của bạn đang cung cấp thông tin không chính xác 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ó cá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à từng bước mã của bạn theo từng dòng.

Kiểm tra kỹ để đảm bảo yêu cầu khớp với thông tin đầu vào của ứng dụng (ví dụ: tên của Chiến dịch có thể không khớp với yêu cầu). Hãy nhớ 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ợ các nội dung cập nhật thưa thớt. Việc bỏ qua một trường khỏi mặt nạ trường trong yêu cầu thay đổi cho biết rằng API nên để nguyên trường đó. Nếu ứng dụng của bạn truy xuất một đối tượng, thực hiện thay đổi rồi 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. Kiểm tra nội dung mô tả của 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ẽ đặt câu hỏi của bạn cho hàng nghìn nhà phát triển có thể đã phải xử lý 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 bạn. Các mục đượ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á các thông tin nhạy cảm như mã của nhà phát triển hoặc AuthToken.
  • Đoạn mã. Nếu bạn gặp vấn đề liên quan đến một ngôn ngữ hoặc đang yêu cầu trợ giúp khi làm việc với API này, hãy thêm một đoạn mã để giải thích việc bạn đang làm.
  • Mã yêu cầu. Điều 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 được đưa ra trên môi trường phát hành công khai. Bạn nên đăng ký requestId trong nhật ký của mình dưới dạng một thuộc tính trong các trường hợp ngoại lệ đóng gói lỗi phản hồi, cũng như bối cảnh nhiều hơn so với chỉ có requestId.
  • Những thông tin bổ sung, chẳng hạn như phiên bản thời gian chạy/trình diễn giải 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 đề

Bây giờ, bạn đã tìm ra vấn đề và đưa ra giải pháp, đã đến lúc thay đổi và kiểm thử bản sửa lỗi so với một tài khoản kiểm thử (ưu tiên) hoặc bả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 phát hành chính thức 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 ở đó và bạn đã tìm ra giải pháp, hãy cân nhắc thêm câu hỏi đó vào chuỗi bài đăng. Lần tới, khi gặp vấn đề tương tự, nhà phát triển sẽ có thể giải quyết vấn đề đó ngay.

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ã của mình để tránh vấn đề 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ã. Thư viện 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 phá vỡ chức năng trước đó. Một chiến lược xử lý lỗi hiệu quả cũng là yếu tố then chốt trong việc hiển thị tất cả dữ liệu cần thiết để khắc phục sự cố.