Kami telah mengategorikan error ke dalam kategori umum berikut:
- Autentikasi
- Dapat dicoba lagi
- Validasi
- Terkait sinkronisasi
Meskipun kategori ini tidak mencakup semua kemungkinan error, dan beberapa kategori mungkin sesuai dengan lebih dari satu kategori, kategori tersebut dapat berfungsi sebagai titik awal untuk menyusun struktur penanganan error aplikasi Anda. Lihat Error Umum untuk mengetahui detail selengkapnya tentang error tertentu.
Error autentikasi
Authentication mengacu pada apakah aplikasi Anda telah diberi izin oleh pengguna untuk mengakses Google Ads atas nama mereka. Autentikasi dikelola melalui kredensial yang dihasilkan oleh alur OAuth2.
Alasan paling umum error autentikasi muncul dari faktor di luar kendali Anda adalah karena pengguna terautentikasi telah mencabut izin yang diberikannya kepada aplikasi Anda untuk bertindak atas nama pengguna. Misalnya, jika aplikasi Anda mengelola akun Google Ads
terpisah untuk klien independen dan melakukan autentikasi secara terpisah seperti setiap klien
saat mengelola akun klien tersebut, klien dapat mencabut akses aplikasi Anda
kapan saja. Bergantung pada kapan 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 tersebut dapat meminta mereka untuk meluncurkan kembali alur OAuth2 untuk membuat kembali izin
aplikasi Anda agar dapat bertindak atas nama mereka.
Error yang dapat dicoba lagi
Beberapa error, seperti TRANSIENT_ERROR
atau INTERNAL_ERROR
,
dapat menunjukkan masalah sementara yang dapat diatasi dengan mencoba kembali
permintaan tersebut setelah dijeda sejenak.
Untuk permintaan yang dimulai pengguna, salah satu strateginya adalah segera menunjukkan error di UI dan memberi pengguna opsi untuk memicu percobaan ulang. Atau, aplikasi Anda dapat otomatis mencoba ulang permintaan, yang hanya mengekspos error di UI setelah mencapai jumlah maksimum percobaan ulang atau waktu tunggu total pengguna.
Untuk permintaan yang dimulai di backend, aplikasi Anda harus otomatis mencoba lagi permintaan hingga jumlah maksimum percobaan ulang.
Saat Anda mencoba lagi permintaan, gunakan kebijakan backoff eksponensial. Misalnya, jika Anda menjeda 5 detik pertama 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
Error validasi menunjukkan bahwa input ke operasi tidak dapat diterima.
Misalnya, PolicyViolationError
,
DateError
,
DateRangeError
,
StringLengthError
, dan
UrlFieldError
.
Error validasi paling sering terjadi dalam permintaan yang dimulai oleh pengguna, dengan pengguna telah memasukkan input yang tidak valid. Dalam kasus ini, Anda harus menyediakan pesan error yang sesuai kepada pengguna berdasarkan error API tertentu yang Anda terima. Anda juga dapat memvalidasi input pengguna untuk menemukan kesalahan umum sebelum melakukan panggilan API, sehingga aplikasi Anda lebih responsif dan penggunaan API menjadi lebih efisien. Untuk permintaan dari backend, aplikasi Anda dapat menambahkan operasi yang gagal ke antrean agar dapat ditinjau oleh operator manusia.
Error terkait sinkronisasi
Banyak aplikasi Google Ads mengelola database lokal untuk menyimpan objek Google Ads. Salah satu tantangan untuk pendekatan ini adalah bahwa database lokal mungkin tidak sinkron dengan objek aktual di Google Ads. Misalnya, pengguna mungkin menghapus grup iklan
secara langsung di Google Ads, tetapi aplikasi dan database lokal tidak mengetahui perubahan tersebut dan
terus membuat panggilan API seolah-olah grup iklan sudah ada. Masalah sinkronisasi ini dapat
terjadi 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 pengguna, salah satu strateginya adalah memberi tahu pengguna tentang kemungkinan masalah sinkronisasi, segera meluncurkan tugas yang mengambil class objek Google Ads yang relevan dan memperbarui database lokal, lalu meminta pengguna untuk memuat ulang UI.
Untuk permintaan backend, beberapa error memberikan informasi yang cukup bagi aplikasi Anda untuk memperbaiki 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.