컨버전 데이터
이 가이드에서는 사용 예제뿐만 아니라 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
onConversionDataSuccess
는 AppsFlyerLibDelegate
에서 구현됩니다.
여기서 onConversionDataSuccess
메서드는 다음 경우 호출됩니다:
- 사용자가 앱을 여는 경우
- 사용자가 앱을 휴대폰 화면(foreground)으로 이동하는 경우
호출될 때, 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
의 페이로드는 딥링킹 데이터와 함께 어트리뷰션 데이터를 반환합니다.
- 권장되는 모범 활용 사례는 통합된 딥링킹(UDL)으로 딥링크를 구현하는 것입니다.
- 기존 고객 및 참조 문서인 경우, 다음 메서드를 사용하는 레거시 iOS 딥링킹 가이드를 참조하세요:
onConversionDataSuccess
.
최신 데이터 6개월 전