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

# 导入 Android 的归因数据

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

## AppsFlyer {#appsflyer}

1. [注册](https://dev.appsflyer.com/hc/docs/conversion-data-android#appsflyerconversionlistener-overview/) `AppsflyerConversionListener`.
2. 设置归因数据发送（`AppMetrica.reportExternalAttribution` 方法），在AppMetrica SDK 中使用来自 `AppsflyerConversionListener` 的数据。

{% list tabs group=instructions %}

- Kotlin

  ```kotlin translate=no
  val appsflyerConversionListener = object : AppsFlyerConversionListener {
	  // ...
      override fun onConversionDataSuccess(value: MutableMap<String, Any>?) {
          AppMetrica.reportExternalAttribution(ExternalAttributions.appsflyer(value))
      }
      // ...
  }

  AppsFlyerLib.getInstance().init(appsflyerKey, appsFlyerConversionListener, context)
  ```

- Java

  ```java translate=no
  AppsFlyerConversionListener appsFlyerConversionListener = new AppsFlyerConversionListener() {
	  // ...
      @Override
      public void onConversionDataSuccess(Map<String, Object> value) {
          AppMetrica.reportExternalAttribution(ExternalAttributions.appsflyer(value));
      }
      // ....
  };

  AppsFlyerLib.getInstance().init(appsflyerKey, appsFlyerConversionListener, context);
  ```

{% endlist %}

## Adjust {#adjust}

### Version 4.*.* {#adjust-4}

1. [注册](https://dev.adjust.com/en/sdk/android/features/attribution/) `OnAttributionChangedListener`.
2. 设置归因数据发送（`AppMetrica.reportExternalAttribution` 方法），在AppMetrica SDK 中使用来自 `OnAttributionChangedListener` 的数据。

{% list tabs group=instructions %}

- Kotlin

  ```kotlin translate=no
  val config = AdjustConfig(context, adjustToken, adjustEnvironment)

  config.setOnAttributionChangedListener { attribution ->
      AppMetrica.reportExternalAttribution(ExternalAttributions.adjust(attribution))
  }

  Adjust.onCreate(config)
  ```

- Java

  ```java translate=no
  AdjustConfig config = new AdjustConfig(context, adjustToken, adjustEnvironment);

  config.setOnAttributionChangedListener(attribution -> {
      // ...
      AppMetrica.reportExternalAttribution(ExternalAttributions.adjust(attribution));
      // ...
  });

  Adjust.onCreate(config);
  ```

{% endlist %}

### Version 5.*.* {#adjust-5}

1. [注册](https://dev.adjust.com/en/sdk/android/features/attribution/) `OnAttributionChangedListener`.
2. 设置归因数据发送（`AppMetrica.reportExternalAttribution` 方法），在AppMetrica SDK 中使用来自 `OnAttributionChangedListener` 的数据。

{% list tabs group=instructions %}

- Kotlin

  ```kotlin translate=no
  val config = AdjustConfig(context, adjustToken, adjustEnvironment)

  config.setOnAttributionChangedListener { attribution ->
      AppMetrica.reportExternalAttribution(ExternalAttributions.adjust(attribution))
  }

  Adjust.initSdk(config)
  ```

- Java

  ```java translate=no
  AdjustConfig config = new AdjustConfig(context, adjustToken, adjustEnvironment);

  config.setOnAttributionChangedListener(attribution -> {
      // ...
      AppMetrica.reportExternalAttribution(ExternalAttributions.adjust(attribution));
      // ...
  });

  Adjust.initSdk(config);
  ```

{% endlist %}

## Kochava {#kochava}

1. [通过调用](https://support.kochava.com/sdk-integration/android-sdk-integration/android-using-the-sdk/) `Tracker#retrieveInstallAttribution()`发送异步归因请求。
2. 设置归因数据发送（`AppMetrica.reportExternalAttribution` 方法），在AppMetrica SDK 中使用来自 `RetrievedInstallAttributionListener` 的数据。

{% list tabs group=instructions %}

- Kotlin

  ```kotlin translate=no
  Tracker.getInstance().retrieveInstallAttribution { installAttribution ->
      AppMetrica.reportExternalAttribution(ExternalAttributions.kochava(installAttribution.toJson()))
  }
  ```

- Java

  ```java translate=no
  Tracker.getInstance().retrieveInstallAttribution(installAttribution ->        
      AppMetrica.reportExternalAttribution(ExternalAttributions.kochava(installAttribution.toJson()))
  );
  ```

{% endlist %}

## Tenjin {#tenjin}

1. 通过调用 `TenjinSDK#getAttributionInfo` 发起异步归因请求。
2. 设置归因数据发送（`AppMetrica.reportExternalAttribution` 方法），在AppMetrica SDK 中使用来自 `AttributionInfoCallback` 的数据。

{% list tabs group=instructions %}

- Kotlin

  ```kotlin translate=no
  val tenjinSdk = TenjinSDK.getInstance(context, tenjinToken)
  tenjinSdk.connect()

  tenjinSdk.getAttributionInfo { attribution ->
      // ...
      AppMetrica.reportExternalAttribution(ExternalAttributions.tenjin(attribution))
      // ...
  }
  ```

- Java

  ```java translate=no
  TenjinSDK tenjinSDK = TenjinSDK.getInstance(context, tenjinToken);
  tenjinSDK.connect();

  tenjinSDK.getAttributionInfo(attribution ->
      // ...
      AppMetrica.reportExternalAttribution(ExternalAttributions.tenjin(attribution))
      // ...
  ).
  ```

{% endlist %}

## Airbridge {#airbridge}

### Version 2.*.* {#airbridge-2}

1. [注册](https://help.airbridge.io/en/developers/android-sdk#attribution-result-callback-setup) `OnAttributionResultReceiveListener`.
2. 设置归因数据发送（`AppMetrica.reportExternalAttribution` 方法），在AppMetrica SDK 中使用来自 `OnAttributionResultReceiveListener` 的数据。

{% list tabs group=instructions %}

- Kotlin

  ```kotlin translate=no
  val config = AirbridgeConfig.Builder(airbridgeAppName, airbridgeSdkAppToken)
      .setOnAttributionResultReceiveListener { map ->
        // ...
        AppMetrica.reportExternalAttribution(ExternalAttributions.airbridge(map))
        // ...
    }
    .build()

  Airbridge.init(context, config)
  ```

- Java

  ```java translate=no
  AirbridgeConfig config = new AirbridgeConfig.Builder(airbridgeAppName, airbridgeSdkAppToken)
      .setOnAttributionResultReceiveListener(map -> {
        // ...
        AppMetrica.reportExternalAttribution(ExternalAttributions.airbridge(map));
        // ...
    })
    .build();

  Airbridge.init(application, config);
  ```

{% endlist %}

### Version 4.*.* {#airbridge-4}

1. [注册](https://help.airbridge.io/en/developers/android-sdk#attribution-result-callback-setup) `OnAttributionResultReceiveListener`.
2. 设置归因数据发送（`AppMetrica.reportExternalAttribution` 方法），在AppMetrica SDK 中使用来自 `OnAttributionResultReceiveListener` 的数据。

{% list tabs group=instructions %}

- Kotlin

  ```kotlin translate=no
  val config = AirbridgeOptionBuilder(airbridgeAppName, airbridgeSdkAppToken)
      .setOnAttributionReceived { map ->
          // ...
          AppMetrica.reportExternalAttribution(ExternalAttributions.airbridge(map))
          // ...
      }
      .build()
  Airbridge.initializeSDK(application, config)
  ```

- Java

  ```java translate=no
  AirbridgeConfig config = new AirbridgeOptionBuilder(airbridgeAppName, airbridgeSdkAppToken)
      .setOnAttributionReceived(map -> {
          // ...
          AppMetrica.reportExternalAttribution(ExternalAttributions.airbridge(map));
          // ...
      })
      .build();

  Airbridge.initializeSDK(application, config);
  ```

{% endlist %}

## Singular {#singular}

1. Register `SingularDeviceAttributionHandler`.
2. 设置通过 `AppMetrica.reportExternalAttribution` 方法从 AppMetrica SDK 的 `SingularDeviceAttributionHandler` 发送归因数据。

{% list tabs group=instructions %}

- Kotlin

  ```kotlin translate=no
  val config = SingularConfig(SINGULAR_SDK_KEY, SINGULAR_SDK_SECRET)
      .withSingularDeviceAttribution { map ->
        // ...
        AppMetrica.reportExternalAttribution(ExternalAttributions.singular(map))
        // ...
      }

  Singular.init(context, config)
  ```

- Java

  ```java translate=no
  SingularConfig singularConfig = new SingularConfig(SINGULAR_SDK_KEY, SINGULAR_SDK_SECRET)
      .withSingularDeviceAttribution(map -> {
          // ...
          AppMetrica.reportExternalAttribution(ExternalAttributions.singular(map));
          // ...
      });

  Singular.init(context, singularConfig);
  ```

{% 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 -->
