Hizmet ve Tür Alıcıları

API'yi Python'da kullanmak için gereken çeşitli proto sınıflarına referans getirmek ayrıntılı olabilir ve API'yi tam olarak anlamanızı ya da protolara veya belgelere başvurmak 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. Hizmet istemcilerini almak için get_service yöntemi kullanılır. get_type başka bir nesne için kullanılıyor. Hizmet istemci sınıfları, google/ads/googleads/v*/services/services/ sürüm yolu altındaki kodda tanımlanır ve tüm türler çeşitli nesne kategorileri altında tanımlanır, google/ads/googleads/v*/common|enums|errors|resources|services/types/. Sürüm dizininin altındaki tüm kod 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.

get_service yöntemini kullanarak GoogleAdsService istemcisinin bir örneğini nasıl alacağınızla ilgili bir örneği aşağıda 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 v20 version of GoogleAdsService will
# be returned.
client = GoogleAdsClient.load_from_storage(version="v20")
googleads_service = client.get_service("GoogleAdsService")

get_type yöntemini kullanarak Campaign örneğini alma örneğini aşağıda bulabilirsiniz.

from google.ads.googleads.client import GoogleAdsClient

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

Sıralamalar

Numaralandırılmış değerleri almak için get_type yöntemini kullanabilirsiniz. Bununla birlikte, her GoogleAdsClient örneğinde, get_type yöntemiyle aynı mekanizmayı kullanarak numaralandırılmış değerleri dinamik olarak yükleyen bir enums özelliği de bulunur. Bu arayüz, get_type kullanmaktan daha basit ve okunması daha kolay olacak şekilde tasarlanmıştır:

client = GoogleAdsClient.load_from_storage(version=v20)

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

Numaralandırılmış değerler olan proto nesne alanları, Python'da yerel enum türüyle temsil edilir. Bu sayede üyenin değerini kolayca okuyabilirsiniz. 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, 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'>

Numaralandırmalarla etkileşim, 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ılar için protobuf mesajları dokümanlarına bakın.

Sürüm oluşturma

API'nin birden fazla sürümü aynı anda korunur. v20 en son sürüm olsa da ö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ı bulunur. Belirli bir sürüm için ileti sınıfına erişmek üzere istemci başlatılırken version anahtar kelime parametresini sağlayın. Böylece, her zaman söz konusu sürümden örnek döndürülür:

client = GoogleAdsService.load_from_storage(version="/google-ads/api/reference/rpc/v20/")
# The Campaign instance will be from the v20 version of the API.
campaign = client.get_type("Campaign")

get_service ve get_type yöntemleri çağrılırken sürümün belirtilmesi 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 v20 version of the GoogleAdsService.
googleads_service = client.get_service(
    "GoogleAdsService", version="v20")

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

version anahtar kelime parametresi sağlanmazsa kitaplık varsayılan olarak en son sürümü kullanır. En son ve diğer kullanılabilir sürümlerin güncellenmiş listesini API Referansı belgelerinin sol gezinme bölümünde bulabilirsiniz.