Python

Google は、Ad Manager API を操作するための Python クライアント ライブラリを提供しています。PyPI でクライアント ライブラリを使用することをおすすめします。

まず、お好みの IDE で新しいプロジェクトを作成するか、既存のプロジェクトに依存関係を追加します。Google は、クライアント ライブラリ アーティファクトを google-ads-admanager として PyPI に公開します。

pip install google-ads-admanager

認証情報の構成

Python クライアント ライブラリは、OAuth2 とアプリケーションのデフォルト認証情報(ADC)を使用して認証を行います。

ADC は次の場所で認証情報を順番に検索します。

  1. GOOGLE_APPLICATION_CREDENTIALS 環境変数。
  2. Google Cloud CLI(gcloud CLI)で設定されたユーザー認証情報。
  3. Google Cloud で実行する場合は、Google Cloud リソースに接続されているサービス アカウント。

ADC 認証情報の作成と構成については、認証をご覧ください。

最初のリクエストを送信する

各サービスには、各 REST メソッドの同期メソッドと非同期メソッドの両方を含む ServiceClient オブジェクトがあります。次の例では、Network を同期的に読み取ります。



from google.ads import admanager_v1


def sample_get_network():
    # Create a client
    client = admanager_v1.NetworkServiceClient()

    # Initialize request argument(s)
    request = admanager_v1.GetNetworkRequest(
        name="networks/[NETWORK_CODE]",
    )

    # Make the request
    response = client.get_network(request=request)

    # Handle the response
    print(response)

他のメソッドとリソースの例については、GitHub リポジトリ googleapis/google-cloud-python をご覧ください。

HTTP リクエストとレスポンスをロギングする

Python クライアント ライブラリは、標準の Python logging ライブラリを使用して HTTP リクエストとレスポンスをロギングします。デフォルトでは、ロギングは無効になっています。

ロギングを有効にするには、環境変数 GOOGLE_SDK_PYTHON_LOGGING_SCOPE を設定します。この環境変数は、レベル logging.DEBUG 以上のロギング イベントの処理を構成します。

# Log only Ad Manager API events
export GOOGLE_SDK_PYTHON_LOGGING_SCOPE=google.ads.admanager_v1

# Log all Google library events
export GOOGLE_SDK_PYTHON_LOGGING_SCOPE=google

また、Python の logging モジュールを使用することもできます。

import logging

from google.ads import admanager_v1

logger = logging.getLogger("google.ads.admanager_v1")
logger.addHandler(logging.StreamHandler())
logger.setLevel(logging.DEBUG)

エラーを処理する

すべての API エラーは、ベースクラス GoogleAPIError を拡張します。

エラーの理由フィールドは、エラーの種類を一意に識別します。このフィールドを使用して、エラーの処理方法を決定します。

try:
  network = client.get_network(request=request)
  print(network)
except GoogleAPIError as e:
  # Handle error
  print(e.reason)

アド マネージャー API エラーには、サポートに提供してトラブルシューティングのサポートを依頼できる一意の requestId も含まれます。次の例では、GoogleAPIError から requestId を抽出します。

except GoogleAPIError as e:
  requestInfoType = "type.googleapis.com/google.rpc.RequestInfo"
  requestInfo = [detail for detail in e.details if detail['@type'] == requestInfoType][0]
  print(requestInfo['requestId'])

プロキシを構成する

Python クライアント ライブラリは、環境変数 http_proxyhttps_proxy の設定を尊重します。