Django Modelling and Helpers for the Google Adwords API.

django-google-adwords的Python项目详细描述


DjangoGoogle Adwords API建模和帮助程序。

使用Celery在后台处理任务,提供的模型包括 方法检索和存储帐户、活动、广告组和广告的数据 用于进一步处理的数据库。

目前支持google adwords api版本v201506

安装

您可以通过python包索引(pypi)安装django google adwords。 或者来自Github。

使用pip;安装

pip install django-google-adwords

来自Github;

pip install git+https://github.com/alexhayes/django-google-adwords.git

设置

django-google-adwords使用django-appconf设置 有很多。开箱即用只需设置所需的 但是,您很可能希望更改芹菜队列设置。

必需

您必须在django设置文件中放置以下内容。

GOOGLEADWORDS_CLIENT_ID='your-adwords-client-id'# ie.. xyz123.apps.googleusercontent.comGOOGLEADWORDS_CLIENT_SECRET='your-adwords-client-secret'# xyz123xyz123xyz123xyz123GOOGLEADWORDS_REFRESH_TOKEN='your-adwords-refresh-token'# 1/xyz123xyz123xyz123xyz123xyz123xyz123xyz123xGOOGLEADWORDS_DEVELOPER_TOKEN='your-adwords-developer-token'# 1234567890GOOGLEADWORDS_CLIENT_CUSTOMER_ID='your-adwords-client-customer-id'# xyz123xyz123xyz123xyz1

如果你还不知道这些值,你可能会想看看谷歌 广告词OAuth 2.0 Authentication文档。

其他设置

其他设置可以在django_google_adwords.settings中找到,并且可以 通过将它们放入以GOOGLEADWORDS_开头的设置文件来覆盖。

芹菜

Celery安装和配置有些超出了此范围 文档,但为了将google adwords数据同步到模型中,您需要一个 工作芹菜。

实际上,数据同步是一个两步过程,如下所示;

一。报告是使用 设置GOOGLEADWORDS_REPORT_RETRIEVAL_CELERY_QUEUE。 2.下载的报告使用 正在设置GOOGLEADWORDS_DATA_IMPORT_CELERY_QUEUE

默认情况下,上述两个设置以及GOOGLEADWORDS_HOUSEKEEPING_CELERY_QUEUE 设置为celery但是您可能希望将它们与 工人,如下所示;

GOOGLEADWORDS_REPORT_RETRIEVAL_CELERY_QUEUE='adwords_retrieval'GOOGLEADWORDS_DATA_IMPORT_CELERY_QUEUE='adwords_import'GOOGLEADWORDS_HOUSEKEEPING_CELERY_QUEUE='adwords_housekeeping'

使用上面的命令,您可以运行以下工人;

celeryworker--appmyapp--queuesadwords_retrieval&celeryworker--appmyapp--queuesadwords_import&celeryworker--appmyapp--queuesadwords_housekeeping&

用法

存储本地数据

提供的模型包括将google adwords api中的数据同步到 本地模型以便在稍后阶段查询。

account_id=[YOURGOOGLEADWORDSACCOUNTID]account=Account.objects.create(account_id=account_id)result=account.sync()# returns a celery AsyncResult

根据adwords帐户包含的数据量,上面的 可能需要相当长的时间来填充!建议是监控芹菜的任务。

您可以通过以下设置控制同步的数据:

GOOGLEADWORDS_SYNC_ACCOUNT=True# Sync account dataGOOGLEADWORDS_SYNC_CAMPAIGN=True# Sync campaign dataGOOGLEADWORDS_SYNC_ADGROUP=True# Sync adgroup dataGOOGLEADWORDS_SYNC_AD=False# Sync ad data - note this can take a LOOOONNNNG time if you have lots of ads...

创建帐户或拥有多个帐户后,可以使用 Celery Beat通过设置 CELERYBEAT_SCHEDULE类似于以下;

fromcelery.schedulesimportcrontabCELERYBEAT_SCHEDULE={'sync_google_adwords_data':{'task':'django_google_adwords.tasks.sync_chain','schedule':crontab(minute=5,hour=0),},}

分页数据

要使用api但不在模型中存储数据,可以在生成的数据中分页 如下;

selector={'searchParameters':[{'xsi_type':'RelatedToQuerySearchParameter','queries':['seo','adwords','adwords seo']},{'xsi_type':'LanguageSearchParameter','languages':[{'id':'1000'}]},{'xsi_type':'LocationSearchParameter','locations':[{'id':'2036'}]},],'ideaType':'KEYWORD','requestType':'IDEAS','requestedAttributeTypes':['KEYWORD_TEXT','SEARCH_VOLUME'],}for(data,selector)inpaged_request('TargetingIdeaService',selector):printdata

google adwords api版本

其目的是与最新的google adwords api保持同步。 版本-当前为v201506

要做到这一点,我们很可能需要打破向后兼容 api可以做到这一点。

向后不兼容更改

v0.6.0

  • 已将设置GOOGLEADWORDS_START_FINISH_CELERY_QUEUE更改为GOOGLEADWORDS_HOUSEKEEPING_CELERY_QUEUE
  • 删除了Alert.sync_alerts()Alert.get_selector()和任务sync_alerts,因为这些函数调用的服务已在google api中停止。^ {CD14> }模型保持在适当位置,以便在需要时可以访问现有警报。

v0.4.0

  • 现在使用django 1.7迁移。
  • 从money切换到djmoney(它本身使用py moneyed)。

贡献

我们鼓励您做出贡献-请分叉并提交拉动请求。得到 在开发环境中,您应该能够执行以下操作;

git clone https://bitbucket.org/alexhayes/django-google-adwords.git
cd django-google-adwords
pip instal -r requirements/default.txt
pip instal -r requirements/test.txt
./runtests.py

要运行完整的测试套件,您可以运行;

tox

注:Python2.7、3.3、3.4和PyPyDjango1.7和1.8的毒性测试。 你需要欺骗结果这些python版本的安装文档 在您的操作系统上,在ubuntu上,您可以执行以下操作;

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:fkrull/deadsnakes
sudo apt-get update
sudo apt-get install python2.7 python2.7-dev
sudo apt-get install python3.3 python3.3-dev
sudo apt-get install python3.4 python3.4-dev
sudo apt-get install pypy pypy-dev

注意django-nose问题#133#197导致一些 因此测试在 requirements/test.pyrequirements/test3.py

谢谢

感谢您roi.com.au支持这个项目。

作者

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在tex文件中以读/写方式拆分一行?   java Ping选项s的值不正确,有效范围为1到4   java我需要在Eclipse中设置/配置哪些环境变量(对于SeleniumWebDriver)?如果我不设置/配置它们呢?   java将经过筛选的第二个表的两列映射到一个集合成员   垃圾收集Java:增加YoungGen大小以提高GC性能   JavaHibernate对复杂连接执行两个查询,而不是一个查询   foreach Java 8:映射而非简单循环   java指定ThreadPoolExecutor问题   java如何解决此错误:二进制运算符“&&”的操作数类型错误   JavaJPA+MariaDB:排序规则如何影响unicode支持?   在循环中RxJava中变量延迟前后的java执行函数   java初始化数组中的数组   java在LWJGL中绘制四边形时,我做错了什么?   java错误找不到符号变量id   java组织。阿帕奇。log4j。jmx不具备生产质量?(log4j 1.2)