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

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

  1. Đảm bảo rằng 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 những lỗi đó một cách cẩn thận và đảm bảo rằng bạn đang truy cập vào các dịch vụ mà bạn dự định sử dụng từ mã của mình.

  2. Thông tin đăng nhập của bạn được nhúng trong 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 Google Ads API, đặc biệt nếu bạn sẽ 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 đi kèm với hướng dẫn cụ thể về cách thêm thông tin đăng nhập vào tệp cấu hình (hãy 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 thông tin đăng nhập chính xác. Hướng dẫ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 thu thập bộ dữ liệu chính xác 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 nhưng vẫn gặp vấn đề, thì đã đến lúc bạn cần tìm hiểu cách khắc phục lỗi Google Ads API.

Xác định vấn đề

Google Ads API thường báo cáo lỗi dưới dạng một đối tượng lỗi JSON, chứa danh sách lỗi trong phản hồi. Các đối tượng này cung cấp mã lỗi cũng như thông báo giải thích lý do xảy ra lỗi. Đây là những tín hiệu đầu tiên cho thấy vấn đề có thể 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 đưa ra các trường hợp ngoại lệ bao bọc các lỗi trong phản hồi. Việc ghi lại những trường hợp ngoại lệ này và in các thông báo ra nhật ký hoặc màn hình khắc phục sự cố là một cách hay để bắt đầu. Việc tích hợp thông tin này với các sự kiện đã ghi nhật ký khác trong ứng dụng sẽ giúp bạn có được thông tin tổng quan về những yếu tố có thể gây ra vấn đề. Sau khi xác định được 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 Các lỗi thường gặp của chúng tôi. Tài liệu này đề cập đến những lỗi thường gặp nhất. Tài liệu này mô tả thông báo lỗi, các tài liệu tham khảo API có 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 đó, 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 trong các kênh hỗ trợ của chúng tôi để có quyền truy cập vào những nhà phát triển khác đang chia sẻ kinh nghiệm của họ về API này. Có thể người khác đã gặp phải và giải quyết vấn đề mà bạn đang gặp phải.

  4. Nếu bạn gặp phải lỗi không có trong tài liệu, hãy cho chúng tôi biết 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 sự cố 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 Google Ads cốt lõi.

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

Sau khi nghiên cứu lỗi, bạn cần 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 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ể gây ra vấn đề. Một số thông báo lỗi của Google Ads API có chứa 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 (một 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 những ngôn ngữ khác) để hỗ trợ bạn gỡ lỗi. Công cụ này cho phép bạn đặt điểm ngắt và từng bước thực hiện mã của mình theo từng dòng.

Kiểm tra kỹ để đảm bảo rằng yêu cầu khớp với thông tin đầu vào của ứng dụng (ví dụ: tên Chiến dịch có thể không được đưa vào yêu cầu). Đảm bảo rằng bạn gửi một mặt nạ trường khớ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 bản 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 biến đổi cho biết API nên giữ 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 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ợ việc cập nhật. Hãy xem nội dung mô tả của trường trong tài liệu tham khảo để biết có hạn chế nào về thời điểm hoặc việc 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 đề. Khi bạn đặt câu hỏi trên diễn đàn, câu hỏi của bạn sẽ được gửi đến hàng nghìn nhà phát triển có thể đã từng gặp phải vấn đề tương tự.

Hãy cố gắng cung cấp càng nhiều thông tin càng tốt trong các câu hỏi 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. Đừng quên xoá thông tin nhạy cảm như mã thông báo nhà phát triển hoặc AuthToken.
  • Đoạn mã. Nếu bạn gặp vấn đề cụ thể về ngôn ngữ hoặc đang yêu cầu trợ giúp khi làm việc với API, hãy thêm một đoạn mã để giúp giải thích những gì bạn đang làm.
  • RequestId. Điều này giúp các thành viên trong nhóm Quan hệ với 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 thực hiện đối với môi trường phát hành công khai. Bạn nên đăng ký trong nhật ký requestId được đưa vào dưới dạng một thuộc tính trong các trường hợp ngoại lệ bao bọc lỗi phản hồi, cũng như nhiều bối cảnh hơn chỉ requestId.
  • Thông tin bổ sung, chẳng hạn như phiên bản thời gian chạy/trình thông 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, bạn đã xác định được vấn đề và đưa ra giải pháp, đã đến lúc bạn thực hiện thay đổi và kiểm thử bản sửa lỗi trên một tài khoản thử nghiệm (nên dùng) hoặc tài khoản sản xuất (nếu lỗi chỉ áp dụng cho dữ liệu trong một tài khoản sản xuất cụ thể).

Cân nhắc việc chia sẻ

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

Các bước tiếp theo

Giờ bạn đã giải quyết được vấn đề này, bạn có nhận thấy cách nào để cải thiện mã của mình nhằm tránh gặp phải vấn đề này ngay từ đầu không?

Việc tạo một bộ kiểm thử đơn vị tốt sẽ giúp cải thiện đáng kể chất lượng và độ tin cậy của mã. Việc này cũng giúp tăng tốc quá trình kiểm thử các thay đổi mới để đảm bảo những thay đổi đó 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à yếu tố quan trọng trong việc hiển thị tất cả dữ liệu cần thiết để khắc phục sự cố.