罗曼-加尔巴
2020年8月19日
在……前一个月 iOS 14 版发布, ,关于接下来会发生什么,目前仍有许多猜测, MMPs. 他们的角色将发生多大变化?尽管iOS不再具备用户级别的细分能力,广告主是否仍愿意为每次付费追踪安装支付1至5美分? 尽管苹果的任何文档中均未提及,但苹果是否会允许MMP验证转化值?虽然这些问题尚不明确,但我们决定先探讨开发者当前无需依赖MMP即可采取的措施。.
我们与这家移动增长代理机构的联合创始人进行了深入交谈 2ndPotion, 凯文·布拉沃, ,来谈谈开发者目前可以利用的、且已由苹果官方文档记录的功能。凯文创建了首个能够与苹果SKAdNetwork交互的开源解决方案,名为 灵药, ,所以我们知道他非常适合这种谈话。.
以下是今天我们将与凯文一起探讨的内容。.
1) 面向开发者和游戏设计师, iOS 弹窗会请求用户同意共享其 IDFA – 应用追踪透明度 方法,以JSON格式传入收入数据。
2) 面向开发者, ,苹果公司新归因框架概述—— SKAdNetwork.
2.1) 面向开发者, 安装归因 – 集成 registerAppForAdNetworkAttribution()方法
2.2) 面向开发者, 归因于安装后事件——集成 updateConversionValue(_:)方法
2.3) 致 UA 经理们, 了解苹果如何向广告网络报告安装及安装后事件——回调和定时器
3) 让整个团队一起集思广益, 还有什么比这更好的呢 – 最佳实践与当前痛点
1) 请求用户共享其 IDFA – 集成 应用追踪透明度
凯文: AppTrackingTransparency 是 iOS 14 版本中提供的一项框架,允许应用开发者请求跟踪用户的权限。为实现归因目的,访问用户的 IDFA 需要获得此权限。.
要集成并使用该功能,您需要通过以下弹窗提示用户访问其 IDFA:
如果用户接受跟踪,您将能够请求其 IDFA。否则,IDFA 将显示为 0000-0000-0000-0000。.
请注意,如果用户启用了“限制广告追踪”(LAT)功能,您将无法请求其授权。.
问:原生弹窗最多可以显示几次?
凯文: 每台设备只能显示一次。.
问:如果最初被拒绝了,我可以再次请求用户同意吗?
凯文: 如果用户已经看到过此弹窗,则无法再次显示它。.
问:我可以在原生弹出窗口出现之前显示自定义弹出窗口吗?
凯文: 您可以决定何时显示此弹出窗口,这意味着在此之前您可以先显示另一个弹出窗口。.
这样,您就可以决定仅在用户同意您的自定义权限提示时才显示该权限弹窗.
许多公司已经采用这种策略来推送通知请求,这将有助于您获得第二次请求权限的机会。.
问:如果应用开发者未集成“应用追踪透明度”功能,会有什么后果?
凯文: 如果您不想或不需要请求 IDFA,可以选择不显示此弹窗。.
这意味着您将无法获取他们的IDFA(它将显示为0000-0000-0000-0000),广告网络同样无法获取该信息。.
2) 苹果新归因框架概述—— SKAdNetwork
凯文: 苹果提供了一种名为 SKADNetwork, ,从而使应用程序能够持续追踪来自不同广告网络的安装情况,同时不损害用户的匿名性。.
使用 SKADNetwork 时,每次广告点击都会附带一个签名。当用户首次打开您的应用时,Apple 可以利用该签名验证用户是否来自某条特定广告。.
随后,系统会向广告网络发送回调请求,以归因于一次新安装。.
该签名不包含任何身份识别数据,从而确保无法将安装与特定用户关联,最大限度地保护了隐私。.
要集成 SKADNetwork,您需要调用两个方法:
- registerAppForAdNetworkAttribution(): 该方法应在首次启动时调用,并为用户注册归因信息。如果用户来自已签名的广告,则将在接下来的几小时内触发回传,通知广告网络此次应用安装。.
- updateConversionValue(_:) 每当您需要更新与该特定用户关联的转换值时,都应调用此方法。您可以随意调用此方法,但只有当新转换值高于上一个值时,才会进行更新。.
对于广告变现,开发者需要提前确定将用于变现的广告网络,并按照以下说明,通过 plist 在应用内指定这些广告网络: 本文档.
2.1) 属性安装——集成 registerAppForAdNetworkAttribution
凯文: 在应用首次启动时调用 `registerAppForAdNetworkAttribution` 方法,即可完成启用 SKADNetwork 应用安装归因所需的所有操作。.
不过,只有当广告网络使用 SKADNetwork 对广告进行签名时,才能进行安装归因。.
在广告方面,开发者需要确保广告网络在其端已集成 SKADNetwork,以便实现归因和回传。.
为了方便起见,我们提供了一份所有可用广告网络 ID 的列表 这里.
2.2) 归因安装后事件 – 集成 updateConversionValue(_:)
凯文: 您可以为特定的安装分配一个转化值。该数值范围为 0 到 63。.
这是一个“信号”,它能帮助你了解该特定用户的价值,但不会提供识别该用户身份的途径。.
广告网络可以利用这些信息来了解每次安装对您的业务有多大价值。这一指标有助于广告网络识别更合适的受众群体来投放您的广告,从而提升广告活动的成效。.
问:何时应使用 updateConversionValue(_:)?
凯文: 同一用户的转化值可以更新多次,但存在以下限制:
- 您只能将转换值更新为比上次调用更大的数值(例如 1→2,但不能是 3→2)
- 0-63 之间的有限值
您之所以要使用转化值,是因为它能为您的广告网络提供有价值的信号。此外,它还能让您
- 分析用户通过特定营销活动/渠道/国家/地区安装应用后在应用中的核心行为
- 向广告网络提供更多数据点,以便您据此识别游戏中具有价值的用户群体,并优化广告活动的表现。.
您需要考虑如何定义每个转化值,以便充分利用 SKADNetwork。.
在转化值管理方面,有以下几种不同的方法:
- 跟踪收入
- 例如:转换值 1 为 0.1 欧元,50 为 5.0 欧元
- 田径项目
- 例如:level1_completed = 转换值 1
- 跟踪收入和进度事件
- 例如:转化值 10 = lvl5_completed 且消费 1 欧元
- 等等…….
针对“收入 + 进度”事件,我创建了一份转换表,通过它您可以定义要追踪的每个事件,并了解将要发送的转化值。.
正如您在电子表格中所见,我们使用二进制值将事件转换为转化值:
- 每个转换值对应一组由6个二进制值组成的数值。.
- 前3个二进制值代表该特定用户的收入(例如,购买金额 > 10$ = “101”)
- 最后 3 个二进制值表示进度(例如,已完成 10 个关卡 = “011”)
- 通过将这两组二进制值结合起来,我们得到一个转换值(例如,“101001” 转换为转换值 43)
您可以在这里找到该电子表格 这里:
问:什么是Elixir?它有什么作用?
凯文: 转化值只能通过应用程序发送,因此如果不更新应用程序,就很难调整转化值的跟踪方式。.
Elixir 是一种 开源 SDK 这使您能够在无需在每次更改后更新应用程序的情况下,定义和更新转换值。.
工作原理如下:
- 您可以使用可用的其中一种方法(收入型/混合型/进度型)来定义转换表
- 将其作为 JSON 格式存储在服务器上
- 您集成了 Elixir SDK,并跟踪了应用中所有可用的事件
- 首次启动时,Elixir SDK 将请求该 JSON 数据,并实时将转化值与用户的操作进行匹配
- Elixir SDK 将根据您创建的表格更新 conversionValue
您可以查看一个示例, 转换表 JSON. 这是 Elixir 用于读取并生成转化值以追踪每位用户操作后的文档。.
目前,仅提供一种类型的表格 (表格链接) 适用于 Elixir。随着开发人员在该项目上展开协作,每个模型都将被轻松覆盖(广告收入二进制数据、时间戳、地理位置等)。
2.3) 了解苹果如何向广告网络报告安装及安装后事件——回调和定时器
问:你能解释一下在 updateConversionValue(_:) 中回调定时器是如何工作的吗?
凯文: 在后发请求的调度方式上还存在一些额外的复杂性。.
有两种计时器,具体如下:
- 24小时定时器:可多次重置,设定时长为24小时
- 随机计时器:一旦开始,就无法重置。持续时间是随机的,范围在0至24小时之间
当您调用 registerAppForAdNetworkAttribution() 时,24 小时计时器便开始运行。如果您决定调用 updateConversionValue(_:), 计时器 1 被重置为零并重新开始计时。.
每次调用 updateConversionValue(_:), 24小时计时器将重置。.
假设你不开枪 updateConversionValue(_:) 在24小时倒计时结束之前,将启动一个随机计时器。一旦随机计时器启动,您将无法再更新转换值。.
随机计时器结束时,系统会向广告网络发送回调请求。该回调请求可能包含(也可能不包含)转化值(该值将是你为该特定用户设置的最新值)
苹果的文档中并未对 updateConversionValue 设定时间或调用次数限制。这意味着,只要用户每 24 小时访问一次,你最多可以发送 63 次新的 conversionValue(根据‘何时应使用 updateConversionValue(_:)?’问题中所述的限制)。.
问:广告网络从 SKADNetwork 接收哪些数据?
凯文: 广告网络将针对每次安装收到如下格式的回调:
某些值是可选的(例如转换值),可能不会包含在回发数据中。.
有关此回调的更多详细信息,以及广告网络如何验证每次安装的真实性,请参见 这里.
3) 最佳实践与现有痛点
问:在使用 updateConversionValue(_:) 时,您有什么建议?
凯文: 你需要确定用户在首次使用以及随后的1至3天内可以采取的最具价值的行动。.
一个有价值的事件能很好地反映用户在应用中的参与度,而购买行为则是你能获得的最强信号。.
然后,你应该将事件按信号强度从低到高的顺序排列。这份事件列表将有助于你定义转换表。.
问:开发者在使用 SKAdNetwork 时还可能遇到哪些其他痛点?
凯文: 在使用 SKADNetwork 时,您将面临各种挑战:
– 管理安装时间戳: SKADNetwork 会随机化向广告网络发送回调的时间,且不包含安装时间戳。这使得确定安装发生的时间变得较为复杂。如果您决定在最初的 24 小时之后发送转化值,情况会变得更加困难。.
在停止更新转换值之前等待的时间越长,安装时间窗口就越宽。.
一种解决方案是利用部分转换值位来定义安装日期,并限制更新转换值的天数(例如,三天)。.
– 检索数据/验证签名: 目前,只有广告网络能够访问安装回调数据。目前尚不清楚哪些广告网络将允许广告主访问 SKADNetwork 数据。请求这些数据至关重要,因为您将能够 通过签名验证安装的真实性.
– IDFA 归因管理 + SKADNetwork: 如何与 SKADNetwork 配合使用,并在用户已同意 IDFA 追踪的情况下继续进行用户级归因分析?这种混合模型较为复杂,需要一套完善的工作流程来避免安装日志的重复计数。.


