클라이언트를 구성하는 방법에는 여러 가지가 있습니다.
YAML 파일을 사용한 구성
요청하는 데 필요한 인증 정보가 포함된 클라이언트를 초기화할 때 사용할 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_id
은 GOOGLE_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
를 사용한 구성
dict
를 load_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 구성을 사용하든 사전 구성을 사용하든 동일함):
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.config
내장 모듈에서 직접 파생됩니다. 라이브러리는 logging
네임스페이스 아래의 모든 필드를 logging.config.dictConfig
메서드에 직접 전달하기 때문입니다. 자세한 내용은 로깅 가이드를 참고하세요.
version
: 스키마 버전을 나타내는 정수 값입니다.disable_existing_loggers
: 애플리케이션의 다른 위치에 구성된 로거를 사용 중지해야 하는지 여부입니다.formatters
: 다양한 종류의 형식을 정의하는 사전입니다.handlers
: 로그가 쓰여지는 위치와 사용할 형식을 제어하는 다양한 핸들러를 정의하는 사전입니다.loggers
: 핸들러와 로그 수준을 포함하여 다양한 유형의 로거를 정의하는 사전입니다.