针对 Adobe Experience SDK 的 Adjust iOS Extension 发送的安装数据为 Adjust 所接收后,设备就会被归因至安装来源。如果针对用户进行了再营销,或用户与其他推广活动进行了交互,那么该归因信息就可能会发生变化。
您可以配置回传函数来响应归因变更。Adjust 收到新的归因信息后,会异步将数据发送回设备。回传函数会以参数形式接收设备的归因数据。
请参阅 Adjust 的归因数据政策,进一步了解归因数据。
参考
要设置回传函数以监听归因变化,请使用以下参数调用 AdjustAdobeExtensionConfig
实例的 setAttributionChangedBlock
方法:
attributionChangedBlock
: OnAttributionChangedListener
-
该函数会返回 void
,并以序列化归因对象的形式接收设备归因信息。
教程:创建归因回传
要配置归因回传,您需要创建一个函数,并将其指定给 AdjustAdobeExtensionConfig
实例。参阅本教程,您将以集成指南中的 App Delegate 为基础,创建一个补全函数,并通过该函数将用户的归因信息以字符串形式输出,记录在日志中。最终结果将如下:
import AdjustAdobeExtension
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
MobileCore.setLogLevel(LogLevel.trace)
let appState = application.applicationState
if let config = AdjustAdobeExtensionConfig(environment: ADJEnvironmentSandbox) {
config.setAttributionChangedBlock({ attribution in
print("Adjust Attribution Callback received: [\(attribution.description)]")
AdjustAdobeExtension.setConfiguration(config)
MobileCore.registerExtensions([AdjustAdobeExtension.self]) {
MobileCore.configureWith(appId: "{your_adobe_app_id}")
if appState != .background {
MobileCore.lifecycleStart(additionalContextData: nil)
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
if let deeplink = ADJDeeplink(deeplink: url) {
Adjust.processDeeplink(deeplink)
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
if userActivity.activityType == NSUserActivityTypeBrowsingWeb {
if let incomingUrl = userActivity.webpageUrl {
if let deeplink = ADJDeeplink(deeplink: incomingUrl) {
Adjust.processDeeplink(deeplink)
#import <AdjustAdobeExtension/AdjustAdobeExtension.h>
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[AEPMobileCore setLogLevel: AEPLogLevelTrace];
const UIApplicationState appState = application.applicationState;
// Adjust Adobe Extension configuration
AdjustAdobeExtensionConfig *config = [AdjustAdobeExtensionConfig configWithEnvironment:ADJEnvironmentSandbox];
[config setAttributionChangedBlock:^(ADJAttribution * _Nullable attribution) {
NSLog(@"Adjust Attribution Callback received:[%@]", attribution.description);
[AdjustAdobeExtension setConfiguration:config];
[AEPMobileCore registerExtensions:@[AdjustAdobeExtension.class]
[AEPMobileCore configureWithAppId: @"{your_adobe_app_id}"];
if (appState != UIApplicationStateBackground) {
[AEPMobileCore lifecycleStart:nil];
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
[Adjust processDeeplink: [[ADJDeeplink alloc] initWithDeeplink:url]];
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<uiuseractivityrestoring>> * _Nullable))restorationHandler {
if ([[userActivity activityType] isEqualToString:NSUserActivityTypeBrowsingWeb]) {
[Adjust proceessDeeplink:[[ADJDeeplink alloc] initWithDeeplink:[userActivity webpageURL]]];
您需要进行下列操作:
- 在 App Delegate 中找到您的
AdjustAdobeExtensionConfig
实例。在下一行中,以函数块为参数,调用 setAttributionChangedBlock
方法。该函数块会接收归因信息。
if let config = AdjustAdobeExtensionConfig(environment: ADJEnvironmentSandbox) {
config.setAttributionChangedBlock({ attribution in })
AdjustAdobeExtension.setConfiguration(config)
AdjustAdobeExtensionConfig *config = [AdjustAdobeExtensionConfig configWithEnvironment:ADJEnvironmentSandbox];
[config setAttributionChangedBlock:^(ADJAttribution * _Nullable attribution) {}];
[AdjustAdobeExtension setConfiguration:config];
- 在函数块中,将归因描述输出至 Xcode 记录器。
if let config = AdjustAdobeExtensionConfig(environment: ADJEnvironmentSandbox) {
config.setAttributionChangedBlock({ attribution in
print("Adjust Attribution Callback received: [\(attribution.description)]")
AdjustAdobeExtension.setConfiguration(config)
AdjustAdobeExtensionConfig *config = [AdjustAdobeExtensionConfig configWithEnvironment:ADJEnvironmentSandbox];
[config setAttributionChangedBlock:^(ADJAttribution * _Nullable attribution) {
NSLog(@"Adjust Attribution Callback received:[%@]", attribution.description);
[AdjustAdobeExtension setConfiguration:config];
完成了!用户归因信息发生变更时,回传函数会将更新后的归因信息写入系统日志。