시작에 앞서
SDK v5로 업데이트하기 전에 다음을 수행하시기 바랍니다.
-
SDK v5는 SDK Signature 인증을 기본적으로 지원합니다. 현재 SDK 서명 라이브러리를 사용하는 경우, 우선 앱에서 서명 라이브러리를 삭제해야 합니다.
-
SDK v5에 필요한 API의 최소 지원 버전이 업데이트되었습니다. 앱이 이보다 낮은 버전을 대상으로 하는 경우 먼저 업데이트해야 합니다.
- iOS: 12.0
- Android: 21
SDK 설치
SDK v5를 사용하려면 프로젝트에서 디펜던시로 추가해야 합니다. 추가하려면 다음 디펜던시를 pubspec.yaml 파일에 추가합니다.
dependencies: adjust_sdk: ^5.0.0초기화 메서드 업데이트
SDK v4에서 초기화 메서드는 Adjust.start입니다. 이것이 SDK v5에서 Adjust.initSdk로 변경되었습니다.
Adjust.start(adjustConfig); // v4Adjust.initSdk(adjustConfig); // v5변경된 API
다음 API가 SDK v5에서 변경되었습니다.
SDK 비활성화 및 활성화
SDK v4에서는 bool 값과 함께 Adjust.setEnabled를 호출하여 SDK를 활성화 및 비활성화할 수 있습니다.
Adjust.setEnabled(false); // disable SDKAdjust.setEnabled(true); // enable SDKSDK v5에서는 명확성을 위해 이 기능이 별도의 명령으로 분리되었습니다.
- SDK를 비활성화하려면
Adjust.disable를 호출합니다. - SDK를 활성화하려면
Adjust.enable를 호출합니다.
Adjust.disable();Adjust.enable();백그라운드에서 정보 전송
SDK v4에서는 adjustConfig 인스턴스의 sendInBackground 속성을 true로 설정하여 앱이 백그라운드에서 실행되는 동안 SDK가 adjust에 정보를 보낼 수 있도록 할 수 있습니다.
adjustConfig.sendInBackground = true;SDK v5에서는 앱이 백그라운드에서 실행되는 동안 SDK가 adjust에 정보를 보낼 수 있도록 adjustConfig 인스턴스의 isSendingInBackgroundEnabled 속성을 true로 설정해야 합니다.
adjustConfig.isSendingInBackgroundEnabled = true;사전 설치된 앱 측정
SDK v4에서는 adjustConfig 인스턴스의 preinstallTrackingEnabled 속성을 true로 설정하여 사전 설치된 앱 측정을 활성화할 수 있습니다.
adjustConfig.preinstallTrackingEnabled = true;SDK v5에서는 사전 설치된 앱 측정을 활성화하려면 adjustConfig 인스턴스의 isPreinstallTrackingEnabled 속성을 true로 설정해야 합니다.
adjustConfig.isPreinstallTrackingEnabled = true;AdServices 정보 읽기 비활성화
SDK v4에서는 adjustConfig 인스턴스의 allowAdServicesInfoReading 속성을 false로 설정하여 Adjust SDK가 AdServices 정보를 읽는 것을 방지할 수 있습니다.
adjustConfig.allowAdServicesInfoReading = false;SDK v5에서 Adjust SDK가 AdServices 정보를 읽는 것을 방지하려면 adjustConfig 인스턴스의 isAdServicesEnabled 속성을 false로 설정해야 합니다.
adjustConfig.isAdServicesEnabled = false;IDFA 읽기 비활성화
SDK v4에서는 adjustConfig 인스턴스의 allowIdfaReading 속성을 false로 설정하여 Adjust SDK가 기기의 IDFA를 읽는 것을 방지할 수 있습니다.
adjustConfig.allowIdfaReading = false;SDK v5에서 Adjust SDK가 기기의 IDFA를 읽는 것을 방지하려면 adjustConfig 인스턴스의 isIdfaReadingEnabled 속성을 false로 설정해야 합니다.
adjustConfig.isIdfaReadingEnabled = false;어트리뷰션에서 비용 데이터 활성화
SDK v4에서는 adjustConfig 인스턴스의 needsCost 속성을 true로 설정하여 기기의 어트리뷰션 정보에서 비용 데이터를 활성화할 수 있습니다.
adjustConfig.needsCost = true;SDK v5에서 기기의 어트리뷰션 정보에서 비용 데이터를 활성화하려면 adjustConfig 인스턴스의 isCostDataInAttributionEnabled 속성을 true로 설정해야 합니다.
adjustConfig.isCostDataInAttributionEnabled = true;LinkMe 활성화
SDK v4에서는 adjustConfig 인스턴스의 linkMeEnabled 속성을 true로 설정하여 Adjust LinkMe를 활성화할 수 있습니다.
adjustConfig.linkMeEnabled = true;SDK v5에서 Adjust LinkMe를 활성화하려면 adjustConfig 인스턴스의 isLinkMeEnabled 속성을 true로 설정해야 합니다.
adjustConfig.isLinkMeEnabled = true;기기 ID를 한 번만 읽기
SDK v4에서는 adjustConfig 인스턴스의 readDeviceInfoOnceEnabled 속성을 true로 설정하여 SDK가 기기 ID를 한 번만 읽도록 지시할 수 있습니다.
adjustConfig.readDeviceInfoOnceEnabled = true;SDK v5에서 SDK가 기기 ID를 한 번만 읽게 하려면 adjustConfig 인스턴스의 isDeviceIdsReadingOnceEnabled 속성을 true로 설정해야 합니다.
adjustConfig.isDeviceIdsReadingOnceEnabled = true;오프라인 모드
SDK v4에서는 bool 인수와 함께 Adjust.setOfflineMode를 호출하여 SDK의 오프라인 모드를 활성화 및 비활성화할 수 있습니다.
Adjust.setOfflineMode(true);Adjust.setOfflineMode(false);SDK v5에서는 명확성을 위해 이 기능이 별도의 명령으로 분리되었습니다.
- SDK를 오프라인 모드로 설정하려면
Adjust.switchToOfflineMode를 호출합니다. - SDK를 온라인 모드로 전환하려면
Adjust.switchBackToOnlineMode를 호출합니다.
Adjust.switchToOfflineMode(); // Put the SDK in offline modeAdjust.switchBackToOnlineMode(); // Put the SDK back in online mode세션 콜백 파라미터
SDK v4에서는 키-값 쌍을 Adjust.addSessionCallbackParameter 메서드에 전달하여 세션 파라미터를 추가하고, Adjust.removeSessionCallbackParameter 메서드를 사용하여 개별 파라미터를 제거할 수 있습니다.
Adjust.addSessionCallbackParameter('key', 'value');Adjust.removeSessionCallbackParameter('key');Adjust.resetSessionCallbackParameters();SDK v5에서는 세션 파라미터가 글로벌 파라미터로 이름이 변경되었습니다.
Adjust.addGlobalCallbackParameter('key', 'value');Adjust.removeGlobalCallbackParameter('key');Adjust.removeGlobalCallbackParameters();세션 파트너 파라미터
SDK v4에서는 키-값 쌍을 Adjust.addSessionPartnerParameter 메서드에 전달하여 파트너 파라미터를 추가하고, Adjust.removeSessionPartnerParameter 메서드를 사용하여 개별 파라미터를 제거할 수 있습니다.
Adjust.addSessionPartnerParameter('key', 'value');Adjust.removeSessionPartnerParameter('key');Adjust.resetSessionPartnerParameters();SDK v5에서는 세션 파트너 파라미터가 글로벌 파트너 파라미터로 이름이 변경되었습니다.
Adjust.addGlobalPartnerParameter('key', 'value');Adjust.removeGlobalPartnerParameter('key');Adjust.removeGlobalPartnerParameters();앱 스토어 구독
SDK v4에서는 AdjustAppStoreSubscription 객체를 구성하여 새 구독을 설정할 수 있습니다. 이 객체는 4개의 인수 price, currency, transactionId, receipt로 초기화됩니다.
AdjustAppStoreSubscription subscription = new AdjustAppStoreSubscription( price, currency, transactionId, receipt);SDK v5에서는 결제 검증에 더 이상 필요하지 않으므로 receipt 인수를 전달하지 않아도 됩니다.
AdjustAppStoreSubscription subscription = new AdjustAppStoreSubscription( price, currency, transactionId);앱 스토어 구매
SDK v4에서는 AdjustAppStorePurchase 객체를 구성하여 새 구매를 설정할 수 있습니다. 이 객체는 3개의 인수 receipt, product ID, transaction ID로 초기화됩니다.
AdjustAppStorePurchase purchase = new AdjustAppStorePurchase(receipt, productId, transactionId);SDK v5에서는 결제 검증에 더 이상 필요하지 않으므로 receipt 인수를 전달하지 않아도 됩니다.
AdjustAppStorePurchase purchase = new AdjustAppStorePurchase(productId, transactionId);플레이 스토어 구독
SDK v4에서는 타임스탬프를 setPurchaseTime 메서드로 전달하여 사용자가 구독을 구매한 날짜를 기록할 수 있습니다.
adjustPlayStoreSubscription.setPurchaseTime('purchase-time');SDK v5에서 사용자가 구독을 구매한 날짜를 기록하려면 adjustPlayStoreSubscription 인스턴스의 purchaseTime 속성에 타임스탬프를 지정해야 합니다.
adjustPlayStoreSubscription.purchaseTime = 'purchase-time';딥링크를 사용한 리어트리뷰션
SDK v4에서는 딥링크 정보를 Adjust.appWillOpenUrl 메서드에 전달할 수 있습니다.
Adjust.appWillOpenUrl('url');SDK v5에서는 명확성을 위해 이름이 Adjust.processDeeplink로 변경되었습니다. 딥링크 구성을 위해 새로운 AdjustDeeplink 클래스가 추가되었습니다. 딥링크를 처리하려면 딥링크 URL을 사용하여 AdjustDeeplink 객체를 인스턴스화하고 Adjust.processDeeplink 메서드로 전달합니다.
Adjust.processDeeplink(new AdjustDeeplink('url'));디퍼드 딥링크 실행
SDK v4에서는 adjustConfig 인스턴스의 launchDeferredDeeplink 속성을 true로 설정하여 SDK가 딥링크를 여는 것을 활성화할 수 있습니다.
adjustConfig.launchDeferredDeeplink = true;SDK v5에서 SDK가 딥링크를 여는 것을 활성화하려면 adjustConfig 인스턴스의 isDeferredDeeplinkOpeningEnabled 속성을 true로 설정해야 합니다.
adjustConfig.isDeferredDeeplinkOpeningEnabled = true;딥링크 해석
SDK v4에서는 processDeeplink 메서드에 url을 전달하여 단축 딥링크를 해석할 수 있습니다.
Adjust.processDeeplink('url').then((resolvedLink) { // resolvedLink is the unshortened link};SDK v5에서는 딥링크 url을 사용하여 초기화된 AdjustDeeplink 객체를 전달해야 합니다. 이러게 하면 축약되지 않은 원래의 딥링크가 반환됩니다.
Adjust.processAndResolveDeeplink(new AdjustDeeplink('url')).then((resolvedLink) { // resolvedLink is the unshortened link};COPPA 준수
SDK v4에서는 adjustConfig 인스턴스의 coppaCompliantEnabled 속성을 true로 설정하여 COPPA 준수를 활성화할 수 있습니다.
adjustConfig.coppaCompliantEnabled = true;SDK v5에서 COPPA 준수를 활성화하려면 adjustConfig 인스턴스의 isCoppaComplianceEnabled 속성을 true로 설정해야 합니다.
adjustConfig.isCoppaComplianceEnabled = true;플레이 스토어 어린이용 앱
SDK v4에서는 adjustConfig 인스턴스의 playStoreKidsAppEnabled 속성을 true로 설정하여 앱을 플레이 스토어 어린이용 앱으로 표시할 수 있습니다. 이 속성은 SDK 초기화 중에 읽히기 때문에 SDK가 초기화된 후에는 해당 값을 업데이트할 수 없습니다.
adjustConfig.playStoreKidsAppEnabled = true;SDK v5에서 준수를 활성화하려면 adjustConfig 인스턴스의 isPlayStoreKidsComplianceEnabled 속성을 true로 설정해야 합니다.
adjustConfig.isPlayStoreKidsComplianceEnabled = true;데이터 레지던시 및 URL 전략 설정
SDK v4에서는 URL 전략 및 데이터 레지던시 도메인이 adjustConfig 클래스의 상수로 정의됩니다.
adjustConfig.setUrlStrategy(AdjustConfig.DataResidencyEU);SDK v5에서는 선택한 도메인을 배열로 전달해야 합니다. 또한 다음 항목을 설정해야 합니다.
useSubdomains(bool): 도메인을 Adjust 도메인으로 취급할지 여부.true인 경우, SDK는 도메인의 접두사로 Adjust에 특화된 하위 도메인을 사용합니다.false인 경우 SDK는 접두사를 추가하지 않고 제공된 도메인을 그대로 사용합니다.isDataResidency(bool): 도메인을 데이터 레지던시에 사용해야 하는지 여부.
adjustConfig.setUrlStrategy(['eu.adjust.com'], true, true);아래 표를 보고 SDK v5에서 URL 전략을 구성하는 방법을 확인하시기 바랍니다.
| v4 | v5 - 메인 및 폴백 도메인 | v5 - 하위 도메인 사용 | v5 - 데이터 레지던시 여부 |
|---|---|---|---|
adjustConfig.DataResidencyEU | 'eu.adjust.com' | true | true |
adjustConfig.DataResidencyTR | 'tr.adjust.com' | true | true |
adjustConfig.DataResidencyUS | 'us.adjust.com' | true | true |
adjustConfig.UrlStrategyChina | 'adjust.world', 'adjust.com' | true | false |
adjustConfig.UrlStrategyCn | 'adjust.cn', 'adjust.com' | true | false |
adjustConfig.UrlStrategyCnOnly | 'adjust.cn' | true | false |
adjustConfig.UrlStrategyIndia | 'adjust.net.in', 'adjust.com' | true | false |
예
adjustConfig.setUrlStrategy(['adjust.net.in', 'adjust.com'], true, false);adjustConfig.setUrlStrategy(['adjust.world', 'adjust.com'], true, false);adjustConfig.setUrlStrategy(['adjust.cn'], true, false);adjustConfig.setUrlStrategy(['eu.adjust.com'], true, true);adjustConfig.setUrlStrategy(['tr.adjust.com'], true, true);adjustConfig.setUrlStrategy(['us.adjust.com'], true, true);광고 매출 금액 기록
SDK v4에서는 trackAdRevenue 메서드를 호출하여 source 및 payload를 인수로 전달하고 광고 매출을 기록할 수 있습니다.
Adjust.trackAdRevenue('source', 'payload');SDK v4에서 메서드가 업데이트되어 source를 사용하여 새로운 AdjustAdRevenue 객체를 생성하고, 이 객체를 trackAdRevenueNew 메서드로 전달하여 광고 매출을 기록할 수 있습니다.
AdjustAdRevenue adRevenue = new AdjustAdRevenue('source');adRevenue.setRevenue(6, 'CAD');Adjust.trackAdRevenueNew(adRevenue);SDK v5에서는 source를 사용하여 새로운 AdjustAdRevenue 객체를 생성하고, 이 객체를 trackAdRevenue 메서드로 전달하여 광고 매출을 기록해야 합니다.
AdjustAdRevenue adRevenue = new AdjustAdRevenue('source');adRevenue.setRevenue(6, 'CAD');Adjust.trackAdRevenue(adRevenue);특정 소스로부터 광고 매출 전송
SDK v4에서는 광고 매출 소스가 adjustConfig 클래스의 상수로 정의됩니다. SDK v5에서는 광고 매출 소스를 문자열로 전달해야 합니다.
AdjustAdRevenue adRevenue = new AdjustAdRevenue(AdjustConfig.AdRevenueSourceAppLovinMAX);AdjustAdRevenue adRevenue = new AdjustAdRevenue('applovin_max_sdk');| v4 | v5 |
|---|---|
adjustConfig.AdRevenueAppLovinMAX | 'applovin_max_sdk' |
adjustConfig.AdRevenueSourceAdMob | 'admob_sdk' |
adjustConfig.AdRevenueSourceIronSource | 'ironsource_sdk' |
adjustConfig.AdRevenueSourceAdMost | 'admost_sdk' |
adjustConfig.AdRevenueSourceUnity | 'unity_sdk' |
adjustConfig.AdRevenueSourceHeliumChartboost | 'helium_chartboost_sdk' |
adjustConfig.AdRevenueSourceADX | 'adx_sdk' |
adjustConfig.AdRevenueSourcePublisher | 'publisher_sdk' |
adjustConfig.AdRevenueSourceTradplus | 'tradplus_sdk' |
adjustConfig.AdRevenueSourceTopOn | 'topon_sdk' |
adjustConfig.AdRevenueSourceMopub | 더 이상 지원 안 됨 |
SKAdNetwork 커뮤니케이션 비활성화
SDK v4에서는 adjustConfig.deactivateSKAdNetworkHandling 메서드를 호출하여 SDK가 SKAdNetwork와 통신하는 것을 방지할 수 있습니다.
adjustConfig.deactivateSKAdNetworkHandling();SDK v5에서 SKAdNetwork 커뮤니케이션을 비활성화하려면 adjustConfig 인스턴스의 isSkanAttributionEnabled 속성을 false로 설정해야 합니다.
adjustConfig.isSkanAttributionEnabled = false;전환값 업데이트 수신
SDK v4에서는 adjustConfig의 skad4conversionValueUpdatedCallback 속성을 사용하여 전환값 업데이트를 수신할 수 있습니다. SKAN4 이전에서는 conversionValueUpdatedCallback 속성을 사용할 수 있었습니다.
// pre-SKAN4 callbackadjustConfig.conversionValueUpdatedCallback = (num? conversionValue) {};
// SKAN4 callbackadjustConfig.skad4ConversionValueUpdatedCallback = (num? conversionValue, String? coarseValue, bool? lockWindow) {};SDK v5에서는 adjustConfig 객체의 skanUpdatedCallback 속성에 콜백 함수를 지정해야 합니다.
config.skanUpdatedCallback = (Map<String, String> skanUpdateData) { print('[Adjust]: Received SKAN update information!'); if (skanUpdateData["conversion_value"] != null) { print('[Adjust]: Conversion value: ' + skanUpdateData["conversion_value"]!); } if (skanUpdateData["coarse_value"] != null) { print('[Adjust]: Coarse value: ' + skanUpdateData["coarse_value"]!); } if (skanUpdateData["lock_window"] != null) { print('[Adjust]: Lock window: ' + skanUpdateData["lock_window"]!); } if (skanUpdateData["error"] != null) { print('[Adjust]: Error: ' + skanUpdateData["error"]!); }};전환값 업데이트
SDK v4에서는 다음 메서드 중 하나를 사용하여 업데이트된 전환값을 Adjust에 전송할 수 있습니다.
Adjust.updateConversionValue(6);
Adjust.updateConversionValueWithErrorCallback(6).then((error) { // error is present in case it happened});
Adjust.updateConversionValueWithErrorCallbackSkad4(6, 'coarse-value', true).then((error) { // error is present in case it happened});SDK v5에서는 다음 인수와 함께 updateSkanConversionValue 메서드를 사용하여 전환값을 업데이트할 수 있습니다.
conversionValue(int): 업데이트된 전환값coarseValue(string): 업데이트된 coarse 전환값lockWindow(bool): 전환값 윈도우가 종료되기 전에 포스트백을 전송할지 여부
Adjust.updateSkanConversionValue(6, 'coarse-value', true).then((error) { // error is present in case it happened});App Tracking Transparency(ATT) 승인 래퍼
SDK v4에서는 Adjust.requestTrackingAuthorizationWithCompletionHandler 메서드를 사용하여 사용자의 ATT 승인 상태 변경 사항을 처리할 수 있습니다.
Adjust.requestTrackingAuthorizationWithCompletionHandler().then((status) { print('[Adjust]: Authorization status update!'); switch (status) { case 0: print( '[Adjust]: Authorization status update: ATTrackingManagerAuthorizationStatusNotDetermined'); break; case 1: print( '[Adjust]: Authorization status update: ATTrackingManagerAuthorizationStatusRestricted'); break; case 2: print( '[Adjust]: Authorization status update: ATTrackingManagerAuthorizationStatusDenied'); break; case 3: print( '[Adjust]: Authorization status update: ATTrackingManagerAuthorizationStatusAuthorized'); break; }});명확성을 위해 SDK v5에서 이름이 Adjust.requestAppTrackingAuthorization으로 변경되었습니다.
Adjust.requestAppTrackingAuthorization().then((status) { print('[Adjust]: Authorization status update!'); switch (status) { case 0: print( '[Adjust]: Authorization status update: ATTrackingManagerAuthorizationStatusNotDetermined'); break; case 1: print( '[Adjust]: Authorization status update: ATTrackingManagerAuthorizationStatusRestricted'); break; case 2: print( '[Adjust]: Authorization status update: ATTrackingManagerAuthorizationStatusDenied'); break; case 3: print( '[Adjust]: Authorization status update: ATTrackingManagerAuthorizationStatusAuthorized'); break; }});삭제된 API
다음 API가 SDK v5에서 삭제되었습니다.
이벤트 버퍼링
SDK v4는 이벤트 버퍼링을 지원합니다. 이 기능은 요청 이벤트, 광고 매출, 푸시 토큰 및 기타 정보를 로컬 버퍼에 저장하여 나중에 전송할 수 있게 해줍니다.
adjustConfig.eventBufferingEnabled = true;이 설정은 SDK v5에서 제거되었습니다.
커스텀 사용자 에이전트 문자열
SDK v4는 adjustConfig 인스턴스의 userAgent 속성에 사용자 문자열 에이전트를 지정하여 사용자 지정 사용자 에이전트를 설정하는 기능을 지원합니다.
adjustConfig.userAgent = 'custom-user-agent';이 설정은 SDK v5에서 제거되었습니다.
알려진 기기 여부 설정
SDK v4에서는 adjustConfig 인스턴스의 isDeviceKnown 속성을 설정하여 알려진 기기인지 여부를 수동으로 SDK에 알릴 수 있습니다.
adjustConfig.isDeviceKnown = true;이 설정은 SDK v5에서 제거되었습니다.
SDK 작동 시작 지연
SDK v4는 adjustConfig 인스턴스의 delayStart 속성을 지연으로 설정하여 SDK 시작 지연을 지원합니다. 이 지연 시간은 최대 10초 로 설정할 수 있습니다.
adjustConfig.delayStart = 10;이 설정은 Adjust.checkForNewAttStatus 메서드를 포함하여 SDK v5에서 제거되었습니다. 이 메서드를 호출하면 SDK가 지연을 중단하고 계속 작동합니다.
최종 Android 어트리뷰션
SDK v4에서는 adjustConfig 인스턴스의 finalAndroidAttributionEnabled 속성을 true로 설정하여 최종 Android 어트리뷰션을 전달할 수 있습니다.
adjustConfig.finalAndroidAttributionEnabled = true;이 설정은 SDK v5에서 제거되었으며 이제 최종 어트리뷰션만 Android 플랫폼에서 어트리뷰션 콜백을 통해 전달됩니다.
AdjustEvent 변경
SDK v4에서는 구독 및 구매에 대한 receipt를 adjustEvent의 adjustEvent.receipt 속성으로 전송할 수 있습니다.
adjustEvent.receipt = 'receipt';이 클래스 속성은 구매 검증에 더 이상 필요하지 않으므로 SDK v5에서 제거되었습니다.
글로벌 서드파티 공유 비활성화
SDK v4에서는 Adjust.disableThirdPartySharing 메서드를 호출하여 전 세계에서 서드파티와의 정보 공유를 비활성화할 수 있습니다.
Adjust.disableThirdPartySharing();이 기능은 SDK v5에서 제거되었습니다. SDK v5에서는 Adjust.trackThirdPartySharing 메서드를 사용하여 서드파티 공유를 활성화 또는 비활성화합니다.
AdjustThirdPartySharing thirdPartySharing = new AdjustThirdPartySharing(false);Adjust.trackThirdPartySharing(thirdPartySharing);앱 시크릿 설정
SDK v4는 AdjustConfig 인스턴스의 setAppSecret 메서드를 호출하여 SDK 트래픽을 서명하는 데 사용할 앱 시크릿을 설정하는 기능을 지원합니다.
adjustConfig.setAppSecret(secretId, info1, info2, info3, info4);이 설정은 SDK v5에서 제거되었습니다.