淘宝widget链路方案总结

news2024/9/30 17:24:39

ec11a9be53670d855f89454bfa755813.gif

目前widget生态已经做了大量的基建工作,同时在widget生态的演进过程中我们发现如何匹配用户的偏好一直以来是一个挑战工作,本文介绍了widget的整体链路。

db012675920b9d6caa1a2faf888a2a79.png

业务背景

  widget介绍

2020年底iOS推出了新版widget之后引起了一些声浪,但仍然很多苹果用户并不了解widget,市场上也没有取得较大市场规模的widget案例。

2021年安卓厂商在用户体验战役上纷纷布局widget,华为、小米、OPPO、VIVO 分别做了操作系统级别的大幅升级并做了相关发布会。

2022年安卓厂商希望通过widget的体验来提供终端的独特价值,与苹果不同的是厂商提供了可以在端内调用、反向添加的能力,以促使开发者一起完善、建立生态。

  widget特点


  • 多形态

对于一个app来说,其本身的空间是1*1的。widget拓宽了其空间,包括了1*1(苹果不支持),2*2,2*4以及4*4等多种样式。

  • 刷新方式

  1. 自动刷新:每半小时可以主动请求一次服务端获取最新的信息,刷新最小间隔为5min。

  2. 切后台刷新:用户在打开淘宝并且切换后台后会自动触发一次刷新。

  3. 手动刷新:用户访问频道页触发某个动作后,业务可以主动调接口强制触发刷新。

  widget价值

  • 对用户的价值

widget对用户的价值可以简单概括为3点:直达 -> 提醒 -> 发现



ddc7b8da16af5de43dae8fd587a38ec7.png


  1. 比如对于淘内很多轻应用(菜鸟、飞猪)、频道(大促、聚百)的入口很深,通过外投广告的方式吸引用户访问之后,用户想要再次回访就无法找到对应的路径,我们可以通过widget完成便捷访问。

  2. 比如用户将淘宝物流widget添加到桌面,widget可以将物流消息的变化实时传递给用户,提醒用户快递的进度。

  3. 比如我们可以通过推荐的方式向用户的widget投放一些用户感兴趣的内容,像红包权益、商品降价等等信息,来探索用户兴趣边界。

  • 对平台的价值

通过widget对用户的价值来创造平台价值。

  1. 增加平台日活

  2. 加强用户淘宝心智

  3. 等等

8f331b604da448e0c7319111087a8dc0.png

技术问题

为了实现相关需求,技术需要解决如下问题:

  1. 打通厂商与淘宝的生态链路。

  2. 提供widget内容动态运营能力。

  3. 构建端内端外widget触达能力。

2a1b6e37f7802450918a54df962577d1.png

整体结构

整体结构如下图所示:

2ded215e29a44d2a1d5fbb07cdbe86da.png

widget结构由下面几部分组成:

  1. widget运营平台

    :负责管理widget相关的配置信息,包括内容配置、触达配置、业务配置以及布局配置。

  2. 二方业务管理:

    @LocalService代表我方主动接入二方业务提供的HSF接口;@HSFConsumer代表二方业务主动接入我方提供的HSF接口。

  3. 数据管理:

    SLS:用于相关日志存储查询;ODPS:用于相关数据存储查询

7f4da343dc7319d9f953741bfe6e86d7.jpeg

落地细节

  widget运营平台

widget运营平台最重要的配置就是内容配置,内容配置主要分为静态配置以及动态配置。

  • 静态配置

静态配置主要针对的是特定的业务,其配置是静态固定的,所以针对此类型的widget配置给出一个静态的配置模板即可,适用于1x1&2x2。

c6987d1ebd26eeef9e4172f1c0d21406.png

  • 动态配置

动态widget是对所有业务的收口,用户可以自由订阅自己想要的业务内容,其配置是动态变化的。

布局一:

9832bd5505941451b15bd69d04eeab90.png

布局二:

92164ee4c935a6e625eaa85783cbf914.png

针对动态widget,我们将整个widget的内容拆分成三个组成部分:

  1. 策略:代表了一个内容组合,如布局一整个widget数据。

  2. 内容池:代表了一个业务内容,如右边布局一展示的淘金币业务。

  3. 内容项:代表了这个业务的相关业务字段,如布局一淘金币业务,包含淘金币图片、淘金币主标题、淘金币副标题以及淘金币数量。

平台侧动态widget配置绑定关系:

7cbfe58d422f304abe87517124163053.png

  widget请求链路

  • 静态链路

65e6d166c1fdf0019ec0859e5a577604.png

  • 动态链路

d9621707de6bd032011ea18fc8ba6bec.png

e3959cc794eaa53ccc492ae2eac1030f.png

平台推荐

930b51edb9a60a20872250a2065d9571.png

整体流程:

018e892e0a9ee361267bbe2d97603eaf.png

  widget触达链路

引导触达链路负责对外触达用户(相当于对外推广小组件),主要是与前端的技术述求。

  • 触达痛点

业务痛点
解决方案

无法动态灵活调整投放策略

构建触达投放平台能力(支持时间排期,弹窗类型选择、疲劳度管控等功能)
曝光添加等数据链路依赖二方业务埋点触达链路统一进行数据收口


  • 触达模块

21bf1ca130643a7d1c4b1a8a9ab0bd13.png


整个触达模块主要涉及到三个方面,分别是触发时机、触发形态以及触发频率。运营通过配置相应的触达策略就可以控制在某个二方业务页面的widget透出逻辑。

  • 触达流程

4da88308e5739602fa5d438b1ff67bde.png

整体流程:

7c93d9a622a735d74e11442dd9f44db1.png

56bbbc7209f44c1dea43af967dcc889b.jpeg

总结和展望

从静态widget -> 动态widget -> 用户自定义布局,目前widget生态已经做了大量的基建工作。同时在widget生态的演进过程中我们发现如何匹配用户的偏好一直以来是一个挑战工作,前期引入了分人群的运营功能,然而效果并不是很理想,后期我们会引入AB功能以便更加精细地去运营各个环节。

b1d8c10861f898857f83e89826efc1f0.jpeg

团队介绍

我们来自大淘宝技术-获客平台团队,通过对智能广告外投、厂商生态外延、外链进端优化等技术升级构建了巨浪平台。巨浪平台覆盖全网十亿级用户,为消费者带来了及时提醒、发现美好、便捷直达的优质体验动线。

¤ 拓展阅读 ¤

3DXR技术 | 终端技术 | 音视频技术

服务端技术 | 技术质量 | 数据算法

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

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

相关文章

三、基本的select语句

一、SQL概述 1、SQL背景知识 2、SQL语言排行 3、SQL分类 SQL语言在功能上主要分为如下3大类: DDL(Data Definition Languages、数据定义语言),这些语句定义数据库、表、视图、索引等数据库对象,还可以用来创建、删除…

MacOS + AndroidSDK + appium + 真手机(Android系统)环境搭建

需要的环境:Node.js version: ^14.17.0 || ^16.13.0 || >18.0.0NPM version > 8Java8python3Android SDK (通过Andriod Studio 安装)Appium client desktop (v1.19.1)install brew/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/ma…

Docker启动问题docker is starting…

环境window 10 家庭最新版直接上官网安装的 Docker DeskTop问题启动应用后setting打开一直转圈圈;主界面一直显示 docker is starting…解决方案3.1 先确定hyper-v是否开启搜hyper-v,点击启动或关闭Windows功能如下,选中Hyper-V服务3.2 进入任务管理期&a…

Hive 常用函数

Hive 常用函数一、常用内置函数1、空字段赋值2、CASE WHEN THEN ELSE END3、行转列4、列转行5、窗口函数(开窗函数)6、Rank二、常用日期函数三、常用取整函数四、常用字符串操作函数五、集合操作一、常用内置函数 查看系统自带的函数show functions;显示…

【AcWing】学了一坤时才明白的一道题

🎆音乐分享 (点击链接可以听哦) The Right Path - Thomas Greenberg 这道题小吉花了一坤时才弄明白,虽然花的时间有点长 但是至少是明白了 😎😎😎😎😎😎 …

Java程序占用CPU过高排查

使用 top 命令查看高CPU进程,执行命令后可以按 1 键查看各CPU 内核负载情况。CPU使用率主要看us、sy两个指标。假设 10760 是一个高CPU的进程。使用 top -H -p 查看 10760 的线程信息top -H -p 10760TIME列就是各个Java线程耗费的CPU时间。以线程ID 10952的线程为例…

Msyql聚簇索引和非聚簇索引

前提MySQL索引一直是面试中的常客,一提起索引,很多人都能答出来我知道Hash索引和B树索引,Hash是比较简单的,那么B树索引就有点复杂了。在创建表的时候,我们可以看到引擎有MyISAM , InnoDB等等,这两种是我们…

ARM uboot 的移植3 -从 uboot 官方标准uboot开始移植

一、选择合适的官方原版 uboot 1、官方原版 uboot 的版本 (1) 版本号。刚开始是 1.3.4 样式,后来变成 2009.08 样式。 (2) 新版和旧版的差别。uboot 的架构很早就定下来了,然后里面普遍公用的东西(common 目录下、drivers 目录下、fs 目录…

CSS快速入门

文章目录一、CSS是什么?语法规范引入方式二、CSS选择器标签选择器类选择器ID选择器通配符选择器后代选择器子选择器并集选择器伪类选择器三、常见元素属性字体属性文本属性背景属性圆角矩形元素的显示默认块级与行级元素盒子模式去除浏览器默认样式弹性布局一、CSS是…

JUC并发编程共享模型之管程(三)(中)

4.5Monitor概念 Java 对象头 以 32 位虚拟机为例(在32位虚拟机中,1个机器码等于4字节,也就是32bit,在64位虚拟机中,1个机器码是8个字节,也就是64bit) 普通对象 数组对象 其中Mark Word 结构为…

2019年MathorCup数学建模C题汽配件制造业中的生产排程问题解题全过程文档及程序

2019年第九届MathorCup高校数学建模挑战赛 C题 汽配件制造业中的生产排程问题 原题再现: 整体求解过程概述(摘要) 随着市场竞争日趋激烈,企业开始更加注重低费高效,因此生产排程问题成为众多制造企业关注的热点之一。其中,制造行…

源码剖析Spring MVC如何将请求映射到Controller?

文章目录一、前言二、核心链路分析1、确定请求映射的入口1)HandlerMapping注入Spring容器2)HandlerMethod注册到MappingRegistry1> 判断Class是否为一个Handler2> 解析Class中的所有HandlerMethod 并注册到MappingRegistry中2、请求路径匹配1&…

【JavaScript速成之路】JavaScript函数

📃个人主页:「小杨」的csdn博客 🔥系列专栏:【JavaScript速成之路】 🐳希望大家多多支持🥰一起进步呀! 文章目录前言1,函数基础1.1,函数概念1.2,函数使用1.3&…

sHMIctrl 曲线控件使用

目录 效果 官方介绍 ​编辑 名词解释 使用方法 显示点 点在X轴位置 点在Y轴位置 量程 单位 如何设置自动标尺数据 设置量程 设置单位 效果 官方介绍 名词解释 四条曲线:同时最多使用4条曲线。 每条条曲线最多512点:X2-X1-Xn; 数据自定…

认识CSS值如何提高写前端代码的效率

🌟所属专栏:前端只因变凤凰之路🐔作者简介:rchjr——五带信管菜只因一枚😮前言:该系列将持续更新前端的相关学习笔记,欢迎和我一样的小白订阅,一起学习共同进步~👉文章简…

Spring注解开发之组件注册(一)

Spring注解开发 Spring注解开发之组件注册下半篇 IOC,中文名为控制反转,是将Java的bean对象存储在容器中,当需要使用时,通过名字获取该对象。而不是通过new关键字去创建。 1.Configuration & Bean给容器中注册组件 第一种&…

K_A16_003 基于STM32等单片机采集薄膜压力传感器参数串口与OLED0.96双显示

K_A16_003 基于STM32等单片机采集薄膜压力传感器参数串口与OLED0.96双显示一、资源说明二、基本参数参数引脚说明三、驱动说明对应程序:四、部分代码说明1、接线引脚定义STM32F103C8T6薄膜压力传感器模块五、基础知识学习与相关资料下载六、视频效果展示与程序资料获取七、注意…

Allegro如何在PCB中添加层面操作指导

Allegro如何在PCB中添加层面操作指导 在用Allegro做PCB设计的时候,根据需要,会在PCB中额外添加一些额外的层面,如下图 如何添加,具体操作如下 点击Setup点击Subclasses

实在智能RPA入选中国信通院《高质量数字化转型产品及服务全景图》

近日,中国信息通信研究院“高质量数字化转型创新发展大会暨中国信通院‘铸基计划’年度峰会”在北京召开,大会上信通院揭晓了《高质量数字化转型产品及服务全景图(2022)》(以下称“全景图”)。实在智能凭借…

自己定义typescript的类型声明文件xx.d.ts

****内容预警***菜鸟新手内容,大佬请绕道,不对的请指出我们在使用typescript的使用,如果安装一个包没有相应的类型声明文件,ts的类型检查就会报错,所以我们经常会安装npm包对应的types类型声明包,比如uuid …