Hizmet ve Tür Alıcıları

Python'da API'yi kullanmak için gereken tüm çeşitli proto sınıflarına referansları getirmek ayrıntılı olabilir. Bu süreçte, API'yi temel olarak anlamanız veya proto'lara ya da belgelere referans vermek için sıklıkla bağlam geçişi yapmanız gerekir.

İstemcinin get_service ve get_type yöntemleri

Bu iki alıcı yöntemi, API'de herhangi bir hizmet veya tür nesnesini almanıza olanak tanır. Hizmet istemcilerini almak için get_service yöntemi kullanılır. get_type diğer nesneler için kullanılır. Hizmet istemcisi sınıfları, kodda google/ads/googleads/v*/services/services/ sürüm yolu altında ve tüm türler, google/ads/googleads/v*/common|enums|errors|resources|services/types/ adlı çeşitli nesne kategorileri 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öntemlerin kullanılması en iyi uygulamadır.

GoogleAdsService istemcisinin bir örneğini almak için get_service yönteminin nasıl kullanılacağıyla ilgili bir örneği burada bulabilirsiniz.

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

Bir Campaign örneğini almak için get_type yönteminin nasıl kullanılacağıyla ilgili bir örneği aşağıda bulabilirsiniz.

from google.ads.googleads.client import GoogleAdsClient

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

Sıralamalar

Sıralamaları almak için get_type yöntemini kullanabilirsiniz ancak her GoogleAdsClient örneği, get_type yöntemiyle aynı mekanizmayı kullanarak Enums'u 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 okunacak şekilde tasarlanmıştır:

client = GoogleAdsClient.load_from_storage(version=v16)

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

Sıralama 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 repl'de önceki örnekte verilen 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 sıralama 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'>

Numaralarla etkileşimde bulunma işlemi, use_proto_plus yapılandırmasının true veya false olarak ayarlanmış olmasına bağlı olarak farklılık gösterir. İki arayüzle ilgili ayrıntılar için protobuf mesajları belgelerine göz atın.

Sürüm oluşturma

API'nin birden çok sürümü aynı anda korunur. v16 en son sürüm olabilir ancak önceki sürümler kullanımdan kaldırılana kadar erişilebilir olmaya devam eder. Kitaplık, etkin her API sürümüne karşılık gelen ayrı proto mesajı sınıfları içerir. Belirli bir sürümdeki mesaj sınıfına erişmek için, bir istemciyi başlatırken her zaman belirtilen sürümden örnek döndürmesi için version anahtar kelime parametresini sağlayın:

client = GoogleAdsService.load_from_storage(version="/google-ads/api/reference/rpc/v16/")
# The Campaign instance will be from the v16 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, istemciyi başlatırken sağlanan sürümü geçersiz kılar:

client = GoogleAdsService.load_from_storage()
# This will load the v16 version of the GoogleAdsService.
googleads_service = client.get_service(
    "GoogleAdsService", version="v16")

client = GoogleAdsService.load_from_storage(version="v16")
# This will load the v14 version of a Campaign.
campaign = client.get_type("Campaign", version="v14")

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üncellenmiş bir listesini API Referansı belgelerinin sol gezinme bölümünde bulabilirsiniz.