Jenis Error

Kami telah mengategorikan error ke dalam kategori luas berikut:

  • Autentikasi
  • Dapat dicoba lagi
  • Validasi
  • Terkait sinkronisasi

Meskipun tidak mencakup semua kemungkinan error, dan beberapa di antaranya mungkin masuk ke dalam lebih dari satu kategori, kategori tersebut tetap dapat berfungsi sebagai titik awal untuk menyusun penanganan error aplikasi Anda. Lihat Error Umum untuk detail lebih lanjut tentang error tertentu.

Error autentikasi

Autentikasi mengacu pada apakah aplikasi Anda telah diberi izin oleh pengguna untuk mengakses Google Ads atas nama mereka. Autentikasi dikelola melalui kredensial yang dibuat oleh alur OAuth2.

Alasan paling umum terjadinya error autentikasi berasal dari faktor di luar kontrol Anda adalah pengguna yang diautentikasi telah mencabut izin yang mereka berikan kepada aplikasi Anda untuk bertindak atas nama mereka. Misalnya, jika aplikasi Anda mengelola akun Google Ads terpisah untuk klien independen dan mengautentikasi secara terpisah seperti setiap klien saat mengelola akun klien tersebut, klien dapat mencabut akses aplikasi Anda kapan saja. Bergantung pada waktu akses Anda dicabut, API dapat langsung menampilkan error AuthenticationError.OAUTH_TOKEN_REVOKED, atau objek kredensial bawaan di Library Klien dapat menampilkan pengecualian token yang dicabut. Dalam kedua kasus tersebut, jika aplikasi Anda memiliki UI untuk klien, aplikasi dapat meminta mereka untuk meluncurkan kembali alur OAuth2 guna mendapatkan kembali izin aplikasi untuk bertindak atas nama mereka.

Error yang dapat dicoba lagi

Beberapa error, seperti TRANSIENT_ERROR atau INTERNAL_ERROR, dapat menunjukkan masalah sementara yang mungkin dapat diselesaikan dengan mencoba kembali permintaan setelah jeda singkat.

Untuk permintaan yang dimulai oleh pengguna, salah satu strateginya adalah dengan segera menunjukkan error di UI dan memberi pengguna opsi untuk memicu percobaan ulang. Atau, aplikasi Anda dapat terlebih dahulu mencoba ulang permintaan secara otomatis, hanya dengan mengekspos error di UI setelah mencapai jumlah maksimum percobaan ulang atau total waktu tunggu pengguna.

Untuk permintaan yang dimulai di backend, aplikasi Anda harus otomatis mencoba ulang permintaan tersebut hingga jumlah percobaan ulang maksimum.

Saat Anda mencoba lagi permintaan, gunakan kebijakan backoff eksponensial. Misalnya, jika Anda menjeda 5 detik sebelum percobaan ulang pertama, Anda dapat menjeda 10 detik setelah percobaan kedua dan 20 detik setelah percobaan ulang ketiga. Backoff eksponensial membantu memastikan Anda tidak memanggil API terlalu agresif.

Error validasi

Kesalahan validasi menunjukkan bahwa masukan ke operasi tidak dapat diterima. Misalnya, PolicyViolationError, DateError, DateRangeError, StringLengthError, dan UrlFieldError.

Error validasi paling sering terjadi dalam permintaan yang dimulai pengguna, saat pengguna memasukkan input yang tidak valid. Dalam kasus ini, Anda harus memberikan pesan error yang sesuai kepada pengguna berdasarkan error API tertentu yang Anda terima. Anda juga dapat memvalidasi input pengguna untuk kesalahan umum sebelum melakukan panggilan API, sehingga menjadikan aplikasi Anda lebih responsif dan penggunaan API Anda lebih efisien. Untuk permintaan dari backend, aplikasi Anda dapat menambahkan operasi yang gagal ke antrean untuk ditinjau oleh operator manusia.

Banyak aplikasi Google Ads mengelola database lokal untuk menyimpan objek Google Ads mereka. Salah satu tantangan pendekatan ini adalah database lokal mungkin tidak sinkron dengan objek sebenarnya di Google Ads. Misalnya, pengguna mungkin menghapus grup iklan langsung di Google Ads, tetapi aplikasi dan database lokal tidak mengetahui perubahan tersebut dan terus melakukan panggilan API seolah-olah grup iklan tersebut ada. Masalah sinkronisasi ini dapat berwujud sebagai berbagai error seperti DUPLICATE_CAMPAIGN_NAME, DUPLICATE_ADGROUP_NAME, AD_NOT_UNDER_ADGROUP, CANNOT_OPERATE_ON_REMOVED_ADGROUPAD, dan banyak lagi.

Untuk permintaan yang dimulai oleh pengguna, salah satu strateginya adalah memberi tahu pengguna tentang kemungkinan masalah sinkronisasi, segera luncurkan tugas yang mengambil class objek Google Ads yang relevan dan memperbarui database lokal, lalu meminta pengguna untuk memuat ulang UI.

Untuk permintaan back-end, beberapa error memberikan informasi yang cukup agar aplikasi Anda dapat mengoreksi database lokal secara otomatis dan bertahap. Misalnya, CANNOT_OPERATE_ON_REMOVED_ADGROUPAD harus menyebabkan aplikasi Anda menandai iklan tersebut sebagai dihapus di database lokal. Error yang tidak dapat ditangani dengan cara ini dapat menyebabkan aplikasi Anda meluncurkan tugas sinkronisasi yang lebih lengkap atau ditambahkan ke antrean untuk ditinjau oleh operator manusia.