구성

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

YAML 파일을 사용한 구성

요청을 실행하는 데 필요한 인증 정보가 포함된 클라이언트를 초기화할 때 사용할 YAML 파일을 지정할 수 있습니다. 클라이언트가 load_from_storage 메서드를 사용하여 초기화될 때 이 파일에 액세스합니다. 이 파일을 생성하는 가장 쉬운 방법은 GitHub 저장소에서 google-ads.yaml 예를 복사하고 개발자 토큰, 갱신 토큰, 클라이언트 ID, 클라이언트 보안 비밀번호 등의 사용자 인증 정보를 포함하도록 수정하는 것입니다.

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()

두 값이 모두 제공되면(경로가 메서드로 전달되고 그리고 위의 환경 변수가 존재하는 경우) 라이브러리는 메서드에 전달된 경로의 우선순위를 지정합니다.

경로를 제공하지 않으면 라이브러리는 $HOME 디렉터리에서 파일을 찾습니다.

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)

구성 필드

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

일반 필드 (이 이름은 YAML 또는 dict 구성을 사용하는지 여부에 관계없이 동일함):

  • refresh_token: OAuth 갱신 토큰입니다.
  • client_id: OAuth 클라이언트 ID입니다.
  • client_secret: OAuth 클라이언트 보안 비밀번호입니다.
  • developer_token: API에 액세스하기 위한 개발자 토큰입니다.
  • login_customer_id: login-customer-id 문서를 참조하세요.
  • linked_customer_id: linked-customer-id 문서를 참조하세요.
  • json_key_file_path (이전의 path_to_private_key_file): 로컬 비공개 키 파일의 경로입니다. 서비스 계정을 사용하여 인증하는 데 사용됩니다. OAuth2 서비스 계정 문서를 참조하세요.
  • impersonated_email (이전의 delegate_account): 대리인으로 사용되는 계정 이메일입니다. 서비스 계정을 사용하여 인증하는 데 사용됩니다. OAuth2 서비스 계정 문서를 참조하세요.
  • logging: 로깅 구성. 로깅 필드는 아래에 설명되어 있습니다.
  • http_proxy: 프록시 문서 참조
  • use_proto_plus: proto-plus 메시지를 사용할지 여부입니다. Protobuf 메시지 문서를 참조하세요.

일반 필드를 환경 변수로 사용합니다.

  • GOOGLE_ADS_CONFIGURATION_FILE_PATH
  • GOOGLE_ADS_REFRESH_TOKEN
  • GOOGLE_ADS_CLIENT_ID
  • GOOGLE_ADS_CLIENT_SECRET
  • GOOGLE_ADS_DEVELOPER_TOKEN
  • GOOGLE_ADS_LOGIN_CUSTOMER_ID
  • GOOGLE_ADS_LINKED_CUSTOMER_ID
  • GOOGLE_ADS_JSON_KEY_FILE_PATH (이전의 GOOGLE_ADS_PATH_TO_PRIVATE_KEY_FILE)
  • GOOGLE_ADS_IMPERSONATED_EMAIL (이전의 GOOGLE_ADS_DELEGATE_ACCOUNT)
  • GOOGLE_ADS_LOGGING
  • GOOGLE_ADS_HTTP_PROXY
  • GOOGLE_ADS_USE_PROTO_PLUS

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

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