Импорт атрибуций на iOS

Импорт атрибуций доступен с версии SDK AppMetrica iOS 5.2.0.

Чтобы настроить импорт, вызовите метод получения атрибуции на клиенте, далее вызовите метод отправки атрибуции reportExternalAttribution класса AppMetrica / AMAAppMetrica в SDK АppMetrica.

AppsFlyer

Чтобы интегрировать AppsFlyer для атрибуции в свой проект, убедитесь, что для проектов SwiftUI добавлена поддержка AppDelegate.

  1. Инициализируйте AppsFlyer обычным способом.
  2. Используйте метод onConversionDataSuccess для получения атрибуции.
  3. Настройте отправку атрибуции (метод reportExternalAttribution) в AppMetrica SDK.
import AppMetricaCore
import AppsFlyerLib

extension AppDelegate: AppsFlyerLibDelegate {
    func onConversionDataSuccess(_ installData: [AnyHashable: Any]) {
        AppMetrica.reportExternalAttribution(installData, from: .appsflyer)
    }
}
#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

Adjust

Чтобы интегрировать Adjust для атрибуции в свой проект, убедитесь, что для проектов SwiftUI добавлена поддержка AppDelegate.

  1. Инициализируйте Adjust обычным способом.
  2. Adjust использует объект ADJAttribution для обработки атрибуции. Преобразуйте его в Dictionary с помощью метода dictionary() и передайте в AppMetrica.
  3. Настройте отправку атрибуции (метод reportExternalAttribution) в AppMetrica SDK.
import AppMetricaCore
import Adjust

extension AppDelegate: AdjustDelegate {
    func adjustAttributionChanged(_ attribution: ADJAttribution?) {
        if let attribution = attribution?.dictionary() {
            AppMetrica.reportExternalAttribution(attribution, from: .adjust)
        }
    }
}
#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

Kochava

Для Kochava используйте его метод поиска атрибуции в рамках обратного вызова, вызывая свойство rawDictionary для результата, полученного из метода attribution.retrieveResult синглтона.

  1. Инициализируйте Kochava обычным способом.
  2. Kochava имеет свой механизм получения атрибуции через callback. Вызовите свойство rawDictionary в result из метода attribution.retrieveResult. Передайте полученный словарь в AppMetrica.
  3. Настройте отправку атрибуции (метод reportExternalAttribution) в AppMetrica SDK.
import AppMetricaCore
import KochavaNetworking
import KochavaMeasurement
Measurement.shared.attribution.retrieveResult { result in
    if let attribution = result.rawDictionary {
        AppMetrica.reportExternalAttribution(attribution, from: .kochava)
    }
}

#import <AppMetricaCore/AppMetricaCore.h>
@import KochavaNetworking;
@import KochavaMeasurement;
[KVAMeasurement.shared.attribution retrieveResultWithClosureDidComplete:^(KVAMeasurement_Attribution_Result * _Nonnull result) {
    NSDictionary *attributionDictionary = result.rawDictionary;
    if (attributionDictionary) {
        [AMAAppMetrica reportExternalAttribution:attributionDictionary
                                          source:kAMAAttributionSourceKochava
                                       onFailure:nil];
    }
}];

Tenjin

  1. Инициализируйте Tenjin обычным способом.
  2. Получите экземпляр TenjinSDK с вашим ключом API, далее вызовите getAttributionInfo(_:).
  3. Настройте отправку атрибуции (метод reportExternalAttribution) в AppMetrica SDK.
import AppMetricaCore
import TenjinSDK
TenjinSDK.getInstance("<SDK_KEY>").getAttributionInfo { (attribution: [AnyHashable : Any]?, error: Error?) in
    if let attribution = attribution {
        AppMetrica.reportExternalAttribution(attribution, from: .tenjin)
    }
}
#import <AppMetricaCore/AppMetricaCore.h>
#import <TenjinSDK/TenjinSDK.h>
[[TenjinSDK getInstance:@"<SDK_KEY>"] getAttributionInfo:^(NSDictionary *attribution, NSError *error) {
    if (attribution) {
        [AMAAppMetrica reportExternalAttribution:attribution
                                          source:kAMAAttributionSourceTenjin
                                       onFailure:nil];
    }
}];

Airbridge

  1. Инициализируйте Airbridge обычным способом.
  2. Задайте свойство attributionCallback для объекта ABSetting, полученного из AirBridge.setting(). В качестве параметра передайте словарь атрибуции.
  3. Настройте отправку атрибуции (метод reportExternalAttribution) в AppMetrica SDK.
import AppMetricaCore
import AirBridge
AirBridge.setting().attributionCallback = { (attribution: [String : String]) in
    AppMetrica.reportExternalAttribution(attribution, from: .airbridge)
}
#import <AppMetricaCore/AppMetricaCore.h>
#import <AirBridge/AirBridge.h>
[AirBridge.setting setAttributionCallback:^(NSDictionary<NSString *,NSString *> * _Nonnull attribution) {
    [AMAAppMetrica reportExternalAttribution:attribution
                                      source:kAMAAttributionSourceAirbridge
                                   onFailure:nil];
}];

Singular

  1. Инициализируйте Singular обычным способом.
  2. Инициализируйте SingularConfig с вашим ключом API и секретом.
  3. Назначьте callback deviceAttributionCallback для обработки данных атрибуции.
  4. Настройте отправку атрибуции (метод reportExternalAttribution) в AppMetrica SDK.
import AppMetricaCore
import Singular
if let singularConfig = SingularConfig(apiKey: "API_KEY", andSecret: "SECRET") {
    singularConfig.deviceAttributionCallback = { (attribution: [AnyHashable : Any]?) in
        if let attribution = attribution {
            AppMetrica.reportExternalAttribution(attribution, from: .singular)
        }
    }
}
#import <AppMetricaCore/AppMetricaCore.h>
#import <Singular/Singular.h>
SingularConfig *singularConfig = [[SingularConfig alloc] initWithApiKey:@"API_KEY" andSecret:@"SECRET"];
singularConfig.deviceAttributionCallback = ^(NSDictionary *attribution) {
    if (attribution) {
        [AMAAppMetrica reportExternalAttribution:attribution
                                          source:kAMAAttributionSourceSingular
                                       onFailure:nil];
    }
};

Узнать больше

Если вы не нашли ответ на свой вопрос, то вы можете задать его через форму обратной связи. Пожалуйста, опишите возникшую проблему как можно подробнее. Если возможно, приложите скриншот.

Написать в службу поддержки