Pemecahan masalah

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

  1. Pastikan Anda memiliki akses ke Google Ads API dan penyiapan yang benar. Jika respons Anda menampilkan error HTTP, pastikan Anda menanganinya dengan cermat dan 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 melalui proses mendapatkan kumpulan kredensial 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 mulai 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 ini memberikan kode error serta pesan yang menjelaskan alasan terjadinya error. Objek ini adalah sinyal pertama Anda tentang kemungkinan masalahnya.

{
  "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. Merekam pengecualian ini dan mencetak pesan dalam log atau layar pemecahan masalah adalah cara yang bagus untuk memulai. Mengintegrasikan informasi ini dengan peristiwa yang dicatat lainnya di aplikasi Anda akan memberikan ringkasan yang baik tentang kemungkinan penyebab masalah. Setelah mengidentifikasi error dalam log, Anda harus mencari tahu artinya.

Meneliti error

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

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

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

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

  5. Postingan blog terkadang dapat menjadi referensi yang baik saat memecahkan masalah aplikasi Anda.

  6. Jika Anda menemukan error yang tidak terdokumentasi, hubungi dukungan.

Setelah meneliti error, saatnya menentukan penyebab utamanya.

Menemukan penyebab

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 GoogleAdsError, yang menunjukkan lokasi 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, Anda mungkin menemukan bahwa aplikasi Anda memberikan informasi yang salah ke API. Sebaiknya gunakan Lingkungan Pengembangan Interaktif (IDE) seperti Eclipse, (IDE open source dan gratis yang terutama digunakan untuk mengembangkan Java, tetapi memiliki plugin untuk bahasa lain) untuk membantu Anda melakukan proses debug. IDE ini memungkinkan Anda menetapkan breakpoint dan menelusuri kode Anda 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 update yang ingin Anda lakukan—Google Ads API mendukung update jarang. Menghilangkan kolom dari mask kolom dalam permintaan mutate menunjukkan bahwa API harus mengabaikannya. Jika aplikasi Anda mengambil objek, melakukan perubahan, dan mengirimkannya kembali, Anda mungkin menulis ke kolom yang tidak mendukung update. Periksa deskripsi kolom dalam dokumentasi referensi untuk melihat apakah ada batasan tentang kapan atau apakah Anda dapat mengupdate kolom tersebut.

Cara mendapatkan bantuan

Anda mungkin tidak selalu dapat mengidentifikasi dan menyelesaikan masalah sendiri. Anda dapat menghubungi dukungan untuk mendapatkan bantuan.

Cobalah sertakan informasi sebanyak mungkin dalam kueri Anda. Item yang direkomendasikan mencakup:

  • Permintaan dan respons JSON yang disanitasi. 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 apa yang Anda lakukan.
  • RequestId. Hal ini memungkinkan anggota tim Hubungan Developer Google menemukan permintaan Anda jika dibuat terhadap lingkungan produksi. Sebaiknya daftarkan requestId dalam log Anda yang disertakan sebagai properti dalam pengecualian yang merangkum error respons, serta konteks yang lebih banyak daripada requestId saja.
  • Informasi tambahan, seperti versi runtime atau interpreter dan platform juga dapat berguna saat memecahkan masalah.

Memperbaiki masalah

Setelah mengetahui masalah dan menemukan solusinya, saatnya melakukan perubahan dan menguji perbaikan terhadap akun pengujian (sebaiknya) atau produksi (jika bug hanya berlaku untuk data di akun produksi tertentu).

Langkah Berikutnya

Setelah menyelesaikan masalah ini, apakah Anda melihat cara untuk meningkatkan kode Anda agar masalah ini tidak terjadi lagi?

Membuat kumpulan 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 untuk menampilkan semua data yang diperlukan untuk pemecahan masalah.