iOS App 第一次出海:归因与投放入门指南
❝
🌈 📖 「想要更好的阅读体验?」 本文配有完整网页版, 带目录导航、图示和排版优化, 推荐在电脑或手机浏览器中阅读:「https://mingyuyang.com/articles/overseas-ios-first-launch-attribution[1]」
❞
你写好了 App 、准备去海外买量, 却发现 iOS 上「钱花了、人来了、但不知道是哪条广告带来的」。这份文档从零讲清楚:iOS 归因为什么这么难、 ATT 和 SKAN 是什么、以及用 Adjust 把 Google / Meta / TikTok 接起来的完整路径。
01 先搞懂: 归因到底在解决什么
在碰 ATT 、 SKAN 这些术语之前, 先花两分钟理解「归因」这件事本身。想明白了, 后面所有配置都有了落脚点。
假设你的 App 上线了, 你在 Google 、 TikTok 、 Meta 三个平台各投了一笔广告。一周后来了 1 万个新用户。问题来了: 这 1 万人里,「谁是被哪条广告带来的? 谁是自己搜到的?」 如果答不上来, 你就没法判断哪个渠道值得加预算、哪个在烧钱。
「📌 归因 (Attribution)」
-
「是什么」: 把一次「安装/激活」这个结果, 追溯并归功于此前某一次广告「点击」或「展示」的过程。简单说, 就是回答「这个用户是从哪来的」。 -
「为什么」: 因为你的钱分散在多个渠道, 只有把用户和来源对应起来, 才能算出每个渠道的成本和回报, 进而决定预算怎么分。没有归因, 买量就是盲投。 -
「例子」: 用户 A 在 TikTok 刷到你的广告 → 点击 → 跳转 App Store → 下载 → 打开。归因系统识别出「这次安装来自 TikTok 的某条广告」, 于是这一个用户就算在 TikTok 头上。
🏢 MMP: 为什么需要 Adjust 这样的第三方
你可能会问:Google 、 Meta 自己不就能告诉我效果吗? 能, 但每个平台都只会说「你的用户都是我带来的」——它们各自统计、口径不一、还可能重复邀功。你需要一个「中立的第三方裁判」, 把所有渠道的数据汇总到一个后台、用统一口径归因, 这就是 「MMP(Mobile Measurement Partner, 移动测量合作伙伴)」。 Adjust 、 AppsFlyer 都属于这一类。
❝
🌈 「🔗 打个比方」: 如果说各个广告平台是「每家店铺自己报的销售额」, 那 MMP 就是那位「拿着统一账本、坐在收银总台的会计」。他不偏向任何一家店, 只按同一套规则记账, 最后告诉你每家店真实贡献了多少。 iOS 上, 这位会计的工作因为苹果的隐私政策变得格外复杂——这正是后面几章要展开的。
❞
02 iOS 生态与 ATT / SKAN 基础认知
iOS 归因难, 难在苹果 2021 年 (iOS 14.5) 推出的隐私新政。理解两个核心框架——ATT 和 SKAdNetwork——是一切的前提。
🕰️ 背景:IDFA 从「默认可用」变成「要用户同意」
过去, 每台 iPhone 有一个广告标识符叫 「IDFA」(相当于设备的广告身份证),App 可以直接读取它, 归因就靠它精确匹配「点击的人」和「安装的人」是不是同一台设备。「iOS 14.5 之后, 苹果规定: 想读 IDFA, 必须先弹窗征得用户同意。」 而大部分用户会点「拒绝」。于是那个曾经好用的「身份证」大面积失效了。
为了应对这个变化, 你需要认识苹果给出的两套机制: 一套是「问用户要不要授权」 (ATT), 另一套是「就算不授权也能做的隐私归因」 (SKAdNetwork) 。
「🔐 ATT(App Tracking Transparency, 应用追踪透明度)」
-
「是什么」: 苹果规定的一个授权框架。 App 想跨应用追踪用户 (读取 IDFA), 必须弹出一个标准弹窗问用户「是否允许追踪」。 -
「为什么」: 把选择权交还用户, 是苹果隐私战略的核心。用户同意了, 你才拿得到 IDFA, 才能做传统的精确归因; 用户拒绝了, 你就只能靠其他手段。 -
「例子」: 就是你在很多 App 首次打开时见到的那个弹窗: 「允许 XX 追踪你在其他公司 App 和网站上的活动吗? 」下面两个选项: 「要求 App 不追踪」/「允许」。
「🛡️ SKAdNetwork(简称 SKAN)」
-
「是什么」: 苹果官方提供的一套「隐私保护的归因框架」。它不依赖 IDFA 、不识别具体某个人, 而是由苹果系统层面统计「某条广告带来了多少安装」, 再以聚合、延迟、加了噪声的方式回传给广告平台。 -
「为什么」: 因为用户大量拒绝 ATT 授权后, 总得有一条「不侵犯隐私也能衡量广告效果」的路。 SKAN 就是苹果给的官方答案——牺牲了精细度, 换来了合规。 -
「例子」: 你在 SKAN 后台看到的不是「用户 A 来自广告 X 」, 而是「广告系列 X 这个周期带来了约 500 次安装, 转化值分布如下」——只有群体数据, 没有个人。
⚖️ 关键:SKAN 和 ATT 是两套独立框架, 别混为一谈
新手最常见的困惑, 是把 ATT 和 SKAN 当成一回事。它们其实是「并行、独立」的两套机制, 监测和报告归因的方式都不同。你需要理解各自的原理和限制, 然后针对不同的分析和优化目标, 使用不同来源的数据。「这些框架之间的关键差异, 可能会导致两边看到的安装量对不上」——这是正常现象, 不是数据错了。
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
「一句话记住」: 同一次广告点击, 会同时走 ATT 和 SKAN 两条独立的归因链路, 最终在 Adjust 后台分开呈现——所以两边数字对不上很正常。
03 ATT 最佳实践: 要不要弹窗、怎么接
第一次出海, 你要在 App 里做两件事: 加对框架、弹好那个授权窗。这一章讲清楚具体怎么做。
🧩 第一步: 在 Adjust SDK 中添加对应框架
光装 Adjust SDK 还不够, 要让它能读到设备标识、能弹 ATT 窗, 你得在 Xcode 里额外引入苹果的两个系统框架:
-
「📦 AdSupport.framework」: 允许读取设备 IDFA 。对于操作系统为 iOS 14 及更早版本的设备, 添加该框架也会允许读取 LAT(限制广告追踪) 信息。 -
「📦 App Tracking Transparency.framework」: 允许 Adjust SDK 包装用户 ATT 许可对话框, 并读取 iOS 14 或更新系统设备的许可响应 (用户点了同意还是拒绝) 。
❝
🌈 📎 两个框架的接入文档:dev.adjust.com/zh/sdk/ios#add-ios-frameworks
❞
💬 第二步: 启用 ATT 许可弹窗
如果你要记录设备的广告主 ID(即 IDFA), 就「需要先展示弹窗获得用户的授权」。要达到这个目的, 你需要在应用中添加 Apple 的 ATT 框架 (就是上面那个) 。 Adjust SDK 会存储用户的授权状态, 并在每次请求中把该信息发送至 Adjust 服务器。
❝
🌈 「💡 新手常见疑问: 用户都会拒绝, 还弹它干嘛?」
弹窗值得做。因为「只要有一部分用户点了「允许」」, 你就能对这部分用户做精确归因、拿到 IDFA 级别的数据, 归因质量会明显更好。弹窗文案、弹出时机 (比如先给用户一个「前置说明页」解释为什么要授权) 都会影响同意率——这是出海运营里一个专门的优化课题。而没授权的用户, 还有下面的概率模型和 SKAN 兜底, 不至于完全「看不见」。
❞
❝
🌈 「💬 一句话理清 IDFA / ATT / AdSupport 的关系」:IDFA 是那个你想拿到的「设备广告身份证」;ATT 是苹果设的「门禁」, 不刷卡 (不弹窗获同意) 就不让你拿 IDFA;AdSupport 与 ATT 框架是你必须先装好的「读卡器」。三者缺一,IDFA 就到不了你手上。
❞
04 Adjust 应用设置与归因窗口
SDK 装好后, 后台还有几个关键开关要设。设错了, 数据要么归不上、要么和渠道对不齐。
🎚️ 归因设置的三个层级
Adjust 允许你在三个层级做自定义归因设置:「应用层级、合作伙伴层级、跟踪链接层级」。它们有优先级——越具体的越优先:
「应用层级 (优先级最低, 兜底) < 合作伙伴层级 (覆盖应用层级) < 跟踪链接层级 (优先级最高, 最终生效)」
同一项设置, 越具体的层级会覆盖越宽泛的层级。
🎲 关键建议:iOS 应用请启用「概率模型」匹配
「概率模型 (Probabilistic Model) 匹配」
-
「是什么」: 当拿不到 IDFA 做精确匹配时, 用一组非隐私敏感的信号 (如 IP 、设备型号、系统版本、时间等) 来「大概率推断」某次点击和某次安装是不是同一个用户。 -
「为什么」:ATT 大量拒绝后, 精确匹配覆盖不到的用户, 靠概率模型补上一块, 能显著提高可归因的比例。所以「推广 iOS 应用时, 建议启用概率模型匹配」。 -
「例子」: 后台「安装设置 → 基于点击的归因」里, 把「启用概率模型」打开, 设一个归因窗口 (如 6 小时, 可选 1–24 小时) 。设备匹配的点击归因窗口另设 (如 7 天, 可选 1–30 天) 。
📏 归因窗口: 尽量和各渠道对齐
「归因窗口 (Attribution Window)」
-
「是什么」: 一次点击/展示之后, 多长时间内发生的安装, 还算这次广告的功劳。比如「点击后 7 天内安装才归因」。 -
「为什么」: 不同渠道 (SAN, 自归因渠道) 自己用的窗口长度不一样。如果你 Adjust 这边设的窗口和渠道那边对不上, 两边算出的安装量就会差一截。
下面是几个主流渠道 (SAN) 公开文档里的归因窗口, 供接入时对齐参考:
|
|
|
|
|
|
|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
❝
🌈 「⚠️ 官方建议」:Adjust 归因窗口期尽量与各 SAN 渠道的归因窗口「保持一致」, 以降低数据差异。以上窗口期设置来自渠道公开文档,「具体设置请与媒体侧对接并进行确认」(数值可能随渠道政策变化) 。
❞
05 主流渠道接入:Google / Meta / TikTok
出海第一站通常就是这三家。核心动作都是一件事: 把 Adjust 的转化数据「回传」给渠道, 让它们的算法能优化你的广告。
🟦 Google: 数据分享 + ICM
「必要步骤」: 启用 Google Ads 数据分享, 把 Adjust 的 first_open(首次打开) 转化数据导入 Google Ads 。这样 Google 才知道你的广告带来了哪些安装, 进而优化投放。
「Google ICM(Integrated Conversion Measurement, 整合转化衡量)」
-
「是什么」:Adjust × Google 的一项能力, 用来「弥合 Google App Campaign 中的 SKAN 报告缺口」。它基于端侧 (on-device) 转化衡量技术, 用去标识化的 App 事件数据, 在保护隐私的前提下实时捕获并回传转化。 -
「为什么」: 在 IDFA 受限后, 可直接观测到的转化数量大幅减少, 你看到的数据不一定代表真实的转化全貌。开启 ICM 后, 可以显著提升对 iOS 14.5 及以上设备转化用户的识别能力, 揭示大量原本不可见的转化行为。
「ICM 相比标准 SKAN 的四个优势:」
-
「全面的数据报告」: 补足标准 iOS 衡量方案留下的空白, 覆盖点击、互动展示 (Engaged Views) 以及再安装 (Reinstalls) 等关键行为。 -
「以隐私为核心」: 基于端侧转化衡量技术, 通过去标识化的 App 事件数据提升可观测转化量, 全程不牺牲用户隐私。 -
「无数据延迟」: 广告主可实时获取效果数据、即时优化决策, 无需等待 SKAN / AdAttributionKit 常见的延迟回传。 -
「事件级洞察」: 不再只局限于聚合数据摘要, 提供更细粒度的事件级数据, 支持更深入的分析与优化。
「获取 ICM 数据的必须步骤:」
-
升级 Adjust SDK 至 V5.4.1 或以上版本 (下载:github.com/adjust/ios_sdk/releases) -
接入 Adjust ODM 插件 (文档:dev.adjust.com/zh/sdk/ios/plugins/google-odm) -
接入 Firebase SDK V11.14.0 或以上版本 (或接入独立的 Google ODM SDK) -
在 Adjust 后台的 Google Ads ACI 中启用「设备匹配」和「概率匹配」 (链接层级设置, 会覆盖应用层级)
🟦 Meta(Facebook): 数据分享 + MAE / AEM
启用 Facebook 数据分享。 Adjust 的 Meta 集成「自动支持 MAI 推广活动」(Mobile App Install, 以安装为目标) 。如果你想开展 「MAE 推广活动」(Mobile App Engagement, 以应用内互动/事件为目标), 则需要完成下列两个额外步骤:
-
配置应用 Scheme 并在应用中启用通用链接 (Universal Links) 。 iOS 9 及更高版本所需的 Apple 特定深度链接协议, 需先在 Apple Developer 账户和 Xcode 中配置好。 -
打开「为 MAE 启用 AEM 」开关。 AEM = Aggregated Event Measurement,Meta 版的聚合事件衡量。
❝
🌈 「🧩 Meta AEM 设置示例」(设置深度链接弹窗里): 填入 「App ID prefix(即 team id)」 → 输入 「App scheme」。这一步就是为了支持 Meta MAE 的广告类型。示例格式: 应用 ID 前缀如 123ABC45DE, 应用 scheme 如 yourapp://。
❞
⬛ TikTok: 数据分享 + SAN 设置
启用 TikTok 数据分享, 并设置 「TikTok For Business(SAN)」。在数据分享配置里, 可以选择「仅归因至 TikTok For Business 的数据」, 并按需勾选要分享的数据类型 (如会话、应用内收入等), 再把你的 App 事件映射到 TikTok 的合作伙伴事件 (例如把「 Buy 1-month subscription 」映射成 Subscribe) 。
❝
🌈 「🔁 三家渠道的共同套路」: 抛开各家名词差异, 接入逻辑是同一个:「① 在 Adjust 开启对该渠道的「数据分享」→ ② 把你关心的 App 事件映射成渠道认识的事件 → ③ 视需要做深度链接 / 端侧衡量的额外配置。」 先理解这条主线, 再看每家的细节就不会晕。
❞
06 SKAdNetwork 配置方案
前面 ATT 那条线是「尽量拿到用户授权」。这条 SKAN 线是「就算没授权, 也能通过苹果官方框架衡量效果」。两条都要配。
📦 第一步: 在 Adjust SDK 中添加 StoreKit.framework
若要允许 Adjust 处理 iOS 14 或更新系统设备上与 SKAdNetwork 的通讯, 那么「必须添加 StoreKit.framework」。这是 SKAN 能跑起来的前提。
❝
🌈 📎 文档:dev.adjust.com/zh/sdk/ios#add-ios-frameworks
❞
🔗 第二步: 关联投放账户与 SKAdNetwork 数据服务
在 Adjust 左侧菜单进入 「DataWorks」, 点击「关联」。然后点右上角「+ 新关联」添加。在弹窗里选择合作伙伴 (如 Adwords / Google Ads), 服务勾选 「SKAN」(下拉里还有 Ad Spend 、 Audience Builder 、 Bids/Budgets 、 CV Mapping Sharing 、 Offline Conversions 等可选), 再按提示用对应渠道的登录方式完成授权关联。
🎯 第三步: 配置 SKAN Conversion Hub(转化值管理)
「转化值 (Conversion Value) 与 Conversion Hub」
-
「是什么」:SKAN 里, 苹果只允许你回传一个很小的「转化值」 (有粗粒度和细粒度之分) 来间接表达「这个用户做了什么」。「Conversion Hub 是 Adjust 提供的、创建转化值映射的一站式平台」, 帮你快速设置自定义转化值。 -
「为什么」:SKAN 不回传具体事件, 只回传这个编码后的值。你得提前设计好「值 = 什么行为」的映射表 (比如注册=1 、付费=2……), 渠道才能据此优化。这就是转化值管理要做的事。
「通过 Adjust 管理转化值, 需要:」
-
「适配 SDK」:Adjust iOS SDK 在 4.33.0 以上。 -
「完成 iOS 应用 ID 验证」: 要求管理员或编辑员权限。在 DataWorks 关联页面选择「 iOS 应用验证」作为服务并关联至 App Store Connect; 或在 AppView → 选择应用 → 平台 → 找到应用 ID 字段 → 选「请求验证」→ 弹窗确认。 Adjust 确认无误后通过验证, 后台状态会变为「已验证」。 -
「在 Conversion Hub 中进行转化值管理配置」: 入口一: 左侧 AppView → 所有应用 / SKAdNetwork Conversion Hub 进入。入口二: 所有应用列表里选中应用后点「映射转化值」。选好要设置的应用, 点击「映射转化值」即可开始配置。
07 数据与效果: 该看哪些指标
配置都做完、量也跑起来了, 你要在后台看什么?ATT 和 SKAN 两条线各有一套指标, 分开看。
🔓 ATT 授权相关指标
在 Adjust 里搜 ATT 就能找到这组 「AppTrackingTransparency(ATT)」 指标, 状态可筛选 Authorized(授权)/ Denied(拒绝)/ Not Determined(待定)/ Restricted(受限):
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
这些指标可以按渠道源 (Organic 、 Apple 、 Google Ads 等) 拆分查看, 帮你判断哪个渠道来的用户更愿意授权。
🛡️ SKAN 相关指标
SKAN 侧的指标分成四组, 理解它们你才能读懂 SKAN 报表:
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
❝
🌈 「🧮 举个实际报表的样子」: 在 SKAN4 Value Mapping 报表里, 你会看到按「渠道源 × 推广活动」拆分的行, 每行给出转化总计 (SKAN) 、广告支出 (SKAN) 、 eCPI 、 ROAS 、转化值 0 、 CV 大于 0 等列。例如某表汇总行: 转化总计 88,872 、广告支出 242,259.00 、 eCPI 2.8317 、 ROAS 9.59%——这就是你判断「哪个活动值得追加预算」的依据。
❞
❝
🌈 「🔗 怎么理解 ROAS 和 ROI」:ROAS = 赚回来的 ÷ 花出去的。比如 ROAS 是 120%, 意味着每花 1 块钱, 带回来 1.2 块的收入。 ROI = ROAS − 1, 也就是净赚的部分:ROAS 120% 对应 ROI 20%, 是真正的净回报。 ROAS 低于 100%(ROI 为负) 就是在亏钱买量。
❞
08 首次出海接入清单
把前面所有环节收成一张可执行的清单。第一次出海, 照着这个顺序走基本不会漏。
-
「集成 Adjust SDK, 并加齐三个系统框架」:AdSupport(读 IDFA)+ App Tracking Transparency(弹 ATT 窗)+ StoreKit(跑 SKAN) 。 -
「接入并优化 ATT 授权弹窗」: 设计好文案和弹出时机, 尽量提高 ATT 许可率——授权用户越多, 精确归因覆盖越广。 -
「后台开启概率模型匹配」: 推广 iOS 应用建议开, 补上精确匹配覆盖不到的那部分用户。 -
「对齐归因窗口」:Adjust 侧窗口尽量与各 SAN 渠道公开窗口一致, 并与媒体侧确认。 -
「逐个接入渠道」:Google(数据分享+ICM) 、 Meta(数据分享+MAE/AEM) 、 TikTok(数据分享+SAN), 核心都是开数据分享 + 映射事件。 -
「配置 SKAN 链路」:DataWorks 关联投放账户与 SKAN 服务 → 完成应用 ID 验证 → 在 Conversion Hub 设计并配置转化值映射。 -
「搭好看数据的习惯」:ATT 侧盯许可率与各状态用户数;SKAN 侧盯转化、转化值、 ROAS/eCPI, 按渠道和活动拆分看, 指导预算分配。
🚀 一句话总结
iOS 出海归因, 本质是在苹果的隐私框架下, 同时经营好「两条数据链路」:
-
「ATT 线」: 尽量拿到用户授权 + 概率模型兜底, 追求「看得更细」。 -
「SKAN 线」: 用苹果官方框架 + 转化值映射, 保证「合规也能看」。
两条线各配一套、各看一套指标, 再把 Google / Meta / TikTok 按同一套「数据分享 + 事件映射」的套路接进来, 你的第一次出海就有了可信的效果衡量基础。
引用链接
[1]https://mingyuyang.com/articles/overseas-ios-first-launch-attribution
夜雨聆风