← 返回博客
Measure Add to Home Screen conversions: phones adding a PWA icon with a funnel chart

如何衡量添加到主屏幕转化:追踪 PWA 安装(Add to Home Screen,2026)

想准确衡量"添加到主屏幕"转化(Add to Home Screen Conversions),只数安装提示弹了多少次是不够的。PWA 安装发生在浏览器里,有时完全不经过你自己的界面,而在 iOS 上更是一个事件都不会触发。本文讲清楚怎么在 Android 和 iOS 上追踪 PWA 安装、哪些信号可信,以及怎么把安装归回到带来它的广告系列。

什么算一次"添加到主屏幕"转化

"安装"其实涵盖了好几个不同的时刻,把它们混在一起,是 PWA 安装数据看起来不对的最常见原因。请把漏斗的每一步分开定义:

漏斗步骤

含义

怎么观测

可安装

浏览器认为该应用可以安装

触发 beforeinstallprompt(Chromium 内核浏览器)

提示已展示

你的界面或浏览器弹出了安装对话框

调用 prompt() 时自己上报的事件

提示被接受

用户在对话框里点了"安装"

userChoice 返回 outcome: "accepted"

已安装

应用已添加到设备

appinstalled 事件(Chromium 内核浏览器)

首次独立模式启动

用户从主屏幕打开了应用

加载时 display-mode: standalone,且是第一次

活跃安装用户

用户持续通过已安装的应用回访

重复的独立模式会话

对大多数投放来说,真正重要的转化不是"提示被接受",而是安装之后真的在用。一个从来没被打开过的主屏幕图标,没有任何价值。

如果想先回顾安装提示本身在各平台上怎么工作,可以看我们的添加到主屏幕提示指南。

在 Android(Chromium 内核浏览器)上追踪 PWA 安装

Chrome、Edge、三星浏览器等 Chromium 内核浏览器提供三个有用的信号。

1. 可安装。 监听 beforeinstallprompt,保存事件对象,并记录访客处于可安装状态。这就是安装率的分母。

let deferredPrompt;
window.addEventListener('beforeinstallprompt', (e) => {
  e.preventDefault();
  deferredPrompt = e;
  track('pwa_install_eligible');
});

2. 提示结果。 用户点击你的安装按钮时,调用 prompt() 并读取 userChoice。

installButton.addEventListener('click', async () => {
  track('pwa_install_prompt_shown');
  deferredPrompt.prompt();
  const { outcome } = await deferredPrompt.userChoice;
  track('pwa_install_prompt_' + outcome); // accepted 或 dismissed
  deferredPrompt = null;
});

3. 安装完成。 监听 appinstalled。用户通过浏览器菜单(而不是你的按钮)安装时它同样会触发,所以安装数应以它为准,而不是以"提示被接受"为准。

window.addEventListener('appinstalled', () => {
  track('pwa_installed');
});

在 iOS 上追踪 PWA 安装

iOS 上的 Safari 没有 beforeinstallprompt,也没有 appinstalled。用户通过"分享"菜单添加应用,页面不会收到任何通知。实际可行的做法有两个:

  • 统计首次独立模式启动。 应用从主屏幕打开时会以独立模式运行。在加载时检查,并为每台设备记录第一次。
const isStandalone =
  window.matchMedia('(display-mode: standalone)').matches ||
  window.navigator.standalone === true; // iOS Safari

if (isStandalone && !localStorage.getItem('pwa_first_launch')) {
  localStorage.setItem('pwa_first_launch', Date.now());
  track('pwa_first_standalone_launch');
}
  • 通过 manifest 给启动打标。 在 Web 应用清单的 start_url 里加一个参数,比如 ?source=homescreen,这样每一次从主屏幕的启动都能在分析工具里识别出来,而不只是第一次。

因此在 iOS 上,"已安装"的含义是"至少从主屏幕打开过一次"。装了却从没打开过的安装是看不见的。iOS 请按这个定义单独报告,不要和 Android 的 appinstalled 数混在一起。

同时要确认清单本身有效——不满足可安装条件的应用,在 Chromium 上永远不会进入"可安装"状态。浏览器会检查哪些字段,见我们的 PWA Manifest 必填字段指南。

把安装事件作为关键事件发送到 GA4

任何分析工具都可以,用 GA4 的话配置很简短:

  1. 用 gtag('event', 'pwa_installed', {...}) 或通过 Google Tag Manager 发送漏斗事件,各平台使用一致的事件名。
  2. 在 GA4 中把 pwa_installed(Android)和 pwa_first_standalone_launch(全平台)标记为关键事件,这样就能在报告中查看,并在需要时导入 Google Ads 作为转化。
  3. 增加一个"显示模式"自定义维度(browser 或 standalone),随每次页面浏览一起发送。这样就能对比已安装用户和浏览器用户的互动与购买——这通常是支撑 PWA 投入最有说服力的数字。

把安装和带来它的广告系列关联起来

只有知道是哪条广告、哪个广告系列或哪条链接带来的,安装事件才能用于优化。

  • 落地时记录首次触达参数。 访客落地时,把 UTM 参数和点击 ID(如 gclid、fbclid、ttclid)保存在第一方存储里,之后发送安装事件时一并附上。
  • 搞清楚存储在哪里是共享的。 在 Android 上,已安装的 PWA 通常和浏览器使用同一个源的存储,安装前保存的值安装后仍可读取。在 iOS 上,主屏幕 Web 应用不与 Safari 共享 Cookie 和存储,安装前在 Safari 里保存的值,在已安装的应用里是看不到的。
  • 尽量使用服务端身份。 如果用户在安装前注册或登录,就把归因信息挂到服务端的账户上。这样可以绕开存储边界,也便于通过服务端接口把转化回传给广告平台。
  • 每次安装只计一次。 appinstalled 可能与"提示被接受"同时发生,清除存储后首次启动逻辑也可能重复触发。向广告平台回传转化前,请用设备或用户标识在自己这边去重。

基准与数据解读

安装率因受众、流量来源和提示的呈现方式而差异很大,外部基准参考价值有限。更好的做法是长期跟踪自己的漏斗:

  • 可安装 → 提示已展示: 说明你的安装界面是否真的触达了用户。
  • 提示已展示 → 已安装: 反映安装提示的价值主张和时机。
  • 已安装 → 首次启动 → 7 日回访: 说明安装是否转化成了真实使用。

调整安装界面或提示时机时,请对比这些比率的前后变化,而不是看安装总数——总数也会随流量波动。安装步骤周边的页面结构如何影响这些比率,见我们的 PWA 落地页指南。

常见问题

能在 iOS 上检测到 PWA 安装吗?

不能直接检测。iOS 上的 Safari 不会触发 beforeinstallprompt 或 appinstalled。可靠的信号是首次以独立模式启动,所以 iOS 的安装按"至少从主屏幕打开过一次"来衡量。

转化应该算"提示被接受"还是"appinstalled"?

在 Chromium 内核浏览器上用 appinstalled。它也能捕获从浏览器菜单发起的安装,并确认安装真正完成;而"接受"只记录了用户在你的对话框里的选择。

怎么判断一次会话来自已安装的应用?

在加载时检查 window.matchMedia('(display-mode: standalone)').matches(iOS Safari 上再加 navigator.standalone),或者在 manifest 的 start_url 里加来源参数。把结果作为自定义维度随每次页面浏览发送。

安装事件能作为 Google Ads 或 Meta 的转化吗?

可以,作为网站转化事件使用。通过平台的代码或服务端接口发送,做好去重,并尽可能带上原始点击 ID,让转化归到正确的广告系列。

一句话总结

衡量"添加到主屏幕"转化,要把可安装、提示、安装和首次启动分开。Android 上统计 appinstalled,iOS 上统计首次独立模式启动;通过 manifest 给启动打标,落地时记录广告参数,能放服务端就放服务端,并以"安装后持续回访的用户"来判断成效。ROIBest 为运行 PWA 投放的团队提供这类安装漏斗相关的支持。

ROIBest

用 ROIBest 打造下一阶段增长引擎

联系我们,获取稳定、高转化的安卓 PWA 解决方案。