Loại lỗi

Chúng tôi phân loại lỗi thành các danh mục chính sau:

  • Xác thực
  • Có thể thử lại
  • Xác nhận kết quả
  • Liên quan đến việc đồng bộ hoá

Mặc dù các danh mục này không bao gồm tất cả lỗi có thể xảy ra và một số lỗi có thể phù hợp với nhiều danh mục, nhưng chúng vẫn có thể đóng vai trò là điểm xuất phát để xây dựng cấu trúc xử lý lỗi của ứng dụng. Hãy tham khảo phần Các lỗi thường gặp để biết thêm thông tin chi tiết về lỗi cụ thể.

Lỗi xác thực

Xác thực là việc ứng dụng của bạn có được người dùng cấp quyền truy cập vào Google Ads thay mặt họ hay không. Quy trình xác thực được quản lý thông qua thông tin xác thực do luồng OAuth2 tạo ra.

Lý do phổ biến nhất khiến lỗi xác thực phát sinh từ các yếu tố 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 hành động thay mặt họ. Ví dụ: nếu ứng dụng của bạn quản lý tài khoản Google Ads riêng biệt cho các ứng dụng độc lập và xác thực riêng biệt với từng ứng dụng khi quản lý tài khoản của khách hàng đó, thì một ứng dụ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 thu hồi quyền truy cập, 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 xác thực tích hợp sẵn trong Thư viện ứng dụng có thể gửi ra một trường hợp ngoại lệ về mã thông báo bị thu hồi. 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 ứng dụng, thì ứng dụng có thể yêu cầu ứng dụng chạy lại quy trình OAuth2 để thiết lập lại quyền hành động thay cho ứng dụ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 vấn đề tạm thời mà có thể được giải quyết bằng cách thử lại yêu cầu sau một khoảng thời gian tạm dừng ngắn.

Đối với các yêu cầu do người dùng đưa ra, một chiến lược là chỉ ra lỗi trong giao diện người dùng ngay lập tức và cho phép người dùng kích hoạt lại yêu cầu. 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 khởi tạo trên phần phụ trợ, ứng dụng của bạn sẽ tự động thử lại yêu cầu với số lần thử lại tối đa.

Khi bạn thử lại 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 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ử 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á linh hoạt.

Lỗi xác thực

Lỗi xác thực cho biết rằng dữ liệu đầu vào cho một thao tác không được chấp nhận. Ví dụ: PolicyViolationError, DateError, DateRangeError, StringLengthErrorUrlFieldError.

Lỗi xác thực xảy ra phổ biến nhất trong các yêu cầu do người dùng đưa ra, khi người dùng đã nhập thông tin đầ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 thích 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 hoạt động đầu vào của người dùng để biết các lỗi phổ biến trước khi thực hiện lệnh gọi API, giúp ứng dụng phản hồi nhanh hơn và 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.

Nhiều ứng dụng Google Ads duy trì 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ộ 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ề sự thay đổi này và tiếp tục thực hiện lệnh gọi API như thể nhóm quảng cáo đó tồn tại. Những sự cố đồng bộ hoá này có thể biểu hiện dưới nhiều loại 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 đưa ra, một chiến lược là cảnh báo người dùng về sự cố đồng bộ hoá có thể xảy ra, ngay lập tức chạy công việc 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 tự động và từng bước sửa cơ sở dữ liệu cục bộ của bạn. 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ộ. Các lỗi mà bạn không thể xử lý theo cách này có thể khiến ứng dụng khởi chạy một công việc đồ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.