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 广告的各种尺寸,跟大家分享一下. ...
随机推荐
- 【原创】浅谈指针(十一)alloca函数
前言 好几天没写了,最近网课,事情也比较多,今天多写点东西. 目录 前言 alloca函数 1.简介 2.反汇编看alloca 3.手工调用alloca函数 4.注意事项 alloca函数 1.简介 ...
- vue&uniapp环境搭建以及项目创建(webstorm)
以下是针对webstorm用户上手uniapp框架的学习 vue环境搭建以及配置(脚手架搭建) 首先要明确三样东西 npm:node.js的包管理器 webpack:主要用途是通过CommonJS 的 ...
- springcloud断路器的作用?
当一个服务调用另一个服务由于网络原因或自身原因出现问题,调用者就会等待被调用者的响应 当更多的服务请求到这些资源导致更多的请求等待,发生连锁效应(雪崩效应) 断路器有完全打开状态:一段时间内 达到一定 ...
- Hashmap如何同步?
当我们需要一个同步的HashMap时,有两种选择: ●使用Collections.synchronizedMap(..)来同步HashMap. ●使用ConcurrentHashMap的 这两个选项之 ...
- C# 如何让new 出来的form显示在最外层?
/// <summary> /// 显示比对不同点的位置 /// </summary> public void showDiffImage() { //在此处弹出不一样图 Bi ...
- java中的函数式接口
是什么?? 有且只有一个抽象方法的接口 场景: 适用于函数式编程场景(使用lambda表达式编程)的接口,函数式接口可以适用于lambda使用的接口. 只有确保接口中有且只有一个抽象方法,java中的 ...
- JavaScript 变动事件
变动事件,当用户修改了DOM结构(添加或删除元素节点)后发生. 任何时候当元素被添加到DOM中或从DOM中移除时,DOM的结构就发生了变化,而这种变化就会触动变动事件. 1 <html> ...
- Windows 10 安装 wordpress
如何在Windows上安装wordpress. 安装前准备: 安装并配置好Apache httpd及PHP,见<Windows10安装PHP7+Apache 2.4>. 安装好MySQL, ...
- 单总线协议DS1820代码
单总线协议DS1820代码 一.DS18B20初始化 (1).数据线拉到低电平"0". (2).延时480微妙(该时间的时间范围可以从480到960微妙). (3).数据线拉到高电 ...
- Brunch:入门上手
在 Phoenix 项目中遇到关于 Branch 这个 HTML5 构建工具的问题, 在这里为了剥离问题的复杂度, 独立创建一个 Branch 前端项目来探索如何使用 Brunch 这个全新的前端构建 ...