Khắc phục sự cố

Video: Xem bài nói chuyện về cách xử lý lỗi tại 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 đúng, lỗi trong phần mềm của bạn hoặc dữ liệu nhập không hợp lệ từ người dùng. Bất kể nguồn, bạn sẽ cần khắc phục sự cố 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 sự cố lỗi khỏi 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 trả về bất kỳ lỗi HTTP nào, hãy đảm bảo bạn giải quyết những lỗi đó cẩn thận và mà bạn đang tiếp cận dịch vụ mà bạn đị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 request để để xác thực bạn. Làm quen với cấu trúc của API Google Ads yêu cầu và phản hồi, đặc biệt là khi bạn xử lý các cuộc gọi mà không bằng cách sử dụng thư viện ứng dụng. Mỗi thư viện ứng dụng được vận chuyển với hướng dẫn về cách đưa thông tin đăng nhập vào tệp cấu hình (tham khảo 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. Quickstart (Bắt đầu nhanh) sẽ hướng dẫn bạn thực hiện quy trình để có được đúng tập hợp bạn cần. Ví dụ: lỗi phản hồi sau đây cho thấy 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 đề, thì đã đến lúc tìm hiểu thêm về cách khắc phục các lỗi 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 lỗi trong phản hồi. Các đối tượng này cung cấp mã lỗi cũng như một thông báo nêu rõ lý do xảy ra. Đó 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 ngoại lệ đóng gói các lỗi trong phản hồi. Ghi lại các ngoại lệ này và in thông điệp 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. Tích hợp thông tin này với các sự kiện khác được ghi lại trong cung cấp tổng quan tốt về những gì có thể đang gây ra vấn đề. Khi đã xác định được lỗi trong nhật ký, bạn sẽ cần tìm ra lỗi điều đó có nghĩa là gì.

Nghiên cứu lỗi

  1. Hãy tham khảo phần Các lỗi thường gặp , bao gồm các lỗi thường gặp nhất. Nó mô tả thông báo lỗi, tài liệu tham khảo API có liên quan cũng như cách tránh hoặc xử lý lỗi.

  2. Nếu tài liệu về các lỗi phổ biến 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 để tìm chuỗi lỗi.

  3. Tìm kiếm các kênh hỗ trợ của chúng tôi để có quyền truy cập vào nhà phát triển chia sẻ trải nghiệm của họ với API. Một người khác có thể đã gặp phải và giải quyết xong 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 nhận, hãy liên hệ với chú ý của chúng tôi trên diễn đàn.

  5. Chuyển đến Trung tâm trợ giúp của Google Ads để được trợ giúp khắc phục sự cố xác thực hoặc vấn đề về 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ễ.

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 ở phản hồi, kiểm tra yêu cầu để tìm nguyên nhân có thể xảy ra. Một số lỗi về API Google Ads thông báo 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 thông tin sai vào API. Chúng tôi thực sự khuyến khích bạn sử dụng Môi trường phát triển (IDE) như Eclipse (một phiên bản miễn phí) và IDE nguồn mở chủ yếu được dùng để phát triển Java, nhưng có các trình bổ trợ cho 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à xem từng dòng mã.

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ụ: ví dụ: tên của Chiến dịch có thể không xuất hiện trong yêu cầu). Đảm bảo bạn gửi một 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 có quy mô nhỏ. Việc bỏ qua một trường của mặt nạ trường trong yêu cầu thay đổi cho biết API nên để nguyên. Nếu ứng dụng của bạn truy xuất một đối tượng, hãy thực hiện thay đổi, và gửi lại, có thể bạn đang ghi vào một trường không hỗ trợ cập nhật. Kiểm tra mô tả của trường trong tài liệu tham khảo để xem liệu có bất kỳ quy định hạn chế nào về thời điểm hoặc việc bạn có thể cập nhật trường này.

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 tiết lộ câu hỏi của bạn cho hàng nghìn nhà phát triển có thể đã phải giải quyết cùng một vấn đề 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á dữ liệu nhạy cảm như mã của nhà phát triển hoặc AuthToken.
  • Đoạn mã. Nếu bạn đang gặp vấn đề về ngôn ngữ cụ thể hoặc đang yêu cầu trợ giúp làm việc với API, hãy đính kèm một đoạn mã để trợ giúp giải thích những gì 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 yêu cầu của bạn nếu được đưa ra dựa trên môi trường sản xuất. T4 bạn nên đăng ký mã yêu cầu được đưa vào dưới dạng thuộc tính trong nhật ký của mình các ngoại lệ đóng gói các lỗi phản hồi, cũng như ngữ cảnh khác so với chỉ requestId.
  • 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ờ 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à thử nghiệm kết quả khắc phục với tài khoản thử nghiệm (ưu tiên) hoặc kênh phát hành công khai (nếu lỗi chỉ xảy ra với dữ liệu trong một tài khoản phát hành công khai cụ thể).

Cân nhắc chia sẻ

Nếu bạn đã đăng câu hỏi trong diễn đàn về lỗi mà trước đó xuất hiện ở đó trước đó và bạn đã tìm ra giải pháp, hãy xem xét thêm giải pháp đó 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 vấn đề đó vào lần tới ngay lập tức.

Các bước tiếp theo

Giờ bạn đã giải xong bài toán này, bạn có nhận thấy cách nào để cải thiện để tránh điều này ngay từ đầu không?

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