Google에서는 Ad Manager API와 상호작용하는 Python 클라이언트 라이브러리를 제공합니다. PyPI와 함께 클라이언트 라이브러리를 사용하는 것이 좋습니다.
시작하려면 원하는 IDE에서 새 프로젝트를 만들거나 기존 프로젝트에 종속 항목을 추가합니다. Google은 클라이언트 라이브러리 아티팩트를 PyPI에 google-ads-admanager로 게시합니다.
pip install google-ads-admanager
사용자 인증 정보 구성
Python 클라이언트 라이브러리는 OAuth2 및 애플리케이션 기본 사용자 인증 정보(ADC)를 사용하여 인증합니다.
ADC는 다음 위치에서 순서대로 사용자 인증 정보를 검색합니다.
- GOOGLE_APPLICATION_CREDENTIALS환경 변수입니다.
- Google Cloud CLI (gcloud CLI)를 통해 설정된 사용자 인증 정보
- Google Cloud에서 실행되는 경우 Google Cloud 리소스에 연결된 서비스 계정입니다.
ADC 사용자 인증 정보를 만들고 구성하는 방법은 인증을 참고하세요.
첫 번째 요청하기
각 서비스에는 각 REST 메서드의 동기식 메서드와 비동기식 메서드가 모두 포함된 ServiceClient 객체가 있습니다. 다음 예에서는 Network를 동기식으로 읽습니다.
from google.ads import admanager_v1
def sample_get_network():
    # Create a client
    client = admanager_v1.NetworkServiceClient()
    # Initialize request argument(s)
    request = admanager_v1.GetNetworkRequest(
        name="networks/[NETWORK_CODE]",
    )
    # Make the request
    response = client.get_network(request=request)
    # Handle the response
    print(response)
다른 메서드 및 리소스의 예는 GitHub 저장소 googleapis/google-cloud-python를 참고하세요.
HTTP 요청 및 응답 로깅
Python 클라이언트 라이브러리는 표준 Python logging 라이브러리를 사용하여 HTTP 요청 및 응답을 로깅합니다. 기본적으로 로깅은 사용 중지되어 있습니다.
로깅을 사용 설정하려면 환경 변수 GOOGLE_SDK_PYTHON_LOGGING_SCOPE를 설정합니다. 이 환경 변수는 logging.DEBUG 이상 수준에서 로깅 이벤트 처리를 구성합니다.
# Log only Ad Manager API events
export GOOGLE_SDK_PYTHON_LOGGING_SCOPE=google.ads.admanager_v1
# Log all Google library events
export GOOGLE_SDK_PYTHON_LOGGING_SCOPE=google
또는 Python logging 모듈을 사용할 수 있습니다.
import logging
from google.ads import admanager_v1
logger = logging.getLogger("google.ads.admanager_v1")
logger.addHandler(logging.StreamHandler())
logger.setLevel(logging.DEBUG)
오류 처리
모든 API 오류는 기본 클래스 GoogleAPIError를 확장합니다.
오류 이유 필드는 오류 유형을 고유하게 식별합니다. 이 필드를 사용하여 오류를 처리하는 방법을 결정합니다.
try:
  network = client.get_network(request=request)
  print(network)
except GoogleAPIError as e:
  # Handle error
  print(e.reason)
Ad Manager API 오류에는 문제 해결을 위해 지원팀에 제공할 수 있는 고유한 requestId도 포함됩니다. 다음 예에서는 GoogleAPIError에서 requestId를 추출합니다.
except GoogleAPIError as e:
  requestInfoType = "type.googleapis.com/google.rpc.RequestInfo"
  requestInfo = [detail for detail in e.details if detail['@type'] == requestInfoType][0]
  print(requestInfo['requestId'])
프록시 설정 구성
Python 클라이언트 라이브러리는 환경 변수 설정 http_proxy 및 https_proxy를 따릅니다.