SDK v5는 오픈 베타 상태입니다. 모든 기능은 변경될 수 있습니다.
시작에 앞서
SDK v5로 업데이트하기 전에 다음을 수행하시기 바랍니다.
- SDK v5는 SDK Signature(SDK 서명) 인증을 기본적으로 지원합니다. 현재 SDK 서명 라이브러리를 사용하는 경우 먼저 이것을 삭제해야 합니다.
- 앱이 다음보다 낮은 버전의 API를 대상으로 하는 경우 SDK v5를 사용하려면 앱을 업데이트해야 합니다.
- iOS: 12.0
- tvOS: 12.0
베타 SDK 설치
SDK v5는 현재 Cocoapods에서만 이용 가능합니다.
SDK v5를 사용하려면 XCode 프로젝트에서 디펜던시로 추가해야 합니다. 다음을 수행하시기 바랍니다.
-
현재
Podfile
에 있는 이전 버전의 SDK를 모두 제거합니다. -
Podfile
에 다음 줄을 추가합니다.Podfile pod 'Adjust', :git => 'https://github.com/adjust/ios_sdk.git', :branch => 'v5' -
pod install
을 실행하여 디펜던시를 설치합니다.
변경 사항
SDK v5는 주요 버전 업데이트입니다. 이는 코드 업데이트가 필요한 중대한 변경 사항이 있다는 것을 의미합니다.
v5 SDK를 설치한 후에는 새로운 API를 사용할 수 있도록 기존의 Adjust 코드를 업데이트해야 합니다.
초기화 메서드
SDK v4에서는 ADJConfig
객체를 구성하고 이를 [Adjust appDidLaunch]
메서드에 전달하는 방식으로 SDK를 초기화합니다.
let yourAppToken = "{YourAppToken}"let environment = ADJEnvironmentSandbox as? Stringlet adjustConfig = ADJConfig( appToken: yourAppToken, environment: environment)
Adjust.appDidLaunch(adjustConfig)
#import "Adjust.h"
NSString *yourAppToken = @"{YourAppToken}";NSString *environment = ADJEnvironmentSandbox;*adjustConfig = [ADJConfig configWithAppToken:yourAppToken; environment:environment];
[Adjust appDidLaunch:adjustConfig];
SDK v5에서는 이 메서드의 이름이 [Adjust initSdk]
로 변경되었습니다.
let yourAppToken = "{YourAppToken}"let environment = ADJEnvironmentSandbox as? Stringlet adjustConfig = ADJConfig( appToken: yourAppToken, environment: environment)
Adjust.initSdk(adjustConfig)
#import "Adjust.h"
NSString *yourAppToken = @"{YourAppToken}";NSString *environment = ADJEnvironmentSandbox;ADJConfig *adjustConfig = [[ADJConfig alloc] initWithAppToken:yourAppToken andEnvironment:environment];
[Adjust initSdk:adjustConfig];
구성
이 섹션에서는 SDK 구성의 변경 사항을 다룹니다.
SDK 비활성화 및 활성화
SDK v4에서는 BOOL
값과 함께 [Adjust setEnabled]
를 호출하여 SDK를 활성화 및 비활성화할 수 있습니다.
- SDK를 비활성화하려면
[Adjust setEnabled:NO]
를 호출합니다. - SDK를 활성화하려면
[Adjust setEnabled:YES]
를 호출합니다.
Adjust.setEnabled(false) //disable SDKAdjust.setEnabled(true) //enable SDK
[Adjust setEnabled:NO]; // disable SDK[Adjust setEnabled:YES]; // enable SDK
SDK v5에서는 명확성을 위해 이 기능이 별도의 명령으로 분리되었습니다.
- SDK를 비활성화하려면
[Adjust disable]
를 호출합니다. - SDK를 활성화하려면
[Adjust enable]
를 호출합니다.
Adjust.disable() //disable SDKAdjust.enable() //enable SDK
[Adjust disable]; // disable SDK[Adjust enable]; // enable SDK
백그라운드에서 정보 전송
SDK v4에서는 true
인수와 함께 [ADJConfig setSendInBackground]
메서드를 호출하여 앱이 백그라운드에서 실행 중일 때 SDK가 Adjust에 정보를 전달하도록 설정할 수 있습니다.
adjustConfig.setSendInBackground(true)
[adjustConfig setSendInBackground:YES];
SDK v5에서는 앱이 백그라운드에서 실행 중일 때 SDK가 Adjust에 정보를 전송할 수 있게 하려면 인수 없이 [ADJConfig enableSendingInBackground]
메서드를 호출해야 합니다.
adjustConfig.enableSendingInBackground()
[adjustConfig enableSendingInBackground];
AdServices 정보 읽기 비활성화
SDK v4에서는 false
인수와 함께 [ADJConfig setAllowAdServicesInfoReading]
메서드를 호출하여 Adjust SDK가 AdServices 정보를 읽는 것을 방지할 수 있습니다.
adjustConfig.setAllowAdServicesInfoReading(false)
[adjustConfig setAllowAdServicesInfoReading:NO];
SDK v5에서는 Adjust SDK가 AdServices 정보를 읽는 것을 방지하려면 인수 없이 disableAdServices
메서드를 호출해야 합니다.
adjustConfig.disableAdServices()
[adjustConfig disableAdServices];
IDFA 읽기 비활성화
SDK v4에서는 false
인수와 함께 [ADJConfig setAllowIdfaReading]
메서드를 호출하여 Adjust SDK가 기기의 IDFA를 읽는 것을 방지할 수 있습니다.
adjustConfig.setAllowIdfaReading(false)
[adjustConfig setAllowIdfaReading:NO];
SDK v5에서는 Adjust SDK가 기기의 IDFA를 읽는 것을 방지하려면 인수 없이 disableIdfaReading
메서드를 호출해야 합니다.
adjustConfig.disableIdfaReading()
[adjustConfig disableIdfaReading];
어트리뷰션에서 비용 데이터 활성화
SDK v4에서는 true
인수와 함께 [ADJConfig setNeedsCost]
메서드를 호출하여 기기의 어트리뷰션 정보에서 비용 데이터를 활성화할 수 있습니다.
adjustConfig.setNeedsCost(true)
[adjustConfig setNeedsCost:YES];
SDK v5에서는 인수 없이 [ADJConfig enableCostDataInAttribution]
메서드를 호출해야 합니다.
adjustConfig.enableCostDataInAttribution()
[adjustConfig enableCostDataInAttribution];
LinkMe 활성화
SDK v4에서는 true
인수와 함께 [ADJConfig setLinkMeEnabled]
메서드를 호출하여 Adjust LinkMe를 활성화할 수 있습니다.
adjustConfig.setLinkMeEnabled(true)
[adjustConfig setLinkMeEnabled:YES];
SDK v5에서는 인수 없이 [ADJConfig enableLinkMe]
메서드를 호출해야 합니다.
adjustConfig.enableLinkMe()
[adjustConfig enableLinkMe];
기기 ID를 한 번만 읽기
SDK v4에서는 true
인수와 함께 [ADJConfig setReadDeviceInfoOnceEnabled]
메서드를 호출하여 SDK가 기기 식별자를 앱 시작 시 한 번만 읽도록 설정할 수 있습니다.
adjustConfig.setReadDeviceInfoOnceEnabled(true)
[adjustConfig setReadDeviceInfoOnceEnabled:YES];
SDK v5에서는 인수 없이 [ADJConfig enableDeviceIdsReadingOnce]
메서드를 호출해야 합니다.
adjustConfig.enableDeviceIdsReadingOnce()
[adjustConfig enableDeviceIdsReadingOnce];
오프라인 모드
SDK v4에서는 BOOL
인수와 함께 [Adjust setOfflineMode]
를 호출하여 SDK의 오프라인 모드를 활성화 및 비활성화할 수 있습니다.
Adjust.setOfflineMode(true) // put the SDK in offline modeAdjust.setOfflineMode(false) // put the SDK back in online mode
[Adjust setOfflineMode:YES]; // put the SDK in offline mode[Adjust setOfflineMode:NO]; // put the SDK back in online mode
SDK v5에서는 명확성을 위해 이 기능이 별도의 명령으로 분리되었습니다.
- SDK를 오프라인 모드로 설정하려면
[Adjust switchToOfflineMode]
를 호출합니다. - SDK를 온라인 모드로 전환하려면
[Adjust switchBackToOnlineMode]
를 호출합니다.
Adjust.switchToOfflineMode() // put the SDK in offline modeAdjust.switchBackToOnlineMode() // put the SDK back in online mode
[Adjust switchToOfflineMode]; // put the SDK in offline mode[Adjust switchBackToOnlineMode]; // put the SDK back in online mode
푸시 토큰
SDK v4에서는 [Adjust setDeviceToken]
메서드를 사용하여 푸시 토큰을 설정할 수 있습니다.
func application(_ app: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) { Adjust.setDeviceToken(deviceToken)}
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { [Adjust setDeviceToken:deviceToken];}
이 메서드는 SDK v5에서 이름이 [Adjust setPushToken]
으로 변경되었습니다.
func application(_ app: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken pushToken: Data) { Adjust.setPushToken(pushToken)}
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)pushToken { [Adjust setPushToken:pushToken];}
SDK v4에는 NSString
값을 사용하는 setPushToken
이라는 이름의 메서드가 포함되어 있습니다. SDK v5에서 setPushToken
메서드는 NSData
값을 허용합니다.
이벤트 버퍼링
SDK v4는 이벤트 버퍼링을 지원합니다. 이 기능은 요청 이벤트, 광고 매출, 푸시 토큰 및 기타 정보를 로컬 버퍼에 저장하여 나중에 전송할 수 있게 해줍니다.
Adjust.setEventBufferingEnabled(true)
[adjustConfig setEventBufferingEnabled:YES];
이 설정은 SDK v5에서 제거되었습니다.
사용자 지정 사용자 에이전트 문자열
SDK v4는 사용자 에이전트 문자열과 함께 [AdjustConfig setUserAgent]
를 호출하여 사용자 지정 사용자 에이전트를 설정하는 기능을 지원합니다.
adjustConfig.setUserAgent("user_agent_value")
[adjustConfig setUserAgent:@"user_agent_value"];
이 설정은 SDK v5에서 제거되었습니다.
알려진 기기 여부 설정
SDK v4에서는 [AdjustConfig setIsDeviceKnown];
메서드를 호출하여 알려진 기기인지 여부를 수동으로 SDK에 알릴 수 있습니다.
adjustConfig.setIsDeviceKnown(true)
[adjustConfig setIsDeviceKnown:YES];
이 설정은 SDK v5에서 제거되었습니다.
SDK 작동 시작 지연
SDK v4는 [AdjustConfig setDelayStart];
를 호출하여 SDK 작동 시작을 최대 10초 간 지연하는 기능을 지원합니다.
adjustConfig.setDelayStart(10)
[adjustConfig setDelayStart:10];
이 설정은 SDK v5에서 제거되었습니다.
기능 기록
이 섹션에서는 Adjust로 정보를 전송하는 기능의 변경 사항을 다룹니다.
세션 콜백 파라미터
SDK v4에서는 키-값 쌍을 [Adjust addSessionCallbackParameter]
메서드에 전달하여 세션 파라미터를 추가하고, [Adjust removeSessionCallbackParameter]
메서드를 사용하여 개별 파라미터를 제거할 수 있습니다.
Adjust.addSessionCallbackParameter("foo", value: "bar")Adjust.removeSessionCallbackParameter("foo")Adjust.resetSessionCallbackParameters
[Adjust addSessionCallbackParameter:@"foo" value:@"bar"];[Adjust removeSessionCallbackParameter:@"foo"];[Adjust resetSessionCallbackParameters];
SDK v5에서는 세션 파라미터가 글로벌 파라미터로 이름이 변경되었습니다. 키와 값을 위치 인수로 할당하는 대신 SDK v5는 forKey
인스턴스 메서드를 사용하여 값을 키에 할당합니다.
Adjust.addGlobalCallbackParameter("bar", forKey: "foo")Adjust.removeGlobalCallbackParameter(forKey: "foo")Adjust.removeGlobalCallbackParameters()
[Adjust addGlobalCallbackParameter:@"bar" forKey:@"foo"];[Adjust removeGlobalCallbackParameterForKey:@"foo"];[Adjust removeGlobalCallbackParameters];
세션 파트너 파라미터
SDK v4에서는 키-값 쌍을 [Adjust addSessionPartnerParameter]
메서드에 전달하여 파트너 파라미터를 추가하고, [Adjust removeSessionPartnerParameter]
메서드를 사용하여 개별 파라미터를 제거할 수 있습니다.
Adjust.addSessionPartnerParameter("foo", value: "bar")Adjust.removeSessionPartnerParameter("foo")Adjust.resetSessionPartnerParameters()
[Adjust addSessionPartnerParameter:@"foo" value:@"bar"];[Adjust removeSessionPartnerParameter:@"foo"];[Adjust resetSessionPartnerParameters];
SDK v5에서는 세션 파트너 파라미터가 글로벌 파트너 파라미터로 이름이 변경되었습니다. 키와 값을 위치 인수로 할당하는 대신 SDK v5는 forKey
인스턴스 메서드를 사용하여 값을 키에 할당합니다.
Adjust.addGlobalPartnerParameter("bar", forKey: "foo")Adjust.removeGlobalPartnerParameter(forKey: "foo")Adjust.removeGlobalPartnerParameters()
[Adjust addGlobalPartnerParameter:@"bar" forKey:@"foo"];[Adjust removeGlobalPartnerParameterForKey:@"foo"];[Adjust removeGlobalPartnerParameters];
구독 정보 전송
SDK v4에서는 ADJSubscription
클래스를 사용하여 Adjust에 전송할 구독 정보의 페이로드를 생성할 수 있습니다.
let subscription = ADJSubscription( price: price, currency: currency, transactionId: transactionId, andReceipt: receipt)
ADJSubscription *subscription = [[ADJSubscription alloc] initWithPrice:price currency:currency transactionId:transactionId andReceipt:receipt];
이 클래스는 명확성을 위해 SDK v5에서 이름이 ADJAppStoreSubscription
으로 변경되었습니다.
let subscription = ADJAppStoreSubscription( price: price, currency: currency, transactionId: transactionId, andReceipt: receipt)
ADJAppStoreSubscription *subscription = [[ADJAppStoreSubscription alloc] initWithPrice:price currency:currency transactionId:transactionId andReceipt:receipt];
이벤트 중복 제거
SDK v4에서는 이벤트 중복 제거가 이벤트 transaction ID
와 결합되어 있으며 최대 10개의 고유 ID로 제한됩니다.
let event = ADJEvent(eventToken: "eventToken")event.setTransactionId("deduplication_id")Adjust.trackEvent(event)
ADJEvent *event = [ADJEvent eventWithEventToken:@"event_token"];[event setTransactionId:@"deduplication_id"];[Adjust trackEvent:event];
SDK v5에서는 이 기능이 transaction ID
와 분리되었습니다. 이벤트 중복 제거를 위해 deduplicationId
라는 새로운 ID 필드가 추가되었습니다. 사용자는 중복 이벤트를 식별하기 위해 목록에 추가할 수 있는 deduplicationId
수의 사용자 지정 한도를 설정할 수 있습니다. 기본 설정에 따라 한도는 10 으로 설정되어 있습니다.
let yourAppToken = "{YourAppToken}"let environment = ADJEnvironmentSandbox as? Stringlet adjustConfig = ADJConfig( appToken: yourAppToken, environment: environment)
adjustConfig.setEventDeduplicationIdsMaxSize(20)Adjust.initSdk(adjustConfig)
let event = ADJEvent(eventToken: "event_token")event.setDeduplicationId("deduplication_id")Adjust.trackEvent(event)
NSString *yourAppToken = @"{YourAppToken}";NSString *environment = ADJEnvironmentSandbox;ADJConfig *adjustConfig = [[ADJConfig alloc] initWithAppToken:yourAppToken andEnvironment:environment];
[adjustConfig setEventDeduplicationIdsMaxSize:20];[Adjust initSdk:adjustConfig];
ADJEvent *event = [[ADJEvent alloc] initWithEventToken:kEventToken3];[event setDeduplicationId:@"deduplication_id"];[Adjust trackEvent:event];
AdjustAttribution 클래스
SDK v4에서는 AdjustAttribution
호출에 adid
라는 속성이 있습니다. SDK v5에서는 adid
속성이 AdjustAttribution
클래스에서 제거되었습니다. [Adjust adidWithCompletionHandler]
게터 메서드를 사용하여 기기의 ADID를 조회할 수 있습니다.
딥링킹
딥링크를 사용한 리어트리뷰션
SDK v4에서는 딥링크 정보를 [Adjust appWillOpenUrl]
메서드에 전달할 수 있습니다.
func application( _ app: UIApplication, open incomingURL: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:] ) -> Bool {
// add your code below to handle deep link // (for example, open deep link content) // incomingURL object contains the deep link
// call the below method to send deep link to Adjust's servers Adjust.appWillOpen(incomingURL)
return true}
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)incomingURL options:(NSDictionary *)options {
// add your code below to handle deep link // (for example, open deep link content) // incomingURL object contains the deep link
// call the below method to send deep link to Adjust's servers [Adjust appWillOpenUrl:incomingURL];
return YES;}
SDK v5에서는 명확성을 위해 이름이 [Adjust processDeeplink]
로 변경되었습니다.
func application( _ app: UIApplication, open incomingURL: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:] ) -> Bool {
// add your code below to handle deep link // (for example, open deep link content) // incomingURL object contains the deep link
// call the below method to send deep link to Adjust's servers Adjust.processDeeplink(incomingURL)
return true}
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)incomingURL options:(NSDictionary *)options {
// add your code below to handle deep link // (for example, open deep link content) // incomingURL object contains the deep link
// call the below method to send deep link to Adjust's servers [Adjust processDeeplink:incomingURL];
return YES;}
디퍼드 딥링크 콜백
SDK v4에서는 adjustDeepLinkResponse
메서드를 호출하여 디퍼드 딥링크 콜백을 처리할 수 있습니다.
func adjustDeeplinkResponse(_ deeplink: URL?) -> Bool { print("Deferred deep link callback called!") print(String(format: "Deferred deep link URL: %@", deeplink.absoluteString))
// Allow Adjust SDK to open received deferred deep link. // If you don't want it to open it, return false instead. return true}
- (BOOL)adjustDeeplinkResponse:(NSURL *)deeplink { NSLog(@"Deferred deep link callback called!"); NSLog(@"Deferred deep link URL: %@", [deeplink absoluteString]);
// Allow Adjust SDK to open received deferred deep link. // If you don't want it to open it, return NO; instead. return YES;}
SDK v5에서는 명확성을 위해 이 메서드의 이름이 adjustDeferredDeeplinkReceived
로 변경되었습니다. 모든 인수는 동일합니다.
func adjustDeferredDeeplinkReceived(_ deeplink: URL?) -> Bool { print("Deferred deep link callback called!") print(String(format: "Deferred deep link URL: %@", deeplink.absoluteString))
// Allow Adjust SDK to open received deferred deep link. // If you don't want it to open it, return false instead. return true}
- (BOOL)adjustDeferredDeeplinkReceived:(NSURL *)deeplink { NSLog(@"Deferred deep link callback called!"); NSLog(@"Deferred deep link URL: %@", [deeplink absoluteString]);
// Allow Adjust SDK to open received deferred deep link. // If you don't want it to open it, return NO; instead. return YES;}
프라이버시 기능
이 섹션에서는 Adjust SDK에서 프라이버시 기능의 변경 사항을 다룹니다.
COPPA 준수
SDK v4에서는 COPPA 준수가 ADJConfig
클래스를 사용하여 설정되며 SDK 초기화 중에 읽히게 됩니다. 따라서 SDK가 초기화된 후에는 해당 값을 업데이트할 수 없습니다.
adjustConfig.setCoppaCompliantEnabled(true)
[adjustConfig setCoppaCompliantEnabled:YES];
SDK v5에서는 이 메서드를 Adjust
클래스에서 이용할 수 있습니다. 따라서 COPPA 준수 활성화를 위해 [Adjust enableCoppaCompliance]
를 호출하거나 COPPA 준수 비활성화를 위해 [Adjust disableCoppaCompliance]
를 호출하여 언제든지 설정을 변경할 수 있습니다.
Adjust.enableCoppaCompliance()Adjust.disableCoppaCompliance()
[Adjust enableCoppaCompliance];[Adjust disableCoppaCompliance];
특정 소스로부터 광고 매출 전송
SDK v4에서는 광고 매출 소스가 ADJConfig
클래스의 상수로 정의됩니다. SDK v5에서는 광고 매출 소스를 문자열로 전달해야 합니다.
let adRevenue = ADJAdRevenue(source: ADJAdRevenueSourceAppLovinMAX); //v4let adRevenue = ADJAdRevenue(source: "applovin_max_sdk") //v5
ADJAdRevenue *revenue = [[ADJAdRevenue alloc] initWithSource:ADJAdRevenueSourceAppLovinMAX]; // v4ADJAdRevenue *adRevenue = [[ADJAdRevenue alloc] initWithSource:@"applovin_max_sdk"]; // v5
v4 | v5 |
---|---|
ADJAdRevenueSourceAppLovinMAX | "applovin_max_sdk" |
ADJAdRevenueSourceAdMob | "admob_sdk" |
ADJAdRevenueSourceIronSource | "ironsource_sdk" |
ADJAdRevenueSourceAdMost | "admost_sdk" |
ADJAdRevenueSourceUnity | "unity_sdk" |
ADJAdRevenueSourceHeliumChartboost | "helium_chartboost_sdk" |
ADJAdRevenueSourceADX | "adx_sdk" |
ADJAdRevenueSourcePublisher | "publisher_sdk" |
ADJAdRevenueSourceTradplus | "tradplus_sdk" |
ADJAdRevenueSourceTopOn | "topon_sdk" |
ADJAdRevenueSourceMopub | "mopub" |
데이터 레지던시 및 URL 전략 설정
SDK v4에서는 URL 전략 및 데이터 레지던시 도메인이 ADJConfig
클래스의 상수로 정의됩니다.
[adjustConfig setUrlStrategy:ADJDataResidencyEU];
SDK v5에서는 선택한 도메인을 배열로 전달해야 합니다. 또한 다음 항목을 설정할 수 있습니다.
withSubdomains
(BOOL
): 소스가 하위 도메인을 접두사로 사용해야 하는지 여부.andDataResidency
(BOOL
): 도메인을 데이터 레지던시에 사용해야 하는지 여부.
NSArray *domain = [];[adjustConfig setUrlStrategy:domain withSubdomains:YES andDataResidency:YES];
아래 표를 보고 SDK v5에서 URL 전략을 구성하는 방법을 확인하시기 바랍니다.
v4 | v5 - 메인 및 폴백 도메인 | v5 - 하위 도메인 사용 | v5 - 데이터 레지던시 여부 |
---|---|---|---|
ADJDataResidencyEU | "eu.adjust.com" | true | true |
ADJDataResidencyTR | "tr.adjust.com" | true | true |
ADJDataResidencyUS | "us.adjust.com" | true | true |
ADJUrlStrategyChina | "adjust.world" , "adjust.com" | true | false |
ADJUrlStrategyCn | "adjust.cn" , "adjust.com" | true | false |
ADJUrlStrategyCnOnly | "adjust.cn" | true | false |
ADJUrlStrategyIndia | "adjust.net.in" , "adjust.com" | true | false |
예시
let domain = ["adjust.net.in", "adjust.com"]adjustConfig.setUrlStrategy(domain, withSubdomains: true, andDataResidency: false)
let domain = ["adjust.world", "adjust.com"]adjustConfig.setUrlStrategy(domain, withSubdomains: true, andDataResidency: false)
let domain = ["adjust.cn"]adjustConfig.setUrlStrategy(domain, withSubdomains: true, andDataResidency: false)
let domain = ["eu.adjust.com"]adjustConfig.setUrlStrategy(domain, withSubdomains: true, andDataResidency: true)
let domain = ["tr.adjust.com"]adjustConfig.setUrlStrategy(domain, withSubdomains: true, andDataResidency: true)
let domain = ["us.adjust.com"]adjustConfig.setUrlStrategy(domain, withSubdomains: true, andDataResidency: true)
NSArray *domain = [[NSArray alloc] initWithObjects:@"adjust.net.in", @"adjust.com", nil];[adjustConfig setUrlStrategy:domain withSubdomains:YES andDataResidency:NO];
NSArray *domain = [[NSArray alloc] initWithObjects:@"adjust.world", @"adjust.com", nil];[adjustConfig setUrlStrategy:domain withSubdomains:YES andDataResidency:NO];
NSArray *domain = [[NSArray alloc] initWithObjects:@"adjust.cn", nil];[adjustConfig setUrlStrategy:domain withSubdomains:YES andDataResidency:NO];
NSArray *domain = [[NSArray alloc] initWithObjects:@"eu.adjust.com", nil];[adjustConfig setUrlStrategy:domain withSubdomains:YES andDataResidency:YES];
NSArray *domain = [[NSArray alloc] initWithObjects:@"tr.adjust.com", nil];[adjustConfig setUrlStrategy:domain withSubdomains:YES andDataResidency:YES];
NSArray *domain = [[NSArray alloc] initWithObjects:@"us.adjust.com", nil];[adjustConfig setUrlStrategy:domain withSubdomains:YES andDataResidency:YES];
글로벌 서드파티 공유 비활성화
SDK v4에서는 Adjust.disableThirdPartySharing()
메서드를 호출하여 전 세계에서 서드파티와의 정보 공유를 비활성화할 수 있습니다.
Adjust.disableThirdPartySharing()
[Adjust disableThirdPartySharing];
이 기능은 SDK v5에서 제거되었습니다. SDK v5에서는 [Adjust trackThirdPartySharing]
메서드를 사용하여 서드파티 공유를 활성화 또는 비활성화합니다.
let adjustThirdPartySharing = ADJThirdPartySharing.initWithIsEnabled(false)Adjust.trackThirdPartySharing(adjustThirdPartySharing)
ADJThirdPartySharing *adjustThirdPartySharing = [[ADJThirdPartySharing alloc] initWithIsEnabled:@NO];[Adjust trackThirdPartySharing:adjustThirdPartySharing];
SKAdNetwork 및 ATT
이 섹션에서는 SDK v5의 SKAdNetwork 및 App Tracking Transparency(ATT) 기능의 변경 사항을 다룹니다.
SKAdNetwork 커뮤니케이션 비활성화
SDK v4에서는 [ADJConfig deactivateSKAdNetworkHandling]
메서드를 호출하여 SDK가 SKAdNetwork와 통신하는 것을 방지할 수 있습니다.
let yourAppToken = "{YourAppToken}"let environment = ADJEnvironmentSandbox as? Stringlet adjustConfig = ADJConfig( appToken: yourAppToken, environment: environment)
adjustConfig.deactivateSKAdNetworkHandling()
ADJConfig *adjustConfig = [[ADJConfig alloc] initWithAppToken:@"{YourAppToken}" andEnvironment:ADJEnvironmentSandbox];
[adjustConfig deactivateSKAdNetworkHandling];
SDK v5에서는 명확성을 위해 이 메서드의 이름이 [ADJConfig disableSkanAttribution]
로 변경되었습니다.
let yourAppToken = "{YourAppToken}"let environment = ADJEnvironmentSandbox as? Stringlet adjustConfig = ADJConfig( appToken: yourAppToken, environment: environment)
adjustConfig.disableSkanAttribution()
ADJConfig *adjustConfig = [[ADJConfig alloc] initWithAppToken:@"{YourAppToken}" andEnvironment:ADJEnvironmentSandbox];
[adjustConfig disableSkanAttribution];
승인 상태 변경 확인
SDK v4에서는 [Adjust checkForNewAttStatus]
메서드를 사용하여 SDK가 사용자의 ATT 상태를 읽고 해당 정보를 Adjust 서버에 전달하도록 설정할 수 있습니다.
Adjust.checkForNewAttStatus()
[Adjust checkForNewAttStatus];
이 메서드는 SDK v5에서 제거되었습니다.
전환값 업데이트 수신
SDK v4에서는 adjustConversionValueUpdated
메서드를 사용하여 SKAdNetwork 업데이트를 수신할 수 있습니다.
func adjustConversionValueUpdated(_ conversionValue: NSNumber) { print("Conversion value updated callback called!") print(String(format: "Conversion value: %@", conversionValue))}
func adjustConversionValueUpdated(_ fineValue: NSNumber, coarseValue: String, lockWindow: NSNumber) { print("Conversion value updated callback called!") print(String(format: "Conversion value: %@", fineValue)) print(String(format: "Coarse value: %@", coarseValue)) print(String(format: "Lock window: %@", lockWindow))}
- (void)adjustConversionValueUpdated:(NSNumber *)conversionValue { NSLog(@"Conversion value updated callback called!"); NSLog(@"Conversion value: %@", conversionValue);}
- (void)adjustConversionValueUpdated:(NSNumber *)fineValue coarseValue:(NSString *)coarseValue lockWindow:(NSNumber *)lockWindow { NSLog(@"Conversion value updated callback called!"); NSLog(@"Conversion value: %@", conversionValue); NSLog(@"Coarse value: %@", coarseValue); NSLog(@"Lock window: %@", lockWindow);}
SDK v5에서는 이 두 메서드가 단일 adjustSkanUpdatedWithConversionData
메서드로 교체되었으며 이 메서드는 유형이 지정되지 않은 딕셔너리를 반환합니다. 현재 지원되는 키는 다음과 같습니다.
conversion_value
: 업데이트된 전환값coarse_value
: 업데이트된 coarse 전환값lock_window
: 전환값 윈도우가 종료되기 전에 포스트백을 전송할지 여부error
: 업데이트로 반환된 모든 오류 메시지
func adjustSkanUpdated(withConversionData data: [String: String]) { print("Conversion value updated callback called!") print(String(format: "Conversion value dictionary: \n%@", data.description))}
- (void)adjustSkanUpdatedWithConversionData:(NSDictionary<NSString *, NSString *> *)data { NSLog(@"Conversion value updated callback called!"); NSLog(@"Conversion value dictionary: \n%@", data.description);}
전환값 업데이트
SDK v4에서는 updateConversionValue
메서드를 사용하여 Adjust에 업데이트된 전환값을 전송할 수 있습니다. 이 메서드는 Apple의 지원 종료된 updateConversionValue
메서드를 래핑하며 SDK v5에서는 제거되었습니다.
SDK v5에서는 다음 인수와 함께 [Adjust updateSkanConversionValue]
메서드를 사용하여 전환값을 업데이트할 수 있습니다.
conversionValue
(NSInteger
): 업데이트된 전환값coarseValue
(NSString
): 업데이트된 coarse 전환값lockWindow
(BOOL
): 전환값 윈도우가 종료되기 전에 포스트백을 전송할지 여부
Adjust.updateSkanConversionValue( 1, coarseValue: SKAdNetwork.CoarseConversionValue.low, lockWindow: false) { error in if let error { print(String(format: "An error occurred during completion: %@", error)) }}
[Adjust updateSkanConversionValue:1 coarseValue:SKAdNetworkCoarseConversionValueLow lockWindow:NO withCompletionHandler:^(NSError *_Nullable error) { NSLog(@"An error occurred during completion: %@", error);}];
App Tracking Transparency(ATT) 승인 래퍼
SDK v4에서는 [Adjust requestTrackingAuthorizationWithCompletionHandler]
메서드를 사용하여 사용자의 ATT 승인 상태 변경 사항을 처리할 수 있습니다.
Adjust.requestTrackingAuthorization() { status in switch status { case 0: // ATTrackingManagerAuthorizationStatusNotDetermined case break case 1: // ATTrackingManagerAuthorizationStatusRestricted case break case 2: // ATTrackingManagerAuthorizationStatusDenied case break case 3: // ATTrackingManagerAuthorizationStatusAuthorized case break default: break }}
[Adjust requestTrackingAuthorizationWithCompletionHandler:^(NSUInteger status) { switch (status) { case 0: // ATTrackingManagerAuthorizationStatusNotDetermined case break; case 1: // ATTrackingManagerAuthorizationStatusRestricted case break; case 2: // ATTrackingManagerAuthorizationStatusDenied case break; case 3: // ATTrackingManagerAuthorizationStatusAuthorized case break; }}];
명확성을 위해 SDK v5에서 이름이 [Adjust requestAppTrackingAuthorizationWithCompletionHandler]
으로 변경되었습니다.
Adjust.requestAppTrackingAuthorization() { status in switch status { case 0: // ATTrackingManagerAuthorizationStatusNotDetermined case break case 1: // ATTrackingManagerAuthorizationStatusRestricted case break case 2: // ATTrackingManagerAuthorizationStatusDenied case break case 3: // ATTrackingManagerAuthorizationStatusAuthorized case break default: break }}
[Adjust requestAppTrackingAuthorizationWithCompletionHandler:^(NSUInteger status) { switch (status) { case 0: // ATTrackingManagerAuthorizationStatusNotDetermined case break; case 1: // ATTrackingManagerAuthorizationStatusRestricted case break; case 2: // ATTrackingManagerAuthorizationStatusDenied case break; case 3: // ATTrackingManagerAuthorizationStatusAuthorized case break; }}];
디바이스 정보 확인
SDK v4에서는 모든 기기 정보 게터 메서드가 동기적으로 실행됩니다. SDK v5에서는 이러한 메서드가 비동기적으로 실행되도록 변경되었습니다. 비동기 프로세스가 완료되면 콜백 기능을 추가하여 해당 정보를 처리할 수 있습니다.
Adjust.adid() { adid in // add your completion handler};
Adjust.idfa() { idfa in // add your completion handler};
Adjust.idfv() { idfv in // add your completion handler};
Adjust.sdkVersion() { sdkVersion in // add your completion handler};
Adjust.isEnabled() { isEnabled in // add your completion handler};
Adjust.attribution() { attribution in // add your completion handler}
[Adjust adidWithCompletionHandler:^(NSString * _Nullable adid) { // add your completion handler}];
[Adjust idfaWithCompletionHandler:^(NSString * _Nullable idfa) { // add your completion handler}];
[Adjust idfvWithCompletionHandler:^(NSString * _Nullable idfv) { // add your completion handler}];
[Adjust sdkVersionWithCompletionHandler:^(NSString * _Nullable sdkVersion) { // add your completion handler}];
[Adjust isEnabledWithCompletionHandler:^(BOOL isEnabled) { // add your completion handler}];
[Adjust attributionWithCompletionHandler:^(ADJAttribution * _Nullable attribution) { // add your completion handler}
플러그인
Adjust SDK는 기능 확장을 위한 플러그인을 지원합니다. 이 섹션에서는 SDK v5에서 플러그인의 변경 사항을 다룹니다.
제거된 플러그인
다음 플러그인은 SDK v5에서 제거되었습니다.
- Criteo
- Trademob
- Sociomatic