Mengambil referensi ke semua kelas proto yang diperlukan untuk menggunakan API di Python bisa panjang dan mengharuskan Anda memiliki pemahaman intrinsik tentang API atau sering kali beralih konteks untuk mereferensikan proto atau dokumentasi.
Metode get_service
dan get_type
klien
Kedua metode pengambil ini memungkinkan Anda mengambil objek layanan atau tipe apa pun di
Compute Engine API. Metode get_service
digunakan untuk mengambil klien layanan. get_type
digunakan untuk objek lainnya. Class klien layanan ditentukan dalam kode
pada jalur versi google/ads/googleads/v*/services/services/
dan semua
ditentukan dalam berbagai kategori objek,
google/ads/googleads/v*/common|enums|errors|resources|services/types/
.
Semua kode di bawah direktori versi dibuat, jadi sebaiknya
latihan untuk menggunakan metode ini alih-alih mengimpor objek secara langsung, jika
perubahan codebase.
Berikut adalah contoh cara menggunakan metode get_service
untuk mengambil instance
dari 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 v17 version of GoogleAdsService will
# be returned.
client = GoogleAdsClient.load_from_storage(version="v17")
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="v17")
campaign = client.get_type("Campaign")
Enum
Meskipun Anda dapat menggunakan metode get_type
untuk mengambil Enum, masing-masing
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=v17)
campaign = client.get_type("Campaign")
campaign.status = client.enums.CampaignStatusEnum.PAUSED
Kolom objek proto yang berupa enum direpresentasikan di Python oleh
enum. Artinya, Anda dapat
dapat dengan mudah membaca
nilai anggota. Bekerja dengan instance campaign
dari contoh sebelumnya dalam repl Python:
>>> print(campaign.status)
CampaignStatus.PAUSED
>>> type(campaign.status)
<enum 'CampaignStatus'>
>>> print(campaign.status.value)
3
Terkadang berguna untuk mengetahui nama isian yang sesuai dengan
enum seperti yang ditunjukkan di atas. Anda dapat mengakses informasi ini menggunakan name
:
>>> print(campaign.status.name)
'PAUSED'
>>> type(campaign.status.name)
<class 'str'>
Berinteraksi dengan enum berbeda-beda bergantung pada apakah Anda memiliki
use_proto_plus
disetel ke true
atau false
. Untuk mengetahui detail kedua antarmuka ini, lihat
dokumentasi pesan protobuf.
Pembuatan Versi
Beberapa versi API dikelola secara bersamaan. Meskipun
v17
mungkin adalah versi terbaru, versi sebelumnya masih
dapat diakses sampai matahari terbenam. Library akan menyertakan proto terpisah
yang sesuai dengan setiap versi API aktif. Untuk mengakses pesan
untuk versi tertentu menyediakan parameter kata kunci version
menginisialisasi klien sehingga selalu mengembalikan {i>instance<i} dari
versi:
client = GoogleAdsService.load_from_storage(version="/google-ads/api/reference/rpc/v17/")
# The Campaign instance will be from the v17 version of the API.
campaign = client.get_type("Campaign")
Anda juga dapat menentukan versi saat memanggil get_service
dan
Metode get_type
. Melakukan hal ini akan mengganti versi yang disediakan saat
menginisialisasi klien:
client = GoogleAdsService.load_from_storage()
# This will load the v17 version of the GoogleAdsService.
googleads_service = client.get_service(
"GoogleAdsService", version="v17")
client = GoogleAdsService.load_from_storage(version="v17")
# This will load the v15 version of a Campaign.
campaign = client.get_type("Campaign", version="v15")
Jika parameter kata kunci version
tidak disediakan, library akan secara default menggunakan
ke versi terbaru. Daftar terbaru versi terbaru dan versi lain yang tersedia
dapat ditemukan di bagian navigasi sebelah kiri
Referensi API.