구성

구성 관리는 Config 클래스를 사용하여 관리됩니다. 구성 파일을 사용하거나, 생성 시 값을 동적으로 지정하거나, 환경 변수에서 값을 로드하여 클라이언트를 구성할 수 있습니다.

구성 파일

클라이언트를 인스턴스화할 때 사용할 google_ads_config.rb 파일을 지정할 수 있습니다.

GoogleAdsClient 객체를 인스턴스화할 때 인수를 전달하지 않으면 라이브러리가 다음 순서로 구성 파일을 검색합니다.

  1. GOOGLE_ADS_CONFIGURATION_FILE_PATH 환경 변수에 지정된 경로입니다.
  2. HOME 디렉터리(~/google_ads_config.rb)에 있는 google_ads_config.rb 파일

또는 GoogleAdsClient 객체를 인스턴스화할 때 명시적 경로를 전달할 수 있습니다.

client = Google::Ads::GoogleAds::GoogleAdsClient.new('path/to/file.rb')

이 파일을 생성하려면 GitHub 저장소에서 google_ads_config.rb를 복사하고 갱신 토큰, 클라이언트 ID, 클라이언트 보안 비밀번호를 포함하도록 수정합니다.

동적 구성

라이브러리를 인스턴스화할 때 구성을 동적으로 설정할 수 있습니다.

client = Google::Ads::GoogleAds::GoogleAdsClient.new do |config|
  config.client_id = 'INSERT_CLIENT_ID_HERE'
  # ... additional configuration
end

인스턴스화 후 구성을 수정할 수도 있습니다 (초기화 중에 로드된 설정을 재정의함).

client.configure do |config|
  config.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE'
  # ... additional configuration
end

구성 필드

Config 객체는 다음 필드를 지원합니다.

일반 필드:

  • refresh_token: OAuth 갱신 토큰 (GOOGLE_ADS_REFRESH_TOKEN)입니다.
  • client_id: OAuth 클라이언트 ID (GOOGLE_ADS_CLIENT_ID)입니다.
  • client_secret: OAuth 클라이언트 보안 비밀번호 (GOOGLE_ADS_CLIENT_SECRET)
  • keyfile: 서비스 계정 JSON 키 파일(GOOGLE_ADS_JSON_KEY_FILE_PATH)의 경로입니다.
  • impersonate: 도메인 전체 위임 (GOOGLE_ADS_IMPERSONATED_EMAIL)으로 서비스 계정을 사용할 때 가장할 이메일 주소입니다.
  • use_application_default_credentials: 애플리케이션 기본 사용자 인증 정보(GOOGLE_ADS_USE_APPLICATION_DEFAULT_CREDENTIALS)를 사용하여 인증하려면 true로 설정합니다. google-ads-googleads v36.1.0 이상에서 지원됩니다.
  • authentication: Proc(updater_proc), 키 파일 경로 또는 Hash, GRPC::Core::Channel/GRPC::Core::ChannelCredentials과 같은 맞춤 인증 객체입니다. client_id, client_secret, refresh_token, keyfile을 재정의합니다.
  • login_customer_id: login-customer-id 문서(GOOGLE_ADS_LOGIN_CUSTOMER_ID)를 참고하세요.
  • linked_customer_id: 연결된 고객 ID(GOOGLE_ADS_LINKED_CUSTOMER_ID)입니다.
  • ads_assistant: Google Ads API 어시스턴트 헤더의 선택적 식별자입니다 (GOOGLE_ADS_ASSISTANT, v37.0.0에서 gaada로 추가되었으며 v39.0.0에서 ads_assistant로 이름이 변경됨).
  • http_proxy: 선택적 HTTP 또는 HTTPS 프록시 URI(GOOGLE_ADS_RUBY_HTTP_PROXY)입니다.
  • api_endpoint: 선택적 API 엔드포인트 재정의 (GOOGLE_ADS_ENDPOINT).
  • treat_deprecation_warnings_as_errors: 지원 중단된 라이브러리 코드가 호출될 때 Warning#warn을 호출하는 대신 예외를 발생시킵니다 (기본적으로 false).
  • warn_on_all_deprecations: 호출 사이트당 한 번이 아닌 모든 호출에서 지원 중단 경고를 발행합니다 (기본값은 false).

로그 필드 (자세한 내용은 로깅 가이드 참고):

  • log_level: 로깅할 최소 로그 수준 메시지입니다. 예를 들어 'DEBUG'를 지정하면 모든 메시지가 로깅되고 'INFO'를 지정하면 DEBUG 메시지가 제외되고 다른 모든 메시지가 표시됩니다.
  • log_target: 로깅할 위치입니다(예: STDERR 또는 경로).
  • logger: 자체 맞춤 로거를 지정합니다. 이를 지정하면 log_level 및 log_target이 모두 재정의됩니다.

환경 변수

환경 변수를 사용하여 클라이언트 라이브러리를 구성할 수 있습니다. 기본적으로 로드되지 않으며 로드하려면 클라이언트를 인스턴스화한 후 명시적으로 호출해야 합니다. 표준 환경 변수의 전체 목록을 참고하세요.

환경 변수를 Config에 로드하려면 load_environment_config를 호출하세요.

client = Google::Ads::GoogleAds::GoogleAdsClient.new
client.load_environment_config

load_environment_config가 호출될 때마다 정의된 환경 변수가 Config에 이미 있는 해당 값을 덮어씁니다 (설정되지 않은 환경 변수는 기존 구성 값을 변경하지 않음). 이 메커니즘을 사용하면 기본 구성 파일을 유지하고 환경 변수를 사용하여 특정 값을 재정의하거나 환경 변수로 클라이언트를 완전히 구성할 수 있습니다.

표준 환경 변수 외에도 Ruby 라이브러리는 다음 두 가지 변수를 추가로 지원합니다.

  • GOOGLE_ADS_RUBY_LOG_LEVEL: 앞에서 설명한 대로 log_level와 동일합니다.
  • GOOGLE_ADS_RUBY_HTTP_PROXY: HTTP 프록시 URL을 지정합니다.