Video: Tonton diskusi penanganan error dari workshop 2019
Error dapat disebabkan oleh penyiapan lingkungan yang salah, bug dalam software Anda, atau input yang tidak valid dari pengguna. Apa pun sumbernya, Anda harus memecahkan masalah dan memperbaiki kode atau menambahkan logika untuk menangani error pengguna. Panduan ini membahas beberapa praktik terbaik saat memecahkan masalah error dari Google Ads API.
Memastikan konektivitas
Pastikan Anda memiliki akses ke Google Ads API dan penyiapan yang benar. Jika respons Anda menampilkan error HTTP, pastikan Anda mengatasinya dengan cermat dan bahwa Anda menjangkau layanan yang ingin digunakan dari kode Anda.
Kredensial Anda disematkan dalam permintaan agar layanan dapat mengautentikasi Anda. Pelajari struktur permintaan dan respons Google Ads API, terutama jika Anda akan menangani panggilan tanpa menggunakan library klien. Setiap library klien dikirimkan dengan petunjuk khusus tentang cara menyertakan kredensial Anda dalam file konfigurasi (lihat README library klien).
Pastikan Anda menggunakan kredensial yang benar. Panduan Memulai kami akan memandu Anda melalui proses mendapatkan set yang tepat yang Anda perlukan. Misalnya, kegagalan respons berikut menunjukkan bahwa pengguna telah mengirim kredensial autentikasi yang tidak valid:
{ "error": { "code": 401, "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. Visit https://developers.google.com/identity/sign-in/web/devconsole-project.", "status": "UNAUTHENTICATED", "details": [ { "@type": "type.googleapis.com/google.rpc.DebugInfo", "detail": "Authentication error: 2" } ] } }
Jika Anda telah mengikuti langkah-langkah ini dan masih mengalami masalah, saatnya untuk mempelajari pemecahan masalah error Google Ads API.
Menentukan masalah
Google Ads API umumnya melaporkan error sebagai objek kegagalan JSON, yang berisi daftar error dalam respons. Objek ini memberikan kode error serta pesan yang menjelaskan penyebabnya. Hal ini adalah sinyal pertama Anda tentang masalah yang mungkin terjadi.
{
"errors": [
{
"errorCode": { "fieldMaskError": "FIELD_NOT_FOUND" },
"message": "The field mask contained an invalid field: 'keyword/matchtype'.",
"location": { "operationIndex": "1" }
}
]
}
Semua library klien kami menampilkan pengecualian yang mengenkapsulasi error dalam respons. Merekam pengecualian ini dan mencetak pesan dalam log atau layar pemecahan masalah adalah cara yang bagus untuk memulai. Mengintegrasikan informasi ini dengan peristiwa lain yang dicatat dalam log di aplikasi Anda akan memberikan ringkasan yang baik tentang apa yang mungkin memicu masalah. Setelah mengidentifikasi error dalam log, Anda harus mencari tahu maknanya.
Meneliti error
Lihat dokumentasi Error Umum kami, yang membahas error yang paling sering terjadi. Halaman ini menjelaskan pesan error, referensi API yang relevan, dan cara menghindari atau menangani error.
Jika dokumentasi error umum kami tidak menyebutkan error secara spesifik, lihat dokumentasi referensi kami dan cari string error.
Telusuri saluran dukungan kami untuk mendapatkan akses ke developer lain yang membagikan pengalaman mereka dengan API. Orang lain mungkin telah mengalami—dan memecahkan—masalah yang Anda alami.
Jika Anda mengalami error yang tidak didokumentasikan, beri tahu kami di forum.
Buka Pusat Bantuan Google Ads untuk mendapatkan bantuan memecahkan masalah validasi atau batas akun—Google Ads API mewarisi aturan dan batasan produk Google Ads inti.
Postingan blog terkadang akan menjadi referensi yang baik saat memecahkan masalah aplikasi Anda.
Setelah meneliti error, saatnya menentukan akar masalahnya.
Menemukan penyebabnya
Periksa pesan pengecualian untuk menentukan penyebab error. Setelah melihat
respons, periksa permintaan untuk mengetahui kemungkinan penyebabnya. Beberapa pesan error Google Ads API
mencakup fieldPathElements
di kolom location
dari
GoogleAdsError
, yang menunjukkan tempat
error terjadi dalam permintaan. Contoh:
{
"errors": [
{
"errorCode": {"criterionError": "CANNOT_ADD_CRITERIA_TYPE"},
"message": "Criteria type can not be targeted.",
"trigger": { "stringValue": "" },
"location": {
"operationIndex": "0",
"fieldPathElements": [ { "fieldName": "keyword" } ]
}
}
]
}
Saat memecahkan masalah, aplikasi Anda mungkin memberikan informasi yang salah ke API. Sebaiknya gunakan Lingkungan Pengembangan Interaktif (IDE) seperti Eclipse (IDE gratis dan open source yang terutama digunakan untuk mengembangkan Java, tetapi memiliki plugin untuk bahasa lain) untuk membantu Anda dalam proses debug. Dengan begitu, Anda dapat menetapkan titik henti sementara dan menyusuri kode baris demi baris.
Periksa kembali untuk memastikan permintaan cocok dengan input aplikasi Anda (misalnya, nama Kampanye mungkin tidak masuk ke permintaan). Pastikan Anda mengirim mask kolom yang cocok dengan pembaruan yang ingin Anda buat. Google Ads API mendukung pembaruan jarang. Menghapus kolom dari mask kolom dalam permintaan mutasi menunjukkan bahwa API tidak boleh mengubahnya. Jika aplikasi mengambil objek, membuat perubahan, dan mengirimkannya kembali, Anda mungkin menulis ke kolom yang tidak mendukung pembaruan. Periksa deskripsi kolom di dokumentasi referensi untuk melihat apakah ada batasan terkait kapan atau apakah Anda dapat memperbarui kolom.
Cara mendapatkan bantuan
Anda tidak selalu dapat mengidentifikasi dan menyelesaikan masalah sendiri. Dengan mengajukan pertanyaan di forum, pertanyaan Anda akan dilihat oleh ribuan developer yang mungkin pernah mengalami masalah yang sama.
Coba sertakan informasi sebanyak mungkin dalam kueri Anda. Item yang direkomendasikan mencakup:
- Permintaan dan respons JSON yang dibersihkan. Pastikan untuk menghapus informasi sensitif seperti token developer atau AuthToken Anda.
- Cuplikan kode. Jika Anda mengalami masalah khusus bahasa atau meminta bantuan untuk menggunakan API, sertakan cuplikan kode untuk membantu menjelaskan tindakan yang Anda lakukan.
- RequestId. Hal ini memungkinkan anggota tim Hubungan Developer Google menemukan permintaan Anda jika dibuat terhadap lingkungan produksi. Sebaiknya daftarkan requestId yang disertakan sebagai properti dalam log Anda di pengecualian yang mengenkapsulasi error respons, serta konteks lainnya selain requestId saja.
- Informasi tambahan, seperti versi runtime/interpreter dan platform juga dapat berguna saat memecahkan masalah.
Memperbaiki masalah
Setelah Anda mengetahui masalah dan menemukan solusinya, saatnya melakukan perubahan dan menguji perbaikan pada akun pengujian (lebih disukai) atau produksi (jika bug hanya berlaku untuk data di akun produksi tertentu).
Mempertimbangkan Berbagi
Jika Anda telah memposting pertanyaan di forum terkait error yang belum muncul di sana sebelumnya dan Anda telah menemukan solusinya, pertimbangkan untuk menambahkannya ke rangkaian pesan. Lain kali developer mengalami masalah yang sama, mereka akan dapat segera menyelesaikannya.
Langkah Berikutnya
Setelah Anda menyelesaikan masalah ini, apakah Anda melihat cara untuk meningkatkan kualitas kode agar tidak terjadi lagi?
Membuat serangkaian pengujian unit yang baik akan membantu meningkatkan kualitas dan keandalan kode secara signifikan. Hal ini juga mempercepat proses pengujian perubahan baru untuk memastikan perubahan tersebut tidak merusak fungsi sebelumnya. Strategi penanganan error yang baik juga penting dalam menampilkan semua data yang diperlukan untuk pemecahan masalah.