
-
AdAttributionKit 的新功能
了解 AdAttributionKit 的新功能,包括如何衡量重叠的重新吸引转化,以及如何为你的 App 自定广告归因规则。深入了解一个新的回传属性,你可以使用这个属性来衡量广告系列在各个国家和地区的实际效果。我们还将展示新的功能,以及用于测试 AdAttributionKit 实现情况的最佳做法。为了充分从这个讲座中获益,建议你先观看“了解 AdAttributionKit”。
章节
- 0:00 - 简介
- 3:23 - 衡量重叠的转化窗口
- 7:50 - 自定广告归因规则
- 14:46 - 在回传中接收地理数据
- 18:12 - 测试 AdAttributionKit
资源
- AdAttributionKit
- Configuring attribution rules for your app
- Creating postbacks in developer settings
- Enabling Developer Mode on a device
- Identifying conversion values with conversion tags
- Supplying an install verification token
- Verifying a postback
相关视频
WWDC25
WWDC24
-
搜索此视频…
大家好 我叫 Mike 是 App Store Engineering 团队的工程师 今天我将向所推广 App 的开发者分享 我们为 AdAttributionKit 构建的一些新功能 大家好 我叫 Yuchi 是 Commerce Engineering 团队的工程师 今天我将 向回传数据的使用者 分享用于配置归因和 接收新数据的新功能
在 Apple 我们将隐私视作 每个人的基本权利 这就是为什么我们从头开始 构建 AdAttributionKit 以帮助广告商 衡量广告系列的效果 同时保护用户的隐私 我将首先概述 AdAttributionKit 的运作方式 AdAttributionKit 流程 包含三个参与方 广告网络负责 创建广告有效负载 并将它交付给发布商 App
发布商 App 将 负责针对所推广 App 展示广告 最后 所推广的 App 衡量用户在 App 内 完成的操作所带来的参与度 这些参与方在 AdAttributionKit 端到端流程的 不同阶段各自 扮演着不同的角色
端到端流程 始于广告网络 为 App 创建广告有效负载 然后 广告网络将广告 有效负载交付给发布商 App 发布商 App 将向用户展示广告
用户可以通过查看 或轻点广告来 与广告互动 这会导致安装或重新吸引转化
安装转化是指 用户因广告互动而 通过 App Store 或其他 App 市场 安装你 App 的行为
重新吸引转化 是指用户 与已安装 App 的广告互动 而直接跳转至 所推广 App 的行为
转化发生后 广告商衡量 用户在相应 App 内的 互动行为和参与度 转化窗口结束后 转化数据与互动评估数据 会以回传的形式 传输到广告网络 AdAttributionKit 端到端流程概述到此结束 下面快速回顾一下 AdAttributionKit 随 iOS 17.4 推出并 包含对安装转化的支持 iOS 18 中新增了 对重新吸引转化的支持 如需回顾如何开始使用 AdAttributionKit 请观看我们的 WWDC24 讲座 “了解 AdAttributionKit” 在这个回顾后 我们很高兴向你展示 我们构建的新功能 这些功能 增强了端到端流程的不同部分
如果你是 所推广 App 的开发者 我将向你展示 一些强大的新功能 这些功能围绕你可在 App 中 使用的衡量和测试流程 如果你是广告网络 或回传数据的下游使用者 Yuchi 将分享我们 为你的归因流程构建的 增强功能和回传中的新数据
我们将本次讲座分为四个部分 首先 我将介绍转化标签 它使你能够衡量 App 内部重叠的 重新吸引转化
然后 Yuchi 将详细介绍如何 为你的 App 自定归因规则 并讨论我们添加到 回传中的新地理数据
最后 我将介绍如何使用 iOS“设置”App 中的 新可测试性来测试 你的 AdAttributionKit 实现
下面我们来深入了解一下 如何衡量重叠的转化窗口
我们将重点关注端到端 流程图中的重新吸引流程
在 iOS 18.3 之前 你的 App 在同一时间 只能有一个活跃的 重新吸引转化
从 iOS 18.4 开始 你的 App 现在可以 同时拥有多个活跃的 重新吸引转化窗口 你的 App 还可以 接收转化标签 这就像是转化的书签 你可以使用转化标签来 指定要更新的重新吸引转化 我们来看看一个在 App 中 使用转化标签的场景 作为开发者 你可以同时 运行多个重新吸引广告活动 向 App 中的顾客 推广不同的销售商品
顾客可能看到 一则推广你 App 内 折扣商品的广告 并决定轻点它 这次互动通过深度链接 将顾客跳转至你的 App 并在系统中创建 一个重新吸引转化记录 几分钟后 顾客没有购买商品 就离开了你的 App 继续这个场景 几个小时后 同一顾客看到另一则广告 推广你 App 内的另一个折扣商品 并决定轻点这则广告 这会在系统中创建 另一个重新吸引转化记录 在 App 中停留一段时间后 顾客决定返回并购买 第一个折扣商品 借助转化标签 你可以更新 与折扣 1 对应的 原始转化的转化值 如果你的 App 同时 针对多个产品运行 重新吸引广告活动 这将非常有用 要开始衡量 重叠的转化窗口 请在 App 的 Info.plist 中 将以下键设为 Yes: EligibleForAdAttribution KitOverlappingConversions 否则 先前的转化 在重叠时将继续锁定 就像以前一样 接下来 我将向你展示 App 如何获取转化标签
在 App 选择加入后 当发生重新吸引时 转化标签将附加到 AdAttributionKit 传递给 App 的 重新吸引 URL 上 重新吸引 URL 是通用链接 当自定渲染或 StoreKit 渲染的 广告显示在屏幕上时 这些链接会传递给 API 这个标签会作为 AdAttributionKit 的 重新吸引打开参数的值传递 在这个示例 URL 中 标签等于 1
当 App 收到 重新吸引 URL 时 你可以使用这样的 函数提取转化标签 我将详细介绍这是怎么回事 首先 这个函数使用 URLComponents 获取 传入的 URL 组件 接下来 它获取查询项列表 如果 App 因用户回归而打开 AdAttributionKit 总是会附加 一个重新吸引打开参数
接下来 它遍历 附加在 URL 上的 查询参数字典 如果在 URL 上找到 重新吸引打开参数 它将立即返回 这个参数的值 如果未能找到查询参数 这个函数将返回 nil
现在你的 App 中 有了转化标签 你可以使用它 直接更新这个转化
我们建议将转化标签 与创建它的重新吸引转化相关联 这样你就可以追溯 因这个转化而发生的 有意义事件
你还应该将转化标签存储在 App 本地或 服务器端数据存储中
顾客在你的 App 中 完成你想要针对 这个特定转化衡量的操作后 就检索这个转化的标签
现在 我来展示一下 如何使用转化标签 在代码中对转化 进行定向更新
这个函数在转化标签中 接受转化值 以更新特定的回传 初始化 PostbackUpdate 结构体时 会传入要更新的转化 所对应的转化标签 然后 你可以调用 Postback API 来更新转化值
你也可以在没有 转化标签的情况下调用 updateConversionValue API 系统将更新 最新的转化回传 这就是当你有 重叠的转化窗口时 如何使用转化标签 更新回传数据的方法 衡量回传的转化值只是 使用 AdAttributionKit 时的一部分 解释你从下游 收到的回传数据 是这个系统的另一个重要方面 并有助于你 为 App 业务做出 明智的营销决策 Yuchi 你在这方面 有什么最新信息要分享吗? 当然 以下是一些新功能 可帮助你更好地使用 和解释收到的回传数据 为了在回传数据中 捕获最有意义的信号 我们添加了自定 App 归因规则的功能 使你能够调整归因流程
你可以通过两种方式 调整归因流程 第一种是 可配置的归因窗口
回到端到端 广告归因流程 AdAttributionKit 根据广告新近性 和广告类型进行归因
AdAttributionKit 支持的 两种广告类型 是点按型广告和浏览型广告
不同的广告类型通常 针对不同的时间范围 例如 点按型广告可能目标 是在 10 天内推动转化 当转化发生在 目标时间范围之后 比如在展示时间后 20 天 这个转化应该不再 被视为由这个广告推动 这个广告目标时间范围 就是我们所说的归因窗口 归因窗口定义为 从广告展示时间开始 到这个广告仍可被考虑 用于归因的最晚时间的时间段 如果转化发生在 某个广告的归因窗口内 那么这个广告就会参与 这次转化的归因竞争 否则 这个广告将不参与 这次转化的归因竞争 以前 所有投放不到 30 天的点按型广告 以及投放不到 1 天的 浏览型广告 都将被考虑用于归因 我们希望使这个时间段 对你来说更加灵活 因此我们推出了 可配置的归因窗口 作为广告商 你可以在 Info.plist 文件中 指定所需的 归因窗口长度 这个示例使用 JSON 文件来说明配置 但编辑 App 的 Info.plist 文件时 可以使用相同的键和结构 归因窗口可以 基于每个广告网络 和每种广告互动类型进行定义 其中广告类型为 浏览型广告和点按型广告 这里举个例子 对于广告网络 com.example.adNetwork 广告商为点按型广告 指定了两天的归因窗口 为浏览型广告 指定了一天的归因窗口 如果广告网络合作伙伴 主要专注于一种类型的广告 你可能希望完全忽略 这个广告网络的其他广告类型 这可以通过指定 ignoreInteractionType 键来实现 这个键可以设置为 “view”或 “click” 但不能同时设置两者 如果你与多个广告网络合作 为每个网络逐一指定归因窗口 长度可能工作量很大 在这种情况下 你可以 通过添加全局键 来为所有合作的广告网络 指定窗口长度 这个键默认适用于所有广告网络 在全局窗口长度的 基础上 你还可以 为特定广告网络 配置归因窗口长度 这将优先于全局配置 如果未找到广告网络或全局配置 我们将回退到当前使用的 默认归因窗口长度 在示例中 来自 com.example.adNetwork 广告网络的点按型广告 归因窗口为五天 而来自这个广告网络的 浏览型广告将被忽略 对于所有其他广告网络 浏览型广告的 归因窗口为三天 请注意 归因窗口的 概念仅适用于安装广告 不适用于重新吸引广告 这是因为 重新吸引广告的互动 和转化是紧接发生的 两者之间没有时间间隔 调整归因流程的 第二种方式 是可配置的冷却时间 回到端到端 广告归因流程 我们来重点了解 广告带来的转化后的 用户活跃度衡量 在广告网络投放广告 且发生广告带来的转化后 广告商衡量用户 活跃度的窗口就会打开 我们将这个窗口 称为转化窗口 广告商可以根据 用户在 App 中的活动 例如订阅和 App 内购买项目 通过调用 updateConversionValue API 来衡量转化价值 实际上 许多这样的 广告归因可能 同时发生在同一设备上的 同一广告 App 中 转化窗口可能会重叠 在这种情况下 衡量结果可能无法 记录到最合适的转化中
我们来看看 一个更具体的例子 如果有人点按了广告 并下载了所推广的 App 随后进行了 App 内购买 这将为安装广告带来 较高的用户价值衡量 但试想一下 在安装 App 后 同一用户立即点按了 重新吸引广告并打开了 App 那么本应归因于 安装广告的 App 内购买 将被归因于重新吸引广告 这可能不符合 你的衡量目标
类似的场景也可能 发生在紧接另一个 重新吸引转化的 重新吸引广告中 本应归因于第一个 重新吸引广告的结果 现在将归因于 第二个重新吸引广告 为避免这种情况 你可能希望在每次转化后 设置一个时间段 以阻止其他信号 并仅使用这个时间段来衡量 驱动特定转换的广告价值 这就是我们所说的 可配置归因冷却时间 可配置的归因冷却时间 可以基于每种 转化类型进行指定 冷却时间将从 这个特定类型的 每次转化开始 在冷却时间完全结束前 发生的所有其他转化 将不会归因于任何转化 作为广告商 你可以在 Info.plist 文件中 指定所需的归因冷却时间 在这个示例中 广告商为安装转化 指定了六小时的冷却时间 为重新吸引转化 指定了一小时的冷却时间 按照这个配置 假设有人在时间 T 点按了安装广告 并安装了 App 且为安装配置的 冷却时间为六小时 如果同一个人 在安装四小时后 点按了重新吸引广告 并打开了这个 App 那么这个重新吸引转化 就不会归因于广告 假设点按重新吸引 广告和打开 App 发生在安装七小时后 这个重新吸引 将获得广告归因 对于可配置的归因窗口 和归因冷却时间 展示次数和回传的 JWS 格式将保持不变 除了这些可配置的功能外 我们还在回传中 添加了新的地理信息 这将帮助你衡量广告系列 在不同国家或地区的效果
回到端到端 广告归因流程 现在我们来重点关注回传
回传是 AdAttributionKit 的输出 用于传输关于 转化、归因和 用户活跃度衡量的信息 回传会交付给广告网络 也可以选择交付给 所推广 App 的开发者 我们了解到 广告商和广告网络 希望获取转化的 地理位置信息 以优化广告投放 目前 有些实现依赖 来源标识符来获取这类信息 在最新的 AdAttributionKit 中 国家或地区代码 作为新字段添加到回传中 以下是国家或地区代码 在不同上下文中的含义
对于从 App Store 安装的 App 回传中的国家或地区代码 源自用户“账户设置”中 所选位置对应的 App Store 店面 对于重新吸引转化 回传使用 App 首次安装时的位置 在 iOS 17.4 中 替代 App 市场 可以提供安装验证令牌 用于与 Apple 设备 通信 App 安装信号 安装验证令牌 是一个 JWS 令牌 有效负载包含 App 安装的相关信息 例如下载时间戳和 下载的 App ID 从新的 iOS 版本开始 替代 App 市场 在安装验证令牌有效负载中 针对国家或地区代码 提供了新的字段 对它签名并发送给 Apple 然后 Apple 将验证这个值 并将国家或地区代码填充到 回传的对应字段中 国家或地区代码是 安装验证令牌中的可选字段 如果系统在安装验证令牌中 找不到国家或地区代码 则回传中不会 包含国家或地区代码
请注意 通过替代 App 市场转化的 国家或地区代码值 仅限于支持 替代市场的地区
这就是将国家或地区代码 添加到回传的方式 国家或地区代码将 作为无符号字段 与 ad-interaction-type、 签名的 JWS 令牌 和 coarse-conversion-value 并列 国家或地区代码字段 遵循 AdAttributionKit 对所有回传实施的 人群匿名性算法 人群匿名性算法 是我们保护隐私的 广告归因机制的核心 确保每个用户 的独特性 融入大群体后 才会向广告商和广告网络 发布可识别信息
只有当同一 国家或地区的 类似转化达到足够数量时 回传数据才会包含 国家或地区代码 符合回传数据中包含 国家或地区代码条件的 人群匿名性 将是我们当前实施的 四个人群匿名性层级上的 额外层级 这意味着 广告商和广告网络 在任何情况下都不会 丢失当前接收的数据 以上就是我们 对回传数据的最新更新 接下来 Mike 将介绍新的 AdAttributionKit 可测试性 感谢 Yuchi 分享的 所有重要信息 现在我们已经介绍了 AdAttributionKit 的所有新功能 下面我将展示 测试实现的新方法
让我们回到端到端 流程图并重点关注广告投放 和转化流程
这是测试 App AdAttributionKit 实现时可能 使用的典型流程
首先 你需要为所推广的 App 创建并投放广告有效负载 然后你在单独的发布商 App 中 展示广告并与广告互动 然后执行安装转化 或重新吸引转化 为 App 创建开发回传
在 iOS 18.4 中 你现在可以直接 在 iOS“设置”App 中 为 App 创建开发回传
通过开发者设置创建的 回传支持新的测试方式 你现在可以测试从 Xcode 或其他分发机制 (例如 Ad Hoc 分发) 运行 App 时 更新转化值的情况 你现在还可以直接控制 回传包含的数据内容 这对于测试服务器实现 处理不同数据 层级的回传很有帮助
现在我将展示如何 使用开发者设置 为 App 创建回传
在开始之前 你需要确保 设备上启用了开发者模式 接下来 前往“设置”App 内的开发者设置
在开发者设置中 向下滚动到 “广告归因测试”部分 我们在“AdAttributionKit 开发者模式”上方 添加了名为“开发回传”的新页面
轻点前往 “开发回传”页面后 你会看到一些选项 用于为 App 配置回传 传输任何符合条件的回传 或清除设备上的所有开发回传 要配置开发回传 输入 App 的捆绑标识符 然后轻点“配置”按钮
在为 App 创建回传数据之前 App 必须已安装在设备上
第一步是指定 回传的目标位置 这应该是服务器的 URL 最佳实践是 在测试时使用 与接收生产环境回传的 URL 不同的开发 URL 你也可以自动从 App 获取回传副本 URL 你可以使用这个来确认 系统生成的已知 URL 与服务器公开的 URL 匹配
接下来 填写回传的属性 通过编辑属性 你可以将回传配置为 代表任何想要的转化类型
现在 在 iOS 中 你可将国家或地区 代码配置为新属性 这有助于你测试 Yuchi 之前提到的 回传中的国家或地区代码
配置属性后 你可以调整 每个回传的数据粒度 这个粒度控制发送到 服务器的信息量 你可以使用它来 验证服务器实现 是否正确处理了 不同的回传数据层级
完成回传配置后 轻点按钮为你的 App 创建这些回传
现在你的 App 已经 有了开发回传 接下来你就可以 开始更新它的转化值
在测试期间 调用 updateConversionValue(_:) API 来更新开发回传 你可以等待开发 回传自动发送 也可以在回传 转化窗口结束时 轻点“传输开发回传”按钮
开发者设置中创建的回传 与端到端流程中创建的回传 有几个关键区别 我将展示回传的 JSON Web Signature 中看到的变化
这是回传中可能 收到的头部片段
根据开发者设置创建的回传 使用新密钥进行签名 由新的 kid 值指示 请查看我们关于 验证回传的文档 获取新的公钥以 验证这些回传的签名 转向回传的有效负载 它也有一些值得注意的差异 广告网络标识符始终设置为 development.adattributionkit 这有助于进一步区分 开发者设置创建的 回传与生产回传
回传的推广项目标识符 也可能为零 例如 在测试期间 从 Xcode 运行 App 时
以上就是我们为 AdAttributionKit 新增的可测试性功能 我们认为 这一新可测试性 将有助于简化 开发和测试 AdAttributionKit 实现时的工作流程 今天我们介绍了 AdAttributionKit 新功能的很多内容 从衡量 App 中 重叠的转化窗口 到接收国家或地区代码和回传 这些更新影响 广告归因的各个方面
后续步骤:如果你准备好 为 App 配置归因规则 请务必开始 向 App 的 Info.plist 添加新的配置键 在开发生命周期的早期 (发布到生产环境前) 开始使用新可测试性功能来 测试 AdAttributionKit 实现 如果你使用的是 SKAdNetwork 现在是时候迁移到 AdAttributionKit 并开始使用所有 新功能进行构建 我们要感谢开发者社区 感谢大家针对我们注重隐私保护的 广告框架提供使用体验反馈 你的反馈有助于 推动我们的开发方向 以及如何为 App 提供出色的 广告体验 同时保护用户隐私 谢谢!
-
-
5:42 - Function that retrieves a conversion tag from a URL
func retrieveConversionTag(fromURL url: URL) -> String? { guard let components = URLComponents(url: url, resolvingAgainstBaseURL: true) else { print("Could not get components for URL.") return nil } guard let queryItems = components.queryItems else { print("URL does not contain query items.") return nil } for item in queryItems { guard item.name == Postback.reengagementOpenURLParameter else { continue } return item.value } return nil }
-
6:55 - Function that updates conversion value using a conversion tag
func updateConversionValue(_ conversionValue: Int, conversionTag: String) async { do { let update = PostbackUpdate(fineConversionValue: conversionValue, lockPostback: false, conversionTag: conversionTag) try await Postback.updateConversionValue(update) } catch { print("An error occurred while updating the conversion value: \(error)") } }
-
9:32 - Example Info.plist for configuring attribution window
{ "AdAttributionKitConfigurations": { "AttributionWindows": { "com.example.adNetwork": { "install": { "click": 2, "view": 1 } } } }
-
9:58 - Example Info.plist for configuring attribution window
{ "AdAttributionKitConfigurations": { "AttributionWindows": { "com.example.adNetwork": { "install": { "click": 2, "view": 1 } } } }
-
10:14 - Example Info.plist for configuring attribution window
{ "AdAttributionKitConfigurations": { "AttributionWindows": { "com.example.adNetwork": { "install": { "click": 2, "ignoreInteractionType": "view" } } } }
-
10:30 - Example Info.plist for configuring attribution window
{ "AdAttributionKitConfigurations": { "AttributionWindows": { "global": { "install": { "view": 3 } } "com.example.adNetwork": { "install": { "click": 5, "ignoreInteractionType": "view" } } } }
-
11:05 - Example Info.plist for configuring attribution window
{ "AdAttributionKitConfigurations": { "AttributionWindows": { "global": { "install": { "view": 3 } } "com.example.adNetwork": { "install": { "click": 5, "ignoreInteractionType": "view" } } } }
-
13:52 - Example Info.plist for configuring attribution cooldown
{ "AdAttributionKitConfigurations": { "AttributionCooldown": { "install-cooldown-hours": 6, "reengagement-cooldown-hours": 1 { } }
-
16:02 - Example install verification token payload
{ "iss": 13421973, "iat": 1745255692, "iid": "34890933", "vid": "46392455", "aud": "AppleDownloadVerification-v1", "bid": "com.example.marketplace", "dtype": "download", "nonce": "9BC2C5CC-A1F8-4F93-9D6A-4D524685B67E" }
-
16:26 - Example install verification token payload
{ "iss": 13421973, "iat": 1745255692, "iid": "34890933", "vid": "46392455", "aud": "AppleDownloadVerification-v1", "bid": "com.example.marketplace", "dtype": "download", "nonce": "9BC2C5CC-A1F8-4F93-9D6A-4D524685B67E", "ccode": "MT" }
-
17:05 - Example postback with country code
{ "ad-interaction-type": "click", "jws-string": "eyJraWQiOiJhcHBsZS1jYXMtaWRlbnRpZmllci8wIiwiYWxnIjoiRVMyNTYifQ.eyJhZHZlcnRpc2VkLWl0ZW0taWRlbnRpZmllciI6Njg0OTM5LCJjb252ZXJzaW9uLXR5cGUiOiJyZS1lbmdhZ2VtZW50IiwibWFya2V0cGxhY2UtaWRlbnRpZmllciI6ImNvbS5hcHBsZS5BcHBTdG9yZSIsImFkLW5ldHdvcmstaWRlbnRpZmllciI6InRlc3QuYWRhdHRyaWJ1dGlvbmtpdCIsImltcHJlc3Npb24tdHlwZSI6ImFwcC1pbXByZXNzaW9uIiwicG9zdGJhY2stc2VxdWVuY2UtaW5kZXgiOjAsInNvdXJjZS1pZGVudGlmaWVyIjoiODM0NCIsImRpZC13aW4iOnRydWUsInBvc3RiYWNrLWlkZW50aWZpZXIiOiIzZjUwZmU1Ny0yOWFlLTQ4NjEtOGMwYi1hYzZhZGRkZmY3MmMiLCJwdWJsaXNoZXItaXRlbS1pZGVudGlmaWVyIjo1ODM4NDkyfQ.AemK1x2ahIPKOnFEEscG4wvipRtR1G6DzpNF4M4joPb8POIH4FJjm4VvcNgLXc9rWBrEDQPvDblduoc7MFcK5w", "coarse-conversion-value": "medium", "country-code": "MT" }
-
-
- 0:00 - 简介
AdAttributionKit 在设计时充分考虑了用户隐私,使广告商既能保护用户匿名性,又可充分衡量广告活动效果。这一系统包含三个参与方:广告网络、发布商 App 和所推广的 App。 在这个过程中,首先是广告网络将广告交付给发布商 App,然后发布商向用户展示广告。与广告互动会产生安装或重新吸引转化,这些可以通过所推广的 App 来衡量。特定的转化窗口结束后,数据会以回传的形式传输到广告网络。 AdAttributionKit 随 iOS 17.4 推出,后来在 iOS 18 中增加了对重新吸引转化的支持,现在又新增多项功能,比如用于衡量重叠的重新吸引转化的转化标签、可自定义的归因规则、回传中的新地理数据,以及 iOS“设置”App 中增强的可测试性。
- 3:23 - 衡量重叠的转化窗口
在 iOS 18.4 中,你的 App 现在可以同时拥有多个活跃的重新吸引转化窗口。在此之前,一次只能有一个活跃转化。 转化标签现在可作为书签使用,当用户与多个广告或营销活动互动时,可精准指定需要更新的重新吸引转化数据。这在同时开展多款产品促销活动时尤为有用。 要启用这项新功能,需要在 App 的 Info.plist 文件中设置“EligibleForAdAttributionKitOverlappingConversions”键。一旦启用这项功能,系统会自动将转化标签附加至重新吸引 URL,以便你提取并存储这些标签供后续使用。当用户执行 App 内操作时,系统会检索对应的转化标签,并通过 Postback API 直接更新转化值,从而确保将转化行为准确归因至相关营销活动。
- 7:50 - 自定广告归因规则
广告商现在可以为 App 自定义归因规则。借助这项新功能,你可以通过两种方式来调整归因流程: 可配置的归因窗口。使用这项功能,广告商可以设定在广告展示后仍能被计入归因的有效时段。此前,所有投放不到 30 天的点按型广告以及投放不到 1 天的浏览型广告都会被考虑用于归因。现在广告商可按广告网络和广告互动类型分别设置这些窗口。还可以通过指定“ignoreInteractionType”键来忽略某些广告网络的特定广告类型,或者设置适用于所有广告网络的全局归因窗口长度(除非被特定配置覆盖)。 可配置的归因冷却时间。这项功能可防止多重转化事件重叠,避免用户活跃度被错误归因。转换后,可以在 Info.plist 中设置冷却时间,在此期间任何其他转换都不会被归因,从而精准衡量实际触发转化的广告价值。广告商可以按转化类型 (例如安装转化或重新吸引转化) 来指定冷却时间。
- 14:46 - 在回传中接收地理数据
AdAttributionKit 现在利用新的地理信息 (特别是国家或地区代码) 增强了回传功能,可帮助广告商和广告网络优化不同国家或地区的广告投放效果。回传中的国家或地区代码字段源自 App Store 店面,用于首次安装和重新吸引转化。 对于通过 iOS 17.4 及更高版本的替代 App 市场安装的 App,其国家或地区代码将包含在安装验证令牌有效负载中,并由 Apple 验证,最终添加至回传数据。为保护用户隐私,这个新增字段受 Apple 人群匿名算法的约束,并且仅包含在同一国家或地区内具有足够数量的转化的回传中,从而在不损害现有信息的情况下提供额外的数据层级。
- 18:12 - 测试 AdAttributionKit
在 iOS 18.4 中,现在可以直接在 iOS“设置”App 中为你的 App 创建开发回传。这项新功能支持多种测试场景,例如在将 App 发布到生产环境前更新转化值,以及验证服务器实现是否正确处理了不同的回传数据层级。 可以通过指定 App 的捆绑标识符、目标 URL 和各种属性 (包括新的国家或地区代码属性) 来配置回传,还可以调整每个回传的数据粒度。 开发者设置中创建的回传具有不同的特征,例如全新的签名密钥、广告网络标识符固定为“development.adattributionkit”、对推广项目标识符采用特定值,从而与生产回传区分开来。这一增强功能简化了 AdAttributionKit 实现的开发和测试工作流程。