iOS Swift中SKAdNetwork与应用追踪实现及双角色配置求助
SKAdNetwork 两种场景配置与实现指南
一、源应用:我方App展示广告网络的广告
配置步骤
- 在
Info.plist中添加SKAdNetworkItems数组,数组内每个元素是包含对应广告网络ID的字典。示例配置:
<key>SKAdNetworkItems</key> <array> <dict> <key>SKAdNetworkIdentifier</key> <string>目标广告网络ID.skadnetwork</string> </dict> </array>
- 无需申请ATT权限即可使用SKAdNetwork,但部分广告网络可能要求额外配置,需参考对应平台文档。
代码实现
- 主流广告网络(如AdMob、IronSource等)的SDK会自动处理SKAdNetwork归因逻辑,只需完成SDK常规集成,并确保
Info.plist配置了正确的广告网络ID即可。 - 若自定义广告实现,在广告展示或用户点击后,调用广告网络提供的归因触发方法(SDK通常已封装,无需手动调用StoreKit底层API)。
二、广告应用:我方App作为推广对象被其他App展示
配置步骤
- 在广告推广平台(如苹果Search Ads、第三方广告网络)注册你的App,获取对应的SKAdNetworkID,要求展示你方广告的源应用需在其
Info.plist的SKAdNetworkItems中配置该ID。 - 我方App默认无SKAdNetwork功能限制,无需额外配置
Info.plist。
代码实现
- 启动归因注册
在App启动后尽早调用注册方法,触发SKAdNetwork归因流程。示例代码(AppDelegate中):
import StoreKit func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { if #available(iOS 14.0, *) { SKAdNetwork.registerAppForAdNetworkAttribution() } return true }
若使用SceneDelegate,可在scene(_:willConnectTo:options:)中调用该方法。
- 更新转化值
当用户完成关键行为(如注册、付费、完成教程等)时,调用updateConversionValue(_:)上报转化值,帮助广告平台衡量推广效果。转化值范围为0-63,需自行定义每个值对应的用户行为:
// 示例:用户完成付费后,将转化值设为10 if #available(iOS 14.0, *) { SKAdNetwork.updateConversionValue(10) }
关键说明
- SKAdNetwork归因数据由苹果匿名发送给对应广告网络,你无法直接获取原始数据,需通过广告平台后台查看统计结果。
- 转化值更新有频率限制,短时间内多次调用仅最后一次生效。
内容的提问来源于stack exchange,提问作者Swift
相关产品推荐
相关产品推荐

