Python クライアント ライブラリは、YAML ファイル、環境変数、YAML 文字列、または dict を使用して構成できます。
認証構成
Google Ads API へのアクセスに必要な OAuth 認証情報を管理する方法は複数あります。選択するアプローチは、使用する構成フィールドに影響します。詳細については、認証ガイドをご覧ください。
YAML ファイルを使用した構成
クライアントを初期化するときに使用する YAML ファイルを指定できます。このファイルには、Google Ads API にリクエストを行うために必要な情報が含まれています。このファイルは、load_from_storage メソッドを使用してクライアントが初期化されるときにアクセスされます。このファイルを生成する最も簡単な方法は、GitHub リポジトリから google-ads.yaml の例をコピーし、更新トークン、クライアント ID、クライアント シークレットなどの認証情報を含めるように変更することです。
パスを指定しない場合、ライブラリは $HOME ディレクトリでファイルを検索します。
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()
google-ads.yaml ファイルの場所を指定するには、メソッドを呼び出すときにパスを文字列として渡します。
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage("path/to/google-ads.yaml")
特定の環境変数を定義してパスを指定することもできます。
import os
from google.ads.googleads.client import GoogleAdsClient
os.environ["GOOGLE_ADS_CONFIGURATION_FILE_PATH"] = "path/to/google-ads.yaml"
client = GoogleAdsClient.load_from_storage()
両方の値(メソッドに渡されるパスと環境変数)が指定されている場合、ライブラリはメソッドに渡されるパスを優先します。
環境変数を使用した構成
すべてのクライアント構成を環境変数として保存できます。これらの環境変数は、クライアントの load_from_env メソッドを使用するときに読み取られます。環境変数は、google-ads.yaml ファイルで定義されたものと同じ名前にする必要がありますが、すべて大文字で、GOOGLE_ADS_ Namespace を接頭辞として付ける必要があります。たとえば、client_id は GOOGLE_ADS_CLIENT_ID として保存する必要があります。
環境変数は通常、$HOME ディレクトリにある .bashrc ファイルや .bash_profile ファイルなどの bash 構成ファイルで定義されます。コマンドラインを使用して定義することもできます。
ターミナルで .bashrc ファイルを使用して環境変数を定義する基本的な手順は次のとおりです。
# Append the line "export GOOGLE_ADS_CLIENT_ID=1234567890" to
# the bottom of your .bashrc file.
echo "export GOOGLE_ADS_CLIENT_ID=1234567890" >> ~/.bashrc
# Update your bash environment to use the most recently updated
# version of your .bashrc file.
source ~/.bashrc
環境変数は、コマンドラインからターミナル インスタンスで直接設定することもできます。
export GOOGLE_ADS_CLIENT_ID=1234567890
echo $GOOGLE_ADS_CLIENT_ID
load_from_env メソッドは、Python の組み込み os モジュールの environ 属性から構成データを読み込みます。例:
os.environ["GOOGLE_ADS_CLIENT_ID"]
環境変数から構成を使用してクライアント インスタンスを初期化する方法の例を次に示します。
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_env()
環境変数を使用して logging を構成するには、構成値が、サンプル google-ads.yaml 構成ファイルの YAML キーの構造と一致する JSON オブジェクトである必要があります。
.bashrc ファイルを使用して設定する例を次に示します。
export GOOGLE_ADS_LOGGING='{
"version": 1,
"disable_existing_loggers": false,
"formatters": {
"default_fmt": {
"format": "[%(asctime)s - %(levelname)s] %(message).5000s",
"datefmt": "%Y-%m-%d %H:%M:%S"
}
},
"handlers": {
"default_handler": {
"class": "logging.StreamHandler",
"formatter": "default_fmt"
}
},
"loggers": {
"": {
"handlers": ["default_handler"],
"level": "INFO"
}
}
}'
重要なポイント: load_from_env メソッドの呼び出し時に環境変数 GOOGLE_ADS_CONFIGURATION_FILE_PATH が設定されている場合、構成値は、前述の環境変数ではなく、指定されたパスにある google-ads.yaml ファイルから取得されます。
YAML 文字列を使用した構成
YAML ファイルをメモリに読み取った場合は、初期化時にクライアントに直接提供できます。これを行うには、load_from_string メソッドを使用します。
from google.ads.googleads.client import GoogleAdsClient
with open("/path/to/yaml", "r", encoding="utf-8") as handle:
yaml_content = handle.read()
client = GoogleAdsClient.load_from_string(yaml_content)
dict を使用した構成
dict を load_from_dict メソッドに直接渡すことができます。次に例を示します。
from google.ads.googleads.client import GoogleAdsClient
credentials = {
"refresh_token": "YOUR_REFRESH_TOKEN",
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET",
"use_proto_plus": True,
}
client = GoogleAdsClient.load_from_dict(credentials)
構成フィールド
クライアント ライブラリの構成は、次のフィールドをサポートしています。
認証
使用する認証アプローチに応じて、これらのフィールド グループのいずれか 1 つのみを使用します。
- アプリケーションのデフォルト認証情報を使用する単一ユーザー(ドキュメント)
use_application_default_credentials: 認証にアプリケーションのデフォルト認証情報(ADC)を使用するかどうか(google-adsv28.3.0以降でサポートされています)。
- OAuth トークンを使用する単一ユーザー(ドキュメント)
client_id: OAuth クライアント ID。client_secret: OAuth クライアント シークレット。refresh_token: OAuth 更新トークン。
- サービス アカウント(ドキュメント)
json_key_file_path: ローカル秘密鍵ファイルへのパス。これは、サービス アカウントを使用した認証に使用されます。impersonated_email: Google Workspace ドメイン全体の委任を使用する場合に権限を借用するアカウントのメールアドレス(省略可)。
ライブラリの動作
これらのフィールドは、ライブラリの動作を決定します。
logging: ログ構成の詳細をご覧ください。http_proxy: プロキシのドキュメントをご覧ください。use_proto_plus: 必須。proto-plus メッセージ(TrueまたはFalse)を使用するかどうか。protobuf メッセージのドキュメントをご覧ください。
リクエスト レベルの構成
linked_customer_id: リンクされた顧客 ID のドキュメントをご覧ください。login_customer_id: login-customer-id のドキュメントをご覧ください。endpoint: 省略可能な代替の Google Ads API エンドポイント アドレス。ads_assistant: Google Ads API アシスタント ヘッダーの省略可能な識別子。
環境変数
環境変数を使用してライブラリを構成するには、次の操作を行います。
GOOGLE_ADS_ADS_ASSISTANTGOOGLE_ADS_CLIENT_IDGOOGLE_ADS_CLIENT_SECRETGOOGLE_ADS_CONFIGURATION_FILE_PATHGOOGLE_ADS_ENDPOINTGOOGLE_ADS_HTTP_PROXYGOOGLE_ADS_IMPERSONATED_EMAILGOOGLE_ADS_JSON_KEY_FILE_PATHGOOGLE_ADS_LINKED_CUSTOMER_IDGOOGLE_ADS_LOGIN_CUSTOMER_IDGOOGLE_ADS_LOGGINGGOOGLE_ADS_REFRESH_TOKENGOOGLE_ADS_USE_PROTO_PLUSGOOGLE_ADS_USE_APPLICATION_DEFAULT_CREDENTIALS(v28.3.0以降でサポート)
ログの構成
ログフィールド(logging 構成フィールドの下にあるフィールド)は、ライブラリが logging 名前空間のすべてのフィールドを logging.config.dictConfig メソッドに直接渡すため、logging.config 組み込みモジュールから直接派生します。詳細については、ロギング ガイドをご覧ください。
version: スキーマ バージョンを表す整数値。disable_existing_loggers: アプリケーションの他の場所で構成されたロガーを無効にするかどうか。formatters: さまざまな種類のフォーマッタを定義する辞書。handlers: ログの書き込み先と使用するフォーマッタを制御するさまざまなハンドラを定義する辞書。loggers: ハンドラとログレベルを含む、さまざまなタイプのロガーを定義する辞書。