API'yi Python'da kullanmak için gereken tüm proto sınıflarına referans almak ayrıntılı olabilir ve API'yi içten bir şekilde anlamanızı veya protolara ya da dokümanlara referans vermek için sık sık bağlam değiştirmenizi gerektirir.
İstemcinin 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 istemcileri almak için kullanılır. get_type
başka bir nesne için kullanılır. Hizmet istemcisi sınıfları, kodda google/ads/googleads/v*/services/services/
sürüm yolu altında tanımlanır ve tüm türler çeşitli nesne kategorileri google/ads/googleads/v*/common|enums|errors|resources|services/types/
altında tanımlanır.
Sürüm dizininin altındaki tüm kod oluşturulur. Bu nedenle, kod tabanının yapısının değişmesi ihtimaline karşı, nesneleri doğrudan içe aktarmak yerine bu yöntemleri kullanmak en iyi uygulamadır.
GoogleAdsService
istemcisinin bir örneğini almak için get_service
yönteminin nasıl kullanılacağına dair bir örnek aşağıda 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 v18 version of GoogleAdsService will
# be returned.
client = GoogleAdsClient.load_from_storage(version="v18")
googleads_service = client.get_service("GoogleAdsService")
Campaign
örneği almak için get_type
yönteminin nasıl kullanılacağına dair bir örnek aşağıda verilmiştir.
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage(version="v18")
campaign = client.get_type("Campaign")
Sıralamalar
Enumeration'leri almak için get_type
yöntemini kullanabilirsiniz. Bununla birlikte, her GoogleAdsClient
örneğinde, get_type
yöntemiyle aynı mekanizmayı kullanarak enumeration'leri dinamik olarak yükleyen bir enums
özelliği de bulunur. Bu arayüzün, get_type
kullanmaktan daha basit ve daha kolay okunması amaçlanmıştır:
client = GoogleAdsClient.load_from_storage(version=v18)
campaign = client.get_type("Campaign")
campaign.status = client.enums.CampaignStatusEnum.PAUSED
Liste olan proto nesne alanları, Python'da yerel enum türüyle temsil edilir. Bu sayede üyenin değerini kolayca okuyabilirsiniz. Python repl'inde önceki örnekteki campaign
örneğiyle çalışma:
>>> 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ı olabilir. Bu bilgilere name
özelliğini kullanarak erişebilirsiniz:
>>> print(campaign.status.name)
'PAUSED'
>>> type(campaign.status.name)
<class 'str'>
Enum'larla etkileşim, use_proto_plus
yapılandırmasını true
veya false
olarak ayarladıysanız farklıdır. İki arayüzle ilgili ayrıntılar için protobuf mesajları belgelerine bakın.
Sürüm oluşturma
API'nin birden fazla sürümü aynı anda korunur. v18
en son sürüm olsa da kullanımdan kaldırılana kadar önceki sürümlere erişilebilir. Kitaplık, her etkin API sürümüne karşılık gelen ayrı proto ileti sınıfları içerir. Belirli bir sürümün ileti sınıfına erişmek için istemciyi başlatırken version
anahtar kelime parametresini sağlayın. Böylece istemci her zaman söz konusu sürümden örnek döndürür:
client = GoogleAdsService.load_from_storage(version="/google-ads/api/reference/rpc/v18/")
# The Campaign instance will be from the v18 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 v18 version of the GoogleAdsService.
googleads_service = client.get_service(
"GoogleAdsService", version="v18")
client = GoogleAdsService.load_from_storage(version="v18")
# This will load the v16 version of a Campaign.
campaign = client.get_type("Campaign", version="v16")
version
anahtar kelime parametresi sağlanmazsa kitaplık varsayılan olarak en son sürümü kullanır. En son ve mevcut diğer sürümlerin güncel listesini API Referansı belgelerinin sol gezinme bölümünde bulabilirsiniz.