Pemecahan masalah

Video: Lihat pembahasan penanganan error dari workshop 2019

Error dapat disebabkan oleh pengaturan lingkungan yang salah, {i>bug<i} dalam perangkat lunak Anda, atau masukan yang tidak valid dari pengguna. Apa pun sumbernya, Anda akan perlu memecahkan masalah dan memperbaiki kode Anda atau menambahkan logika untuk menangani {i>error <i}yang dialami pengguna. Panduan ini membahas beberapa praktik terbaik saat memecahkan masalah error dari Google Ads API.

Memastikan konektivitas

  1. Pastikan Anda memiliki akses ke Google Ads API dan konfigurasi yang benar. Jika respons HTTP menghasilkan error HTTP, pastikan Anda mengatasinya dengan hati-hati dan layanan yang ingin Anda gunakan dari kode Anda tersedia.

  2. Kredensial Anda disematkan dalam request agar pengguna untuk mengautentikasi Anda. Memahami struktur Google Ads API permintaan dan respons, terutama jika Anda akan menangani panggilan tanpa menggunakan library klien. Setiap library klien dikirimkan dengan petunjuk tentang cara menyertakan kredensial Anda di file konfigurasi (lihat {i>README<i} milik pustaka klien).

  3. Pastikan Anda menggunakan kredensial yang benar. Dengan Panduan memulai akan memandu Anda memperoleh set yang benar yang Anda butuhkan. Misalnya, kegagalan respons berikut menunjukkan bahwa pengguna telah mengirimkan 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 mendalami dalam memecahkan masalah error Google Ads API.

Menentukan masalah

Google Ads API umumnya melaporkan error sebagai objek kegagalan JSON, yang berisi daftar error dalam respons. Objek-objek ini memberikan kode {i>error<i} serta pesan yang menjelaskan mengapa hal itu terjadi. Itu adalah sinyal pertama Anda tentang apa masalahnya mungkin.

{
  "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. Menangkap pengecualian ini dan mencetak pesan di log atau layar pemecahan masalah adalah cara yang bagus untuk memulai. Mengintegrasikan informasi ini dengan peristiwa lain yang dicatat dalam log di aplikasi menawarkan gambaran yang baik tentang apa yang mungkin memicu masalah. Setelah Anda mengidentifikasi kesalahan di log, Anda harus mencari tahu apa maksudnya.

Meneliti error

  1. Lihat Error Umum , yang mencakup kesalahan yang paling sering ditemui. Ini menjelaskan pesan error, referensi API yang relevan, dan cara menghindari atau menangani error tersebut.

  2. Jika dokumentasi kesalahan umum kami tidak secara spesifik menyebutkan kesalahan tersebut, baca dokumentasi referensi kami dan cari string error.

  3. Telusuri saluran dukungan kami untuk mendapatkan akses ke developer yang berbagi pengalamannya dengan API. Orang lain mungkin telah mengalami—dan mengatasi—masalah yang Anda hadapi.

  4. Jika Anda menemukan {i>error<i} yang tidak terdokumentasi, bawalah ke perhatian kami di forum.

  5. Buka Pusat Bantuan Google Ads. untuk mendapatkan bantuan dalam memecahkan masalah validasi atau batas akun— Google Ads API mewarisi aturan dan batasan dari produk Google Ads inti.

  6. Postingan blog terkadang akan menjadi referensi yang baik saat memecahkan masalah aplikasi Anda.

Setelah meneliti error tersebut, saatnya untuk menentukan akar masalahnya.

Menemukan penyebabnya

Periksa pesan pengecualian untuk menentukan penyebab error. Setelah melihat pada respons, periksa permintaan untuk mengetahui penyebabnya. Beberapa error Google Ads API pesan menyertakan fieldPathElements di kolom location dari GoogleAdsError, yang menunjukkan lokasi dalam permintaan tersebut terjadi kesalahan. 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, mungkin aplikasi Anda menyediakan informasi yang salah ke API. Kami sangat menganjurkan penggunaan Development Environment (IDE) seperti Eclipse (aplikasi gratis dan IDE open source yang utamanya digunakan untuk mengembangkan Java, tetapi memiliki plugin untuk bahasa lain) untuk membantu Anda dalam proses debug. Fungsi ini memungkinkan Anda untuk mengatur titik henti sementara, dan menelusuri kode Anda baris demi baris.

Periksa kembali untuk memastikan permintaan cocok dengan input aplikasi Anda (untuk misalnya, nama Kampanye mungkin tidak dapat memenuhi permintaan). Pastikan kamu mengirim mask kolom yang cocok dengan update yang ingin Anda buat--Google Ads API mendukung update sparse. Menghapus kolom dari mask kolom dalam permintaan mutasi menunjukkan API sebaiknya biarkan saja. Jika aplikasi Anda mengambil objek, membuat perubahan, dan mengirimkannya kembali, Anda mungkin menulis ke bidang yang tidak pembaruan dukungan. Periksa deskripsi kolom di referensi dokumentasi lain untuk melihat apakah ada batasan terkait waktu atau dapat memperbarui kolom tersebut.

Cara mendapatkan bantuan

Tidak selalu mungkin untuk mengidentifikasi dan memecahkan masalah sendiri. Bertanya di forum akan mengekspos pertanyaan Anda kepada ribuan pengembang yang mungkin harus berurusan dengan masalah performa.

Cobalah untuk menyertakan informasi sebanyak mungkin dalam kueri Anda. Item yang direkomendasikan meliputi:

  • Permintaan dan respons JSON yang dibersihkan. Pastikan untuk menghapus konten sensitif informasi seperti token developer atau AuthToken.
  • Cuplikan kode. Jika Anda memiliki masalah bahasa tertentu atau meminta bantuan bekerja dengan API, sertakan cuplikan kode untuk membantu menjelaskan apa yang Anda lakukan.
  • IDPermintaan. Hal ini memungkinkan anggota tim Google Developer Relations untuk menemukan permintaan Anda jika dibuat terhadap lingkungan produksi. Rab sebaiknya daftarkan di log Anda dengan requestId yang disertakan sebagai properti di pengecualian yang merangkum error respons, serta konteks daripada requestId saja.
  • Informasi tambahan, seperti versi runtime/penerjemah dan platform ini juga dapat berguna saat memecahkan masalah.

Memperbaiki masalah

Sekarang setelah Anda mengetahui masalahnya dan menemukan solusi, sekarang saatnya untuk melakukan perubahan dan menguji perbaikan terhadap akun pengujian (lebih disarankan) atau produksi (jika bug hanya berlaku untuk data di akun produksi tertentu).

Pertimbangkan untuk Berbagi

Jika Anda telah memposting pertanyaan di forum mengenai kesalahan yang belum pernah terjadi muncul di sana sebelumnya dan Anda telah menemukan solusinya, pertimbangkan untuk menambahkannya ke . Lain kali developer memiliki masalah yang sama, mereka akan dapat menyelesaikannya saat itu juga.

Langkah Berikutnya

Sekarang setelah Anda memecahkan masalah ini, apakah Anda memperhatikan ada cara untuk meningkatkan kode tertentu untuk menghindari hal ini sejak awal?

Membuat serangkaian pengujian unit yang baik akan membantu meningkatkan kualitas dan keandalan kode secara signifikan. {i>Software<i} ini juga mempercepat proses pengujian perubahan baru untuk memastikan mereka tidak merusak fungsi sebelumnya. Strategi penanganan {i>error<i} yang baik juga untuk memunculkan semua data yang diperlukan untuk pemecahan masalah.