Google は、Ad Manager API を操作するための Python クライアント ライブラリを提供しています。PyPI でクライアント ライブラリを使用することをおすすめします。
まず、お好みの IDE で新しいプロジェクトを作成するか、既存のプロジェクトに依存関係を追加します。Google は、クライアント ライブラリ アーティファクトを google-ads-admanager
として PyPI に公開します。
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
の設定を尊重します。