Python'da API'yi kullanmak için gereken çeşitli proto sınıflarına ilişkin referansların getirilmesi ayrıntılı olabilir. Bu nedenle, API'yi iyice kavramanız veya protolara ya da belgelere referans vermek için sıklıkla bağlam anahtarını kullanmanız gerekir.
Müşterinin get_service
ve get_type
yöntemleri
Bu iki alıcı yöntemi, API'deki herhangi bir hizmeti veya tür nesnesini almanıza olanak tanır. get_service
yöntemi, hizmet istemcilerini almak için kullanılır. get_type
diğer nesneler için kullanılır. Hizmet istemcisi sınıfları, google/ads/googleads/v*/services/services/
sürüm yolu altındaki kodda ve tüm türler çeşitli nesne kategorileri (google/ads/googleads/v*/common|enums|errors|resources|services/types/
) altında tanımlanmıştır.
Sürüm dizininin altındaki tüm kod oluşturulur. Bu nedenle, kod tabanının yapısı değişse bile, nesneleri doğrudan içe aktarmak yerine bu yöntemleri kullanmak en iyi uygulamadır.
Aşağıda, GoogleAdsService
istemcisinin bir örneğini almak için get_service
yönteminin nasıl kullanılacağına dair bir örnek verilmiştir.
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")
Aşağıda, Campaign
örneği almak için get_type
yönteminin nasıl kullanılacağına dair bir örnek verilmiştir.
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage(version="v17")
campaign = client.get_type("Campaign")
Sıralamalar
Enum'ları almak için get_type
yöntemini kullanabilirsiniz ancak her GoogleAdsClient
örneği, get_type
yöntemiyle aynı mekanizmayı kullanarak Enum'ları dinamik olarak yükleyen bir enums
özelliğine de sahiptir. Bu arayüz, get_type
kullanımına kıyasla daha basit ve daha kolay olacak şekilde tasarlanmıştır:
client = GoogleAdsClient.load_from_storage(version=v17)
campaign = client.get_type("Campaign")
campaign.status = client.enums.CampaignStatusEnum.PAUSED
Numaralandırma olan proto nesne alanları, Python'da yerel enum türüyle temsil edilir. Bu, üyenin değerini
kolayca okuyabileceğiniz anlamına gelir. Bir Python replikasında, önceki örnekte verilen campaign
örneğiyle çalışarak:
>>> print(campaign.status)
CampaignStatus.PAUSED
>>> type(campaign.status)
<enum 'CampaignStatus'>
>>> print(campaign.status.value)
3
Bazen yukarıda gösterildiği gibi enum değerine karşılık gelen alanın adını bilmek yararlı olur. Bu bilgilere name
özelliğini kullanarak erişebilirsiniz:
>>> print(campaign.status.name)
'PAUSED'
>>> type(campaign.status.name)
<class 'str'>
Sıralamalarla etkileşimde bulunma, use_proto_plus
yapılandırmasının true
veya false
olarak ayarlanmış olup olmamasına bağlı olarak farklılık gösterir. İki arayüzle ilgili ayrıntılar için protobuf mesajları dokümanlarına bakın.
Sürüm oluşturma
API'nin birden çok sürümü aynı anda korunur. v17
en son sürüm olabilir ancak önceki sürümler kullanımdan kaldırılana kadar erişilebilir olmaya devam eder. Kitaplıkta, her etkin API sürümüne karşılık gelen ayrı proto mesajı sınıfları yer alır. Belirli bir sürümle ilgili mesaj sınıfına erişmek için bir istemciyi başlatırken version
anahtar kelime parametresini sağlayarak her zaman belirtilen sürümden örnek döndürmesini sağlayın:
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")
get_service
ve get_type
yöntemlerini çağırırken sürümü belirtmek de mümkündür. Bu işlem, istemci başlatılırken sağlanan sürümü geçersiz kılar:
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")
version
anahtar kelime parametresi sağlanmazsa kitaplık varsayılan olarak en yeni sürümü kullanır. En son ve mevcut diğer sürümlerin güncellenmiş bir listesini, API Referansı dokümanlarının soldaki gezinme bölümünde bulabilirsiniz.