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