Импорт атрибуций на 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. Подробнее о методах отслеживания атрибуции в документации Adjust.
  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];
    }
};

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

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