Hizmet ve Tür Alıcıları

API'yi Python'da kullanmak için gereken çeşitli proto sınıflarına yapılan referansları getirmek ayrıntılı olabilir ve API'yi tam olarak anlamanızı ya da proto'lara 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 v24 version of GoogleAdsService will
# be returned.
client = GoogleAdsClient.load_from_storage(version="v24")
googleads_service = client.get_service("GoogleAdsService")

get_type yöntemini kullanarak Campaign örneğini almayla ilgili bir örneği aşağıda bulabilirsiniz.

from google.ads.googleads.client import GoogleAdsClient

client = GoogleAdsClient.load_from_storage(version="v24")
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=v24)

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. v24 en yeni sürüm olsa da önceki sürümler kullanımdan kaldırılana kadar erişilebilir. 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/v24/")
# The Campaign instance will be from the v24 version of the API.
campaign = client.get_type("Campaign")

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

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

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.