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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
企业案例丨腾讯手游助手 X 云开发CloudBase
腾讯手游助手是腾讯推出的新一代安卓模拟器,在性能、稳定性、兼容性等方面表现优异,帮助用户在电脑上畅玩各类手游的全能型手游平台,用户可以通过手游助手快速体验最新最热的手机游戏,感受大屏显示、键鼠畅快操作的劲爽体验。
腾讯云开发TCB
2021/07/14
3.3K0
企业案例丨腾讯手游助手 X 云开发CloudBase
企业案例丨腾讯天幕 X 云开发CloudBase
重剑轻出,大巧不工。本案例中的“天幕安全巡检”小工具依托云开发CloudBase+小程序可视化而打造,旨在改善 toB 售前打单过程中常见的繁琐流程问题,包括面向客户的长时多轮产品 PPT 演示、现场搭建 POC 环境作产品测试等。基于腾讯自研 PaaS 层强大安全算力算法能力,该工具以简驭繁,最终以轻量、便捷“随身小工具”的形式呈现给使用者,帮助加速客户对产品认知体验效率。
腾讯云开发TCB
2021/06/18
2.6K0
企业案例丨腾讯天幕 X 云开发CloudBase
撸一个基于腾讯云云开发cloudbase framework的包含前端后端一体的应用
将这些不同形态的代码写在一起,通过framework的能力实现 一键部署 这些代码。
vannding
2021/10/22
1.1K0
撸一个基于腾讯云云开发cloudbase framework的包含前端后端一体的应用
CloudBase Framework工具推荐:前后端一体化部署,效能提升开源“神器”
云开发 CloudBase是云端一体化的云服务平台,采用 serverless 架构,开发者无须关心服务器搭建和管理,只需要编写业务代码和调用原生提供的云能力,就可以快速搭建完整的小程序/小游戏、H5、Web、移动 App 等应用。云开发是国内 Serverless 理念的领先实践,服务了超过 50 万开发者。
腾讯云开发TCB
2020/07/15
4K0
CloudBase Framework工具推荐:前后端一体化部署,效能提升开源“神器”
用云开发制作教务助手小程序丨实战
本项目由一人承担从后端到前端的构思以及开发,下面我就讲讲从教务助手小程序的构思到开发实现(基于云开发)。
腾讯云开发TCB
2019/12/03
1.7K0
基于云开发 CloudBase 搭建在线视频会议应用教程
在线视频会议应用是基于浏览器的能力 WebRTC 以及 腾讯云开发 CloudBase 能力构建而成的应用. 在云开发的助力下, 一个复杂的在线会议应用, 一个人一两天即可完成.
腾讯云开发TCB
2020/11/17
2.2K0
基于云开发 CloudBase 搭建在线视频会议应用教程
云开发 For Web:一站式开发下一代 Serverless Web 应用
近两年来,Serverless 无疑是前端圈里最火热的话题之一,在各种技术峰会、各种技术文章里都能看到它的身影。如果你是一名前端开发者,一定很奇怪:
腾讯云开发TCB
2020/03/27
2.1K0
云开发 For Web:一站式开发下一代 Serverless Web 应用
使用腾讯云开发来部署Svelte Sapper应用
Svelte是前端框架界新秀,以小巧、响应式、无virtual Dom著称,就像React有对应的SSR框架Next.js一样,Svelte也有自己官方的SSR 框架Sapper,也是小巧,灵活。
腾讯云开发TCB
2020/06/03
1.7K0
基于云开发 CloudBase 搭建在线视频会议应用
「在线视频会议应用」是基于浏览器的能力 WebRTC 以及云开发 CloudBase 能力构建而成的应用,在云开发的助力下,一个复杂的在线会议应用,1人、1-2天即可完成搭建。 本应用用到的能力、工具、框架有: CloudBase Framework 用于项目基础目录结构生成, 一键部署 Simple Peer 流行的 WebRTC 库 云开发CloudBase - 云函数, 包括云函数的定时调用 云开发CloudBase - 数据库 云开发CloudBase - 静态网站托管 React Ant d
腾讯云开发TCB
2020/10/14
1.7K0
能力展现 | 云开发能力在站点应用的体现
近几年腾讯云开发技术持续发力,更新升级速度非常迅猛,功能也是越来越强大易用,该网站的实现几乎用到了云开发所有的主流功能,也看到了云开发的无限可能。下面就给大家分享下云开发在站点应用中的功能吧。
腾讯云开发TCB
2021/07/12
5810
能力展现 | 云开发能力在站点应用的体现
Q&A第一辑|你最关心的云开发问题都在这了
关于小程序使用云开发很多小伙伴有不少疑问,大多数疑问其实在官方文档能够得到答案。但是今天小助手还是汇总了几个比较常见的问题,在这里一一为大家解答一下。
腾讯云开发TCB
2020/03/31
9090
Q&A第一辑|你最关心的云开发问题都在这了
「峰会回响」小程序云开发持续交付和质量管控(上)
保证交付效率和质量把控是一项业务长远、稳定发展的必经之路,来自微信支付的张洪晖在第二届小程序云开发技术峰会上就介绍了高速发展的业务团队如何利用小程序云开发搞定持续交付和质量管控。
腾讯云开发TCB
2020/12/10
6680
「峰会回响」小程序云开发持续交付和质量管控(上)
编程实战:1小时开发微信小游戏《我的早餐店》——基于CloudBase AI Toolkit
微信小游戏依托微信庞大的用户群体,无需下载安装,即点即玩,已成为大众休闲娱乐的重要方式。其轻量级的特性,使得用户可以随时随地体验游戏的乐趣,碎片化时间得到充分利用。从简单的益智游戏到复杂的策略游戏,微信小游戏涵盖了各种类型,满足了不同用户的娱乐需求,也为开发者提供了巨大的市场潜力。
Lion 莱恩呀
2025/06/18
3033
编程实战:1小时开发微信小游戏《我的早餐店》——基于CloudBase AI Toolkit
带你入门云开发实践总结篇
CloudBase 支持使用 .env 类型文件作为主要数据源,使用不同的后缀区分不同的阶段、场景,如 .env.development 可以表示开发阶段的配置,.env.production 可以表示生产环境的配置
前端进阶之旅
2022/07/29
5.9K0
带你入门云开发实践总结篇
腾讯云 cloudbase 云开发使用笔记
最近折腾了一下腾讯云最近上线的静态网站托管产品,结合腾讯云提供的 CloudBase CLI 工具,可以实现的第三方的任意一个服务器快速持续部署自己的 Hexo、VuePress、Hugo。
章鱼猫先生
2021/10/15
4.8K0
腾讯云 cloudbase 云开发使用笔记
基于 ThinkJS 的云开发体验
ThinkJS 是一款企业级的 Node.js Web 开发框架,致力于集成项目最佳实践,规范项目让企业级团队开发变得更加简单,更加高效。 它基于 Koa 2.0 开发,兼容 Koa 的所有 Middleware。 内核小巧,支持 Adapter, Extend 等多种插件扩展方式,框架内的大部分功能也是通过这些方式进行扩展的。 性能优异,支持 TypeScript。
腾讯云开发TCB
2020/12/17
1.1K0
基于 ThinkJS 的云开发体验
​云开发 X 涂鸦:当小程序遇见物联网IoT,几行代码搞定智能插座控制
在 5G 热潮的推动下,与其紧密结合的物联网(IoT)正日益成为个人和企业工作生活中的重要组成部分,它为企业和个人带来了操作流程的改进和更好的生活体验,随着人工智能(AI)技术的日趋成熟,IoT 与 AI 的结合愈发紧密,IoT 也被赋予了越来越多的能力和价值。
腾讯云开发TCB
2020/07/20
1.2K0
​云开发 X 涂鸦:当小程序遇见物联网IoT,几行代码搞定智能插座控制
TCB系列学习文章——云开发的那些SDK
在 flutter 项目的 pubspec.yaml 文件的 dependencies 中添加需要的插件,例如:
F颜
2021/04/05
2K1
简单几步,让微信小程序变身 H5 网页? | 云开发实战
我是 盛瀚钦,沪江 CCtalk 前端开发工程师,Taro 框架的 issue 维护志愿者,主要侧重于前端 UI 编写和团队文档建设。
腾讯云开发TCB
2020/03/31
6.8K0
简单几步,让微信小程序变身 H5 网页? | 云开发实战
如何用 Cloudbase Framework 部署一个 Vue 项目
Cloudbase Framework 是云开发官方出品的前后端一体化部署工具。目前已经 开源。
腾讯云开发TCB
2020/11/13
7832
如何用 Cloudbase Framework 部署一个 Vue 项目
推荐阅读
相关推荐
企业案例丨腾讯手游助手 X 云开发CloudBase
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验