对接腾讯广告平台系统开发(半自动化广告投放系统)

这是我最近刚弄完上线的一套比较有意思的比较大型的系统,因此特意记录一下。

先说这套玩意获得的效果:竞品的投放团队运营团队就算有一百个人,天天996,007加班不睡觉,投放效率也没有我们四五个人的高,这个是人工成本的一次大缩减。在效果反馈和素材投放效果的实时性准确性上,肯定也不及专门定制的系统根据各项指标排序展示准确,这个是实用性价值方面,其余的还有创意素材管理…人群定向管理…批量组合逻辑…等等等等~非常庆幸自己有机会坐拥公司提供的这么多资源,才能有这么有价值的产出~

具体功能详述:

腾讯手握大量用户数据(我们注册时的性别/年龄/住址/姓名/学历/消费能力),又有微信QQ公众号朋友圈等等社交媒体,又有大量的游戏,收集了我们这些数据,能提供很精准的广告投放功能。所以他们有一套广告平台。

在这里插入图片描述

这套东西是收费的广告投放系统,在交了“入场费”后,我们就可以进去填写我们的投放计划,我们的广告落地页,我们的广告图,广告文案,创意设计等等,以及我们自己填写的出价策略+日预算来增加曝光度等等一大堆复杂的功能。
我公司做的线上教育嘛,为了跟猿辅导,作业帮,学而思那些竞品瓜分市场大蛋糕,自然也要借助这么好用的一个工具,将广告打到家长们的朋友圈,QQ动态,公众号,网页插图等等地方(类似下面)。

在这里插入图片描述

其实这个跟公众号运营一样,你可以直接在腾讯提供的后台操作,但是就比较多限制,不够人性化,不能满足公司特殊的业务需求,比如这个广告平台,图文素材上传问题就是每个投手都有一个账号一套,素材不共享,投放批次无法区分,沟通成本大,一次只能选择单图文单定向,无法批量创建,投手们和设计师们苦不堪言。于是作为负责对外招生线的后端开发同学们,就有事可做来。
这里有几个概念简单说明一下:

(1)推广计划:其实就是整个广告的投放推广的计划,是最大的一层,包含了投放时间段和计划预算(预算金额高的腾讯会增加该计划的曝光量),所有后序操作都必须基于推广计划才能继续做。
(2)广告创意:其实就是设计师们做出来的图,还有投手们运营们绞尽脑汁想出来的广告台词文案拼接成的,还包含你的落地页链接,下单也链接,支持商城小程序和商城网页等等。
(3)广告组:一个推广计划下会有1~10个广告组,广告组也有预算,有它各自的定向类型,扩量,投放目标类型等等一大堆参数。
(4)广告:记录了广告组ID,创意ID,计划ID,只有创建完毕广告,整个计划才算创建完整。
(5)投手账号:开通了能新建广告功能权限的投手的微信账号。
(6)定向:分为人群定向和地域定向,人群定向其实是限定人的年龄区间,性别,受教育程度,消费能力等等一堆数据,比如你不可能推送一个游戏的广告给那些老年人,不可能推送卖房子的广告给小学生吧?地域定向就是经纬度,生活的城市地区,毕竟你不可能推送卖泳衣的给撒哈拉沙漠地区人民,推荐防晒霜给四川人民,推荐广州的房地产广告给黑龙江人民吧?
(7)素材:分为文案素材和图片素材和视频素材。有各自的规格,大小多少M,多少像素,800*680…等等,腾讯很多复杂的组合限制。

简单介绍完概念,如果是有需要的同学可以再详细看腾讯的接口文档:https://developers.e.qq.com/docs/start?version=1.1(友情提示:右下角有人工客服,点开输入人工就可以问问题,它很多文档的参数写的都是错的)

下面开始具体说说踩的坑:

(1)做了60%才发现整个流程缺少了一大块!

我们完全按照腾讯的格式,分层建表,在素材管理那一块,我们做了一套类似高级文件夹功能的系统让投手们共享素材,再也不怕沟通不到位的问题了,大家都知道现在投放线的最新素材版本。然而,我们创建创意的时候,发现所有的素材不能存在我们的资源服务器上,而是要上传到腾讯那边的资源库,然后他们返回一个ID,我们创建广告时候拿的其实是这个ID。于是我们又改了流程,要在上传后将返回的ID全部共享到全部投手账号下,也就是每个账号都上传一遍。

(2)循环逻辑太复杂了吧?!

由于投手们饱受腾讯限定的一条一条创建的苦,他们必须不断重复毫无意义的重复创建工作。所以它们要求能批量创建,但是这个批量功能,复杂程度远超乎我的想象!

功能点一:能多选文案和图片素材/视频素材。
功能点二:能够多选人群定向和多个地域定向进行组合。
功能点三:能够自己输入创建N份推广计划,而不用一条条输入创建。
功能点四:能够自己输入创建N份广告组,而不是创建一条再创建一条。
这样的话,顺序其实跟腾讯那边是相反的,腾讯的顺序是现有计划,再有创意,再有广告组,最后有广告,我们这边却要根据用户输入和多选的素材组合和定向组合来确定要创建多少条计划!!
例:
现在有 图片素材A 图片素材B 文案素材T1 文案素材T2
人群定向 P1 P2 地域定向 广州 G 深圳S
问:一共生成多少条计划?
答: 图文结合: AT1 , AT2 , BT1 ,BT2 。人群地域结合:P1G , P1S , P2 G , P2S.
计划参数组合:
AT1-P1G , AT1-P1S , AT1-P2G …好了你们懂我意思了吧?
其实就是组合套组合,循环套循环而已,那我们就先走我们自己的批量逻辑计算出具体会有多少条组合,再通过腾讯接口去依次创建,剩下就是接口对接,上百个参数的对接,枚举类型的定义。

(3)上面的还不算重头戏,重头戏其实在这里:

我花了两天左右时间,把接口调通了,创建流程全部走通,我们这边的分批次分层级入库也没问题了,开心得雅痞!我忽然想起投手们还能自己输入要创建复制同批次的推广计划份数,于是弱弱的问了一句,他们原话:最少一次也复制几百条吧,不然几条几条的没意义啊。
我凌乱了,为什么?!请听分析:
正如我上面最简单的两图两文组合,两地域两人群组合,已经能生成:2222 = 16条计划(以及后序创建计划下面的三个层级),他们假如输入“几百条”复制数量,那我以300为例子,那就是:16300 = 4800条,那么依次创建三个层级,也就是 4800 * 3 = 14400 次接口请求,然后它们还会输入“复制1~10条广告组的条数”,那就是:14400*10 = 144000.
没问题啊老铁,十四万次接口调用,只为了创建一个投手单次操作的广告。我们有上百个投手,嗯,上面的计算量我还是按照最小的数量来进行的,他们如果选择8图8文甚至更多,轻松上百万次接口请求。
那么,假设忽略网络延迟的情况下,我算做你0.1秒请求响应一个接口,不出故障。那也要:14400秒

在这里插入图片描述

也就是说,这个投手一次创建的广告,(不出故障,全部创建成功,网络稳定情况下,腾讯接口不针对我做限制情况下)耗时4小时。

真好,我用的是Node,单线程,炸爆服务器。

真好,前端一直转圈圈,用户在四个小时后就能得到创建结果,这四小时可以下班回家煮个饭。

好个球啊!!这很明显是不行的,这已经是存在重大的设计缺陷了!!
中间跟产品撕逼的过程我也不说了,直接给解决方案!!
这种瞬间爆炸数据量得不到即时响应的场景,是不是像秒杀之类,我回忆起自己之前做的一个外包项目的秒杀,就是采用了延时策略。
于是:
创建时候不去请求腾讯接口,只会在我们自己的数据库先进行入库操作,同时为了缓解瞬间大量写入更新造成的压力,我们先将创建请求的参数,对象,通过序列化存在Redis中,后序再通过Linux的CronTab定时任务获取出来,反序列化还原回对象,再进行入库操作,操作成功后记得把该条记录的Key覆盖掉删掉。
把创建流程改为全部先入库,概念从传入单个的“广告条件”,改为传入“广告条件参数包”,将两万个计划和两万个单条创建参数(从前端传入的条件参数包中循环组合拆分出来)组合先insert进数据库,待腾讯返回ID字段留空,并且模仿腾讯广告的层级关系依次创建后续的创意,广告组,广告先入库。然后再通过CronTab定时任务(1分钟)依次从数据库拿status为0的未创建的计划和对应的计划参数和旗下的全部子层级出来,再通过计划的参数依次调用腾讯创建接口,把获得的ID再放到下一层级创建参数中依次循环创建,如果其中一层级失败,记录相关的错误信息(层级+腾讯返回的错误原因)到计划表,整条广告计划创建失败。
用户在运营后台虽然不会等待太久,但是其实我们这边的创建申请,可能要几个小时甚至更久才轮询到再调用腾讯创建接口创建,才会出现在腾讯计划列表,失去了实时性,失败原因得不到及时反馈,紧急情况下不能立即进行修改重投。
协商过后,其实这个已经是最好的解决方案了,这也是没办法的事情,投手们因为已经是批量了,不可能马上能得到反馈,但是我们能够优化它的体验,给个创建进度条给他们看,及时记录失败原因,方便他们修改后重试。
通过这一套大型系统(四套子系统:投手账号管理系统,素材管理系统,定向管理系统,投放管理系统)的创建,真的是非常有意思,但是工期实在太紧张(3星期),搞得压力真的很大。

当然,这还不是结束,这还仅仅是开始,后期还有动态商品类型迭代(包含商品库和商品目录等关系子系统),还有一堆又一堆的新需求迭代~把它打造得更完善~

PS:刚上线一个月就有顾客闻讯而来希望买这套系统,这对于作为父亲的我来说,真是莫大的幸福~

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/18930.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT 会取代人的哪些工作?哪些人群的职业规划需要转变?

ChatGPT 会取代人的哪些工作?哪些人群的职业规划需要转变? 作为一个人工智能,ChatGPT 可以用于许多自动化和智能化的工作领域。以下是 ChatGPT 可能会取代人的一些工作: 客服和客户支持:ChatGPT 可以接管一些基本的客户…

怎样写毕业论文的开题报告和任务书?

在开始一份毕业论文之前,任务书和开题报告是每一位同学都绕不开的,总有小伙伴为此头疼不已。为了让大家清楚地了解到什么是毕业论文的开题报告和任务书,以及如何写好开题报告和任务书,我总结了一篇大约2000字的文章,将…

开题报告的选题依据怎么写?

宝子们!是不是导师在催你的开题报告啦~导师给你选了一个选题,是不是你还没琢磨好这个选题想表达点啥?到底有什么依据选这个选题?选题依据由什么组成?且先不说如何把选题写的足够出彩,但能不能找到一个合适的…

论文开题报告怎么写?

同学们,是不是又到了一年一度写开题报告的时候呀?是不是还在为不知道论文的开题报告怎么写而苦恼? Take it easy!我带着倾尽我所有开题报告写作经验总结出来的最强保姆级开题报告解说来啦,一定让你脱胎换骨,顺利拿下开题报告这个…

开题报告中的研究目的与研究内容怎么写?

导师帮你选好题目以后,是不是自己也还在纠结到底怎样快速先明确出整个初稿的内容和结论呢?开题报告的研究目的和研究内容怎么样才能被导师一眼看中呢?别犯愁啦~这一篇保准手拿把掐地教会你!一起往下看看吧~ 这里是小目录喔~&#…

基于微信小程序的相关管理系统设计与实现开题报告的思路及方法

今天主要谈一下计算机科学相关专业同学的选题的思路及方法。 毕业设计选题选没选好就像各位走出校园踏进社会的一道坎,跨过这道坎是很关键的,而有些同学却犯了难,把本应该简单的问题复杂化了。为什么这样讲呢?之前就有同学找到我们…

开题报告写作攻略--概述及国内外研究现状

本人所在院校开题报告需要的模块如下图所示。 一、论文标题四要素 ① predicts content 预示研究内容; ② Interesting 吸引读者兴趣; ③ Reflects tone反映作者的语气; ④ Important keywords关键字。 注意事项: 尽量缩短题…

大学社团管理系统——开题报告

大学社团管理系统 学生姓名:王一一 班级:软件工程1612 指导教师:黄X 一、本课题研究(开发)的目的和意义。 现如今大学社团各式各样的都有,学校对社团的管理手段处于落后阶段&#xff…

开题报告的国内外研究现状怎么写呢?

大家都知道国内外研究现状在整个毕业论文中的作用是非常重要的,只有选择强有力的文献综述才能给我们的开题报告和论文提供高专业性的理论支撑。那么关于开题报告的国内外研究现状该怎么写呢?我们该去哪里找到与本研究课题相关的资料呢?是应该…

TCP速率与窗口,带宽,RTT之间的关系

转自:http://blog.csdn.net/bad_sheep/article/details/6158676 以下部分内容是自己的理解,可能会有差错,如有发现,欢迎指正。 窗口: TCP是一个滑动窗口协议,即一个TCP连接的发送端在某个时刻能发多少数据是…

.NET 7 新增速率限制 (Rate Limiting) 功能,轻松限制请求数量

.NET 7 内置了速率限制(Rate Limiting)功能,速率限制指的是限制可访问资源的请求数。例如数据库每分钟可以安全处理 1000 个请求,再多不确定会不会崩。这时就可以在应用程序中放一个速率限制器,规定每分钟只允许 1000…

天津到广州海运货柜船期

天津到广州海运,一般的集装箱运输路线是从天津新港走船到广州南沙港,有直达的船,运输时间一个星期,集装箱大柜或者小柜,每周从天津发出的船有4班左右。

GPT-4原论文详细解读(GPT-4 Technical Report)

GPT-4原论文详细解读(GPT-4 Technical Report) 返回论文和资料目录 1.导读 相比之前的GPT-3.5等大型语言模型(这里可以看我的InstructGPT解读,也方便理解本文内容),GPT-4最大的不同在于变成了多模态&…

IBM加入战局!任意大模型低成本变ChatGPT方法开源,个别任务超GPT-4

衡宇 发自 凹非寺量子位 | 公众号 QbitAI 科幻中有机器人三原则,IBM说不够,要十六原则。 最新大模型研究工作中,以十六原则为基础,IBM让AI自己完成对齐流程。 全程只需300行(或更少)人类标注数据&#xff0…

git获取ssh密钥

桌面右击,选择 “Git Bash” 切换到 .ssh 路径下,如果不存在,则直接创建一个(本人在家目录即用户目录下) 添加用户名和密码 使用下面的命令创建ssh密钥 ssh-keygen一路回车即可 此时.ssh文件夹下便会包含两个文件&…

作为一名开发工程师,我对 ChatGPT 的一些看法

ChatGPT 又又火了。 ChatGPT 第一次爆火是2022年12月的时候,我从一些球友的讨论中知道了这个 AI 程序。 今年2月,ChatGPT 的热火更加猛烈,这时我才意识到,原来上次的热火只是我们互联网圈子内部火了,这次是真真正正的破圈了,为大众所熟悉了。 这个 AI 程序是一个智能问…

新版Web of science 如何导出全记录与引用的参考文献到Hisecite

Question: 我导开“查”文献科研培训会的时候提到Hisecite文献引用分析软件,在看录频的时候顺便了解这个软件,遇到了一个问题:目前网上关于hisecite的参考资料很多都是关于旧版WOS(Web of Science),本人经过翻阅资料&…

利用Web of Science进行文献检索

官网链接 Web of Science 1 基本检索 若要执行文献检索,可选择要检索的字段,然后在检索字段中输入检索词 可以通过主题|摘要|标题|作者|出版物名称|出版年等进行检索 注意:一般默认是主题(其中包括标题、摘要和索引&#xff09…

如何检索外文文献

目录 一、知网就能搞定的外文文献 1、检索 2、下载 二、知网中查不到或者下载不了的外文文献 一般,我们要查找中文文献很方便,知网就能下载,但是对于一些外文文献(最常见就是英文),如果知网里面找不到或…

如何搜索得到综述文献?

我们应该要怎样才能了解到这个研究方向究竟有什么成果,现如今的研究现状如何呢?这就需要我们对综述文献进行研读了。可是综述文献并不是随便可以找得到的,那我们要怎么样才能搜索到综述文献呢? 今天我从以下几点和大家分享&#…