揭秘微信朋友圈广告背后的技术

1.起源

朋友圈广告项目于2015年1月对外发布,我们第一个非商业广告是龙哥想出来的创意,大家应该都有印象,为我们的“与众不同”奠定了基调,也为后面的商业广告预热了气氛。

第一批投放商业广告有三个,分别是宝马,可乐,Vivo手机。在发布当天便引起了广大网友的热烈讨论,不少网友以“你刷到了哪一条”进行调侃,甚至有网友将三则广告集合在一起评论:“开宝马,喝可乐,用vivo才是人生赢家”,“看到宝马广告的是土豪,看到vivo的是中产,看到可乐的是屌丝,啥都没有看到的,很抱歉,你已经被抛弃了”……

当时很多人问我广告系统到底是什么样的?是不是整个系统只是几行代码随机投放一个广告给用户就好?下面我将大致介绍一下朋友圈广告系统的架构,研发中遇到的问题,以及联合团队小伙伴们做出的一些优化。

2.系统总览

这是朋友圈广告后台系统的主要模块图,下面将挑选部分展开分析。

3.社交计算

朋友圈广告与传统广告最大的不同就在于引入了社交元素,而如何将社交元素与广告选择结合起来,是我们要思考的问题。

量化指标

要解决问题,首先就得有一个指标去衡量好坏。前一段时间,尼尔森对Facebook的Feeds广告进行了用户调研,发现当用户看到一个有好友互动的广告之后,对广告品牌的记忆率和认知度有68%的提升。其实这也是一个很自然的感觉,那么就首先定一个与之相关指标:扩散度。

系统实现

首先,要注意到朋友圈广告的生命周期都是短的,所以如果采用离线数据计算再反推到在线系统之上的方案,就会使得整个投放阶段效果很差。其次,广告系统对延时要求非常高,如果每次直接拉取每个好友的实际评论情况,也不切实际。因此,最终选择了用户互动信息实时写入到每个好友身上。

这里会遇到2个工程上的问题:

  • 微信的用户好友数据都是分布存储在不同的IDC上的,如何实时将各个IDC间数据打通。
  • 有的微信用户可能有几千个好友,如果一个个写,就算是扔到异步队列也效率太低了。

其他因素

只是看用户好友的评论与点赞次数,这个就足够了吗?显然是不行,下面列出3个主要要考虑的要素:

  • 用户之间的亲密度
  • 好友的权威影响力
  • 评论的正面影响这其中涉及到数据挖掘,自然语言处理的应用,以及如何与在线系统打通,鉴于篇幅,后面有机会再深入展开。

4.广告质量预估

朋友圈广告的展现形式,决定它有很多关注点,并不像传统广告只关注点击那一个动作。下面将我们要考虑的因素列出来,这是一个多目标预测问题,

这么多目标,传统常见的多目标预测方法可能是训练出多个模型,但是这样在线系统使用时候就面临一个时耗的问题。所以我们的经验是根据训练数据累积预测不同行为,离线模型可以直接训练出综合的质量因子。使用神经网络和多元线性回归融合。

那么在预测时候,需要考虑哪些因素呢?下面给出一个Features的大类:

5.速度控制

这个也是朋友圈广告与传统效果广告不同的地方。传统广告,当一个用户看到之后,90%以上的用户在一个小时之内就会点击(公众号广告为例),并且不会延迟太久。

而朋友圈广告则很不同,因为一个用户在拉取朋友圈Feeds之后,他可能不会往下拉着去看完所有的Feeds,也许到了第二天,第三天才去往下翻着看,此时也要产生扣费。另外就是朋友圈广告有评论点赞提醒功能,假如你的好友第二天对广告评论点赞通知到你,你再回头去看广告时候,也会产生一次扣费(当然不是无限的)。

这个就给系统进行投放时候的广告主余额控制带来了很大的麻烦,我们也为此更改了很多的版本上线实验才能做到目前较为精准的控制。其中关键环节是要保证曝光数据实时回流参与计算。另外经过多次投放,我们可以分析得出大部分用户在不同时间段上的行为规律,这样结合广告消耗的不同阶段去制定不同的速度控制策略,便可解决问题。

我们还针对这个给产品运营同学做了相关运营观察页面:

6.人群控制

在设计朋友圈广告系统初期,我们陷入了传统效果的广告系统架构的误区,即实现了检索—>广告初选à广告ctr预测à广告精选者这种经典的方案。可是朋友圈广告与之前业务并不同,因为一些时候,只有一个广告在投(高逼格路线嘛),所以用传统的各种选择和预测方法是没用的。

这个本质就是从人选广告变为了广告选人。

这其实是一个很复杂的问题,主要有这么3个因素要考虑:

  • 前期投放哪些用户,他们最可能参与广告互动?他们最可能带动好友?
  • 那些确定要投放的用户,他们是否满足拉取条件?是否被用户体验屏蔽掉?
  • 精品用户范围太窄或者限制时间过长,广告主到时间投放太少不满足需求怎么办?

这里给出我们目前的解决思路和方案,只是一个示意图,其中需要涉及到前面讲的行为预测以及广告保量的知识,后续这里可以着重展开再写。

7.朋友圈后台架构支持

在原先朋友圈后台中,每条Feeds的评论点赞信息都是存储在一个objectid上,它存储于kv存储系统中,每次拉取与更新都是对这些数据全存全取。但是现在一个广告Feed,它类似于一条公共Feeds,一个广告下面的评论可能是百万量级,如果继续沿用之前的方案,每次存取量都会太大。

于是,微信后台团队改为将点赞评论数据分布存储在每个用户身上。当有读取时候,则需要将用户每个好友的评论点赞信息都读取出来(可以想想为什么不用上面社交计算中提到的写扩散方式)。

但是这样会引进两个工程问题:

  • 每次读取数据量十分大
  • 后端调用kv扩散出的链接数是随着kv集群规模扩大而扩大的

最终我们通过引入版本号的机制,在手机客户端中存储每次拉取的版本号,并将版本号这种轻量级数据写扩散到所有好友身上,方便快速感知变化。最终比较好的解决了这个问题。

8.客户端支持

微信朋友圈广告能够快速上线,很大得益于微信客户端同事高效率的工作,ios和Android两个平台并行开发。

广告Feeds有些特别的地方,比如它支持用户不感兴趣的反馈,支持外链的分享,发表帐号要和公众号体系打通等。

另外,广告Feeds不能像用户普通Feeds一样,一直存在于用户的Feeds流中,因为假如用户回顾以往,发现一条条广告时候,那一定会很扫兴的,于是我们会对用户没有特别感兴趣的广告进行定期删除。另外,用户的Feeds发表之后就只有删除的动作了,而一个广告的Feeds假如其中某个图片需要临时更新,我们也要提供一种快速更新的机制,不能让广告主删掉广告。

广告最重要的就是计费和效果分析,这里的数据重担都在客户端上了,需要对用户对广告相关的操作都进行收集并上报。这里涉及到实时且稳定的数据上报通道(与之前的数据统计需要上报数据机制的完全不同的)。关于各个统计点和路径分析上报,也做了有规划的整理。

9.结束语

得益于这一年辛勤的努力,微信朋友圈广告项目中的小伙伴在研发道路上都积累了很多经验,不止是技术与算法上,也包流程与质量上的。未来一年也将继续保持积极的学习心态,让微信朋友圈广告成为社交广告的标杆!

本文分享自微信公众号 - IT技术精选文摘(ITHK01)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-09-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

微信升级,小程序曝光能力大大提升,未来将血染小程序蓝海

“为了帮助用户更便捷地使用小程序,微信在主界面新增了小程序任务栏的功能。小程序菜单进行了升级,并提供小程序间快速切换的功能。同时,我们开放了小游戏开发文档和开发...

210100
来自专栏飞扬的花生

timestamp时间戳的应用(微信小程序开发也一样)

      在微信小程序开发时发现一个timestamp的时间戳的变量 比如获取微信运动步数时候 ? timestamp是如何形成的在JS中 是这么形成的 va...

42390
来自专栏企鹅号快讯

小程序加戏成功!变身游戏成新版微信最大主角,用户玩得不亦乐乎

微信每一次更新,都能带给我们全新的体验。刚刚,微信又悄悄发布了最新的6.6.1版本,更新了3个重磅功能,居然都是围绕小程序推出的,小编亲测后发现,小程序比以往娱...

23750
来自专栏企鹅号快讯

刚刚!张小龙再出重磅!微信小程序掀起新零售红利狂潮!

小程序并不小 2017年的1月9日,微信推出的小程序,当时提出的目的主要是:线下可扫码、可对话和分享、支持消息通知、小程序间切换、小程序打开历史记录、公众号绑定...

23280
来自专栏企鹅号快讯

手机支付每天限额500块钱?“我刷你”和“你刷我”限额不一样

戳上图,了解网易成都棋牌,千元现金免费送 对于各位小伙伴来讲 微信支付宝扫码付款 已经成为生活的常态 周末坐车、购物、吃饭基本上 “手机在手,买单方便” ? 然...

24290
来自专栏企鹅号快讯

腾讯汇赢正式上线,变革2018大连房地产市场营销

12月27日,“赢·创2018”腾讯汇赢合作伙伴大会在澳门特别行政区隆重举行,腾微传媒作为大连地区房地产行业独家代理商出席了本次大会。会议对腾讯汇赢产品进行了战...

38690
来自专栏企鹅号快讯

微信小游戏上线,2018年的H5游戏可以“跳一跳”

几米一回头 | Jimi 原创 NO.77 2017年12月28日下午3点,微信小程序功能升级。 功能不多,但都是重量级的,我迫不及待的要来解读一下: 一、两...

27960
来自专栏企鹅号快讯

微信群也有群相册功能了,终于可以给手机相册腾出空间了!

学点黑科技,装逼更容易!大家好,我是学长! 相信每位使用QQ和微信的朋友,都有加进过各种各样的群。QQ群相对来说功能比较齐全,除了微信群有的群视频,群语音以外,...

4.1K90
来自专栏电光石火

微信登陆代码

网页访问 https://open.weixin.qq.com/connect/oauth2/authorize?appid=xxx&redirect_u...

50870
来自专栏飞扬的花生

微信开发扫一扫功能并且屏蔽分享菜单

1.引入JS   <script language="javascript" type="text/javascript" src="http://res.wx...

295110

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励