给第一次出海的 iOS 开发者 / 增长负责人

iOS App 第一次出海:
归因与投放接入入门指南

你写好了 App、准备去海外买量,却发现 iOS 上"钱花了、人来了、但不知道是哪条广告带来的"。这份文档从零讲清楚:iOS 归因为什么这么难、ATT 和 SKAN 是什么、以及用 Adjust 把 Google / Meta / TikTok 接起来的完整路径。

整理自 Adjust 线上课堂《iOS App 增长与归因实施指南》· 面向新手补充原理与背景
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 当成一回事。它们其实是并行、独立的两套机制,监测和报告归因的方式都不同。你需要理解各自的原理和限制,然后针对不同的分析和优化目标,使用不同来源的数据。这些框架之间的关键差异,可能会导致两边看到的安装量对不上——这是正常现象,不是数据错了。

对比维度安装(SKAdNetwork)安装(ATT)
归因精度始终为精确归因在 ATT 政策允许的情况下,可通过概率模型进行归因
受用户授权影响用户 ATT 状态不影响归因按 ATT 政策,未授权用户的归因会受到限制
归因窗口固定归因窗口可自定义,或与 SKAN 窗口不同,取决于 Adjust 后台的应用配置
可归因的来源除 SKAN 注册合作伙伴外,不会归因到自然流量、自有渠道、网络红人等来源可以针对任意来源归因并报告
用户点击广告 → 下载 → 打开 ATT 路径(问用户) 同意→精确/概率归因 到任意来源 SKAN 路径(不问也行) 苹果聚合回传,只有群体数据 Adjust 后台 两套数据分开呈现
同一次广告点击,会同时走 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 或更新系统设备的许可响应(用户点了同意还是拒绝)。

📎 两个框架的接入文档:https://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.frameworkATT.framework 是你必须先装好的"读卡器"。三者缺一,IDFA 就到不了你手上。
04

⚙️ Adjust 应用设置与归因窗口

SDK 装好后,后台还有几个关键开关要设。设错了,数据要么归不上、要么和渠道对不齐。

🎚️ 归因设置的三个层级

Adjust 允许你在三个层级做自定义归因设置:应用层级、合作伙伴层级、跟踪链接层级。它们有优先级——越具体的越优先:

应用层级 优先级最低(兜底) < 合作伙伴层级 覆盖应用层级 < 跟踪链接层级 优先级最高,最终生效
优先级:应用层级 < 合作伙伴层级 < 跟踪链接层级。同一项设置,越具体的层级会覆盖越宽泛的层级。

🎲 关键建议:iOS 应用请启用"概率模型"匹配

概率模型(Probabilistic Model)匹配

是什么

当拿不到 IDFA 做精确匹配时,用一组非隐私敏感的信号(如 IP、设备型号、系统版本、时间等)来"大概率推断"某次点击和某次安装是不是同一个用户。

为什么

ATT 大量拒绝后,精确匹配覆盖不到的用户,靠概率模型补上一块,能显著提高可归因的比例。所以推广 iOS 应用时,建议启用概率模型匹配

例子

后台"安装设置 → 基于点击的归因"里,把"启用概率模型"打开,设一个归因窗口(如 6 小时,可选 1–24 小时)。设备匹配的点击归因窗口另设(如 7 天,可选 1–30 天)。

📏 归因窗口:尽量和各渠道对齐

归因窗口(Attribution Window)

是什么

一次点击/展示之后,多长时间内发生的安装,还算这次广告的功劳。比如"点击后 7 天内安装才归因"。

为什么

不同渠道(SAN,自归因渠道)自己用的窗口长度不一样。如果你 Adjust 这边设的窗口和渠道那边对不上,两边算出的安装量就会差一截。

下面是几个主流渠道(SAN)公开文档里的归因窗口,供接入时对齐参考:

渠道点击归因展示归因
设备匹配窗口概率模型窗口设备匹配窗口概率模型窗口
Meta7d1d(AEM)1d6h
Google30d1d(ICM)1d6h
TikTok For Business(SAN)7d6h1d6h
Snapchat28d6h1d6h
Apple Search Ads30d6h1d6h
⚠️ 官方建议 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 数据的必须步骤:

  1. 升级 Adjust SDK 至 V5.4.1 或以上版本下载地址:github.com/adjust/ios_sdk/releases
  2. 接入 Adjust ODM 插件文档:dev.adjust.com/zh/sdk/ios/plugins/google-odm
  3. 接入 Firebase SDK V11.14.0 或以上版本或接入独立的 Google ODM SDK。
  4. 在 Adjust 后台的 Google Ads ACI 中启用"设备匹配"和"概率匹配"在链接层级设置,会覆盖应用层级归因设置。

🟦 Meta(Facebook):数据分享 + MAE / AEM

启用 Facebook 数据分享。Adjust 的 Meta 集成自动支持 MAI 推广活动(Mobile App Install,以安装为目标)。如果你想开展 MAE 推广活动(Mobile App Engagement,以应用内互动/事件为目标),则需要完成下列两个额外步骤:

  1. 配置应用 Scheme 并在应用中启用通用链接(Universal Links)iOS 9 及更高版本所需的 Apple 特定深度链接协议,需先在 Apple Developer 账户和 Xcode 中配置好。
  2. 打开"为 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 管理转化值,需要:

  1. 适配 SDKAdjust iOS SDK 在 4.33.0 以上。
  2. 完成 iOS 应用 ID 验证要求管理员或编辑员权限。在 DataWorks 关联页面选择"iOS 应用验证"作为服务并关联至 App Store Connect;或在 AppView → 选择应用 → 平台 → 找到应用 ID 字段 → 选"请求验证" → 弹窗确认。Adjust 确认无误后通过验证,后台状态会变为"已验证"。
  3. 在 Conversion Hub 中进行转化值管理配置入口一:左侧 AppView → 所有应用 / SKAdNetwork Conversion Hub 进入。入口二:所有应用列表里选中应用后点"映射转化值"。选好要设置的应用,点击"映射转化值"即可开始配置。
07

📊 数据与效果:该看哪些指标

配置都做完、量也跑起来了,你要在后台看什么?ATT 和 SKAN 两条线各有一套指标,分开看。

🔓 ATT 授权相关指标

在 Adjust 里搜 "ATT" 就能找到这组 AppTrackingTransparency(ATT) 指标,状态可筛选 Authorized(授权)/ Denied(拒绝)/ Not Determined(待定)/ Restricted(受限):

ATT–授权用户
ATT 状态为"已授权"的用户数量。
ATT–待定用户
ATT 状态为"待定"的用户数量(还没做选择)。
ATT–拒绝用户
ATT 状态为"拒绝"的用户数量。
ATT–受限用户
ATT 状态为"受限"的用户数量(如家长控制等情形)。
ATT 许可率
= ATT 授权用户数量 ÷(ATT 授权用户 + ATT 拒绝用户)。衡量你的授权弹窗做得好不好的核心指标。

这些指标可以按渠道源(Organic、Apple、Google Ads 等)拆分查看,帮你判断哪个渠道来的用户更愿意授权。

🛡️ SKAN 相关指标

SKAN 侧的指标分成四组,理解它们你才能读懂 SKAN 报表:

指标组包含什么
SKAN 转化安装、重装;SKAN 转化总计;有效转化(转化值大于 0);转化值 null 及 null 率。
转化值转化比特值 / 转化值;粗颗粒度转化值;SKAN 收入;ARPU。
ROASROAS(广告支出回报率)= 总收入(平均/最低/最高)× 安装量 ÷(广告支出(SKAN)× 有效转化);ROI(投资回报率)= ROAS − 1。
支出和成本同期群投资回报率;广告支出(SKAN)—渠道 API 拉取;eCPI(有效单次安装成本)。
🧮 举个实际报表的样子 在 SKAN4 Value Mapping 报表里,你会看到按"渠道源 × 推广活动"拆分的行,每行给出转化总计(SKAN)、广告支出(SKAN)、eCPI(SKAN)、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

✅ 首次出海接入清单

把前面所有环节收成一张可执行的清单。第一次出海,照着这个顺序走基本不会漏。

  1. 集成 Adjust SDK,并加齐三个系统框架AdSupport(读 IDFA)+ App Tracking Transparency(弹 ATT 窗)+ StoreKit(跑 SKAN)。
  2. 接入并优化 ATT 授权弹窗设计好文案和弹出时机,尽量提高 ATT 许可率——授权用户越多,精确归因覆盖越广。
  3. 后台开启概率模型匹配推广 iOS 应用建议开,补上精确匹配覆盖不到的那部分用户。
  4. 对齐归因窗口Adjust 侧窗口尽量与各 SAN 渠道公开窗口一致,并与媒体侧确认。
  5. 逐个接入渠道Google(数据分享+ICM)、Meta(数据分享+MAE/AEM)、TikTok(数据分享+SAN),核心都是开数据分享 + 映射事件。
  6. 配置 SKAN 链路DataWorks 关联投放账户与 SKAN 服务 → 完成应用 ID 验证 → 在 Conversion Hub 设计并配置转化值映射。
  7. 搭好看数据的习惯ATT 侧盯许可率与各状态用户数;SKAN 侧盯转化、转化值、ROAS/eCPI,按渠道和活动拆分看,指导预算分配。

🚀 一句话总结

iOS 出海归因,本质是在苹果的隐私框架下,同时经营好两条数据链路:

  • ATT 线:尽量拿到用户授权 + 概率模型兜底,追求"看得更细"。
  • SKAN 线:用苹果官方框架 + 转化值映射,保证"合规也能看"。

两条线各配一套、各看一套指标,再把 Google / Meta / TikTok 按同一套"数据分享 + 事件映射"的套路接进来,你的第一次出海就有了可信的效果衡量基础。