구성

클라이언트를 구성하는 방법에는 여러 가지가 있습니다.

인증 구성

Google Ads API에 액세스하는 데 필요한 OAuth 사용자 인증 정보를 관리하는 방법은 여러 가지가 있습니다. 선택한 접근 방식은 사용하는 구성 필드에 영향을 미칩니다. 자세한 내용은 인증 가이드를 참고하세요.

YAML 파일을 사용한 구성

Google Ads API에 요청을 보내는 데 필요한 정보가 포함된 클라이언트를 초기화할 때 사용할 YAML 파일을 지정할 수 있습니다. 이 파일은 클라이언트가 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

os.environ["GOOGLE_ADS_CONFIGURATION_FILE_PATH"] = "path/to/google-ads.yaml"
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()

두 값이 모두 제공되는 경우(경로가 메서드에 전달되고 환경 변수가 있는 경우) 라이브러리는 메서드에 전달된 경로를 우선시합니다.

환경 변수를 사용한 구성

모든 클라이언트 구성을 환경 변수로 저장할 수 있으며, 클라이언트의 load_from_env 메서드를 사용할 때 읽어옵니다. 환경 변수는 google-ads.yaml 파일에 정의된 변수와 이름이 같아야 하지만 모두 대문자이고 GOOGLE_ADS_ 네임스페이스가 앞에 와야 합니다. 예를 들어 client_idGOOGLE_ADS_CLIENT_ID로 저장해야 합니다.

환경 변수는 일반적으로 $HOME 디렉터리에 있는 .bashrc 또는 .bash_profile 파일과 같은 bash 구성 파일에 정의됩니다. 명령줄을 사용하여 정의할 수도 있습니다. 이 안내에서는 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.
$ src ~/.bashrc

명령줄에서 직접 터미널 인스턴스에 환경 변수를 설정할 수도 있습니다.

$ export GOOGLE_ADS_CLIENT_ID=1234567890
$ echo $GOOGLE_ADS_CLIENT_ID
1234567890

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"
    }
  }
}'

YAML 문자열을 사용한 구성

YAML 파일을 메모리에 읽어온 경우 초기화 시 클라이언트에 직접 제공할 수 있습니다. 이렇게 하려면 load_from_string 메서드를 사용하면 됩니다.

from google.ads.googleads.client import GoogleAdsClient

with open("/path/to/yaml", "rb") as handle:
    yaml = handle.read()

client = GoogleAdsClient.load_from_string(yaml)

dict를 사용한 구성

dictload_from_dict 메서드에 직접 전달할 수 있습니다. 예를 들면 다음과 같습니다.

from google.ads.googleads.client import GoogleAdsClient

credentials = {
    "developer_token": "abcdef123456",
    "refresh_token": "1//0abcdefghijklABCDEF",
    "client_id": "123456-abcdef.apps.googleusercontent.com",
    "client_secret": "aBcDeFgHiJkL"}

client = GoogleAdsClient.load_from_dict(credentials)

구성 필드

클라이언트 라이브러리 구성은 다음 필드를 지원합니다.

인증

사용 중인 인증 접근 방식에 따라 다음 필드 그룹 중 하나만 사용하세요.

  • 애플리케이션 기본 사용자 인증 정보가 있는 단일 사용자 (문서)
    • use_application_default_credentials: 라이브러리에서 인증에 애플리케이션 기본 사용자 인증 정보 (ADC)를 사용해야 하는지 여부입니다.
  • OAuth 토큰을 사용하는 단일 사용자 (문서)
    • client_id: OAuth 클라이언트 ID입니다.
    • client_secret: OAuth 클라이언트 보안 비밀번호입니다.
    • refresh_token: OAuth 갱신 토큰입니다.
  • 서비스 계정 (문서)
    • json_key_file_path: 로컬 비공개 키 파일의 경로입니다. 서비스 계정을 사용하여 인증하는 데 사용됩니다.

라이브러리 동작

이러한 필드는 라이브러리의 동작을 결정합니다.

요청 수준 구성

환경 변수

환경 변수를 사용하여 라이브러리를 구성하려면 다음을 사용하세요.

  • GOOGLE_ADS_CLIENT_ID
  • GOOGLE_ADS_CLIENT_SECRET
  • GOOGLE_ADS_CONFIGURATION_FILE_PATH
  • GOOGLE_ADS_DEVELOPER_TOKEN
  • GOOGLE_ADS_HTTP_PROXY
  • GOOGLE_ADS_JSON_KEY_FILE_PATH
  • GOOGLE_ADS_LINKED_CUSTOMER_ID
  • GOOGLE_ADS_LOGIN_CUSTOMER_ID
  • GOOGLE_ADS_LOGGING
  • GOOGLE_ADS_REFRESH_TOKEN
  • GOOGLE_ADS_USE_PROTO_PLUS
  • GOOGLE_ADS_USE_APPLICATION_DEFAULT_CREDENTIALS

로깅 구성

logging 구성 필드 아래에 있는 필드인 로깅 필드는 라이브러리가 logging 네임스페이스 아래의 모든 필드를 logging.config.dictConfig 메서드에 직접 전달하기 때문에 logging.config 내장 모듈에서 직접 파생됩니다. 자세한 내용은 로깅 가이드를 참고하세요.

  • version: 스키마 버전을 나타내는 정수 값입니다.
  • disable_existing_loggers: 애플리케이션의 다른 곳에서 구성된 로거를 사용 중지해야 하는지 여부입니다.
  • formatters: 다양한 종류의 포맷터를 정의하는 사전입니다.
  • handlers: 로그가 기록되는 위치와 사용할 포맷터를 제어하는 다양한 핸들러를 정의하는 사전입니다.
  • loggers: 핸들러와 로그 수준을 포함하는 다양한 유형의 로거를 정의하는 사전입니다.