Django Modelling and Helpers for the Google Adwords API.
django-google-adwords的Python项目详细描述
Django为Google 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
向后不兼容更改
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.py
和requirements/test3.py
。
谢谢
感谢您roi.com.au支持这个项目。