Google广告批量投放脚本
该脚本文件是一个转化文件,将编辑的Google投广告模板转化成Google批量投放广告的脚本文件,实现批量投放广告,节省投广时间。PS:要与相应的模板结合使用,投广告模板在本人博客的文件中,可以下载。
关于模板的注意事项:
1、模板中的广告系列和广告组名称不能相同
2、如有使用问题可以与我联系
PS:如果有需要用自己的模板进行批量投放的可以进入我的博客与我联系。
1 import xlrd
2 import tkinter as tk
3
4 window = tk.Tk()
5 window.title('Google投放广告脚本')
6 window.geometry('400x300')
7
8 l = tk.Label(window,text='请输入需要投广的文件名',font=('Arial',12),width=25,height=2)
9 e =tk.Entry(window,show=None)
10 l.pack()
11 e.pack()
12
13 def zhuanhuan():
14 import os
15 # print(e.get())
16 cwd =os.getcwd()
17 data_path = cwd +'\\'+e.get()+'.xlsx'
18
19 muban = xlrd.open_workbook(data_path)
20 xl = muban.sheets()[0]
21
22 xilie = []
23 group =[]
24 group_price = []
25 product_price = []
26 sku_size = []
27 for i in range(1,xl.nrows):
28 row = xl.row_values(i)
29 xilie.append(row[0])
30 group.append(row[1])
31 group_price.append(row[10])
32 product_price.append(row[11])
33 sku_size.append(row[9].split('\n'))
34 # print(sku_size)
35
36 file_handle = open(e.get()+'.txt',mode='w')
37 file_handle.write('function main (){ \nvar compaign =[')
38 for j in range(len(xilie)-1):
39 file_handle.write('"'+xilie[j]+'"'+',')
40 file_handle.write('"'+xilie[len(xilie)-1]+'"]'+';\nvar group =[')
41 for j in range(len(group)-1):
42 file_handle.write('"'+group[j]+'"'+',')
43 file_handle.write('"'+group[len(group)-1]+'"]'+';\nvar money =[')
44 for j in range(len(group_price)-1):
45 file_handle.write('"'+str(group_price[j])+'"'+',')
46 file_handle.write('"'+str(group_price[len(group_price)-1])+'"]'+';\nfor(var i=0 ;i<compaign.length;i++){\nCreateGroup(compaign[i],group[i],money[i]);\n}\nCreateProduct(group,compaign) ;\nCreateAd(group,compaign);\n}\n'
47 'function CreateGroup(campaignName,adGroupName,money){\nvar shoppingCampaign = AdsApp.shoppingCampaigns().withCondition("CampaignName = ' +"'"+'"'+' + campaignName +'+'"'+"'"+'").get().next();\n'
48 'var adGroupOperation = shoppingCampaign.newAdGroupBuilder().withName(adGroupName).withBiddingStrategy('+"'"'MANUAL_CPC'"'"+').withStatus('+"'"'ENABLED'"'"+').withCpc'
49 '(money).build();\nreturn true;\n}\nfunction CreateProduct(group,compaign) {\nvar product =[')
50 for j in range(len(sku_size)):
51 file_handle.write(str(sku_size[j])+',')
52 file_handle.write('];\nvar product_money =[')
53 for j in range(len(product_price)-1):
54 file_handle.write('"'+str(product_price[j])+'"'+',')
55 file_handle.write('"'+str(product_price[len(product_price)-1])+'"];\nfor(var i =0;i<group.length;i++){\nvar groups = AdsApp.shoppingAdGroups().withCondition("CampaignName = '
56 +"'"+'" + compaign[i] + "' +"'"+'").withCondition("AdGroupName = '+"'"+'" + group[i] + "'+"'"+'").get().next();\n'
57 +'var child = groups.createRootProductGroup();\nvar root = groups.rootProductGroup();\nfor(var x = 0;x<product[i].length;x++){\nvar a = root.newChild().itemIdBuilder().withValue(product[i][x]).withBid(product_money[i]).build();\n'
58 '}\n}\n}\nfunction CreateAd(group,compaign) {\nfor(var i =0;i<group.length;i++){\nvar groups = AdsApp.shoppingAdGroups().withCondition("CampaignName = '
59 +"'"+'" + compaign[i] + "' +"'"+'").withCondition("AdGroupName = '+"'"+'" + group[i] + "'+"'"+'").get().next();\n'
60 'var adOperation = groups.newAdBuilder().build(); }\n}')
61
62 file_handle.close()
63 return None
64 b = tk.Button(window,text='转换成脚本文件',width=12,height=1,command=zhuanhuan)
65 b.pack()
66
67 window.mainloop()
Google广告批量投放脚本的更多相关文章
- Oracle批量执行脚本文件
以下是Oracle批量执行脚本文件的步骤和方法 1.创建脚本文件(xx.sql): 例如文件CreateTable Create table tb1( id varchar2(30), Name va ...
- 通过SqlClr制作Sql自动化批量执行脚本
原文:通过SqlClr制作Sql自动化批量执行脚本 通过SqlClr制作Sql自动化批量执行脚本 在与同事一起做项目时,看到同事用sqlclr做批量执行脚本,感觉挺新奇的就上网搜集资料自己模仿跟做了个 ...
- mysql批量数据脚本
mysql批量数据脚本 1 建表 create table dept( id int unsigned primary key auto_increment, deptno mediumint uns ...
- MIPCMS V3.1.0 远程写入配置文件Getshell过程分析(附批量getshell脚本)
作者:i春秋作家--F0rmat 0×01 前言 今天翻了下CNVD,看到了一个MIPCMS的远程代码执行漏洞,然后就去官网下载了这个版本的源码研究了下.看下整体的结构,用的是thinkPHP的架 ...
- hadoop_批量命令脚本&同步文件脚本
1.xcall.sh 批量命令脚本,例:xcall.sh jps ,查看hadoop101~ hadoop104的jps进程 注意:在执行命令的时候,若是提示没有这个命令,但是在本机又可以执行,记得在 ...
- SaltStack 批量执行脚本
这里演示如何使用 salt-master 对多台 salt-minion 批量执行脚本,步骤如下: [root@localhost ~]$ cat /srv/salt/top.sls # 先定义入口配 ...
- BBScan — 一个信息泄漏批量扫描脚本
github:https://github.com/lijiejie/BBScan 有些朋友手上有几十万甚至上百万个域名,比如,乌云所有厂商的子域名. 如果把这30万个域名全部扔给wvs,APPsca ...
- SSRF——weblogic vulhub 漏洞复现及攻击内网redis(一)(附批量检测脚本)
0X01 概述 SSRF(Server-Side Request Forgery, 服务端请求伪造)利用漏洞可以发起网络请求来攻击内网服务.利用SSRF能实现以下效果:1) 扫描内网(主 ...
- 谷歌(google)广告尺寸大小列表
在平时做网页模板时,我们需要计算Google AdSense 的尺寸,以确保它能和页面完美的结合,提高AdSense的点击率,进台后看又很麻烦,下面整理了Google 广告的各种尺寸,跟大家分享一下. ...
随机推荐
- BUAA_C++算法板子积累_动态规划、图算法、计算几何、FFT
Hello #include <iostream> #include <cstdio> #include <cctype> #include <cmath&g ...
- Ubuntu修改登录密码
Ubuntu 修改用户名或密码后无法登陆 解决方法 2017年09月01日 16:48:05 lee_3312 阅读数:2192 解决方法:进入recovery-mode修改登录信息 1)重启系统 ...
- CI_CD 简单了解
- 《自动控制原理》个人笔记(来自ppt课件)
控制的含义 控制(CONTROL)----某个主体使某个客体按照一定的目的动作.主体–人:人工控制: 机器:自动控制客体–指一件物体,一套装置,一个物化过程,一个特定系统. 人工控制与自动控制 人在控 ...
- CSS中宽度与高度
div的高度 div由的高度是由它里面的字体乘以字体建议的行高确定,跟这个字体大小没有关系(不同字体相同字体大小,会影响div的高度.)如过明确告诉浏览器行高,div高度就是行高. 文字两端对齐: 文 ...
- 从问题找原因之CSS浮动清除
问题描述 浮动元素导致的后面img标签居中对齐"失败",如下图 <div> <div class="content1"> <div ...
- CSS实例:翻转图片、滚动图片栏、打开大门
CSS 翻转图片主要用到的技术除了3D翻转和定位 ,还用到了一个属性 backface-visibility:visable|hidden;该属性主要是用来设定元素背面是否可见. 效果图如下: 具体的 ...
- java string中replaceAll替换特殊符号
例如在mysql数据库中建表时表名不能使用特殊符号,'-','{}'等等,所以我们要筛选去掉 public static void main(String[] args) { String regEx ...
- 每日学习--Kociemba魔方算法
由图可知19步还原魔方
- Python使用逻辑回归估算OR值
第一种是统计学方法,需要用到 statsmodels包 statsmodels是统计和计量经济学的package,包含了用于参数评估和统计测试的实用工具 第二种是机器学习,需要使用sklearn中的L ...