关键在于将“自动播放是否成功”作为核心埋点事件:监听play() Promise结果区分autoplay是否被阻断,结合volumechange识别用户主动开音,通过data-track标记手势触发源,并用dataset.initTrigger贯穿播放全链路,辅以visibilityState和pagehide校准真实观看时长。

HTML5 音视频自动播放不能绕开浏览器策略,而用户行为埋点又必须真实反映“谁在什么时机、以什么方式触发了播放”。两者要配合好,关键不是强行让视频自播,而是把“自动播放是否成功”本身变成一个可采集、可归因的行为节点。
自动播放状态本身就是核心埋点事件
现代浏览器(Chrome、Safari、Firefox)只允许静音(muted="true")的音视频在无用户交互时 autoplay。一旦带声音,就必须依赖用户手势(点击、触摸等)。因此,“是否成功自动播放”直接暴露了设备策略、用户环境和页面设计质量。
- 监听
play()返回的 Promise:成功则记录autoplay: true, muted: true;被拒绝则捕获NotAllowedError,上报autoplay_blocked: true, trigger: "init" - 区分“静音自动播”和“用户点击后取消静音”:在
volumechange事件中检测video.muted === false && video.volume > 0,标记为audio_enabled_by_user - 避免把
play事件简单等同于“用户启动”:结合event.detail?.trigger(若自定义触发)或检查调用栈上下文(如是否来自click回调),否则会把自动播误计入有效启动率
用户首次交互必须绑定播放并打标
合规自动播放的底线是:所有非静音播放,必须由明确用户手势发起。这个手势动作本身,就是最干净的埋点入口。
把任意文章或文档内容转换成精美的全屏翻页 HTML 演示文件(幻灯片风格)。当用户发来一篇文章、文档链接、Markdown 内容、或粘贴的文本,并且希望生成演示用的 HTML 时触发。支持任意内容来源:iWiki 链接、KM 链接、本地文件路径、直接粘贴的文本。生成的 HTML 文件保存到本地工作区,并通过企微直接发送给用户。触发词示例:帮我把这篇文章做成PPT、转成演示文档、生成HTML幻灯片、做个演示、转成可以演示的格式、article to deck、make a slide。
- 给播放按钮加
data-track="video_play_click",并在 click 回调中立即调用video.play(),确保事件时间戳与播放调用强关联 - 上报时附带设备上下文:
is_mobile、user_agent、document.visibilityState,便于分析 iOS Safari 下点击无效的集中场景 - 对模态框、Banner、引导浮层中的播放按钮,额外标记
placement: "popup"或placement: "hero_banner",用于归因曝光路径
播放过程行为要关联初始触发方式
一次播放会经历多个阶段(加载、首帧、播放、暂停、拖拽、结束),每个阶段的数据价值,取决于它和“起点”的关系。
- 在
loadedmetadata触发时,将初始触发类型(autoplay_muted/click_start/keyboard_enter)存入 video 元素 dataset:video.dataset.initTrigger = "click_start" - 后续所有事件(
timeupdate、pause、seeked)都从该 dataset 读取初始来源,确保“暂停时长分布”能按触发方式分组分析 - 当用户拖拽跳过片头广告(比如从 0s 直接拖到 15s),且初始触发是
click_start,就可判定为“主动跳过广告”;若是autoplay_muted后拖拽,则更可能是“被静音自动播吸引而来但想快进”
用 visibilityState 和 pagehide 补全真实观看时长
用户切走标签页、锁屏、最小化窗口时,视频可能仍在后台运行,但实际观看已中断。这类“伪播放”必须过滤,否则会严重拉高平均观看时长。
- 监听
document.visibilityState:从visible变为hidden时,记录watching_session_end: "tab_hidden"并暂停计时 - 监听
window.onpagehide:页面卸载前最后一次上报,用sendBeacon发送包含currentTime、totalWatched、initTrigger的终局数据 - 对
ended事件,只在visibilityState === 'visible'且currentTime >= duration * 0.8时,才记为有效完成
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










