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 广告的各种尺寸,跟大家分享一下. ...
随机推荐
- 几种常用的MOS管参数、应用电路及区别:IRF540N、IRF9540N、IRF9540
1. IRF540N,N沟道,100V,33A,44mΩ@10V 栅极(Gate-G,也叫做门极),源极(Source-S), 漏极(Drain-D) 漏源电压(Vdss) 100V 连续漏极电流(I ...
- 三分钟掌控Actor模型和CSP模型
回顾一下前文<三分钟掌握共享内存模型和 Actor模型> Actor vs CSP模型 传统多线程的的共享内存(ShareMemory)模型使用lock,condition等同步原语来强行 ...
- 22.2.14session和反反爬处理
22.2.14 session和反反爬处理 1.session: requests库包含session,都是用来对一个url发送请求,区别在于session是一连串的请求,在session请求过程中c ...
- 【bjdctf】 BJD hamburger competition
是一个游戏 静态分析和动态分析都没思路 尝试查看运行时动态链接库 其中assembly-csharp.dll可能为实现游戏功能的动态链接库 .net逆向 Dnspy反编译 关键代码如上 Getflag ...
- 学习廖雪峰的Git教程4--继续学习分支管理
查看分支 git branch -a 查看远程分支 git branch 查看本地分支 创建分支 git checkout -b branch-name 在远程创建一个属于自己的分支 删除分支 删除本 ...
- python -sorted 学习
跟C++ STL中的sort的用法类似,sorted用来对列表进行排序 比如: list = [3,4,82,66,22,11] 用sorted(list),就会对对list这个表进行排序 如果,so ...
- 手撕代码:leetcode70爬楼梯
装载于:https://blog.csdn.net/qq_35091252/article/details/90576779 题目描述 假设你正在爬楼梯.需要n阶你才能到达楼顶. 每次你可以爬1或2个 ...
- SpringSecurity集成启动报 In the composition of all global method configuration, no annotation support was actually activated 异常
异常内容: Caused by: java.lang.IllegalStateException: In the composition of all global method configurat ...
- 遇到的问题之“Dubbo 直连 Invoke remote method timeout 问题!”
Dubbo 直连 Invoke remote method timeout 问题! 在测试环境消费者直连服务端进行测试时, 其中一个RPC接口抛出一个错误, 如下: Caused by: com. ...
- html5 canvas基础10点
本文主要讲解下一些canvas的基础 1.<canvas id="canvas">若此浏览器不支持canvas会显示该文字</canvas> //创建个ht ...