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.