Google は、アド マネージャー API を操作するための Python クライアント ライブラリを提供しています。PyPI でクライアント ライブラリを使用することをおすすめします。
まず、お好みの IDE で新しいプロジェクトを作成するか、既存のプロジェクトに依存関係を追加します。Google は、クライアント ライブラリ アーティファクトを google-ads-admanager として PyPI に公開しています。
requirements.txt
google-ads-admanager==0.10.4
コマンドライン
pip install google-ads-admanager
認証情報の構成
Python クライアント ライブラリは、OAuth2 とアプリケーションのデフォルト認証情報(ADC)を使用して認証を行います。
ADC は、次の場所で認証情報を順に検索します。
GOOGLE_APPLICATION_CREDENTIALS環境変数。- Google Cloud CLI(gcloud CLI)を使用して設定されたユーザー認証情報。
- 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_proxy と https_proxy の設定を尊重します。