구성

Google Ads API PHP 클라이언트 라이브러리는 라이브러리 동작을 맞춤설정하는 데 사용할 수 있는 여러 구성 설정을 제공합니다.

구성 파일

이러한 구성 설정 대부분을 INI 구성 파일에 저장하고 클라이언트를 인스턴스화할 때 사용할 수 있습니다(예: google_ads_php.ini).

사용자 인증 정보 및 클라이언트 빌더는 모두 이러한 파일에서 설정을 로드하는 fromFile 메서드를 제공합니다.

$oAuth2Credential = (new OAuth2TokenBuilder())
    ->fromFile('/path/to/google_ads_php.ini')
    ->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->fromFile('/path/to/google_ads_php.ini')
    ->withOAuth2Credential($oAuth2Credential)
    ->build();

인수로 제공된 구성 경로가 없으면 fromFile 메서드는 기본 구성 경로에서 로드됩니다.

  1. GOOGLE_ADS_CONFIGURATION_FILE_PATH이라는 환경 변수의 값입니다(설정된 경우).
  2. 그렇지 않으면 HOME 디렉터리의 google_ads_php.ini 파일입니다.
$oAuth2Credential = (new OAuth2TokenBuilder())
    ->fromFile()
    ->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->fromFile()
    ->withOAuth2Credential($oAuth2Credential)
    ->build();

동적 구성

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

$oAuth2Credential = (new OAuth2TokenBuilder())
    ->withClientId('INSERT_CLIENT_ID_HERE')
    ->withClientSecret('INSERT_CLIENT_SECRET_HERE')
    ->withRefreshToken('INSERT_REFRESH_TOKEN_HERE')
    ->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->withOAuth2Credential($oAuth2Credential)
    ->build();

구성 환경 변수

클라이언트를 인스턴스화할 때 환경 변수에서 일부 구성 설정을 지정할 수 있습니다(표준 환경 변수 참조).

사용자 인증 정보 및 클라이언트 빌더는 모두 환경 변수에서 설정을 로드하는 fromEnvironmentVariables 메서드를 제공합니다.

$oAuth2Credential = (new OAuth2TokenBuilder())
    // ...
    ->fromEnvironmentVariables()
    ->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->withOAuth2Credential($oAuth2Credential)
    // ...
    ->fromEnvironmentVariables()
    ->build();

구성 필드

구성 설정은 카테고리로 구성된 여러 필드를 지원합니다.

  1. OAuth2TokenBuilder에서 사용하는 필드:
    • 애플리케이션 모드:
      • [OAUTH2] clientId: OAuth2 클라이언트 ID입니다.
      • [OAUTH2] clientSecret: OAuth2 클라이언트 보안 비밀번호입니다.
      • [OAUTH2] refreshToken: OAuth2 갱신 토큰입니다.
    • 서비스 계정 모드:
      • [OAUTH2] jsonKeyFilePath: JSON 키 경로입니다.
      • [OAUTH2] scopes: OAuth2 범위(v32.1.0 이상에서는 기본적으로 https://www.googleapis.com/auth/adwords, v32.1.0 이전 버전 또는 커스텀 범위를 사용할 때 필요, fromEnvironmentVariables()에서 환경 변수에서 읽지 않음)
      • [OAUTH2] impersonatedEmail: Google Workspace 도메인 전체 위임을 사용할 때 가장할 이메일 주소입니다(선택사항).
    • 애플리케이션 기본 사용자 인증 정보 모드:
      • 애플리케이션 모드 또는 서비스 계정 모드 필드가 설정되지 않은 경우 OAuth2TokenBuilder는 자동으로 애플리케이션 기본 사용자 인증 정보 (ADC)로 대체됩니다.
  2. GoogleAdsClientBuilder에서 사용하는 필드:
    • [GOOGLE_ADS] loginCustomerId: 요청에 사용할 승인된 고객의 ID입니다.
    • [GOOGLE_ADS] linkedCustomerId: 연결된 고객 ID입니다.
    • [GOOGLE_ADS] endpoint: 선택사항인 대체 Google Ads API 서버 엔드포인트입니다.
    • [LOGGING] logFilePath: 로깅 출력 경로입니다.
    • [LOGGING] logLevel: 로깅 수준입니다.
    • [CONNECTION] proxy: 인터넷 연결에 사용되는 프록시 서버 URL입니다.
    • [CONNECTION] transport: 네트워크 전송 (grpc 또는 rest)입니다.
    • [CONNECTION] grpcChannelIsSecure: gRPC 채널이 안전한지 여부입니다.
    • [CONNECTION] grpcChannelCredential: gRPC 채널 사용자 인증 정보입니다.
    • [CONNECTION] unaryMiddlewares: 단항 미들웨어입니다.
    • [CONNECTION] streamingMiddlewares: 스트리밍 미들웨어입니다.
    • [CONNECTION] grpcInterceptors: gRPC 인터셉터입니다.

구성 검증

클라이언트를 인스턴스화할 때 구성 설정을 확인하고 잘못된 경우 예외가 발생합니다. 유효성 검사 규칙은 다음과 같습니다.

  1. 애플리케이션 모드와 서비스 계정 모드 모두에 대해 [OAUTH2] 필드를 동시에 설정하면 안 됩니다.
  2. 서비스 계정 모드를 사용할 때는 [OAUTH2] jsonKeyFilePath를 설정해야 합니다(v32.1.0 이전 버전에서는 [OAUTH2] scopes도 설정해야 하며, v32.1.0 이상에서는 scopes가 기본적으로 https://www.googleapis.com/auth/adwords로 설정됨).
  3. 애플리케이션 모드를 사용할 때는 [OAUTH2] clientId, [OAUTH2] clientSecret, [OAUTH2] refreshToken를 설정해야 합니다.
  4. 설정된 경우 [GOOGLE_ADS] loginCustomerId 및 [GOOGLE_ADS] linkedCustomerId은 양수여야 합니다.
  5. 설정된 경우 [CONNECTION] proxy는 유효한 URL이어야 합니다(FILTER_VALIDATE_URL 필터 참고).
  6. 설정된 경우 [LOGGING] logLevel는 유효한 PSR 로그 수준이어야 하며 대문자(예: INFO)여야 합니다.
  7. 설정된 경우 [CONNECTION] transport는 grpc 또는 rest여야 합니다.
  8. [CONNECTION] transport가 grpc로 설정된 경우 gRPC 전송이 환경에서 지원되어야 합니다(전송 가이드 참고).
  9. [CONNECTION] transport가 grpc로 설정되지 않은 경우 [CONNECTION] grpcChannelIsSecure는 true여야 합니다(REST 연결에는 항상 HTTPS가 필요함).
  10. [CONNECTION] grpcChannelCredential는 [CONNECTION] transport가 grpc로 설정된 경우에만 설정할 수 있습니다.
  11. [CONNECTION] grpcChannelCredential은 [CONNECTION] grpcChannelIsSecure가 true인 경우에만 설정할 수 있습니다.