Hizmet ve Tür Alıcıları

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.