Hizmet ve Tür Alıcıları

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.