Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >企业案例丨腾讯广告助手 X 云开发CloudBase

企业案例丨腾讯广告助手 X 云开发CloudBase

作者头像
腾讯云开发TCB
修改于 2021-08-13 07:02:28
修改于 2021-08-13 07:02:28
3.4K00
代码可运行
举报
文章被收录于专栏:云开发云开发
运行总次数:0
代码可运行

腾讯广告(ad.qq.com)是一站式广告投放平台,坐拥腾讯生态流量,拥有丰富统一的投放能力,广告主在该平台上可以进行微信、QQ、腾讯联盟、应用宝、手机QQ浏览器等渠道的广告投放。

本文讲介绍腾讯广告如何结合云原生一体化开发平台——云开发 CloudBase,发布了“腾讯广告助手”小程序端,实现降低广告主盯盘成本、提高广告优化效率的目标。

一、项目背景

为了降低广告主盯盘成本、提高广告优化效率,腾讯广告基于这一痛点,在云开发 CloudBase 能力的帮助下,发布了“腾讯广告助手”小程序端,提供多账户登录与切换功能、直观的数据报表、轻量化的操作和及时的新消息提醒,为广告主、服务商打造整合式的移动端优化管理解决方案,帮助广告主实现更高效便捷的广告管理。

二、架构设计

1、业务架构设计

”腾讯广告助手“作为一款腾讯广告投放平台的工具,希望为广告主提供在移动设备上管理广告的能力。所以在小程序端里面,我们为广告主提供了 PC 端上的基础能力及高频使用的功能,业务功能设计如下:

2、技术架构设计

腾讯广告投放服务主要是通过开放平台的MKT API (对外) 和 GDT API (对内) 提供服务,在小程序端引入 CloudBase 的云函数作为 BFF (Backend For Frontend) 层,调用层级如下图所示:

整体上来说,BFF 是一层设计来满足在特定客户端场景的API,它能够将多个后端微服务通过聚合、裁剪和编排等方式将处理后的数据提供给客户端使用,至于产品业务的功能、数据模型等则应该收敛在后台 API 实现,不落地在 BFF 中。

在项目立项前,团队就对多种小程序开发框架进行了对比,从性能、开发效率和稳定性等方面比较后,最终采用了原生开发框架配合云开发服务,理由如下:

  • 对于小程序端有较强的性能要求,无论是第三方框架的编译还是运行时方案,在健壮性和性能上,原生的小程序开发模式都相对更适合;
  • 我们的小程序端无需支持多个不同小程序端,而且也没有历史代码迁移包袱,使用原生开发与第三方框架开发成本差别不大;
  • 对于原生开发与使用框架在开发体验上的差异,如小程序不支持 less 等,后续采用前端工程化手段解决。

目前使用到的技术栈如下所示:

三、云开发 CloudBase 的应用及实践

1、聚合接口

在小程序开发初期,对是在小程序前端直接调用中台服务,随之而来遇到了些问题,例如对于某些页面或功能,需要调用多个接口获得数据后,再拼接成最终需要的数据。这个逻辑如果是在前端来做的话,那么就加大了整个请求的调用链路,是多个客户端到服务端的请求,如果有一个数据请求慢了或失败了,那么都会影响到最终的数据,比较影响用户体验。而如果放到 BFF 层上来做,那么则变成是1个客户端到服务端的请求和多个服务端到服务端的请求,调用链路相比小程序前端请求要短许多,而且稳定性更好。

在”腾讯广告助手“小程序上展示的报表数据会包含汇总、环比、同比等数据,那么就需要组合调用不同的中台接口才能获取到最终的数据。所以,团队将小程序上的报表相关的接口切换到直接调用云函数,由云函数并发调用中台服务接口并将数据做聚合返回到小程序端。同时对返回的数据按照小程序端所需要的按需返回。比如对于账户列表页面的请求,原先前端需要并发进行3个请求才能获取到最终的数据,而通过云函数,则小程序端只需调用一个接口

拉取报表数据的云函数运行数据
拉取报表数据的云函数运行数据
聚合后云函数接口请求耗时数据
聚合后云函数接口请求耗时数据
2、提升云函数的开发体验

目前 CloudBase 上官方是推荐以层来管理公共依赖库和代码问题,但是从开发的角度来看,还是希望能够做到源码本地依赖,减少引入更多的概念及操作成本。

抽离公共代码通常需要将代码上移到公共目录或者发布成 npm 包,而在小程序的云函数中,每个云函数就是一个独立的目录,没有公共目录。而如果采用 npm 包的方式,那么调试,发布和更新版本号等操作上的成本就比较大了。

于是我们将公共代码抽离到项目内单独的目录中,同时在开发和代码构建时,通过构建工具实时同步公共代码到每个云函数的目录中。

同时,团队在项目内基于 cloudbase-manager-node sdk 实现了云函数本地的模板创建、代码及配置更新、查询状态等,提升开发体验。

查看云函数状态:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm run cf:list

实时更新代码并部署到指定的环境:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm run cf:watch -- --func=getUserInfo,mktapi --env:preview
3、多环境部署及蓝绿发布方案

”腾讯广告助手“的云开发环境目前有5个,分别对应主环境、备环境、测试环境、研发环境和预发布环境,在开发的时候可以通过命令行指定代码编译时连接是哪个环境,比如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm run dev -- --cloudEnv=development

那么我们的小程序就会连接到云开发的开发环境,同时在小程序页面的悬浮球上也会显示连接对应的环境。

对于云函数的发布,采用的是蓝绿发布策略。主环境和备环境同时在外网可用,每当发布的时候,就会将流量从一边逐渐切换到另外一边,若没有问题再逐步全量,大致流程如下图所示:

这里的流量切换逻辑,可以通过小程序发布时的按微信号灰度策略来控制,同时也可以通过在小程序上使用特性开关来控制。

四、项目总结及成果

1、影响力

”腾讯广告助手“小程序自2020年5月底上线以来,使用人数不断攀升。

同时从下图中可以看到,小程序端很好的弥补了上班高峰时段及下班后广告主不在电脑旁边的场景。有了小程序端,广告主可以随时管理广告。

2、使用云开发 CloudBase 的收益

借助云开发能力,”腾讯广告助手“小程序项目获得了许多收益,包括:

  • 云函数提供了私有的传输协议,为数据传输提供了保障;
  • 提升了整体的开发效率,能够在人力成本有限的场景下完成需求的开发;
  • 通过集成 cloudbase-node-sdk 实现了一键部署,同时也免去了运维成本,无需考虑负载问题;
  • 云开发方式给联调带来了极大的便利性,无需再去配置代理;
  • 云开发提供了完整的生态及强大的监控体系。

产品介绍

云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为开发者提供高可用、自动弹性扩缩的后端云服务,包含计算、存储、托管等serverless化能力,可用于云端一体化开发多种端应用(小程序,公众号,Web 应用,Flutter 客户端等),帮助开发者统一构建和管理后端服务和云资源,避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。 开通云开发https://console.cloud.tencent.com/tcb?tdl_anchor=techsite 产品文档:https://cloud.tencent.com/product/tcb?from=12763 技术文档:https://cloudbase.net?from=10004 技术交流群、最新资讯关注微信公众号【腾讯云开发CloudBase

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯云开发CloudBase 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
AndroidQ兼容性适配指南
上面是官网的AndroidQ的隐私权变更链接,本文章只针对部分重大隐私权限变更做出解释说明。
静默加载
2022/12/27
7.3K0
AndroidQ兼容性适配指南
Android11 (API30)适配
本文档基于谷歌Android 11 Developer Preview 4(DP4)版本的变更输出,后续Beta版如有新的变更和特性,我们会刷新文档的相关章节内容,请开发者持续关注。
八神太一
2021/04/05
8.2K0
Android 11 应用兼容性适配,看这篇就够了
本文档基于谷歌Android 11 Developer Preview 4(DP4)版本的变更输出
全栈程序员站长
2022/09/14
13.6K0
Android 11 应用兼容性适配,看这篇就够了
Android | 作用域存储适配
Android 10 已经发布了很长一段时间了,并且 Android 11 已经有很大一部分人在使用了,那么你的程序对他做了适配吗?
345
2022/02/11
8750
相册适配 Android 11 绕的那些弯路
最近公司中的相册组件被业务方反馈了新问题,在 targetSdk=30 的 Android 10 手机上运行相册,缩略图会加载不出来,于是就开启了这次的趟坑之路。
用户9239674
2021/12/23
1.8K0
Android 10适配要点,作用域存储
距离Android 10系统正式发布已经过去大半年左右的时间了,你的应用程序已经对它进行适配了吗?
用户1158055
2020/04/16
2.4K0
Android 分区存储常见问题解答
要在 Google Play 上发布,开发者需要将应用的 目标 API 级别 (targetSdkVersion) 更新到 API 级别 30 (Android 11) 或者更高版本。针对新上架的应用,这个政策自 8 月开始生效;现有应用更新新的版本,这个政策的要求将自 11 月开始生效。
Android 开发者
2022/03/09
1.2K0
Android 分区存储常见问题解答
Android 10 和Android 11的适配
最近在项目中着手做Android10和Android11 适配时候,期间遇到了不少的坑。之前有专门写过qq、微信分享的适配。但是此次在针对偏业务侧适配工作的时候还是碰到了一些新的问题。记录下来,方便以后查阅,希望能帮到碰到此问题的相关同学。
用户9227784
2021/12/20
1.5K0
拖不得了,Android11真的来了,最全适配实践指南奉上
前言 没错!Android 11(version 30,Andorid R) 正式发布了!看到这个新闻我知道我不能再拖了,再不好好准备好迎接Android11的到来,到时候迎接我的就是客户的指责,甚至
码上积木
2020/09/27
7.3K0
Android-读写权限变更记录
因为Android应用市场要求是最低要求API 30以上,我准备就直接从API 28升到API 33了,其中遇到了一些读写存储空间的问题,这里做一些记录总结~
TieJun
2023/11/02
2.2K0
Android各版本迭代信息集合
Android在版本迭代中,总会进行很多改动,那么你熟知各版本都改动了什么内容?又要怎么适配呢?
码上积木
2020/12/15
1.3K0
干货 | 携程Android 10适配踩坑指南
2019 年 9 月 3 日,Google 发布了 Android 10 正式版。Android 10 聚焦移动创新、安全隐私和数字健康三大主题,全面打造最佳用户体验。
携程技术
2020/04/21
3.5K1
干货 | 携程Android 10适配踩坑指南
Android Q 适配 之 存储新特性
https://mp.weixin.qq.com/s/aiDMyAfAZvaYIHuIMLAlcg
陈宇明
2020/12/16
1.1K0
AndroidR兼容性适配指南
Android 11 基于 Android 早期版本构建,增加了多种功能和更新,以保障用户安全并提高透明度和可控性。所有开发者都应查看隐私功能并测试他们的应用。具体影响可能会因每个应用的核心功能、目标平台和其他因素而异。
静默加载
2022/12/27
2.3K0
AndroidR兼容性适配指南
Android 存储概览
Android 一开始就将存储区分为内部存储和外部存储,对应手机自带的存储和可插拔的 sd 卡(可类比于 PC 的硬盘和 U盘)。
tuoxie
2024/08/22
1600
Android 存储概览
Android 截屏监控(已适配Android 14)
在Android 13中,存储权限从原来的READ\_EXTERNAL\_STORAGE细化成为READ\_MEDIA\_IMAGES/READ\_MEDIA\_VIDEO/READ\_MEDIA\_AUDIO三种权限,在进行权限判断的时候需要进行版本区分。
Double D
2024/03/28
9710
Android 11 中的存储机制更新
Android 10 引入了对外部存储权限的更改,旨在更好地保护用户数据以及降低应用的存储空间。Android 11 开发者预览版里加入了更多改进,以帮助开发者更好地适应这些权限修改。
Android 开发者
2020/03/19
3.2K0
Android 存储空间的最佳实践
为了提高文件的规整程度并让用户可以更好地控制他们的文件,Android 10 为应用引入了名为 "分区存储" 的新范式。分区存储改变了应用在外置存储中保存和访问文件的方式,为了帮您迁移应用并支持分区存储,我们概括了常见用例的最佳实践并分享给大家。
Android 开发者
2022/09/23
1.9K0
Android 存储空间的最佳实践
Android 11新特性,Scoped Storage又有了新花样
距离Android 11正式发布已经半年有余,也该是时候写写Android 11新特性这方面的文章了。
用户1158055
2021/03/02
1.7K0
Android 11新特性,Scoped Storage又有了新花样
targetSdk27 FileProvider 摄像和照相[通俗易懂]
发生异常: 在使用照相机或者摄像机的时候出现异常(targetSdkVersion 27):
全栈程序员站长
2022/09/13
1.1K0
targetSdk27 FileProvider 摄像和照相[通俗易懂]
相关推荐
AndroidQ兼容性适配指南
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验