サービスと型ゲッター

API を使用するために必要なすべての各種 proto クラスへの参照を、 Python は冗長になることがあり、そのためには Python のプログラミング言語を本質的に理解 プロトコルやドキュメントを参照するためのコンテキストの切り替えが頻繁に使用されます。

クライアントの get_service メソッドと get_type メソッド

これら 2 つのゲッター メソッドを使用すると、 APIget_service メソッドは、サービス クライアントを取得するために使用されます。get_type 使用しないでください。サービス クライアント クラスはコードで定義する バージョン パス google/ads/googleads/v*/services/services/ の下にあり、 さまざまなオブジェクト カテゴリで定義され、 google/ads/googleads/v*/common|enums|errors|resources|services/types/。 version ディレクトリの下のコードはすべて生成されるため、 オブジェクトを直接インポートする代わりに、これらのメソッドを使用して 変更することはできません。

次に、get_service メソッドを使用してインスタンスを取得する方法の例を示します。 GoogleAdsService クライアントのものです。

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

次に、get_type メソッドを使用してバケットを取得する方法の例を示します。 Campaign インスタンス。

from google.ads.googleads.client import GoogleAdsClient

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

列挙型

get_type メソッドを使用して列挙型を取得できますが、それぞれの GoogleAdsClient インスタンスには enums 属性もあり、これは動的に get_type メソッドと同じメカニズムを使用して列挙型を読み込みます。このインターフェース は、get_type を使用するよりもシンプルで読みやすいことを目的としています。

client = GoogleAdsClient.load_from_storage(version=v17)

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

列挙型である Proto オブジェクト フィールドは、Python ではネイティブ enum です。つまり、 メンバーの値を簡単に読み取ることができます。campaign インスタンスの操作 を Python の repl で次のように書き換えます。

>>> print(campaign.status)
CampaignStatus.PAUSED
>>> type(campaign.status)
<enum 'CampaignStatus'>
>>> print(campaign.status.value)
3

対応するフィールドの名前を知っておくと、 列挙値を返すことができます。この情報には、name 属性:

>>> print(campaign.status.name)
'PAUSED'
>>> type(campaign.status.name)
<class 'str'>

列挙型の操作方法は、 use_proto_plus 構成が true または false に設定されている。この 2 つのインターフェースについて詳しくは、このモジュールの protobuf メッセージのドキュメントをご覧ください。

バージョニング

同時に複数のバージョンの API が維持されます。しばらく v17 は最新のバージョンの可能性がありますが、以前のバージョンは引き続きご利用いただけます。 日没までアクセスできます。ライブラリには、個別の proto と メッセージ クラスの数が含まれます。メッセージにアクセスするには 特定のバージョンのクラスでは、version キーワード パラメータを指定します。 常に指定されたインスタンスからインスタンスを返すように、クライアントを初期化します。 version:

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

get_service を呼び出すときにバージョンを指定することもできます。 get_type メソッド。この操作を行うと、指定したバージョンがオーバーライドされます クライアントを初期化します。

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

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

version キーワード パラメータが指定されていない場合、ライブラリはデフォルトで できます。最新バージョンと利用可能なその他のバージョンの最新リスト 左側のナビゲーション セクションにある API リファレンス ドキュメント。