Chúng tôi đã phân loại các lỗi thành những danh mục chung sau:
- Xác thực
- Có thể thử lại
- Xác thực
- Liên quan đến việc đồng bộ hoá
Mặc dù những danh mục này không bao gồm tất cả các lỗi có thể xảy ra và một số lỗi có thể thuộc nhiều danh mục, nhưng chúng vẫn có thể đóng vai trò là điểm khởi đầu để cấu trúc quy trình xử lý lỗi của ứng dụng. Hãy xem các tài nguyên sau đây để biết thêm thông tin chi tiết về các lỗi cụ thể:
- Các lỗi thường gặp cung cấp thêm thông tin chi tiết về một lỗi cụ thể.
- google.rpc.Status để biết thông tin chi tiết về mô hình lỗi logic mà API sử dụng.
Lỗi xác thực
Xác thực là việc người dùng có cấp quyền cho ứng dụng của bạn truy cập vào Google Ads thay cho họ hay không. Quy trình xác thực được quản lý thông qua thông tin đăng nhập do quy trình OAuth2 tạo ra.
Lý do phổ biến nhất khiến lỗi xác thực phát sinh từ những yếu tố nằm ngoài tầm kiểm soát của bạn là người dùng được xác thực đã thu hồi quyền mà họ cấp cho ứng dụng của bạn để thay mặt họ hành động. Ví dụ: nếu ứng dụng của bạn quản lý các tài khoản Google Ads riêng biệt cho các khách hàng độc lập và xác thực riêng biệt với tư cách là từng khách hàng khi quản lý tài khoản của khách hàng đó, thì khách hàng có thể thu hồi quyền truy cập của ứng dụng bất cứ lúc nào. Tuỳ thuộc vào thời điểm quyền truy cập của bạn bị thu hồi, API có thể trực tiếp trả về lỗi AuthenticationError.OAUTH_TOKEN_REVOKED
hoặc các đối tượng thông tin đăng nhập tích hợp trong Thư viện ứng dụng có thể gửi một ngoại lệ thu hồi mã thông báo. Trong cả hai trường hợp, nếu ứng dụng của bạn có giao diện người dùng cho khách hàng, thì ứng dụng có thể yêu cầu họ khởi chạy lại quy trình OAuth2 để thiết lập lại quyền của ứng dụng để thay mặt họ hành động.
Lỗi có thể thử lại
Một số lỗi, chẳng hạn như TRANSIENT_ERROR
hoặc INTERNAL_ERROR
, có thể cho biết một vấn đề tạm thời mà bạn có thể giải quyết bằng cách thử lại yêu cầu sau một khoảng tạm dừng ngắn.
Đối với các yêu cầu do người dùng bắt đầu, một chiến lược là cho biết ngay lỗi trong giao diện người dùng và cho người dùng lựa chọn kích hoạt một lần thử lại. Ngoài ra, trước tiên, ứng dụng của bạn có thể tự động thử lại yêu cầu, chỉ hiển thị lỗi trong giao diện người dùng sau khi đạt đến số lần thử lại tối đa hoặc tổng thời gian chờ của người dùng.
Đối với các yêu cầu được bắt đầu ở phần phụ trợ, ứng dụng của bạn sẽ tự động thử lại yêu cầu cho đến số lần thử lại tối đa.
Khi thử lại các yêu cầu, hãy sử dụng chính sách thời gian đợi luỹ thừa. Ví dụ: nếu lần đầu tiên bạn tạm dừng 5 giây trước lần thử lại đầu tiên, thì bạn có thể tạm dừng 10 giây sau lần thử lại thứ hai và 20 giây sau lần thử lại thứ ba. Thuật toán thời gian đợi luỹ thừa giúp đảm bảo bạn không gọi API quá thường xuyên.
Lỗi xác thực
Lỗi xác thực cho biết rằng một đầu vào cho một thao tác không được chấp nhận.
Ví dụ: PolicyViolationError
, DateError
, DateRangeError
, StringLengthError
và UrlFieldError
.
Lỗi xác thực thường xảy ra nhất trong các yêu cầu do người dùng bắt đầu, khi người dùng đã nhập dữ liệu đầu vào không hợp lệ. Trong những trường hợp này, bạn nên cung cấp thông báo lỗi phù hợp cho người dùng dựa trên lỗi API cụ thể mà bạn nhận được. Bạn cũng có thể xác thực dữ liệu đầu vào của người dùng để tìm ra những lỗi thường gặp trước khi thực hiện lệnh gọi API, giúp ứng dụng của bạn phản hồi nhanh hơn và việc sử dụng API hiệu quả hơn. Đối với các yêu cầu từ phần phụ trợ, ứng dụng của bạn có thể thêm thao tác không thành công vào hàng đợi để nhân viên vận hành xem xét.
Lỗi liên quan đến việc đồng bộ hoá
Nhiều ứng dụng Google Ads duy trì một cơ sở dữ liệu cục bộ để lưu trữ các đối tượng Google Ads. Một thách thức đối với phương pháp này là cơ sở dữ liệu cục bộ có thể không đồng bộ hoá với các đối tượng thực tế trong Google Ads. Ví dụ: người dùng có thể xoá một nhóm quảng cáo ngay trong Google Ads, nhưng ứng dụng và cơ sở dữ liệu cục bộ không biết về thay đổi này và tiếp tục đưa ra các lệnh gọi API như thể nhóm quảng cáo đó vẫn tồn tại. Những vấn đề đồng bộ hoá này có thể biểu hiện dưới dạng nhiều lỗi, chẳng hạn như DUPLICATE_CAMPAIGN_NAME
, DUPLICATE_ADGROUP_NAME
, AD_NOT_UNDER_ADGROUP
, CANNOT_OPERATE_ON_REMOVED_ADGROUPAD
và nhiều lỗi khác.
Đối với các yêu cầu do người dùng bắt đầu, một chiến lược là cảnh báo người dùng về vấn đề có thể xảy ra khi đồng bộ hoá, ngay lập tức khởi chạy một lệnh truy xuất lớp đối tượng Google Ads có liên quan và cập nhật cơ sở dữ liệu cục bộ, sau đó nhắc người dùng làm mới giao diện người dùng.
Đối với các yêu cầu phụ trợ, một số lỗi cung cấp đủ thông tin để ứng dụng của bạn tự động và tăng dần sửa cơ sở dữ liệu cục bộ. Ví dụ: CANNOT_OPERATE_ON_REMOVED_ADGROUPAD
sẽ khiến ứng dụng của bạn đánh dấu quảng cáo đó là đã bị xoá trong cơ sở dữ liệu cục bộ. Những lỗi mà bạn không thể xử lý theo cách này có thể khiến ứng dụng của bạn khởi chạy một tác vụ đồng bộ hoá hoàn chỉnh hơn hoặc được thêm vào hàng đợi để nhân viên vận hành xem xét.