---
metadata:
  - name: generator
    content: Diplodoc Platform v5.64.0
alternate:
  - https://boost.yandex.com/doc/en/analytics/content/data-collection/attribution-integration-ios.md
  - https://boost.yandex.com/doc/ru/analytics/content/data-collection/attribution-integration-ios.md
  - https://boost.yandex.com/doc/zh/analytics/content/data-collection/attribution-integration-ios.md
  - href: https://boost.yandex.com/doc/zh/analytics/content/data-collection/attribution-integration-ios.md
    type: text/markdown
    title: Markdown version
  - href: https://boost.yandex.com/doc/zh/llms.txt?revision=r21772739
    rel: describedby
---
> **Documentation Index:** Fetch the complete configuration index at https://boost.yandex.com/doc/zh/llms.txt?revision=r21772739

# 导入 iOS 归因数据

{% note info "" %}

归因导入自 AppMetrica SDK 5.2.0 起在 iOS 可用。

{% endnote %}

要设置导入，请在客户端调用归因检索方法，然后在AppMetrica SDK中调用AppMetrica / AMAAppMetrica类的`reportExternalAttribution`归因发送方法。

## AppsFlyer {#appsflyer}

要将 AppsFlyer 的归因集成到你的项目中，请确保为 SwiftUI 项目添加了 AppDelegate 的支持。

1. [以常规方式初始化](https://dev.appsflyer.com/hc/docs/integrate-ios-sdk) AppsFlyer。
2. [使用方法](https://dev.appsflyer.com/hc/docs/conversion-data-ios) `onConversionDataSuccess` 来获取归因数据。
3. 设置归因数据发送（`reportExternalAttribution` 方法），用于AppMetrica SDK。

{% list tabs group=instructions %}

- Swift

  ```swift translate=no
  import AppMetricaCore
  import AppsFlyerLib

  extension AppDelegate: AppsFlyerLibDelegate {
      func onConversionDataSuccess(_ installData: [AnyHashable: Any]) {
          AppMetrica.reportExternalAttribution(installData, from: .appsflyer)
      }
  }
  ```

- Objective-C

  ```objc translate=no
  #import <AppMetricaCore/AppMetricaCore.h>
  #import <AppsFlyerLib/AppsFlyerLib.h>

  @interface AppDelegate ()
  @end

  @implementation AppDelegate

  - (void)onConversionDataSuccess:(NSDictionary *)installData {
      [AMAAppMetrica reportExternalAttribution:installData
                                        source:kAMAAttributionSourceAppsflyer
                                     onFailure:nil];
  }

  @end
  ```

{% endlist %}

## Adjust {#adjust}

要将 Adjust 的归因集成到你的项目中，请确保为 SwiftUI 项目添加了 AppDelegate 的支持。

1. [初始化](https://dev.adjust.com/en/sdk/ios/) 按常规方式调整。
2. Adjust 使用 [ADJAttribution](https://dev.adjust.com/en/sdk/ios/features/attribution) 对象来处理归因数据。 将其转换为`字典`，使用`dictionary()`方法，然后传递给AppMetrica。
3. 设置归因数据发送（`reportExternalAttribution` 方法），用于AppMetrica SDK。

{% list tabs group=instructions %}

- Swift

  ```swift translate=no
  import AppMetricaCore
  import Adjust

  extension AppDelegate: AdjustDelegate {
      func adjustAttributionChanged(_ attribution: ADJAttribution?) {
          if let attribution = attribution?.dictionary() {
              AppMetrica.reportExternalAttribution(attribution, from: .adjust)
          }
      }
  }
  ```

- Objective-C

  ```objc translate=no
  #import <AppMetricaCore/AppMetricaCore.h>
  #import <Adjust/Adjust.h>

  @interface AppDelegate () <AdjustDelegate>
  @end

  @implementation AppDelegate

  - (void)adjustAttributionChanged:(ADJAttribution *)attribution {
      NSDictionary *attributionDictionary = [attribution dictionary];
      if (attributionDictionary != nil) {
          [AMAAppMetrica reportExternalAttribution:attributionDictionary
                                            source:kAMAAttributionSourceAdjust
                                         onFailure:nil];
      }
  }

  @end
  ```

{% endlist %}

## Kochava {#kochava}

对于Kochava，请在回调中使用其归因搜索方法，通过调用单例的 `rawDictionary` 属性来获取 `attribution.retrieveResult` 方法返回的结果。

1. [以常规方式初始化](https://support.kochava.com/sdk-integration/ios-sdk-integration/ios-using-the-sdk/) Kochava。
2. Kochava 提供了通过回调实现的自有归因检索机制。 调用 `rawDictionary` 属性，在 `result` 中，来自 `attribution.retrieveResult` 方法。 将生成的字典发送到AppMetrica。
3. 设置归因数据发送（`reportExternalAttribution` 方法），用于AppMetrica SDK。

{% list tabs group=instructions %}

- Swift

  ```swift translate=no
  import AppMetricaCore
  import KochavaNetworking
  import KochavaMeasurement
  ```

  ```swift translate=no
  Measurement.shared.attribution.retrieveResult { result in
      if let attribution = result.rawDictionary {
          AppMetrica.reportExternalAttribution(attribution, from: .kochava)
      }
  }

  ```

- 面向对象的 C

  ```objc translate=no
  #import <AppMetricaCore/AppMetricaCore.h>
  @import KochavaNetworking;
  @import KochavaMeasurement;
  ```

  ```objc translate=no
  [KVAMeasurement.shared.attribution retrieveResultWithClosureDidComplete:^(KVAMeasurement_Attribution_Result * _Nonnull result) {
      NSDictionary *attributionDictionary = result.rawDictionary;
      if (attributionDictionary) {
          [AMAAppMetrica reportExternalAttribution:attributionDictionary
                                            source:kAMAAttributionSourceKochava
                                         onFailure:nil];
      }
  }];
  ```

{% endlist %}

## Tenjin {#tenjin}

1. [以常规方式初始化](https://docs.tenjin.com/docs/ios-sdk) Tenjin。
2. 获取 TenjinSDK 实例（使用您的 API 键），然后调用 `getAttributionInfo(_:)`。
3. 设置归因数据发送（`reportExternalAttribution` 方法），用于AppMetrica SDK。

{% list tabs group=instructions %}

- Swift

  ```swift translate=no
  import AppMetricaCore
  import TenjinSDK
  ```

  ```swift translate=no
  TenjinSDK.getInstance("<SDK_KEY>").getAttributionInfo { (attribution: [AnyHashable : Any]?, error: Error?) in
      if let attribution = attribution {
          AppMetrica.reportExternalAttribution(attribution, from: .tenjin)
      }
  }
  ```

- 面向对象的 C

  ```objc translate=no
  #import <AppMetricaCore/AppMetricaCore.h>
  #import <TenjinSDK/TenjinSDK.h>
  ```

  ```objc translate=no
  [[TenjinSDK getInstance:@"<SDK_KEY>"] getAttributionInfo:^(NSDictionary *attribution, NSError *error) {
      if (attribution) {
          [AMAAppMetrica reportExternalAttribution:attribution
                                            source:kAMAAttributionSourceTenjin
                                         onFailure:nil];
      }
  }];
  ```

{% endlist %}

## Airbridge {#airbridge}

1. [以常规方式初始化](https://help.airbridge.io/en/developers/ios-sdk) Airbridge。
2. [设置](https://help.airbridge.io/en/developers/ios-sdk#attribution-result-callback-setup) `attributionCallback` 属性，用于从 `ABSetting` `AirBridge.setting()` 获取的对象。 将归属字典作为参数传递。
3. 设置归因数据发送（`reportExternalAttribution` 方法），用于AppMetrica SDK。

{% list tabs group=instructions %}

- Swift

  ```swift translate=no
  import AppMetricaCore
  import AirBridge
  ```

  ```swift translate=no
  AirBridge.setting().attributionCallback = { (attribution: [String : String]) in
      AppMetrica.reportExternalAttribution(attribution, from: .airbridge)
  }
  ```

- Objective-C

  ```objc translate=no
  #import <AppMetricaCore/AppMetricaCore.h>
  #import <AirBridge/AirBridge.h>
  ```

  ```objc translate=no
  [AirBridge.setting setAttributionCallback:^(NSDictionary<NSString *,NSString *> * _Nonnull attribution) {
      [AMAAppMetrica reportExternalAttribution:attribution
                                        source:kAMAAttributionSourceAirbridge
                                     onFailure:nil];
  }];
  ```

{% endlist %}

## Singular {#singular}

1. [初始化](https://support.singular.net/hc/en-us/articles/12054824479387-iOS-SDK-Integration-Guide) 以常规方式单数形式。
2. 使用您的 API 密钥和密钥初始化 `SingularConfig`。
3. 为归属数据处理分配一个回调，名称为`deviceAttributionCallback`。
4. 设置归因数据的发送（`reportExternalAttribution` 方法）在 AppMetrica SDK 中。

{% list tabs group=instructions %}

- Swift

  ```swift translate=no
  import AppMetricaCore
  import Singular
  ```

  ```swift translate=no
  if let singularConfig = SingularConfig(apiKey: "API_KEY", andSecret: "SECRET") {
      singularConfig.deviceAttributionCallback = { (attribution: [AnyHashable : Any]?) in
          if let attribution = attribution {
              AppMetrica.reportExternalAttribution(attribution, from: .singular)
          }
      }
  }
  ```

- 面向对象的 C

  ```objc translate=no
  #import <AppMetricaCore/AppMetricaCore.h>
  #import <Singular/Singular.h>
  ```

  ```objc translate=no
  SingularConfig *singularConfig = [[SingularConfig alloc] initWithApiKey:@"API_KEY" andSecret:@"SECRET"];
  singularConfig.deviceAttributionCallback = ^(NSDictionary *attribution) {
      if (attribution) {
          [AMAAppMetrica reportExternalAttribution:attribution
                                            source:kAMAAttributionSourceSingular
                                         onFailure:nil];
      }
  };
  ```

{% endlist %}

<!-- source: zh/analytics/content/_includes/feedback-button.md -->
如果您没有找到所需答案，可以通过反馈表单提交您的问题。 请尽可能详细地描述问题。 如果可能，请附上截图。

<a href="../troubleshooting/feedback-new">
  <span class="button">联系支持</span>
</a>

<a href="../troubleshooting/feedback-docs">
  <span class="button">为文档提出改进建议</span>
</a>
<!-- endsource: zh/analytics/content/_includes/feedback-button.md -->
