SwiftUI中如何调用registerAppForAdNetworkAttribution与updateConversionValue
解决方案
1. 继承报错原因
SKAdNetwork是iOS系统提供的工具类,Swift不支持多类继承,你不需要让AppDelegate继承SKAdNetwork,所有相关方法均为类方法,直接调用即可,无需继承、无需实现代理。
2. registerAppForAdNetworkAttribution() 调用实现
该方法需要在应用启动完成后尽早调用,直接放在didFinishLaunchingWithOptions方法中即可,仅支持iOS 14及以上系统,修改后的代码如下:
import UIKit import StoreKit // 必须导入StoreKit框架 class AppDelegate: NSObject, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool { // 注册广告归因 if #available(iOS 14, *) { SKAdNetwork.registerAppForAdNetworkAttribution() } return true } }
3. updateConversionValue(_:) 调用实现
该方法用于上报用户的关键转化行为,需要在用户完成对应行为的节点调用:
conversionValue参数是0~63的整数,你可以自行定义每个数值对应的用户行为,比如0=首次启动、1=完成注册、2=完成首单等- 系统会自动对调用请求做限流,无需频繁重复调用
- 仅支持iOS 14及以上系统
调用示例如下:
// 示例:用户完成注册后上报转化值 @available(iOS 14, *) func handleUserRegisterSuccess() { // 此处传入你定义好的对应转化值 SKAdNetwork.updateConversionValue(1) }
4. 注意事项
- 需在项目Info.plist中添加Reddit对应的SKAdNetwork ID配置,否则归因无法正常生效
- 所有SKAdNetwork相关接口都需要先导入
StoreKit框架 - iOS 14以下系统不需要调用这两个接口,调用前必须做好系统版本判断
内容的提问来源于stack exchange,提问作者neo
相关产品推荐
相关产品推荐

