该客户端库简化了对 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