Данные о конверсиях
В этом руководстве вы узнаете, как получить данные о конверсиях с помощью SDK для iOS, а также ознакомитесь с примерами использования.
Прежде чем начать
Для получения данных о конверсиях необходимо интегрировать SDK.
Получение данные о конверсиях через SDK для iOS
#import "AppDelegate.h"
#import <AppsFlyerLib/AppsFlyerLib.h>
@interface AppDelegate ()
@end
@implementation AppDelegate
// ...
-(void)onConversionDataSuccess:(NSDictionary*) installData {
// Invoked when conversion data resolution succeeds
}
-(void)onConversionDataFail:(NSError *) error {
// Invoked when conversion data resolution fails
NSLog(@"%@",error);
}
// ...
@end
import UIKit
import AppsFlyerLib
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
// ..
}
extension AppDelegate: AppsFlyerLibDelegate {
func onConversionDataSuccess(_ installData: [AnyHashable: Any]) {
// Invoked when conversion data resolution succeeds
}
func onConversionDataFail(_ error: Error!) {
// Invoked when conversion data resolution fails
}
}
onConversionDataSuccess
onConversionDataSuccess
реализуется в AppsFlyerLibDelegate
.
Метод onConversionDataSuccess
вызывается, когда:
- Пользователь открыл приложение.
- Пользователь перевел приложение в фоновый режим.
При вызове onConversionDataSuccess
возвращает NSDictionary
(называется installData
в данном примере), который содержит данные атрибуции для этой установки. installData
кешируется при первом вызове onConversionDataSuccess
и будут идентичны при последующих вызовах.
onConversionDataFail
onConversionDataFail
реализуется в AppsFlyerLibDelegate
.
Если по какой-либо причине SDK не может получить данные о конверсиях, вызывается onConversionDataFail
is invoked.
Доступ к данным атрибуции
Тип конверсии можно узнать, проверив значение af_status
в полезной нагрузке onConversionDataSuccess
. Значение может быть таким:
Organic
Non-organic
Пример
Пример реализации:
#import "AppDelegate.h"
#import <AppsFlyerLib/AppsFlyerLib.h>
#import <UserNotifications/UserNotifications.h>
@interface AppDelegate ()
@end
@implementation AppDelegate
// ...
-(void)onConversionDataSuccess:(NSDictionary*) installData {
// Business logic for Non-organic install scenario is invoked
id status = [installData objectForKey:@"af_status"];
if([status isEqualToString:@"Non-organic"]) {
id sourceID = [installData objectForKey:@"media_source"];
id campaign = [installData objectForKey:@"campaign"];
NSLog(@"This is a Non-organic install. Media source: %@ Campaign: %@",sourceID,campaign);
}
else if([status isEqualToString:@"Organic"]) {
// Business logic for Organic install scenario is invoked
NSLog(@"This is an Organic install.");
}
}
-(void)onConversionDataFail:(NSError *) error {
NSLog(@"%@",error);
}
// ...
@end
import UIKit
import AppsFlyerLib
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, AppsFlyerLibDelegate {
// ...
}
extension AppDelegate: AppsFlyerLibDelegate {
func onConversionDataSuccess(_ installData: [AnyHashable: Any]) {
if let status = installData["af_status"] as? String {
if (status == "Non-organic") {
// Business logic for Non-organic install scenario is invoked
if let sourceID = installData["media_source"],
let campaign = installData["campaign"] {
print("This is a Non-organic install. Media source: \(sourceID) Campaign: \(campaign)")
}
}
else {
// Business logic for organic install scenario is invoked
}
}
}
func onConversionDataFail(_ error: Error!) {
// Logic for when conversion data resolution fails
if let err = error{
print(err)
}
}
}
Отложенный диплинкинг (устаревший метод)
Когда приложение открывается с помощью отложенного диплинкинга, полезная нагрузка onConversionDataSuccess
возвращает данные диплинкинга, а также данные атрибуции.
- Рекомендуется реализовать диплинкинг с помощью технологии унифицированного диплинкинга (Unified Deep Linking, UDL)
- Для справки приводим устаревшее руководство по диплинкингу для iOS, в котором используется
onConversionDataSuccess
.
Изменения сохранены 4 месяца назад