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 chế độ 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ệ của người dùng. Bất kể nguồn nào, bạn cũng 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 khi khắc phục sự cố lỗi từ API Google Ads.
Đảm bảo khả năng kết nối
Đả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ề lỗi HTTP, hãy đảm bảo bạn xử lý các lỗi đó một cách cẩn thận và bạn đang tiếp cận các dịch vụ mà bạn định sử dụng từ mã của mình.
Thông tin xác thực của bạn được nhúng trong yêu cầu để các dịch vụ 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 API Google Ads, đặc biệt là nếu 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 được vận 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 README của thư viện ứng dụng).
Xác minh rằng bạn đang sử dụng đúng thông tin đăng nhập. Bắt đầu nhanh của chúng tôi sẽ hướng dẫn bạn thực hiện quy trình mua bộ công cụ phù hợp với nhu cầu của mình. 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 đề, đã đến lúc tìm hiểu cách khắc phục lỗi API Google Ads.
Xác định vấ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 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. 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 đã ghi khác trong ứng dụng sẽ cung cấp thông tin tổng quan hữu ích về những gì có thể đang kích hoạt sự cố. Sau 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
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 trình bày các lỗi thường gặp nhất. Trang này mô tả thông báo lỗi, các tệp tham chiếu API có liên quan và cách tránh hoặc xử lý lỗi.
Nếu tài liệu về lỗi thường gặp của chúng tôi không đề cập cụ thể đến lỗi này, 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.
Hãy tìm kiếm 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 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.
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.
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ố 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 cốt lõi của Google Ads.
Bài đăng trên blog thỉnh thoảng 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 gây ra lỗi. Sau khi xem 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 sự cố, có thể ứng dụng của bạn đang cung cấp thông tin sai 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 các ngôn ngữ khác) để hỗ trợ gỡ lỗi. Tệp này cho phép bạn đặt các điểm ngắt và 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 rằng bạn gửi 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 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ì bạn có thể đ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ả 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 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 đề. 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 đề.
Cố gắng đưa vào cụm từ tìm kiếm càng nhiều thông tin càng tốt. 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á 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 vấn đề theo ngôn ngữ cụ thể hoặc đang yêu cầu trợ giúp về cách sử dụng API, hãy thêm một đoạn mã để giải thích những gì bạn đang làm.
- RequestId. Điều này cho phép các thành viên trong Nhóm quan hệ với nhà phát triển của Google tìm thấy yêu cầu của bạn nếu bạn gửi yêu cầu đó trong 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ư nhiều ngữ cảnh hơn so với 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, khi bạn đã tìm ra 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 tài khoản thử nghiệm (ưu tiên) hoặc tài khoản chính thức (nếu lỗi chỉ áp dụng cho dữ liệu trong một tài khoản chính thức cụ thể).
Cân nhắ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 ở đó và bạn đã tìm thấy giải pháp, hãy cân nhắc thêm câu hỏi đó vào chuỗi tin nhắ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ờ đây, khi đã 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 để tránh vấn đề này ngay từ đầu không?
Việc tạo một bộ kiểm thử đơn vị hiệu quả 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 giúp tăng tốc quá trình kiểm thử các thay đổi mới để đảm bảo rằng các 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ố then chốt để hiển thị tất cả dữ liệu cần thiết cho việc khắc phục sự cố.