当前位置: 首页 > news >正文

淘宝widget链路方案总结

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技术 | 终端技术 | 音视频技术

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

相关文章:

淘宝widget链路方案总结

目前widget生态已经做了大量的基建工作,同时在widget生态的演进过程中我们发现如何匹配用户的偏好一直以来是一个挑战工作,本文介绍了widget的整体链路。业务背景▐ widget介绍2020年底iOS推出了新版widget之后引起了一些声浪,但仍然很多苹果用户并不了…...

c++指针

内存地址 将内存抽象成一个很大的一维字符数组&#xff0c;编码就是对内存的每一个字节分配一个32位或64位的二进制编号。这个内存编号称之为内存地址&#xff08;唯一&#xff09;&#xff0c;内存中的每一个数据都会分配相应的地址。 #include<iostream> using namesp…...

Qt 贴图实现方向控制盘

一、效果走一波 二、使用贴图进行不规则按钮的设计与开发 开发环境描述&#xff1a;QtCreator Qt Desinger &#xff08;1&#xff09;首先准备待贴的图片 ​ 图片的切片大小必须一样&#xff0c;背景为透明的&#xff1b;将待贴的所有图片都切下来&#xff0c;文件标明名称…...

建模杂谈系列211 ADBS的取数模式以及衔接

说明 这应该是进一步的完善ADBS的工作模式。 之所以做A系列的架构工具&#xff0c;就是为了可以实现大型的数据处理、存储。从应用上说&#xff0c;是为了提高效率&#xff0c;并达到超高的效果。 为了达到这个目的&#xff0c;就必须从数据架构上、任务调度上、逻辑架构上作…...

易基因:RRBS揭示晚年锻炼可以减缓骨骼肌表观遗传衰老(甲基化年龄)|新研究

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。2021年12月21日&#xff0c;美国阿肯色大学、德克萨斯大学和肯塔基大学的研究人员合作在《Aging Cell》杂志发表了题为“Late-life exercise mitigates skeletal muscle epigenetic aging”…...

JVM的基本知识

JVM JVM是java的虚拟机,是一个十分复杂的东西,所以掌握的要求比较高.本文主要是研究JVM的三大话题 JVM内存划分JVM类加载JVM的垃圾回收 JVM内存划分 java程序要执行的时候,JVM会先申请一块空间,这里就涉及到JVM的内存划分 堆 : 放的是new 出来的对象栈: 放的是方法之间的调…...

STM32移植FreeRTOS操作系统

一、FreeRTOS源码下载&#xff08;1&#xff09;移植钱得准备前菜对吧&#xff0c;我们先来去官网瞄一瞄网址&#xff1a;https://freertos.org/zh-cn-cmn-s/ 第一步&#xff1a;点击下载FreeRTOS第二步&#xff1a;选择版本下载&#xff08;我选择稳定版本&#xff09;注&…...

【专项训练】泛型递归、树的递归

递归和循环没有明显的边界! 不要进行人肉递归! 找最近重复子问题,直接写递归! 数学归纳法思维:1,2,…… 70. 爬楼梯 https://leetcode.cn/problems/climbing-stairs/ 互斥,且加在一起是全部答案! 动态规划法:用数组做递推,就是动态规划!!! class Solution...

React18 setState是同步还是异步?

相信大家对于react的setState肯定是不陌生了, 这是一个用于更新状态的函数. 但是在之前有一道非常经典的面试题就是关于setState是同步还是异步的问题, 具体可以参考我之前写的一篇文章: 一篇文章彻底理解setState是同步还是异步&#xff01;. 对于react 18之前的版本, 上文说的…...

Kafka消费者 TCP管理

Kafka消费者 TCP管理创建 TCPFindCoordinator连接协调者消费数据TCP 连接数关闭 TCP 连接消费者的程序入口类是 KafkaConsumer 构建 KafkaConsumer 时 &#xff0c;不会创建任何 TCP 连接TCP 连接是用 KafkaConsumer.poll 创建 创建 TCP poll 创建 TCP 的地方 : 发起 FindC…...

软考高级备考哪一个类型好些?

软考高级是比中级和初级难&#xff0c;科目就要考三科&#xff0c;选择题基础知识简答题案例分析写作论文 软考高级科目有&#xff1a;信息系统项目管理师、系统分析师、系统架构设计师、网络规划师、系统规划与管理师。如下&#xff1a; 软考高级中高项信息系统项目管理师师比…...

2023 HBU 天梯赛第一次测试 题目集

目录 1 建校日期 2 发射小球 3 背上书包去旅行 4 吉利的数字 5 向前走 6 热水器 7 走方格 8 朋友圈 9 交保护费 10 走方格 11 和与积 12 缩短字符串 13 买木棒 1 建校日期 在2022 ICPC沈阳站上&#xff0c;东北大学命题组给参赛的选手们出了一道签到题&#xff0…...

华为OD机试题,用 Java 解【子序列长度】问题

华为Od必看系列 华为OD机试 全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典使用说明 参加华为od机试,一定要注意不…...

内网环境解决SSL证书问题

本来这个没什么好写的&#xff0c;但是坑实在有点多&#xff0c;不得不写个文章记录下来。 创建证书看这里&#xff01;&#xff01;&#xff01; 很多知识点要结合这个页面内容来看。 创建证书已经看过相关文章&#xff0c;然后用unity跑的时候发现连不上&#xff0c;完全没…...

数据分析方法01对比分析法

对比分析法 1、概念 基于相同的数据标准下&#xff0c;把两个及以上相互联系的指标数据进行比较&#xff0c;准确量化的分析他们的差异&#xff0c;说明研究对象在规模大小&#xff0c;水平高低&#xff0c;速度快慢等的不同表现&#xff0c;目的是为了找到差异的原因&#x…...

基于SMOKE多模式排放清单处理技术及EDGAR/MEIC清单制作与VOCs排放量核算

查看原文>>>基于SMOKE多模式排放清单处理技术及EDGAR/MEIC清单制作与VOCs排放量核算 (qq.com)随着我国经济快速发展&#xff0c;我国面临着日益严重的大气污染问题。近年来&#xff0c;严重的大气污染问题已经明显影响国计民生&#xff0c;引起政府、学界和人们越来越…...

CSS流动布局-页面自适应

项目中经常会碰到页面自适应的问题&#xff0c;例如&#xff1a;商城的列表展示、分类列表展示等页面&#xff0c;如下&#xff1a; 该页面会随着页面的放大缩小而随之发生变化&#xff0c;这种自适应的页面布局在大屏幕、小屏幕、不同的浏览器设备上都应该呈现出与设计匹配的…...

3.Elasticsearch初步进阶

3.Elasticsearch初步进阶[toc]1.文档批量操作批量获取文档数据批量获取文档数据是通过_mget的API来实现的在URL中不指定index和type请求方式:GET请求地址:_mget功能说明:可以通过ID批量获取不同index和type的数据请求参数docs:文档数组参数_index:指定index_type:指定type_id:指…...

优思学院|六西格玛管理的核心理念是什么?

六西格玛管理是一种基于数据分析的质量管理方法&#xff0c;旨在通过降低过程的变异性来达到质量稳定和优化的目的。该方法以希腊字母“σ”为名&#xff0c;代表标准差&#xff0c;是衡量过程变异性的重要指标。 六西格玛管理的核心理念是“以客户为中心、以数据为基础、追求…...

第十七节 多态

多态 什么是多态? ●同类型的对象&#xff0c;执行同一个行为&#xff0c;会表现出不同的行为特征。 多态的常见形式 父类类型 对象名称new子类构造器; 接口 对象名称new 实现类构造器; 多态中成员访问特点 ●方法调用:编译看左边&#xff0c;运行看右边。 ●变量调用:编译看…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具&#xff0c;该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具&#xff0c;其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利&#xff0c;如安装和调试…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码&#xff0c;写上注释 当然可以&#xff01;这段代码是 Qt …...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中&#xff0c;从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备&#xff08;如专用硬件设备&#xff09;&#xff0c;从而消除了直接物理连接的需要。USB over IP的…...

uniapp 实现腾讯云IM群文件上传下载功能

UniApp 集成腾讯云IM实现群文件上传下载功能全攻略 一、功能背景与技术选型 在团队协作场景中&#xff0c;群文件共享是核心需求之一。本文将介绍如何基于腾讯云IMCOS&#xff0c;在uniapp中实现&#xff1a; 群内文件上传/下载文件元数据管理下载进度追踪跨平台文件预览 二…...

如何配置一个sql server使得其它用户可以通过excel odbc获取数据

要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据&#xff0c;你需要完成以下配置步骤&#xff1a; ✅ 一、在 SQL Server 端配置&#xff08;服务器设置&#xff09; 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到&#xff1a;SQL Server 网络配…...

JS红宝书笔记 - 3.3 变量

要定义变量&#xff0c;可以使用var操作符&#xff0c;后跟变量名 ES实现变量初始化&#xff0c;因此可以同时定义变量并设置它的值 使用var操作符定义的变量会成为包含它的函数的局部变量。 在函数内定义变量时省略var操作符&#xff0c;可以创建一个全局变量 如果需要定义…...

uni-app学习笔记二十七--设置底部菜单TabBar的样式

官方文档地址&#xff1a;uni.setTabBarItem(OBJECT) | uni-app官网 uni.setTabBarItem(OBJECT) 动态设置 tabBar 某一项的内容&#xff0c;通常写在项目的App.vue的onLaunch方法中&#xff0c;用于项目启动时立即执行 重要参数&#xff1a; indexnumber是tabBar 的哪一项&…...