Google Ads API Perl クライアント ライブラリには、ライブラリの動作をカスタマイズするための構成設定がいくつか用意されています。
構成ファイル
クライアントのインスタンス化時に使用する googleads.properties ファイルを指定できます。
インスタンス化時に引数を使用しない場合:
my $api_client = Google::Ads::GoogleAds::Client->new();
ライブラリは、HOME ディレクトリでファイルを探します。GOOGLE_ADS_CONFIGURATION_FILE_PATH 環境変数が設定されている場合は、その環境変数で指定されたパスを探します。
または、パスを明示的に指定することもできます。
my $properties_file = "/path/to/googleads.properties";
my $api_client = Google::Ads::GoogleAds::Client->new({
properties_file => $properties_file,
});
この場合、クライアントはそのパスでファイルを探します。
このファイルを生成する最も簡単な方法は、GitHub リポジトリから googleads.properties をコピーし、クライアント ID、クライアント シークレット、更新トークンを含めるように変更することです。
動的構成
構成は、ライブラリのインスタンス化時に動的に設定することも、インスタンス化後に設定することもできます。
my $api_client = Google::Ads::GoogleAds::Client->new({
login_customer_id => "INSERT_LOGIN_CUSTOMER_ID_HERE",
});
インスタンス化後に構成を変更することもできます。
$api_client->set_login_customer_id("INSERT_LOGIN_CUSTOMER_ID_HERE");
Client インスタンスから OAuth2ApplicationsHandler オブジェクトを取得し、実行時にクライアント ID、クライアント シークレット、更新トークンを変更することもできます。
my $oauth2_applications_handler =
$api_client->get_oauth2_applications_handler();
$oauth2_applications_handler->set_client_id("INSERT_CLIENT_ID_HERE");
$oauth2_applications_handler->set_client_secret("INSERT_CLIENT_SECRET_HERE");
$oauth2_applications_handler->set_refresh_token("INSERT_REFRESH_TOKEN_HERE");
構成環境変数
クライアントをインスタンス化するときに、環境変数から一部の構成設定を設定できます(標準の環境変数をご覧ください)。
Client モジュールには、環境変数から値を読み込む configure_from_environment_variables 関数が用意されています。
# Get the Google Ads API Client. By default, any credentials are read from
# ~/googleads.properties, or, if set, from the file specified in the
# GOOGLE_ADS_CONFIGURATION_FILE_PATH environment variable.
my $api_client = Google::Ads::GoogleAds::Client->new();
# Load the configuration from any set environment variables.
$api_client->configure_from_environment_variables();
構成フィールド
googleads.properties キーは camelCase(loginCustomerId や linkedCustomerId など)を使用しますが、Client->new({...}) コンストラクタ引数とハンドラ メソッドは snake_case(login_customer_id や linked_customer_id など)を使用します。
OAuth2ApplicationsHandler に保持されるフィールド:
client_id(googleads.properties、GOOGLE_ADS_CLIENT_IDのclientId): OAuth2 クライアント ID。client_secret(googleads.properties、GOOGLE_ADS_CLIENT_SECRETのclientSecret): OAuth2 クライアント シークレット。refresh_token(googleads.properties、GOOGLE_ADS_REFRESH_TOKENのrefreshToken): OAuth2 更新トークン。additional_scopes(googleads.propertiesのadditionalScopes): リクエストする追加の OAuth2 スコープ。
OAuth2ServiceAccountsHandler に保持されるフィールド:
json_key_file_path(googleads.properties、GOOGLE_ADS_JSON_KEY_FILE_PATHのjsonKeyFilePath): サービス アカウントの JSON キーファイルへのパス。impersonated_email(googleads.properties、GOOGLE_ADS_IMPERSONATED_EMAILのimpersonatedEmail): Google Workspace のドメイン全体の委任を使用するときになりすますメールアドレス。additional_scopes(googleads.propertiesのadditionalScopes): リクエストする追加の OAuth2 スコープ。
Client に保持されるフィールド:
login_customer_id(googleads.properties、GOOGLE_ADS_LOGIN_CUSTOMER_IDのloginCustomerId): クライアント アカウントへのアクセスに使用されるマネージャー アカウントの ID。login-customer-id のドキュメントをご覧ください。linked_customer_id(googleads.propertiesのlinkedCustomerId、GOOGLE_ADS_LINKED_CUSTOMER_ID): リンクされたお客様 ID。service_address(googleads.properties、GOOGLE_ADS_ENDPOINTのserviceAddress): Google Ads API サービスのアドレス URL(デフォルトは"https://googleads.googleapis.com")。user_agent(googleads.properties、GOOGLE_ADS_PERL_USER_AGENTのuserAgent): HTTP リクエストに含まれるカスタム ユーザー エージェント ヘッダーの接頭辞。proxy(googleads.properties、GOOGLE_ADS_PERL_PROXYではproxy): インターネット接続に使用されるプロキシ サーバーの URL。version(Client->newまたはset_version): 使用する Google Ads API バージョン モジュール(デフォルトは"V26")。die_on_faults(Client->newまたはset_die_on_faults):1に設定すると、API エラー時にGoogle::Ads::GoogleAds::GoogleAdsExceptionオブジェクトを返す代わりに、未加工のレスポンス ペイロードを使用してサービス メソッドがdie()を呼び出すようになります(デフォルトは0)。http_timeout(Client->newまたはset_http_timeout): HTTP タイムアウト(秒単位、デフォルトは3600)。http_retry_timing(Client->newまたはset_http_retry_timing): 一時的な HTTP503エラーと504エラーの再試行の一時停止間隔(秒単位)。デフォルトは"5,10,15"です。