该脚本文件是一个转化文件,将编辑的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广告批量投放脚本的更多相关文章

  1. Oracle批量执行脚本文件

    以下是Oracle批量执行脚本文件的步骤和方法 1.创建脚本文件(xx.sql): 例如文件CreateTable Create table tb1( id varchar2(30), Name va ...

  2. 通过SqlClr制作Sql自动化批量执行脚本

    原文:通过SqlClr制作Sql自动化批量执行脚本 通过SqlClr制作Sql自动化批量执行脚本 在与同事一起做项目时,看到同事用sqlclr做批量执行脚本,感觉挺新奇的就上网搜集资料自己模仿跟做了个 ...

  3. mysql批量数据脚本

    mysql批量数据脚本 1 建表 create table dept( id int unsigned primary key auto_increment, deptno mediumint uns ...

  4. MIPCMS V3.1.0 远程写入配置文件Getshell过程分析(附批量getshell脚本)

      作者:i春秋作家--F0rmat 0×01 前言 今天翻了下CNVD,看到了一个MIPCMS的远程代码执行漏洞,然后就去官网下载了这个版本的源码研究了下.看下整体的结构,用的是thinkPHP的架 ...

  5. hadoop_批量命令脚本&同步文件脚本

    1.xcall.sh 批量命令脚本,例:xcall.sh jps ,查看hadoop101~ hadoop104的jps进程 注意:在执行命令的时候,若是提示没有这个命令,但是在本机又可以执行,记得在 ...

  6. SaltStack 批量执行脚本

    这里演示如何使用 salt-master 对多台 salt-minion 批量执行脚本,步骤如下: [root@localhost ~]$ cat /srv/salt/top.sls # 先定义入口配 ...

  7. BBScan — 一个信息泄漏批量扫描脚本

    github:https://github.com/lijiejie/BBScan 有些朋友手上有几十万甚至上百万个域名,比如,乌云所有厂商的子域名. 如果把这30万个域名全部扔给wvs,APPsca ...

  8. SSRF——weblogic vulhub 漏洞复现及攻击内网redis(一)(附批量检测脚本)

    0X01 概述 SSRF(Server-Side Request Forgery, 服务端请求伪造)利用漏洞可以发起网络请求来攻击内网服务.利用SSRF能实现以下效果:1)        扫描内网(主 ...

  9. 谷歌(google)广告尺寸大小列表

    在平时做网页模板时,我们需要计算Google AdSense 的尺寸,以确保它能和页面完美的结合,提高AdSense的点击率,进台后看又很麻烦,下面整理了Google 广告的各种尺寸,跟大家分享一下. ...

随机推荐

  1. xx局点FusionCloud6.3 type1 计算配额失败问题

    现象: 排查过程: 1.登录云平台部署面,选择部署资源-服务器 2.找到MOC-ManageOne-Service01.MOC-ManageOne-Service02两台机器ip地址. 3.用ssh工 ...

  2. sharding-jdbc教程 看这一篇就够了

    ​ Sharding-JDBC是ShardingSphere的第一个产品,也是ShardingSphere的前身. 它定位为轻量级Java框架,在Java的JDBC层提供的额外服务.它使用客户端直连数 ...

  3. HashMap集合类 5种最佳遍历方式

    1. 使用 Iterator 遍历 HashMap EntrySet 2. 使用 Iterator 遍历 HashMap KeySet 3. 使用 For-each 循环迭代 HashMap 4. 使 ...

  4. loj2985「WC2019」I 君的商店(二分,思维)

    loj2985「WC2019」I 君的商店(二分,思维) loj Luogu 题解时间 真的有点猛的思维题. 首先有一个十分简单的思路: 花费 $ 2N $ 确定一个为 $ 1 $ 的数. 之后每次随 ...

  5. vue渐进式?

    小到可以只使用核心功能,比如单文件组件作为一部分嵌入:大到使用整个工程,vue init webpack my-project来构建项目:VUE的核心库及其生态系统也可以满足你的各式需求(core+v ...

  6. 什么是springcloud?springcloud断路器的作用是什么?springcloud的核心组件有什么?

    一.什么是springcloud 1.springcloud概述 Spring Cloud是一个微服务框架,相比Dubbo等RPC框架, Spring Cloud提供的全套的分布式系统解决方案. Sp ...

  7. Mybatis 动态 sql 有什么用?执行原理?有哪些动态 sql?

    Mybatis 动态 sql 可以在 Xml 映射文件内,以标签的形式编写动态 sql,执行原理 是根据表达式的值 完成逻辑判断并动态拼接 sql 的功能. Mybatis 提供了 9 种动态 sql ...

  8. Mybatis mapper文件占位符设置默认值

    如果要设置占位符默认值的话:需要进行 设置 org.apache.ibatis.parsing.PropertyParser.enable-default-value 属性为true启用占位符默认值处 ...

  9. 学习DNS(二)

    DNS出现及演化 网络出现的早期 是使用IP地址通讯的,那时就几台主机通讯.但是随着接入网络主机的增多,这种数字标识的地址非常不便于记忆,UNIX上就出现了建立一个叫做hosts的文件(Linux和w ...

  10. cpu设计过程

    一款CPU是如何设计出来的? 前面一段,我们了解了芯片的制造过程,也就是如何从沙子中提取硅.把硅切成片,在片上通过离子注入实现PN结.实现各种二极管.三极管.CMOS管.从而实现千万门级大规模集成电路 ...