Mengambil referensi ke semua class proto yang diperlukan untuk menggunakan API di Python bisa sangat panjang dan mengharuskan Anda memiliki pemahaman mendalam 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/ dan semua jenis ditentukan di 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.
Contoh berikut menunjukkan cara menggunakan metode get_service untuk mengambil
instance klien GoogleAdsService
(atau GoogleAdsServiceAsyncClient asinkron di google-ads v28.4.0 dan
yang lebih baru dengan meneruskan is_async=True):
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 v25 version of GoogleAdsService will
# be returned.
client = GoogleAdsClient.load_from_storage(version="v25")
googleads_service = client.get_service("GoogleAdsService")
# Supported in google-ads v28.4.0 and later: retrieve an async service client.
googleads_async_service = client.get_service("GoogleAdsService", is_async=True)
Contoh berikut menunjukkan cara menggunakan metode get_type untuk mengambil instance
Campaign:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage(version="v25")
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
lebih sederhana dan lebih mudah dibaca daripada menggunakan get_type:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage(version="v25")
campaign = client.get_type("Campaign")
campaign.status = client.enums.CampaignStatusEnum.PAUSED
Kolom objek proto yang merupakan enum direpresentasikan di Python oleh jenis
enum bawaan. Artinya, Anda dapat membaca nilai anggota secara langsung. 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 berguna untuk mengetahui nama kolom yang sesuai dengan nilai enum. Anda dapat mengakses informasi ini menggunakan atribut name:
>>> print(campaign.status.name)
'PAUSED'
>>> type(campaign.status.name)
<class 'str'>
Interaksi dengan enum berbeda, 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
v25 adalah versi terbaru, versi sebelumnya masih dapat diakses hingga dihentikan. Library ini mencakup 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:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage(version="v25")
# The Campaign instance will be from the v25 version of the API.
campaign = client.get_type("Campaign")
Jika Anda tidak menentukan version saat menginisialisasi klien, Anda dapat menentukan
versi per panggilan saat memanggil metode get_service dan get_type
(perhatikan bahwa jika version ditetapkan saat menginisialisasi GoogleAdsClient, akan menggantikan
argumen version yang diteruskan ke get_service atau get_type):
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()
# This loads the v25 version of the GoogleAdsService.
googleads_service = client.get_service(
"GoogleAdsService", version="v25"
)
# This loads a specific supported API version (such as v23) of a Campaign.
campaign = client.get_type("Campaign", version="v23")
Jika tidak ada parameter kata kunci version yang diberikan, library akan menggunakan
versi API tertinggi yang didukung oleh paket google-ads yang diinstal
("v25" dalam rilis terbaru). Perhatikan bahwa rilis API kecil
(seperti v25.1) diakses menggunakan string versi utamanya
(version="v25"). Daftar terbaru dan versi lain yang tersedia dapat ditemukan di bagian navigasi sebelah kiri dokumentasi Referensi API.