IM即时通讯-7-如何设计通知提醒

news2024/11/23 21:02:09

本文大纲

本文从为什么做通知提醒, 以及如何设计通知提醒, 以及如何衡量通知提醒三方面解释了如何设计通知提醒。
对于重点的如何设计通知提醒, 通过拆分前台和后台, 前台采用自建或者二方通道, 后台采用厂商信令通道以及厂商代理通道的方式达到目的。

背景/为什么做

作为即时通讯产品, 实现通知提醒有基本的两方面的目的。 业务目的和产品目的

  1. 业务目的: 提升DAU(促进用户活跃), 提升业务的转化率(如电商的商家营销消息)。
  2. 产品目的: 对于消息的接收方而言, 可以及时的接收对方消息。 对于消息的发送方而言, 消息可以及时的被回应。一个词总结: 及时触达

通知提醒的产品形态

  1. 产品位于前台时, 可以采取通知栏提醒或者应用内提醒的方式
  2. 产品位于后台时, 采取通知栏提醒的方式

通知提醒的技术形态

通知提醒, 按照App的活跃状态, 区分为前台提醒后台提醒

  1. 前台提醒: 即用户在app打开当前情况下, 有新消息时, 及时的弹出来通知用户(采用通知栏提醒或者应用内提醒)。
  2. 后台提醒: 用户来了新消息, 在app没有打开的情况下, 将通知展示给用户(通知栏提醒)。

如何设计

从通知的角度看, 一次通知提醒, 划分为以下的几个阶段: 准备发送, 实际发送, 应用到达, 弹窗, 点击/移除/其他。

如何设计前台提醒

消息业务的前台提醒, 可以直接采取系统对接发送推送(包含系统的通知通道,以及三方实现的长连接通道)或者基于端侧消息长连接实现的端侧通知。

在这里插入图片描述
前台通知, 一般从业务成本的角度考虑, 会采用二方通道或者自建长连接通道IM的方式接入。

基于端侧消息长连接实现

前台基于长连接做IM的新消息处理。 在新消息处于完成后。 IM的通知模块作为新消息的消费方对接即可。
在这里插入图片描述

如何设计后台提醒

后台提醒是用户来了新消息, 在app没有打开的情况下, 将通知展示给用户。设计后台提醒, 需要考虑到app的进程没有此时并没没有存活。 因而要么借助系统进行弹窗(厂商代理通道), 要么将进程唤起, App的进程做处理后前台弹窗(后台转为类前台, 厂商信令通道)。

厂商代理通道

厂商代理通道, 即厂商代理了消息通知的实际发送发送阶段,以及 弹窗, 点击/移除阶段。 及时通讯系统可以控制的是, 准备发送的消息通知, 以及用户点击后+移除后的行为。 中间阶段均为厂商控制。

国内的小米, Oppo, VIVO, 华为等厂商支持的厂商代理通道, Google的GCM/FCM支持代理通道。

厂商信令通道

厂商信令通道, 即厂商支持发送一条消息通知的信令, 然后厂商将app的进程唤起,App的进程做处理后前台弹窗。即时通讯系统可以控制的是, 准备发送的消息通知, App内收到的唤醒通知, 实际发送量, 弹窗, 点击/移除/其他等均可以控制。

国内的厂商是否支持信令通道的通知, 没有做研究, GCM/FCM是支持信令通道的方式。

整体的方案

通常从成本的考虑而言, 会采取以下措施:
前台时,采用自己的长连接做基础的通知提醒;
后台时, 采用厂商的信令通道+厂商代理通知。
在这里插入图片描述

国内三方的推送解决方案

极光推送
个推
信鸽

如何衡量做的好坏

站在通知的角度划分, 准备发送, 实际发送, 应用到达, 弹窗, 点击/移除/其他, 作为主要的依据衡量消息通知链路的数据。 按照PV(量)/UV(用户)的视角查看。

技术指标:
送到率 = 应用到达/准备发送的量
展示率/弹窗率 = 弹窗的量/应用送达的量
点击率 = 点击量/弹窗的量

辅助指标:
通知栏打开率 = 用户打开的UV/打开App的UV

总结

本文从为什么做通知提醒, 以及如何设计通知提醒, 以及如何衡量通知提醒三方面解释了如何设计通知提醒。
对于重点的如何设计通知提醒, 通过拆分前台和后台, 前台采用自建或者二方通道, 后台采用厂商信令通道以及厂商代理通道的方式达到目的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/424835.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电厂人员定位怎么做?智慧电厂人员定位系统解决方案告诉你答案

伴随着“泛在电力物联网建设”的提出,构建智慧电厂引起重大关注,全国各地纷纷响应。传统电力企业一直面临着人员管控难、生产环境复杂且危险多等问题,物联网技术的兴起使得电厂的数字化和智慧化转型已成为电力企业保障生产作业安全、提升生产…

工具及方法 - Linux下串口工具Minicom

因为调试设备所以需要打开两个串口,也许是开了Ubuntu虚拟机的影响,或其他的问题,经常有一个或两个串口设备工作不正常,需要重启电脑,很麻烦。 原因大概就是设备驱动问题,比如使用MobaXterm这个工具&#x…

基于NXP iMX8M Mini处理器测试DPDK

By Toradex秦海 1). 简介 DPDK (Data Plane Development Kit) 软件是一组用户空间库和驱动程序,可加速在所有主要 CPU 架构上运行的网络数据包处理工作负载,以便提升整个网络数据服务的QoS。其最早由 Intel 大约 2010年创建,后由6WIND公司发…

赛事报名启动丨百度Apollo星火自动驾驶大赛开始报名啦!

作为汽车智能化、网联化的关键环节,自动驾驶成为全球科技界、产业界竞争的新赛道。随着人工智能、5G通信、激光雷达、高精地图等多项技术不断完善,自动驾驶的判断力和理解力得到了显著提升。为了推动自动驾驶技术的发展、加快人工智能技术的迭代&#xf…

超详细的ARM架构适配介绍!

超详细的ARM架构适配介绍! - 掘金 本文主要介绍云联壹云平台如何适配ARM,并运行在ARM CPU架构的机器上。 背景介绍 1、平台服务运行架构 云联壹云平台采用容器化,分布式的架构运行在 Kubernetes(K8s)之上。下面是平…

小白轻松学Spring Cloud

在了解SpringCloud之前,我们先来大致了解下微服务这个概念吧。 传统单体架构 单体架构在小微企业比较常见,典型代表就是一个应用、一个数据库、一个web容器就可以跑起来。 可以从上图看出,单体架构基本上就是如上所说的:一个应用…

【Python】自动化这么简单吗?——百度网盘自动上传文件教程

文章目录前言一、准备二、授权bypy访问百度网盘三、开始使用bypy四、文件上传功能五.文件同步功能总结前言 要使用Python自动上传文件到百度网盘,你可以使用bypy开源模块,它提供了丰富的功能,包括显示文件列表、同步目录、文件上传。 仅支持…

014 - C++ 类

本期我们要讲的是 C 中的类。 我们终于讲到了面向对象编程,这是一种非常流行的编程方式,面向对象编程实际上只是一种你可以采用的编写代码的方式,其他语言例如 C#、Java 这些主要是面向对象的语言,事实上,用这些语言你…

JUC并发工具

JUC并发工具 一、CountDownLatch应用&源码分析 1.1 CountDownLatch介绍 CountDownLatch就是JUC包下的一个工具,整个工具最核心的功能就是计数器。 如果有三个业务需要并行处理,并且需要知道三个业务全部都处理完毕了。 需要一个并发安全的计数器来操作。 CountDown…

Android Linux,Windows 安装,卸载 android studio

Linux安装过程 sudo apt-get install libc6:i386 libncurses5:i386 libstdc6:i386 lib32z1 libbz2-1.0:i386sudo cp -r ./android-studio /usr/local/cd android-studio/cd bin./studio.sh Windows 安装过程 下载安装文件,解压 将解压得到 android-studio 文件夹…

pdf转jpg怎么解决?这五个转换方法快速搞定!

pdf转jpg怎么转?pdf是在我们工作中经常使用的一种办公文件格式类型,但是在某些特殊情况下,我们应该把pdf转jpg图片格式文件,很多人在这种情况下不知道如何把pdf转jpg图片格式文件,接下来我们一起来了解下pdf转jpg转换方…

java设计模式(1) 适配器模式、装饰器模式

适配器模式 适配器就是一种适配中间件,它存在于不匹配的了两者之间,用于连接两者,使不匹配变得匹配。 手机充电需要将220V的交流电转化为手机锂电池需要的5V直流电 知识补充:手机充电器输入的电流是交流,通过变压整流…

MySQL 8.0 OCP (1Z0-908) 考点精析-性能优化考点1:sys.statement_analysis视图

文章目录MySQL 8.0 OCP (1Z0-908) 考点精析-性能优化考点1:sys.statement_analysis视图视图sys.statement_analysis各列定义视图sys.statement_analysis视图的定义视图sys.statement_analysis各列解释例题例题解析参考MySQL 8.0 OCP (1Z0-908) 考点精析-性能优化考点…

5G边缘计算网关用于智能消防安全

随着人们对智能消防安全的需求不断增长,5G边缘计算网关作为一种新型技术,已经被广泛应用于消防设备的智能监控和管理中。本文将介绍5G边缘计算网关在智能消防安全中的应用,并给出一个Python代码示例。 一、5G边缘计算网关在智能消防安全中的应…

OKR系统改变您的团队

使用Zoho Projects易于使用的OKR系统将雄心转化为行动。简化您计划、跟踪和报告团队目标的方式。 一、使用这个强大的OKR工具提升结果 1、自动组织团队的目标 在公司、部门、团队和个人层面创建和跟踪OKR,以实现真正的整体OKR管理。 2、实时跟踪进度 使团队能够使…

阻塞队列 BlockingQueue

阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作支持阻塞的插入和移除的方法: 支持阻塞的插入方法:当队列满时,队列会阻塞插入元素的线程,直到队列不满;支持阻塞的移除…

HTML5 <header> 标签、HTML5 <html> 标签

HTML5 <header> 标签 实例 HTML5 &#xff0c;<header>标签用来表示介绍性的内容&#xff0c;即&#xff0c;定义了文档中的页眉&#xff0c;请参考下述示例&#xff1a; <article> 的页眉&#xff1a; <article><header><h1>Internet …

SpringSecurity之入门案例

前言 前面一篇文章讲了一些关于SpringSecurity的基本内容、两大核心模块以及学习他所需要的基本技能点。接下来&#xff0c;带大家进入到一个基本的入门案例&#xff01;&#xff01;&#xff01; 操作步骤 1、创建Springboot工程 首先通过idea开发工具&#xff0c;创建一个…

代码随想录_二叉树_leetcode669 108 538

leetcode 669. 修剪二叉搜索树 669. 修剪二叉搜索树 给你二叉搜索树的根节点 root &#xff0c;同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树&#xff0c;使得所有节点的值在[low, high]中。修剪树 不应该 改变保留在树中的元素的相对结构 (即&#xff0c;如果没…

翻译国外文章-整篇文章的翻译

chatgpt翻译是专业的吗 ChatGPT是一种AI语言模型&#xff0c;它可以用来执行各种自然语言处理任务&#xff0c;包括翻译。然而&#xff0c;ChatGPT的翻译结果并不是专业的翻译&#xff0c;因为该模型并不是专为翻译任务训练的。 虽然ChatGPT的翻译质量相对较高&#xff0c;但…