이 클라이언트 라이브러리는 Google Ad Manager SOAP API에 대한 액세스를 단순화합니다. 라이브러리는 인증을 저장하고 SOAP 웹 서비스 클라이언트를 생성하는 쉬운 방법을 제공합니다. 또한 API와의 통합을 시작하는 데 도움이 되는 예제 코드도 포함되어 있습니다.
라이브러리 다운로드 및 설치
setuptools는 googleads 라이브러리를 설치하기 위한 필수 구성 요소입니다.
pip를 사용하여 PyPI에서 라이브러리와 해당 종속성을 설치하는 것이 좋습니다. 이는 단일 명령으로 수행할 수 있습니다.
$ pip install googleads
대안으로 라이브러리를 tarball로 다운로드할 수 있습니다. 설치를 시작하려면 다운로드하고 압축을 푼 클라이언트 라이브러리가 포함된 디렉터리로 이동하여 다음과 같이 "setup.py" 스크립트를 실행합니다.
$ python setup.py build install
googleads.yaml 파일을 홈 디렉터리에 복사합니다.
이는 클라이언트를 초기화하기 위해 로드할 수 있는 자격 증명 및 기타 설정을 저장하는 데 사용됩니다.
OAuth2 자격 증명 설정
Ad Manager API는 OAuth2를 인증으로 사용합니다.
기구. 사용 사례에 따라 아래의 적절한 가이드를 따르세요.
자신의 자격 증명을 사용하여 API에 액세스하는 경우...
클라이언트를 대신하여 API에 액세스하는 경우...
웹 애플리케이션 개발(Ad Manager)
Ad Manager 사용
출시 페이지에서 최신 버전의 Ad Manager에 대한 코드 예제를 찾을 수 있습니다.
또는 이 저장소의 예제 디렉터리에서 Ad Manager 샘플을 찾을 수 있습니다.
API 인증 정보를 캐시할 수 있습니다. 라이브러리에는 이 작업을 수행하는 방법을 보여주는 googleads.yaml
이라는 샘플 파일이 포함되어 있습니다. 사용하려는 API 및 기능에 대한 필드를 입력하세요. 라이브러리의 LoadFromStorage
메서드는 기본적으로 홈 디렉터리에서 이 이름을 가진 파일을 찾는 것이지만 올바른 yaml 콘텐츠가 있는 모든 파일의 경로를 전달할 수 있습니다.
# 기본 위치 사용 - 홈 디렉토리:ad_manager_client = ad_manager.AdManagerClient.LoadFromStorage()# 또는 파일 위치 전달:ad_manager_client = ad_manager.AdManagerClient.LoadFromStorage('C:MyDirectorygoogleads.yaml')
클라이언트 라이브러리와 직접 관련된 문제가 있는 경우 문제 추적기를 사용하세요.
특정 API와 관련된 문제가 있는 경우 제품 지원 포럼을 사용하세요.
애드 관리자
라이브러리는 Python의 내장 로깅 프레임워크를 사용합니다. 구성 파일을 통해 구성을 지정할 수 있습니다. 예를 보려면 googleads.yaml을 참조하세요.
또는 로깅 구성을 수동으로 지정할 수 있습니다. 예를 들어 SOAP 상호 작용을 stdout에 기록하고 Zeep 비누 라이브러리를 사용하는 경우 다음을 수행할 수 있습니다.
logging.basicConfig(level=logging.INFO, format=googleads.util.LOGGER_FORMAT)logging.getLogger('googleads.soap').setLevel(logging.DEBUG)
파일에 기록하려면 출력을 파일에 기록하도록 구성된 이 소스에 로그 처리기를 연결해야 합니다.
로깅에 사용되는 zeep 플러그인은 출력에서 민감한 데이터를 제거합니다. 이 데이터를 로그에 포함하려면 간단한 로깅 플러그인을 구현해야 합니다. 예를 들어:
class DangerousZeepLogger(zeep.Plugin): def ingress(self, 봉투, http_headers, 작업):logging.debug('수신 응답: n%s', etree.tostring(envelope, Pretty_print=True))반환 봉투, http_headers def egress(self, 봉투, http_headers, 작업, 바인딩_옵션):logging.debug('수신 응답: n%s', etree.tostring(envelope, Pretty_print=True))반환 봉투, http_headersad_manager_client.zeep_client.plugins.append(DangerousZeepLogger ())
기본적으로 클라이언트는 WSDL을 읽고 다이제스트하는 데 비용이 많이 들 수 있으므로 캐시됩니다. 그러나 기본 캐싱 방법을 사용하려면 App Engine과 같은 특정 호스팅 환경에서는 사용할 수 없는 로컬 파일 시스템에 액세스할 수 있는 권한이 필요합니다.
zeep.cache.Base
구현을 AdManagerClient
이니셜라이저에 전달하여 기본 캐싱 동작을 수정할 수 있습니다.
예를 들어, zeep을 사용하여 캐시 파일의 다른 위치와 기간을 구성합니다.
doc_cache = zeep.cache.SqliteCache(경로=cache_path)ad_manager_client = ad_manager.AdManagerClient( oauth2_client, application_name, network_code=network_code, 캐시=doc_cache)
zeep을 사용하여 비슷한 방식으로 캐싱을 비활성화할 수도 있습니다.
ad_manager_client = ad_manager.AdManagerClient( oauth2_client, application_name, network_code=network_code, 캐시=googleads.common.ZeepServiceProxy.NO_CACHE)
이 라이브러리는 Python 3.7+만 지원합니다.
- httplib2 -- https://pypi.python.org/pypi/httplib2/ - oauth2client -- https://pypi.python.org/pypi/oauth2client/ - pysocks -- https://pypi.python.org/pypi/PySocks/ - pytz -- https://pypi.python.org/pypi/pytz - pyYAML -- https://pypi.python.org/pypi/pyYAML/ - xmltodict -- https://pypi.python.org/pypi/xmltodict/ - zeep -- https://pypi.python.org/pypi/zeep - mock -- https://pypi.python.org/pypi/mock (only needed to run unit tests) - pyfakefs -- https://pypi.python.org/pypi/pyfakefs (only needed to run unit tests)
Mark Saniscalchi David Wihl Ben Karl