設定

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): 一時的な HTTP 503 エラーと 504 エラーの再試行の一時停止間隔(秒単位)。デフォルトは "5,10,15" です。