该客户端库简化了对 Google Ad Manager SOAP API 的访问。该库提供了存储身份验证和创建 SOAP Web 服务客户端的简单方法。它还包含示例代码,可帮助您开始与我们的 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 示例。
可以缓存您的 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 Soap 库,则可以执行以下操作:
logging.basicConfig(level=logging.INFO, format=googleads.util.LOGGER_FORMAT)logging.getLogger('googleads.soap').setLevel(logging.DEBUG)
如果您希望记录到文件,则需要将日志处理程序附加到该源,该源配置为将输出写入文件。
用于日志记录的 zeep 插件会从其输出中删除敏感数据。如果您希望将此数据包含在日志中,则需要实现自己的简单日志记录插件。例如:
类 DangerousZeepLogger(zeep.Plugin): def ingress(self, 信封, http_headers, 操作):logging.debug('传入响应: n%s', etree.tostring(envelope, Pretty_print=True))return 信封, 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(path=cache_path)ad_manager_client = ad_manager.AdManagerClient( oauth2_client、application_name、network_code=network_code、cache=doc_cache)
您还可以使用 zeep 以类似的方式禁用缓存
ad_manager_client = ad_manager.AdManagerClient( oauth2_client、application_name、network_code=network_code、cache=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