Импорт атрибуций на iOS
Примечание
Импорт атрибуций доступен с версии SDK AppMetrica iOS 5.2.0.
Чтобы настроить импорт, вызовите метод получения атрибуции на клиенте, далее вызовите метод отправки атрибуции reportExternalAttribution
класса AppMetrica / AMAAppMetrica в SDK АppMetrica.
AppsFlyer
Чтобы интегрировать AppsFlyer для атрибуции в свой проект, убедитесь, что для проектов SwiftUI добавлена поддержка AppDelegate.
- Инициализируйте AppsFlyer обычным способом.
- Используйте метод
onConversionDataSuccess
для получения атрибуции. - Настройте отправку атрибуции (метод
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.
- Инициализируйте Adjust обычным способом.
- Adjust использует объект ADJAttribution для обработки атрибуции. Преобразуйте его в
Dictionary
с помощью методаdictionary()
и передайте в AppMetrica. - Настройте отправку атрибуции (метод
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
синглтона.
- Инициализируйте Kochava обычным способом.
- Kochava имеет свой механизм получения атрибуции через callback. Вызовите свойство
rawDictionary
вresult
из методаattribution.retrieveResult
. Передайте полученный словарь в AppMetrica. - Настройте отправку атрибуции (метод
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
- Инициализируйте Tenjin обычным способом.
- Получите экземпляр TenjinSDK с вашим ключом API, далее вызовите
getAttributionInfo(_:)
. - Настройте отправку атрибуции (метод
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
- Инициализируйте Airbridge обычным способом.
- Задайте свойство
attributionCallback
для объектаABSetting
, полученного изAirBridge.setting()
. В качестве параметра передайте словарь атрибуции. - Настройте отправку атрибуции (метод
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
- Инициализируйте Singular обычным способом.
- Инициализируйте
SingularConfig
с вашим ключом API и секретом. - Назначьте callback
deviceAttributionCallback
для обработки данных атрибуции. - Настройте отправку атрибуции (метод
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];
}
};
Если вы не нашли ответ на свой вопрос, то вы можете задать его через форму обратной связи. Пожалуйста, опишите возникшую проблему как можно подробнее. Если возможно, приложите скриншот.