如何实现运营或 PM 独立完成小程序运营活动创建?

2024-07-04
来源:网络整理

“如果不同类型的活动能够快速产出,且流程不需要开发者的参与,小程序运营活动的创建可以由运营或者PM独立完成,是运营PM和开发者的共同心愿。”

近年来,小程序逐渐火爆,为了吸引更多用户使用企业小程序,开发越来越多的运营活动已经成为常见的场景和趋势。

猫眼电影作为最早开发微信小程序的公司之一,用户量正在不断增长,基于小程序的运营需求也越来越大。

『 以下对话改编自真实案例 』

运营&PM:春节快到了,能不能把之前的七夕活动复用一下?这个活动页面的配色、头图、标签文案、提示文案都要改一下。这里还要改一下布局,增加一个xx功能,首页增加一个xx提醒。这个活动之前做过,这次复用的话,速度应该很快吧?明天能上线吗?

前端开发:……这个活动之前没有提到复用,是一次性活动,如果这次要再次上线,需要在前端修改代码,在代码中替换之前活动的不同点(颜色,头图,文案等)。你说的xx功能和xx提醒需要后端开发的支持,我们在原有页面基础上做二次开发,后端也有很多开发工作,需要把后端一起拿来评估,不可能明天就上线!

运营&PM:这个需求很简单,不用管怎么实现,明天就上线!

前端开发:…

重用的痛苦

一些以前的一次性活动由于效果良好,将需要再次重复使用。

“如果每次都在原有活动的基础上改代码、改一些配置,再重新上线,显然是浪费人力,也不可持续。”而事实证明,每次要求一个活动重新上线,除了改一些与活动相关的图片、文字外,往往还需要额外增加一些“简单”的优化和功能。

“为了重复使用这种活动,活动模板被提上了日程。”

如果采用传统的解决方案:在现有的B端系统中添加活动配置项,则需要后端开发接口将活动配置项存入数据库,而依赖后端又会带来一系列的问题。

1.后端资源稀缺,时间成本高

这类和主流程关联不紧密的需求通常优先级较低,如果后端不能及时配合,上线时间难以保证,前后端联调的时间成本也相对较高。

2.缺乏灵活性

前后端PM需要沟通协调配置项,配置项一旦确定,表结构确定,就很难轻易更改,如果需求有变更,PM需要和前后端商量,并通知前后端相关开发人员,改数据库,改前后端代码,费时费力。

3. 需求与后端关系不大

活动模板中存储的活动配置项数据几乎和其他后端逻辑无关,只是为了配合前端而做的简单存储。存放在后端意味着后端必须给前端提供增删改查的接口。后端在心理上也比较反对这种和其他后端业务逻辑无关,只是为了配合前端而做的需求。

《如何利用云开发解决复用之痛》

为了解决活动复用这个痛点,小程序云开发刚刚上线,这个开发模式正是我们活动复用所需要的,何不借助云开发来帮我们解决这个问题呢?

于是,我们创建了一个名为“小程序运营工具”的后端管理系统项目(代号:唐图)。

“运营人员可以使用管理活动数据和状态,例如创建、编辑、查看、删除、上线、下线、置顶、设置为模板等。”

前端开发根据不同的活动类型为作业提供不同的活动模板(目前根据作业PM的需求为前端设计了可配置项模板的表结构,并存放在云端开发的云端数据库中。后期计划为作业开发可视化配置,通过拖拽模板组件的方式可以动态生成活动模板,同时活动数据的编辑也会提供可视化的编辑功能)。

唐图生成的活动数据、活动模板数据、权限/身份数据等涉及到图片文件、文本信息的存储与访问,因此利用小程序·云开发的“数据库”和“存储”能力,使用小程序·云开发的Node端SDK对后端系统进行支撑。

“小程序模板”

“小程序运营工具”中生成的每条活动数据都通过活动类型和活动ID进行标识,小程序在访问活动时带上必要的参数去访问小程序端云端开发的云端数据库,获取对应的活动配置数据来渲染页面,从而达到用一套模板来制作不同活动的目的。

“问题、思考与解决方案”

当然,在小程序云开发落地唐图的过程中,我们也遇到了一些值得思考的问题,下面是我们的一些经验:

1. 不同环境下的数据访问策略

小程序云开发遇到的问题及解决_程序开发中遇到的问题_开发遇到的问题怎么解决

在开发新的活动模板时,小程序开发版本会使用云端开发测试环境,线上版本会使用云端开发生产环境。

1.1 数据访问

唐图的线上活动配置项都是通过操作进行配置的,如果线上活动配置只存储在prod环境,那么意味着小程序开发版将无法获取到活动配置项数据。但是开发是需要验证的,不可能等到上线才去验证。所以唐图的存储策略是经过考虑后确定的:数据会同时保存在两个不同的环境中,这样可以保证线上线下配置项数据一致,利于开发和测试。

1.2 图像的存储和使用

中很多活跃的配置项都是图片文件,上传文件立即返回,通过获取图片的链接,在存储配置项字段时会保存图片信息(及 URL)。

在小程序云中,如果权限是私有的,那么这个URL会是一个临时的URL,如果权限是公开的(所有用户可读),那么这个URL是不会改变的。我们的活动配置权限是设置为公开数据,这个URL是不会改变的,所以这里我们直接把图片URL存到数据库中,供小程序使用。

“小程序云上的存储管理也是按照环境隔离的。”如果也按照数据访问策略,把同一份数据上传到不同的环境,图片数据就变得多余、没必要了。所以决定只在prod环境上传图片并存储,返回的链接分别保存在两个不同环境的数据里。

调用上传文件接口前必须翻译文件名,因为文件名会直接作为图片链接的一部分,如果文件名含有中文或者特殊字符且未翻译,可能会导致上传失败或者生成的链接不可用(如果分享给好友,带有中文链接的图片分享后将不可用)。

上传前先检查是否有与当前文件名相同的文件,如果有,则将一些随机字符串拼接到文件后再上传。或者不搜索文件,直接将之前的文件名替换为随机字符串。(但在我们的场景中,文件名可能有意义,所以不会直接替换)。

2.使用短链接生成猫眼小程序代码

活动可自定义后,运营可以自己生成活动了!不过生成活动后,运营同学需要把活动的入口放上去,如果当前活动的链接地址和对应的小程序代码不清楚的话,需要请前端同学提供。

我们预见到了这种情况,并在唐图中添加了查看链接和小程序代码的功能。

该API用于生成小程序码,这种小程序码的好处是永久有效,没有数量限制。但是传递的参数最多为32个可见字符,参数需要传递的信息至少包括活动id和活动类型。在实现该功能时,小程序云数据库默认的_id标识长度为20位,总参数长度勉强超标。但是只能支持扫码进入当前活动页面,如果要先跳转到猫眼小程序首页再跳转到活动页面(目的是希望用户能回到小程序首页),这个要求似乎超出了你的能力范围。

为了解决这个问题,我们使用云开发的云数据库来存储主动链接(长链接),并返回小程序云添加此数据后生成的唯一标识_id,并且只将_id作为参数作为字段的值。

云端数据库存储的数据如下:

但很快我们发现了新的问题, 调用小程序云 Node SDK 返回的用于存储长链接的唯一标识 _id 从 20 位变成了 32 位!我们意识到默认 _id 的位数可能会发生变化,而我们不能依赖默认 _id 作为本场景使用的 _id(对位数有严格要求)。我们在 Node 端生成一个随机字符串,在创建新数据时赋值给 _id,而不再使用默认 _id。

这个功能很实用,上线之后运营部再也不用问前端:“xx情况下应该填什么路径?”“请生成小程序码”。

“云开发让运营需求不再难以实现”

目前,最常用的活动模板均已实现,自唐图一期上线(2月初)至今(5月初),已支持5场线上活动,效益显著。

对于运营

不再需要开发“随时开始”的同类型活动,降低了创建活动的复杂性,大大提高了效率。

“随心所欲”操作人员可以通过随意创建和修改活动数据。

“随心所欲”运营人员可通过唐图查看当前活动小程序链接及当前活动小程序码(用于入场投放)

为了发展

“前端开发启动活动模板不再依赖后端,面对模板过程中可能随时增加的新字段或者新功能,也能从容应对。”小程序云基于云数据库开发,可以低成本自行更改表结构。如果变更频繁,也可以先mock一个json,等稳定后再将json文件上传到数据库。So easy!妈妈再也不用担心我加班了!

《后端开发摆脱苦恼》 后端不再需要配合前端做这些无聊的存储工作,有时间去做更重要的事情!

『解放QA』模板化活动之后,只需要测试模板之后的第一个活动,以后没必要无休止地测试同一个活动!

模板化活动实际上限制了操作对每个活动进行“定制”或“一次性”修改的能力。如果模板发生变化,将来的可重用性将得到更仔细的考虑,从而降低出现荒唐或怪异需求的可能性!

在云开发的助力下,猫眼在活动模板和定制方面取得了初步成功。我们也计划从小程序中抽象出独立的活动插件项目,在小程序插件中使用云开发,完善我们的活动定制项目。也希望云开发能推出更多好用的服务,服务于更多的前端开发者。

分享