Pengambilan referensi ke semua berbagai class proto yang diperlukan untuk menggunakan API di Python bisa menjadi panjang dan mengharuskan Anda memiliki pemahaman intrinsik tentang API atau sering beralih konteks untuk merujuk proto atau dokumentasi.
Metode get_service
dan get_type
klien
Dengan kedua metode pengambil ini, Anda dapat mengambil objek layanan atau jenis apa pun di
API. Metode get_service
digunakan untuk mengambil klien layanan. get_type
digunakan untuk objek lain. Class klien layanan ditentukan dalam kode
pada jalur versi google/ads/googleads/v*/services/services/
dan semua
jenis ditentukan dalam berbagai kategori objek,
yaitu google/ads/googleads/v*/common|enums|errors|resources|services/types/
.
Semua kode di bawah direktori versi dibuat, jadi praktik terbaiknya
adalah menggunakan metode ini, bukan mengimpor objek secara langsung, jika
struktur codebase berubah.
Berikut adalah contoh cara menggunakan metode get_service
untuk mengambil instance
klien GoogleAdsService
.
from google.ads.googleads.client import GoogleAdsClient
# "load_from_storage" loads your API credentials from disk so they
# can be used for service initialization. Providing the optional `version`
# parameter means that the v16 version of GoogleAdsService will
# be returned.
client = GoogleAdsClient.load_from_storage(version="v16")
googleads_service = client.get_service("GoogleAdsService")
Berikut adalah contoh cara menggunakan metode get_type
untuk mengambil
instance Campaign
.
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage(version="v16")
campaign = client.get_type("Campaign")
Enum
Meskipun Anda dapat menggunakan metode get_type
untuk mengambil Enum, setiap
instance GoogleAdsClient
juga memiliki atribut enums
yang secara dinamis
memuat Enum menggunakan mekanisme yang sama seperti metode get_type
. Antarmuka ini
dimaksudkan agar lebih sederhana dan lebih mudah dibaca daripada menggunakan get_type
:
client = GoogleAdsClient.load_from_storage(version=v16)
campaign = client.get_type("Campaign")
campaign.status = client.enums.CampaignStatusEnum.PAUSED
Kolom objek Proto yang merupakan enum direpresentasikan di Python oleh jenis enum native. Artinya, Anda dapat membaca nilai anggota dengan mudah. Bekerja dengan instance campaign
dari contoh sebelumnya dalam representasi Python:
>>> print(campaign.status)
CampaignStatus.PAUSED
>>> type(campaign.status)
<enum 'CampaignStatus'>
>>> print(campaign.status.value)
3
Terkadang, penting untuk mengetahui nama kolom yang sesuai dengan nilai enum seperti yang ditunjukkan di atas. Anda dapat mengakses informasi ini menggunakan atribut
name
:
>>> print(campaign.status.name)
'PAUSED'
>>> type(campaign.status.name)
<class 'str'>
Berinteraksi dengan enum berbeda-beda, bergantung pada apakah Anda telah menyetel konfigurasi
use_proto_plus
ke true
atau false
. Untuk mengetahui detail tentang kedua antarmuka ini, baca
dokumentasi pesan protobuf.
Pembuatan versi
Beberapa versi API dikelola secara bersamaan. Meskipun
v16
mungkin merupakan versi terbaru, versi sebelumnya masih
dapat diakses hingga versi tersebut dihentikan. Library ini akan menyertakan class pesan proto terpisah yang sesuai dengan setiap versi API aktif. Untuk mengakses class pesan
untuk versi tertentu, sediakan parameter kata kunci version
saat
melakukan inisialisasi klien agar selalu menampilkan instance dari versi
tertentu:
client = GoogleAdsService.load_from_storage(version="/google-ads/api/reference/rpc/v16/")
# The Campaign instance will be from the v16 version of the API.
campaign = client.get_type("Campaign")
Anda juga dapat menentukan versi saat memanggil metode get_service
dan
get_type
. Tindakan ini akan mengganti versi yang diberikan saat melakukan inisialisasi klien:
client = GoogleAdsService.load_from_storage()
# This will load the v16 version of the GoogleAdsService.
googleads_service = client.get_service(
"GoogleAdsService", version="v16")
client = GoogleAdsService.load_from_storage(version="v16")
# This will load the v14 version of a Campaign.
campaign = client.get_type("Campaign", version="v14")
Jika tidak ada parameter kata kunci version
yang disediakan, library akan ditetapkan secara default untuk menggunakan
versi terbaru. Daftar terbaru dari versi terbaru dan versi lain yang tersedia
dapat ditemukan di bagian navigasi sebelah kiri dalam
dokumentasi Referensi API.