Loại lỗi

Chúng tôi đã phân loại lỗi thành các danh mục rộng 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 mọi 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 vẫn có thể đóng vai trò là điểm xuất phát để xây dựng cấu trúc cho quá trình 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ề một lỗi cụ thể.

Lỗi xác thực

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

Lý do phổ biến nhất khiến lỗi xác thực phát sinh từ các yếu tố nằm ngoài tầm kiểm soát của bạn là người dùng đã 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ý các 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 dưới dạng từng ứng dụng khi quản lý tài khoản của khách hàng đó, thì ứ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 quyền truy cập 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 xác thực 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ó giao diện người dùng cho ứng dụng, thì ứng dụng có thể yêu cầu họ chạy lại quy trình OAuth2 để thiết lập lại quyền hành động thay mặt 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 và 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, có một chiến lược là chỉ báo ngay lỗi trong giao diện người dùng và cho phép người dùng chọn kích hoạt thao tác 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 trên hệ thống phụ trợ, ứng dụng của bạn sẽ tự động thử lại yêu cầu đó theo số lần tối đa.

Khi bạn thử yêu cầu lại, hãy sử dụng chính sách thời gian đợi luỹ thừa. Ví dụ: nếu lần đầu tạm dừng 5 giây trước lần thử lại đầu tiên, 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á nhiều.

Lỗi xác thực

Lỗi xác thực cho biết 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 thường xuyên nhất trong các yêu cầu do người dùng đưa ra, trong đó 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 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 để tìm ra 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ừ máy chủ 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 gửi lệnh gọi API như thể nhóm quảng cáo đó đã tồn tại. Các vấn đề đồng bộ hoá này có thể biểu hiện dưới nhiều dạng 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ề vấn đề đồ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 của bạn tự động và từng bước chỉnh 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à đã 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 của bạn 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.