Mengambil referensi ke semua class proto yang diperlukan untuk menggunakan API di Python bisa sangat panjang dan mengharuskan Anda memiliki pemahaman intrinsik tentang API atau sering beralih konteks untuk mereferensikan proto atau dokumentasi.
Metode get_service
dan get_type
klien
Kedua metode getter ini memungkinkan Anda mengambil objek layanan atau jenis apa pun di
API. Metode get_service
digunakan untuk mengambil klien layanan. get_type
digunakan untuk objek lainnya. Class klien layanan ditentukan dalam kode
di jalur versi google/ads/googleads/v*/services/services/
dan semua
jenis ditentukan dalam berbagai kategori objek,
google/ads/googleads/v*/common|enums|errors|resources|services/types/
.
Semua kode di bawah direktori versi dibuat, jadi sebaiknya gunakan 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 v20 version of GoogleAdsService will
# be returned.
client = GoogleAdsClient.load_from_storage(version="v20")
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="v20")
campaign = client.get_type("Campaign")
Enum
Meskipun Anda dapat menggunakan metode get_type
untuk mengambil Enum, setiap instance
GoogleAdsClient
juga memiliki atribut enums
yang memuat Enum secara dinamis
menggunakan mekanisme yang sama dengan metode get_type
. Antarmuka ini dimaksudkan agar lebih sederhana dan lebih mudah dibaca daripada menggunakan get_type
:
client = GoogleAdsClient.load_from_storage(version=v20)
campaign = client.get_type("Campaign")
campaign.status = client.enums.CampaignStatusEnum.PAUSED
Kolom objek proto yang merupakan enum ditampilkan di Python oleh jenis
enum bawaan. Artinya, Anda
dapat dengan mudah membaca nilai anggota. Bekerja dengan instance campaign
dari contoh sebelumnya di repl Python:
>>> print(campaign.status)
CampaignStatus.PAUSED
>>> type(campaign.status)
<enum 'CampaignStatus'>
>>> print(campaign.status.value)
3
Terkadang ada baiknya 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'>
Interaksi dengan enum berbeda-beda, bergantung pada apakah Anda telah menyetel konfigurasi
use_proto_plus
ke true
atau false
. Untuk mengetahui detail tentang kedua antarmuka, lihat
dokumentasi pesan protobuf.
Pembuatan Versi
Beberapa versi API dipertahankan secara bersamaan. Meskipun
v20
adalah versi terbaru, versi sebelumnya masih dapat diakses hingga dihentikan. Library akan menyertakan class pesan proto terpisah yang sesuai dengan setiap versi API aktif. Untuk mengakses class pesan
untuk versi tertentu, berikan parameter kata kunci version
saat
menginisialisasi klien sehingga selalu menampilkan instance dari versi
tertentu tersebut:
client = GoogleAdsService.load_from_storage(version="/google-ads/api/reference/rpc/v20/")
# The Campaign instance will be from the v20 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 menggantikan versi yang diberikan saat
menginisialisasi klien:
client = GoogleAdsService.load_from_storage()
# This will load the v20 version of the GoogleAdsService.
googleads_service = client.get_service(
"GoogleAdsService", version="v20")
client = GoogleAdsService.load_from_storage(version="v20")
# This will load the v18 version of a Campaign.
campaign = client.get_type("Campaign", version="v18")
Jika tidak ada parameter kata kunci version
yang diberikan, library akan menggunakan versi terbaru secara default. Daftar terbaru dan versi lain yang tersedia dapat ditemukan di bagian navigasi sebelah kiri dokumentasi Referensi API.