Hizmet ve tür alıcıları

API'yi Python'da kullanmak için gereken tüm farklı proto sınıflarına referans getirmek ayrıntılı olabilir ve API'yi içsel olarak anlamanızı veya protolara ya da belgelere 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öntem, API'deki herhangi bir hizmet veya tür nesnesini almanıza olanak tanır. get_service yöntemi, hizmet istemcilerini almak için kullanılır. get_type başka bir nesne için kullanılıyor. Hizmet istemci sınıfları, google/ads/googleads/v*/services/ sürüm yolu altındaki kodda 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 kodlar oluşturulur. Bu nedenle, kod tabanının yapısı değişirse nesneleri doğrudan içe aktarmak yerine bu yöntemleri kullanmak en iyi uygulamadır.

Aşağıdaki örnekte, GoogleAdsService istemcisinin bir örneğini (veya google-ads v28.4.0 ve sonraki sürümlerde is_async=True değerini ileterek eşzamansız bir GoogleAdsServiceAsyncClient) almak için get_service yönteminin nasıl kullanılacağı gösterilmektedir:

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 v26 version of GoogleAdsService will
# be returned.
client = GoogleAdsClient.load_from_storage(version="v26")
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)

Aşağıdaki örnekte, bir Campaign örneği almak için get_type yönteminin nasıl kullanılacağı gösterilmektedir:

from google.ads.googleads.client import GoogleAdsClient

client = GoogleAdsClient.load_from_storage(version="v26")
campaign = client.get_type("Campaign")

Sıralamalar

Sıralamaları almak için get_type yöntemini kullanabilirsiniz. Ancak her GoogleAdsClient örneğinde, get_type yöntemiyle aynı mekanizmayı kullanarak sıralamaları dinamik olarak yükleyen bir enums özelliği de bulunur. Bu arayüz, get_type kullanmaktan daha basit ve daha kolay okunur:

from google.ads.googleads.client import GoogleAdsClient

client = GoogleAdsClient.load_from_storage(version="v26")

campaign = client.get_type("Campaign")
campaign.status = client.enums.CampaignStatusEnum.PAUSED

Enum olan proto nesne alanları, Python'da yerleşik enum türüyle temsil edilir. Bu, üyenin değerini doğrudan okuyabileceğiniz anlamına gelir. Python REPL'de önceki örnekteki campaign örneğiyle çalışma:

>>> print(campaign.status)
CampaignStatus.PAUSED
>>> type(campaign.status)
<enum 'CampaignStatus'>
>>> print(campaign.status.value)
3

Bazen 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'>

Sıralamalarla etkileşim kurma şekli, use_proto_plus yapılandırmasının true veya false olarak ayarlanmasına bağlı olarak değişir. İki arayüzle ilgili ayrıntılı bilgi için protobuf mesajları belgelerine bakın.

Sürüm oluşturma

API'nin birden fazla sürümü aynı anda desteklenir. v26 en yeni sürüm olsa da önceki sürümlere, kullanımdan kaldırılana kadar erişilebilir. Kitaplık, her etkin API sürümüne karşılık gelen ayrı proto mesaj sınıfları içerir. Belirli bir sürümün mesaj sınıfına erişmek için istemciyi başlatırken version anahtar kelime parametresini sağlayın. Böylece istemci her zaman ilgili sürümden bir örnek döndürür:

from google.ads.googleads.client import GoogleAdsClient

client = GoogleAdsClient.load_from_storage(version="v26")
# The Campaign instance will be from the v26 version of the API.
campaign = client.get_type("Campaign")

İstemciyi başlatırken version belirtmezseniz get_service ve get_type yöntemlerini çağırırken çağrı başına sürümü belirtebilirsiniz (GoogleAdsClient başlatılırken version ayarlanırsa get_service veya get_type yöntemine iletilen tüm version bağımsız değişkenlerini geçersiz kılar):

from google.ads.googleads.client import GoogleAdsClient

client = GoogleAdsClient.load_from_storage()
# This loads the v26 version of the GoogleAdsService.
googleads_service = client.get_service(
    "GoogleAdsService", version="v26"
)

# This loads a specific supported API version (such as v23) of a Campaign.
campaign = client.get_type("Campaign", version="v23")

version anahtar kelime parametresi sağlanmazsa kitaplık, varsayılan olarak yüklü google-ads paketiniz tarafından desteklenen en yüksek API sürümünü (en son sürümde "v26") kullanır. Küçük API sürümlerine (ör. v25.1) ana sürüm dizesi (version="v25") kullanılarak erişildiğini unutmayın. En son ve diğer kullanılabilir sürümlerin güncel listesini API Referansı belgelerinin sol gezinme bölümünde bulabilirsiniz.