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

article/2025/11/6 23:54:57

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

先说这套玩意获得的效果:竞品的投放团队运营团队就算有一百个人,天天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://chatgpt.dhexx.cn/article/SR8OPibj.shtml

相关文章

java广告投放系统_广告投放系统

一、串讲PPT 二、上下游 需求方: 商业产品部投放同学 后端: 账号部分:小度注册后端给广告前端提供注册接口。 数据表部分:广告组后端以mysql表的形式与广告前端对接。 测试: 白盒测试 三、系统设计 四、代码开发 4.1 前…

销售系统—指引腾讯广告平台对接销售系统操作

一.教程介绍。 本教程是指引腾讯广告平台对接(自己)销售系统。是对https://leads.qq.com/assets/doc/api_guide.pdf详细文档的简解。 二.对接设置教程 1.推送线索设置 1.1.登录腾讯广告平台,在【工具 - 线索管理 - 系统设置 - 线索转发设…

dmp广告系统

项目背景就是项目描述,主要描述以下几个方面: 1、你分析的数据源是什么,有几个,为什么 2、通过这些数据要分析什么结果(有几个模块,每个模块有哪些需求) 3、通过这些结果能够给公司的产品或决策…

大型广告系统架构 — 检索模块

广告系统主要解决一个问题:在给定展示场景、用户的情况下,返回收益最大化的广告。下图是一个广告系统最简单的架构图。其中,Router,检索模块,排序模块一般称为广告系统的核心。同时,与之辅助的至少包含三大…

互联网智能广告系统架构(业务+系统)

互联网智能广告系统架构 (争取用最简单的图,最简洁的语言描述清楚) 一、业务简述 从业务上看整个智能广告系统,主要分为: 1)业务端:广告主的广告后台 2)展现端:用户实际访…

广告系统简易流程与架构

一、业务简述 从业务上看 整个智能广告系统,主要分为: 1)业务端:广告主的广告后台 2)展现端:用户实际访问的页面 业务端,广告主主要有两类行为: 1)广告设置行为&am…

揭秘广告系统架构

作者 | 骆俊武 来源 | IT人的职场进阶(ID:BestITer) 广告、增值服务、佣金,是互联网企业最常见的三种盈利手段。在这3大经典中,又以广告所占的市场份额最大,几乎是绝大部分互联网平台最主要的营收途径,业务…

广告系统架构

一:广告系统整体架构 用户通过浏览器访问网页,网页上的广告位贴了广告请求代码,广告请求发送到投放机,投放机上DE进行处理,选择出合理的广告进行投放。(或者网站上贴的是ssp的代码,ssp将请求转发…

大型广告系统架构概述

在互联网江湖中,始终流传着三大赚钱法宝:广告、游戏、电商。三杰之中,又以大哥广告的历史最为悠久,地位也最为不可撼动。君不见很多电商和游戏公司,也通过广告业务赚的盆满钵满。其发迹于Y公司,被G公司发扬…

广告管理系统

软件工程与UML 大作业 课题:广告管理系统 学号:3158126157 姓名:徐先森 专业班级:网络工程 指导老师:杨财英 目录 一、 系统的需求分析 2 1.1功能性需求 2 1.2广告管理系统介绍 2 1.3.1用例图如图: 3 1.3.2 用例描述 3 二、 概要设计 5 2.1总体结构图&…

三大视角,聊聊我眼中的广告系统

作者 | wulc 整理 | NewBeeNLP 从实习到工作,接触过一些大大小小的广告系统,有麻雀虽小但五脏俱全的小 dsp,也有把 ssp、adx、dsp 都打包了的大媒体 ,算是对业界的广告系统有了一个初步的了解。趁着放假这几天,简单地…

十分钟理解广告系统

什么是广告系统 广告是以“把合适的内容推送给合适的受众”为目的的商业交易过程,它同时为三种人群服务:第一种是广告主,即出钱购买广告的人,需要通过广告获取顾客;第二种是媒体,即提供投放平台以换取广告费…

广告系统架构浅谈

写在前面 最近即将入职字节跳动的广告系统部门,因此花了一些时间了解了一下现代广告系统的一般架构,在这里分享给大家。 广告系统一般架构 整体上来看,广告系统由三个主体部分构成: 1、在线的高并发投放引擎(Ad server)。 2、离…

广告系统实现

一、系统架构 二、准备工作 1、开发工具:IDEA 2、数据库:MySQL 3、环境:JDK1.8、 Maven 3 4、系统目录结构 三、广告系统的功能 1、广告投放系统 -> 既然是广告系统,一定得有广告数据,数据当然是由广告主或代理…

逻辑位移和算术位移

在C语言标准中&#xff0c;有两种位移分别为算术位移和逻辑位移。 逻辑位移&#xff1a;在位移运算符&#xff08;>>和<<&#xff09;之前的数是无符号数&#xff0c;编译产生的汇编指令是逻辑位移。 算术位移&#xff1a;在位移运算符之前的数是有符号数&#xff…

带符号位移运算,无符号位移运算,位运算

带符号位移运算&#xff1a; &#xff08;符号位也参与移动&#xff09; &#xff08;除了负数右移高位补1&#xff0c;其他情况空位均补0&#xff09; &#xff08;左移右移后可能结果正负都变了&#xff09; >>右移 &#xff08;向右移一位约等于除以2&#xff0c;注意…

显卡和异构计算

显卡和异构计算 本文采用知识共享署名 4.0 国际许可协议进行许可&#xff0c;转载时请注明原文链接&#xff0c;图片在使用时请保留全部内容&#xff0c;可适当缩放并在引用处附上图片所在的文章链接。 显卡GPU 显卡分类 集成显卡独立显卡核芯显卡 显卡性能 架构流处理器核心频…

带符号移位运算详解

十进制正整数有符号左移 示例&#xff1a;10 << 2 40 Java代码&#xff1a; public class ShiftTest {public static void main(String []args){int leftShiftBegin 10;System.out.println("十进制数&#xff1a;" leftShiftBegin " , " &quo…

机器对移位运算的看法

1.先说一个运算口诀叫“左乘右除”&#xff0c;如k<<1>k*2; k>>1>k/2; 2.左移 先看左移运算&#xff0c;因为相对于右移较为简单&#xff1b; x向左移动K位&#xff0c;会丢弃最高的K位&#xff0c;并在右端补K个0&#xff0c;移位运算是从左到右课结合的&a…

定点运算——位移运算

位移运算 前提&#xff1a;下述的移位运算推理过程是建立在合理的移位运算基础上的&#xff0c;即移位运算的结果和实际运算结果一致 位移运算的数学意义 位移运算&#xff0c;相当于小数点的移动&#xff0c;对数值进行扩大或者缩小进制数倍 左移运算&#xff0c;小数点右移…