Struktur API

Video: Tonton diskusi Layanan dan Sumber Daya dari workshop 2019

Panduan ini memperkenalkan komponen utama yang membentuk Google Ads API. Google Ads API terdiri dari resource dan layanan. Resource merepresentasikan entitas Google Ads, sedangkan layanan mengambil dan memanipulasi entitas Google Ads.

Hierarki objek

Akun Google Ads dapat dilihat sebagai hierarki objek.

Model kampanye

  • Resource tingkat teratas akun adalah customer.

  • Setiap pelanggan berisi satu atau beberapa kampanye aktif.

  • Setiap kampanye berisi satu atau beberapa grup iklan, yang digunakan untuk mengelompokkan iklan Anda ke dalam kumpulan yang logis.

  • Iklan grup iklan mewakili iklan yang Anda jalankan. Kecuali untuk kampanye aplikasi yang hanya dapat memiliki satu iklan grup iklan per grup iklan, setiap grup iklan berisi satu atau beberapa iklan grup iklan.

Anda dapat melampirkan satu atau beberapa AdGroupCriterion atau CampaignCriterion ke grup iklan atau kampanye. Ini mewakili kriteria yang menentukan cara pemicuan iklan.

Ada banyak jenis kriteria, seperti kata kunci, rentang usia, dan lokasi. Kriteria yang ditentukan di tingkat kampanye memengaruhi semua resource lain dalam kampanye. Anda juga dapat menentukan anggaran dan tanggal di seluruh kampanye.

Terakhir, Anda dapat melampirkan ekstensi di tingkat akun, kampanye, atau grup iklan. Ekstensi memungkinkan Anda memberikan informasi tambahan ke iklan, seperti nomor telepon, alamat jalan, atau promosi.

Resource

Resource merepresentasikan entitas dalam akun Google Ads Anda. Campaign dan AdGroup adalah dua contoh resource.

ID Objek

Setiap objek di Google Ads diidentifikasi oleh ID-nya sendiri. Beberapa ID ini bersifat unik secara global di semua akun Google Ads, sementara ID lainnya hanya unik dalam cakupan terbatas.

ID Objek Cakupan Keunikan Unik secara Global?
ID Anggaran Global Ya
ID kampanye Global Ya
Nomor Grup Iklan Global Ya
Nomor Iklan Grup Iklan Tidak, tetapi pasangan (AdGroupId, AdId) unik secara global
ID AdGroupCriterion Grup Iklan Tidak, tetapi pasangan (AdGroupId, CriterionId) unik secara global
ID CampaignCriterion Kampanye Tidak, tetapi pasangan (CampaignId, CriterionId) unik secara global
Ekstensi Iklan Kampanye Tidak, tetapi pasangan (CampaignId, AdExtensionId) unik secara global
ID Label Global Ya
ID UserList Global Ya
ID Aset Global Ya

Aturan ID ini dapat berguna saat mendesain penyimpanan lokal untuk objek Google Ads Anda.

Beberapa objek dapat digunakan untuk beberapa jenis entity. Dalam kasus seperti ini, objek berisi kolom type yang menjelaskan isinya. Misalnya, AdGroupAd dapat merujuk ke objek seperti iklan teks, iklan hotel, atau iklan lokal. Nilai ini dapat diakses melalui kolom AdGroupAd.ad.type, dan menampilkan nilai dalam enum AdType.

Nama resource

Setiap resource diidentifikasi secara unik oleh string resource_name, yang menggabungkan resource dan induknya menjadi jalur. Misalnya, nama resource kampanye memiliki format:

customers/customer_id/campaigns/campaign_id

Jadi, untuk kampanye dengan ID 987654 di akun Google Ads dengan ID pelanggan 1234567, resource_name-nya adalah:

customers/1234567/campaigns/987654

Layanan

Layanan memungkinkan Anda mengambil dan mengubah entitas Google Ads. Ada tiga jenis layanan: layanan modifikasi, pengambilan objek dan statistik, serta layanan pengambilan metadata.

Mengubah (memutasi) objek

Layanan ini mengubah instance jenis resource terkait menggunakan permintaan mutate. Mereka juga menyediakan permintaan get yang mengambil satu instance resource, yang dapat berguna untuk memeriksa struktur resource.

Contoh layanan:

Setiap permintaan mutate harus menyertakan objek operation yang sesuai. Misalnya, metode CampaignService.MutateCampaigns mengharapkan satu atau beberapa instance CampaignOperation. Lihat Mengubah dan Memeriksa Objek untuk mengetahui pembahasan mendetail tentang operasi.

Mutasi serentak

Objek Google Ads tidak dapat diubah secara bersamaan oleh lebih dari satu sumber. Hal ini dapat menyebabkan error muncul jika Anda memiliki beberapa pengguna yang memperbarui objek yang sama dengan aplikasi Anda, atau jika Anda mengubah objek Google Ads secara paralel menggunakan beberapa thread. Hal ini mencakup memperbarui objek dari beberapa thread dalam aplikasi yang sama, atau dari aplikasi yang berbeda (misalnya, aplikasi Anda dan sesi UI Google Ads yang bersamaan).

API tidak menyediakan cara untuk mengunci objek sebelum memperbarui; jika dua sumber mencoba mengubah objek secara bersamaan, API akan memunculkan DatabaseError.CONCURRENT_MODIFICATION_ERROR.

Mutasi asinkron versus sinkron

Metode perubahan Google Ads API bersifat sinkron. Panggilan API hanya menampilkan respons setelah objek diubah, sehingga Anda harus menunggu respons untuk setiap permintaan. Meskipun pendekatan ini relatif mudah dikodekan, pendekatan ini dapat berdampak negatif pada penyeimbangan beban dan membuang-buang resource jika proses dipaksa menunggu panggilan selesai.

Pendekatan alternatifnya adalah mengubah objek secara asinkron menggunakan BatchJobService, yang melakukan batch operasi pada beberapa layanan tanpa menunggu penyelesaiannya. Setelah tugas batch dikirimkan, server Google Ads API akan menjalankan operasi secara asinkron, sehingga proses dapat melakukan operasi lain. Anda dapat memeriksa status tugas secara berkala untuk melihat apakah tugas telah selesai.

Lihat panduan Pemrosesan Batch untuk mengetahui informasi selengkapnya tentang pemrosesan asinkron.

Validasi perubahan

Sebagian besar permintaan perubahan dapat divalidasi tanpa benar-benar mengeksekusi panggilan terhadap data sebenarnya. Anda dapat menguji permintaan untuk parameter yang tidak ada dan nilai kolom yang salah tanpa benar-benar menjalankan operasi.

Untuk menggunakan fitur ini, tetapkan kolom boolean validate_only opsional permintaan ke true. Kemudian, permintaan akan divalidasi sepenuhnya seolah-olah akan dieksekusi, tetapi eksekusi akhir dilewati. Jika tidak ada error, respons kosong akan ditampilkan. Jika validasi gagal, pesan error dalam respons akan menunjukkan titik kegagalan.

validate_only sangat berguna dalam menguji iklan untuk mengetahui apakah ada pelanggaran kebijakan umum. Iklan otomatis ditolak jika melanggar kebijakan seperti memiliki kata, tanda baca, kapitalisasi, atau panjang tertentu. Satu iklan yang buruk dapat menyebabkan seluruh batch gagal. Menguji iklan baru dalam permintaan validate_only dapat mengungkapkan pelanggaran tersebut. Lihat contoh kode untuk menangani error pelanggaran kebijakan untuk melihat cara kerjanya.

Mendapatkan objek dan statistik performa

GoogleAdsService adalah layanan tunggal dan terpadu untuk mengambil objek dan statistik performa.

Semua permintaan Search dan SearchStream untuk GoogleAdsService memerlukan kueri yang menentukan resource yang akan dikueri, atribut resource dan metrik performa yang akan diambil, predikat yang akan digunakan untuk memfilter permintaan, dan segmen yang akan digunakan untuk mengelompokkan lebih lanjut statistik performa. Untuk mengetahui informasi selengkapnya tentang format kueri, lihat panduan Bahasa Kueri Google Ads.

Mengambil metadata

GoogleAdsFieldService mengambil metadata tentang resource di Google Ads API, seperti atribut yang tersedia untuk resource dan jenis datanya.

Layanan ini memberikan informasi yang diperlukan dalam membuat kueri ke GoogleAdsService. Untuk mempermudah, informasi yang ditampilkan oleh GoogleAdsFieldService juga tersedia di dokumentasi referensi kolom.