Pemecahan masalah

Error dapat disebabkan oleh penyiapan lingkungan yang salah, bug dalam software, atau input yang tidak valid dari pengguna. Apa pun sumbernya, Anda harus memecahkan masalah tersebut 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 cermat dan menjangkau layanan yang ingin Anda gunakan dari kode Anda.

  2. Kredensial Anda disematkan dalam permintaan Anda 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 disertakan 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 set 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, saatnya 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 alasan terjadinya error. Log ini adalah sinyal pertama Anda tentang kemungkinan masalah yang terjadi.

{
  "errors": [
    {
      "errorCode": { "fieldMaskError": "FIELD_NOT_FOUND" },
      "message": "The field mask contained an invalid field: 'keyword.match_type'.",
      "location": {
        "fieldPathElements": [
          { "fieldName": "operations", "index": 1 }
        ]
      }
    }
  ]
}

Semua library klien kami menampilkan pengecualian yang mengenkapsulasi error dalam respons. Menangkap 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 gambaran umum yang baik tentang hal yang mungkin memicu masalah. Setelah mengidentifikasi error dalam log, Anda harus mencari tahu artinya.

Meneliti error

  1. Lihat dokumentasi Error Umum kami, yang membahas error yang paling sering terjadi. Bagian 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. Telusuri saluran dukungan kami untuk mendapatkan akses ke developer lain yang membagikan pengalaman mereka terkait API. Orang lain mungkin pernah 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 akan menjadi referensi yang baik saat memecahkan masalah aplikasi Anda.

  6. Jika Anda mengalami error yang tidak didokumentasikan, hubungi dukungan.

Setelah meneliti error, saatnya menentukan akar masalah.

Temukan 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 dari GoogleAdsError, yang menunjukkan lokasi terjadinya error dalam permintaan. Contoh:

{
  "errors": [
    {
      "errorCode": {"criterionError": "CANNOT_ADD_CRITERIA_TYPE"},
      "message": "Criteria type can not be targeted.",
      "trigger": { "stringValue": "" },
      "location": {
        "fieldPathElements": [
          { "fieldName": "operations", "index": 0 },
          { "fieldName": "create" },
          { "fieldName": "keyword" }
        ]
      }
    }
  ]
}

Saat memecahkan masalah, Anda mungkin mendapati bahwa aplikasi memberikan informasi yang salah ke API. Kami sangat menyarankan penggunaan debugger lingkungan pengembangan terintegrasi (IDE) untuk menetapkan titik henti sementara, menelusuri kode baris demi baris, dan memeriksa payload permintaan yang dibuat sebelum dikirim.

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 buat—Google Ads API mendukung update sparse. Menghilangkan kolom dari mask kolom dalam permintaan perubahan menunjukkan bahwa API harus membiarkannya. Jika aplikasi Anda mengambil objek, membuat perubahan, dan mengirimkannya kembali, Anda mungkin menulis ke kolom yang tidak mendukung pembaruan. Periksa deskripsi kolom dalam dokumentasi referensi untuk melihat apakah ada batasan waktu atau apakah Anda dapat memperbarui kolom.

Cara mendapatkan bantuan

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

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

  • Permintaan dan respons JSON yang dibersihkan. Pastikan untuk menghapus informasi sensitif seperti token akses OAuth, token refresh, dan ID pelanggan Anda.
  • Cuplikan kode. Jika Anda mengalami masalah khusus bahasa atau meminta bantuan dalam menggunakan API, sertakan cuplikan kode untuk membantu menjelaskan apa yang Anda lakukan.
  • request-id. Hal ini memungkinkan anggota tim Google Developer Relations menemukan permintaan Anda jika dibuat terhadap lingkungan produksi. Sebaiknya catat request-id yang disertakan dalam header respons atau pengecualian yang mengenkapsulasi error respons, serta konteks yang lebih banyak daripada request-id saja.
  • Informasi tambahan, seperti versi runtime atau penafsir dan platform, juga dapat berguna saat memecahkan masalah.

Memperbaiki masalah

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

Langkah berikutnya

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

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.