API'yi Python'da kullanmak için gereken çeşitli proto sınıflarına referans getirmek ayrıntılı olabilir ve API'yi temel düzeyde anlamanızı ya da proto'lara veya 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 istemcilerini almak için kullanılır. get_type başka bir nesne için kullanılır. 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 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 v25 version of GoogleAdsService will
# be returned.
client = GoogleAdsClient.load_from_storage(version="v25")
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, get_type yöntemini kullanarak Campaign örneğinin nasıl alınacağı gösterilmektedir:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage(version="v25")
campaign = client.get_type("Campaign")
Sıralamalar
Numaralandırılmış değerleri almak için get_type yöntemini kullanabilirsiniz. Ancak 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 kolaydır:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage(version="v25")
campaign = client.get_type("Campaign")
campaign.status = client.enums.CampaignStatusEnum.PAUSED
Numaralandırılmış türler 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. Önceki örnekteki campaign örneğiyle Python REPL'de ç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ı 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. v25 en yeni sürüm olsa da önceki sürümler, kullanımdan kaldırılana kadar erişilebilir olmaya devam eder. Kitaplıkta, etkin her API sürümüne karşılık gelen ayrı proto mesaj sınıfları bulunur. Belirli bir sürüm için mesaj sınıfına erişmek üzere, istemciyi başlatırken version anahtar kelime parametresini sağlayın. Böylece, her zaman söz konusu sürümden bir örnek döndürülür:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage(version="v25")
# The Campaign instance will be from the v25 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 sürümü çağrı başına belirtebilirsiniz (GoogleAdsClient başlatılırken version ayarlanırsa get_service veya get_type'ye iletilen tüm version bağımsız değişkenlerinin geçersiz kılınacağını unutmayın):
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()
# This loads the v25 version of the GoogleAdsService.
googleads_service = client.get_service(
"GoogleAdsService", version="v25"
)
# 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, yüklü google-ads paketiniz tarafından desteklenen en yüksek API sürümünü (en son sürümde "v25") varsayılan olarak 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üncellenmiş listesini API Referansı dokümanlarının sol gezinme bölümünde bulabilirsiniz.