클라이언트를 구성하는 방법에는 여러 가지가 있습니다.
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_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 또는 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.config
기본 제공 모듈에서 직접 파생됩니다. 라이브러리가 logging
네임스페이스 아래의 모든 필드를 logging.config.dictConfig
메서드에 직접 전달하기 때문입니다. 자세한 내용은 로깅 가이드를 참조하세요.
version
: 스키마 버전을 나타내는 정수 값입니다.disable_existing_loggers
: 애플리케이션의 다른 위치에서 구성된 로거를 사용 중지할지 여부입니다.formatters
: 다양한 종류의 형식 지정 도구를 정의하는 사전입니다.handlers
: 로그가 작성되는 위치와 사용해야 하는 형식 지정 도구를 제어하는 다양한 핸들러를 정의하는 사전입니다.loggers
: 핸들러 및 로그 수준을 비롯하여 다양한 로거 유형을 정의하는 사전입니다.