Pemecahan masalah

Video: Lihat pembahasan 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 ini 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

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

  2. Kredensial Anda disematkan dalam permintaan agar layanan dapat mengautentikasi Anda. Pahami 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).

  3. Pastikan Anda menggunakan kredensial yang benar. Panduan memulai kami akan memandu Anda memperoleh rangkaian yang benar yang Anda perlukan. 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, kini saatnya mendalami cara memecahkan masalah error Google Ads API.

Menentukan masalah

Google Ads API umumnya melaporkan error sebagai objek kegagalan JSON, yang berisi daftar error dalam responsnya. Objek ini memberikan kode error 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 merangkum error dalam respons. Mendapatkan pengecualian ini dan mencetak pesan di log atau layar pemecahan masalah adalah cara yang tepat untuk memulai. Mengintegrasikan informasi ini dengan peristiwa lain yang dicatat ke dalam log di aplikasi Anda akan memberikan ringkasan yang baik tentang hal yang mungkin memicu masalah. Setelah mengidentifikasi error di log, Anda harus mencari tahu artinya.

Meneliti kesalahan

  1. Lihat dokumentasi Error Umum kami, yang mencakup error yang paling sering terjadi. Panduan ini menjelaskan pesan error, referensi API yang relevan, dan cara menghindari atau menangani error tersebut.

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

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

  4. Jika Anda menemukan kesalahan yang tidak didokumentasikan, sampaikan hal ini kepada kami di forum.

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

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

Setelah meneliti error tersebut, saatnya untuk 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 menyertakan fieldPathElements di kolom location pada GoogleAdsError, yang menunjukkan tempat terjadinya error 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, mungkin aplikasi Anda memberikan informasi yang salah ke API. Kami sangat menganjurkan penggunaan Interactive Development Environment (IDE) seperti Eclipse (IDE gratis dan open source yang utamanya digunakan untuk mengembangkan Java, tetapi memiliki plugin untuk bahasa lain) guna membantu Anda melakukan proses debug. Fungsi ini memungkinkan Anda menyetel titik henti sementara dan menyusuri kode baris demi baris.

Periksa kembali untuk memastikan permintaan cocok dengan input aplikasi Anda (misalnya, nama Kampanye mungkin tidak cocok dengan permintaan). Pastikan Anda mengirim mask kolom yang cocok dengan pembaruan yang ingin dibuat--Google Ads API mendukung update sparse. Jika sebuah kolom tidak ada dari mask kolom dalam permintaan mutate, berarti API harus membiarkannya. Jika aplikasi Anda mengambil objek, membuat perubahan, dan mengirimkannya kembali, Anda mungkin menulis ke kolom yang tidak mendukung update. Periksa deskripsi kolom dalam dokumentasi referensi untuk melihat apakah ada batasan terkait kapan atau apakah Anda 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 developer yang mungkin pernah menghadapi masalah yang sama.

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

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

Memperbaiki masalah

Setelah Anda mengetahui masalahnya dan mendapatkan solusi, saatnya untuk melakukan perubahan dan menguji perbaikan pada akun pengujian (lebih disukai) atau produksi (jika bug hanya berlaku untuk data di akun produksi tertentu).

Pertimbangkan untuk Berbagi

Jika Anda telah memposting pertanyaan di forum mengenai error yang belum pernah muncul sebelumnya dan Anda telah menemukan solusinya, pertimbangkan untuk menambahkannya ke thread. Lain kali, pengembang memiliki masalah yang sama, mereka akan segera dapat menyelesaikannya.

Langkah Berikutnya

Setelah menyelesaikan masalah ini, apakah Anda melihat ada cara untuk meningkatkan kode untuk menghindarinya?

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 merupakan kunci dalam menampilkan semua data yang diperlukan untuk pemecahan masalah.