컨버전 데이터

이 가이드에서는 사용 예제뿐만 아니라 iOS SDK를 사용하여 전환 데이터를 가져오는 방법에 대해 설명합니다.

시작하기 전에

전환 데이터를 가져오려면 먼저 SDK를 연동해야 합니다.

iOS SDK에서 전환 데이터 가져오기

#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

onConversionDataSuccessAppsFlyerLibDelegate에서 구현됩니다.
여기서 onConversionDataSuccess 메서드는 다음 경우 호출됩니다:

  • 사용자가 앱을 여는 경우
  • 사용자가 앱을 휴대폰 화면(foreground)으로 이동하는 경우

호출될 때, onConversionDataSuccessNSDictionary 를 반환합니다(이 예시에서는 installData 예시에서) 해당 인스톨을 위한 어트리뷰션 데이터 포함. installData 은 다음이 처음 호출될 때 캐시됩니다: onConversionDataSuccess 가 처음으로 호출될 때 캐시되며 연속 호출과 동일합니다.

onConversionDataFail

onConversionDataFailAppsFlyerLibDelegate.
어떤 이유로 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)
        }
    }
}

Github 링크

디퍼드 딥링킹(레거시 메서드)

디퍼드 딥링킹을 통해 앱이 열리면, onConversionDataSuccess의 페이로드는 딥링킹 데이터와 함께 어트리뷰션 데이터를 반환합니다.