此功能只可用于 iOS 14 及更高版本设备。
StoreKit Ad Network (SKAdNetwork) 是 Apple 的归因框架,可针对应用安装和重装进行归因。SKAdNetwork 的工作流程如下:
- Apple 会收集归因信息,并通知相关广告渠道。
- 然后,广告渠道会通过回调将这些信息传输给 Adjust。
- Adjust 在 Datascape 中展示 SKAdNetwork 数据。
关闭 SKAdNetwork 通讯
- (void)disableSkanAttribution;
Adjust SDK 默认与 SKAdNetwork 通讯。SDK 在初始化时会注册 SKAdNetwork 归因。
您可以通过调用不带参数的disableSkanAttribution
方法来禁用 SKAdNetwork 通讯。
您必须在初始化 Adjust SDK 之前 调用 disableSkanAttribution
方法。
let yourAppToken = "{YourAppToken}"let environment = ADJEnvironmentSandboxlet adjustConfig = ADJConfig( appToken: yourAppToken, andEnvironment: environment)//...adjustConfig.disableSkanAttribution()//...Adjust.initSdk(adjustConfig)
ADJConfig *adjustConfig = [[ADJConfig alloc] initWithAppToken:@"{YourAppToken}" andEnvironment:ADJEnvironmentSandbox];[adjustConfig disableSkanAttribution];/// ...[Adjust initSdk:adjustConfig];
更新转化值
+ (void)updateConversionValue:(NSInteger)conversionValue;
转化值是用来在 SKAdNetwork 中跟踪用户行为的机制。您可以将 64 个条件映射至 0
-63
的转化值,并在用户安装时将此整数值发送至 SKAdNetwork。该信息可帮助您进一步了解用户在安装后的最初几日内是如何与应用交互的。
如果您通过 Adjust 管理转化值,那么服务器会在 SDK 中更新该值。您也可以通过 updateSkanConversionValue
方法更新转化值。该方法会包装 Apple 的 updateConversionValue
方法。该方法接受以下参数:
参数 | 数据类型 | 描述 |
---|---|---|
fineValue | 整数 | 您的转化值。必须在 0 至 63 之间。 |
coarseValue | SKAdNetwork.CoarseConversionValue | 粗粒度转化值。如果应用安装量不足,未能达到隐私阈值,就会启用粗粒度转化值。
|
lockWindow | 布尔 | 是否在转化值窗口结束前发送回调。将这一项设置为 true ,系统就会在转化值窗口结束前发送回调。默认设置为 false 。 |
completion | 功能 | 您提供的可选 completion handler,用来捕捉并处理更新转化值时该方法遇到的任何错误。如果您不打算提供 handler,请将该值设为 nil 。 |
Adjust.updateSkanConversionValue( 1, coarseValue: SKAdNetwork.CoarseConversionValue.low, lockWindow: false) { error in if let error { print(String(format: "An error occurred during completion: %@", error)) }}
[Adjust updateSkanConversionValue:1 coarseValue:SKAdNetworkCoarseConversionValueLow lockWindow:NO withCompletionHandler:^(NSError *_Nullable error) { NSLog(@"An error occurred during completion: %@", error);}];
SKAdNetwork 回传
SKAdNetwork 4.0 回调中包含额外信息,帮助广告主更好地了解用户。Adjust 服务器更新转化值时,这些额外信息就会通过无类型字典发送。要访问此信息,请将一个 completion handler 传递至[adjustSkanUpdatedWithConversionData]
方法。您可以在 completion handler 中访问回传信息。
conversion_value
: 更新后的转化值。coarse_value
: 更新后的粗粒度转化值lock_window
: 是否在转化窗口结束前发送回调。error
: 更新返回的错误信息。
示例
该示例展示了如何记录了细粒度转化值和粗粒度转化值,以及 SKAdNetwork 回调是否在转化值窗口结束前发送。
func adjustSkanUpdated(withConversionData data: [String: String]) { print("Conversion value updated callback called!") print(String(format: "Conversion value dictionary: \n%@", data.description))}
- (void)adjustSkanUpdatedWithConversionData:(NSDictionary<NSString *, NSString *> *)data { NSLog(@"Conversion value updated callback called!"); NSLog(@"Conversion value dictionary: \n%@", data.description);}
设置直接安装回调
直接安装回调只包含 SKAdNetwork 信息,不含推广活动数据等信息。
您可以进行应用配置,将赢得归因的 SKAdNetwork 回调副本发送给 Adjust。借此在数据分析中使用 SKAdNetwork 信息。
要设置直接安装回调,您需要将 Adjust 回传 URL 添加至 Info.plist
文件:
- 在 Xcode Project navigator 中选择 Info.plist 。
- 在属性列表编辑器中点击 key 旁边的添加按钮,点击
Return
。 - 输入 key 名称:
NSAdvertisingAttributionReportEndpoint
。 - 在弹出菜单中将 Type (类型) 设置为 String (字符串) 。
- 输入地址:
https://adjust-skadnetwork.com
。
要了解更多信息,请查阅 Apple 的 Configuring an Advertised App 指南。
此功能只可用于 iOS 14 及更高版本设备。
StoreKit Ad Network (SKAdNetwork) 是 Apple 的归因框架,可针对应用安装和重装进行归因。SKAdNetwork 的工作流程如下:
- Apple 会收集归因信息,并通知相关广告渠道。
- 然后,广告渠道会通过回调将这些信息传输给 Adjust。
- Adjust 在 Datascape 中展示 SKAdNetwork 数据。
关闭 SKAdNetwork 通讯
- (void)deactivateSKAdNetworkHandling;
v4.23.0 及以上版本的 Adjust SDK 会默认与 SKAdNetwork 通讯。SDK 在初始化时会注册 SKAdNetwork 归因。
您的 config 对象包含一个isSKAdNetworkHandlingActive
布尔属性,该属性控制此行为。您可以通过 no 参数调用 deactivateSKAdNetworkHandling
方法来禁用 SKAdNetwork 通讯。
您必须在初始化 Adjust SDK 之前 调用 deactivateSKAdNetworkHandling
方法。
let yourAppToken = "{YourAppToken}"let environment = ADJEnvironmentSandbox as? Stringlet adjustConfig = ADJConfig( appToken: yourAppToken, environment: environment)//...adjustConfig.deactivateSKAdNetworkHandling()//...Adjust.appDidLaunch(adjustConfig)
*adjustConfig = [ADJConfig configWithAppToken:@"{YourAppToken}" environment:ADJEnvironmentSandbox];[adjustConfig.deactivateSKAdNetworkHandling];/// ...[Adjust appDidLaunch:adjustConfig];
更新转化值
+ (void)updateConversionValue:(NSInteger)conversionValue;
转化值是用来在 SKAdNetwork 中跟踪用户行为的机制。您可以将 64 个条件映射至 0
-63
的转化值,并在用户安装时将此整数值发送至 SKAdNetwork。该信息可帮助您进一步了解用户在安装后的最初几日内是如何与应用交互的。
如果您通过 Adjust 管理转化值,那么服务器会在 SDK 中更新该值。您也可以通过 updateConversionValue
方法更新转化值。该方法会包装 Apple 的 updateConversionValue
方法,接受代表更新后的转化值的整数参数。
Adjust.updateConversionValue(value)
[Adjust updateConversionValue:value];
示例
该示例展示了如何在用户触发事件后将转化值更新为 10
。
func onButtonClick() { Adjust.updateConversionValue(10)}
- (void)onButtonClick { [Adjust updateConversionValue:10];}
设置 completion handler
Adjust SDK 包含 updatePostbackConversionValue
方法的包装器。这些方法可提供更多 SKAdNetwork 回调处理选项,包括处理失败的选项。
受支持的方法如下:
updatePostbackConversionValue(_:completionHandler:)
:更新转化值并处理失败。updatePostbackConversionValue(_:completionHandler:coarseValue:)
:更新粗粒度和细粒度转化值并处理失败。updatePostbackConversionValue(_:coarseValue:lockWindow:completionHandler:)
:新粗粒度和细粒度转化值,决定是否在转化值窗口结束前发送回调,并处理错误。
参数 | 数据类型 | 描述 |
---|---|---|
fineValue | 整数 | 您的转化值。必须在 0 至 63 之间。 |
coarseValue | SKAdNetwork.CoarseConversionValue | 粗粒度转化值。如果应用安装量不足,未能达到隐私阈值,就会启用粗粒度转化值。
|
lockWindow | 布尔 | 是否在转化值窗口结束前发送回调。将这一项设置为 true ,系统就会在转化值窗口结束前发送回调。默认设置为 false 。 |
completion | 功能 | 您提供的可选 completion handler,用来捕捉并处理更新转化值时该方法遇到的任何错误。如果您不打算提供 handler,请将该值设为 nil 。 |
示例
if #available(iOS 16.1, *) { Adjust.updatePostbackConversionValue( 1, coarseValue: SKAdNetwork.CoarseConversionValue.low.rawValue, lockWindow: false) { error in if let error { print(String(format: "An error occurred during completion: %a", error)) } }}
if (@available(iOS 16.1, *)) { [Adjust updatePostbackConversionValue:1 coarseValue:SKAdNetworkCoarseConversionValueLow lockWindow:NO completionHandler:^(NSError *_Nullable error) { NSLog(@"An error occurred during completion: %a", error); }];}
监听转化值变更
如果您使用 Adjust 管理转化值,那么 Adjust 服务器就会将转化值更新发送到 SDK。您可以设置委托函数,使用 adjustConversionValueUpdated
方法监听更新。
示例
该示例展示了如何在转化值更新时记录下列内容:
- 确认转化值发生更新的消息
- 新的转化值
func adjustConversionValueUpdated(_ conversionValue: NSNumber?) { print("Conversion value: \(conversionValue ?? 0)")}
- (void)adjustConversionValueUpdated:(NSNumber *)conversionValue { NSLog(@"Conversion value: %@", conversionValue);}
SKAdNetwork 4.0 回传
SKAdNetwork 4.0 回调中包含额外信息,帮助广告主更好地了解用户。Adjust 服务器更新转化值时,这些额外信息就会通过负载发送。您可以使用 adjustConversionValueUpdated
回传方法访问这些信息。
参数 | 数据类型 | 描述 |
---|---|---|
fineValue | NSNumber | Adjsut 服务器发送的转化值 |
coarseValue | NSString | 粗粒度转化值。如果应用安装量不足,未能达到隐私阈值,就会启用粗粒度转化值。
如果低、中、高三个值的条件都不满足,Apple 就会发送 none。 |
lockWindow | NSNumber | 是否在转化值窗口结束前发送回调。1 表示回调会在转化窗口结束前发送。在 SKAdNetwork 4.0 回调中默认为 0 ;在更旧的 SKAdNetwork 版本中默认为 nil 。 |
示例
该示例展示了如何记录了细粒度转化值和粗粒度转化值,以及 SKAdNetwork 回调是否在转化值窗口结束前发送。
func adjustConversionValueUpdated(_ fineValue: NSNumber?, coarseValue: String?, lockWindow: NSNumber?) { print("Fine conversion value: \(fineValue ?? 0)") print("Coarse conversion value: \(coarseValue ?? "")") print("Will send before conversion value window ends: \(lockWindow?.boolValue ?? nil)")}
- (void)adjustConversionValueUpdated:(NSNumber *)fineValue coarseValue:(NSString *)coarseValue lockWindow:(NSNumber *)lockWindow { NSLog(@"Fine conversion value: %@", fineValue); NSLog(@"Coarse conversion value: %@", coarseValue); NSLog(@"Will send before conversion value window ends: %u", [lockWindow boolValue]);}
设置直接安装回调
直接安装回调只包含 SKAdNetwork 信息,不含推广活动数据等信息。
您可以进行应用配置,将赢得归因的 SKAdNetwork 回调副本发送给 Adjust。借此在数据分析中使用 SKAdNetwork 信息。
要设置直接安装回调,您需要将 Adjust 回传 URL 添加至 Info.plist
文件:
- 在 Xcode Project navigator 中选择 Info.plist 。
- 在属性列表编辑器中点击 key 旁边的添加按钮,点击
Return
。 - 输入 key 名称:
NSAdvertisingAttributionReportEndpoint
。 - 在弹出菜单中将 Type (类型) 设置为 String (字符串) 。
- 输入地址:
https://adjust-skadnetwork.com
。
要了解更多信息,请查阅 Apple 的 Configuring an Advertised App 指南。