시작에 앞서
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
에서 변경됨
다음 플러그인은 SDK v5에서 제거되었습니다.
SDK 비활성화 및 활성화
SDK v4에서는 bool
값과 함께 Adjust.setEnabled
를 호출하여 SDK를 활성화 및 비활성화할 수 있습니다.
Adjust.setEnabled(false); // disable SDKAdjust.setEnabled(true); // enable SDK
SDK 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에서는 adjustConfig
인스턴스의 isAdServicesEnabled
속성을 false
로 설정하여 Adjust SDK가 AdServices 정보를 읽는 것을 방지해야 합니다.
adjustConfig.isAdServicesEnabled = false;
IDFA 읽기 비활성화
SDK v4에서는 adjustConfig
인스턴스의 allowIdfaReading
속성을 false
로 설정하여 Adjust SDK가 기기의 IDFA를 읽는 것을 방지할 수 있습니다.
adjustConfig.allowIdfaReading = false;
SDK v5에서는 adjustConfig
인스턴스의 isIdfaReadingEnabled
속성을 false
로 설정하여 Adjust SDK가 기기의 IDFA를 읽는 것을 방지해야 합니다.
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에서는 adjustConfig
인스턴스의 isLinkMeEnabled
속성을 true
로 설정하여 Adjust LinkMe 를 활성화해야 합니다.
adjustConfig.isLinkMeEnabled = true;
기기 ID를 한 번만 읽기
SDK v4에서는 adjustConfig
인스턴스의 readDeviceInfoOnceEnabled
속성을 true
로 설정하여 SDK가 기기 ID를 한 번만 읽도록 할 수 있습니다.
adjustConfig.readDeviceInfoOnceEnabled = true;
SDK v5에서는 adjustConfig
인스턴스의 isDeviceIdsReadingOnceEnabled
속성을 true
로 설정하여 SDK가 기기 ID를 한 번만 읽도록 해야 합니다.
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
객체를 구성하여 새로운 구매를 설정할 수 있습니다. 이 객체는 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에서는 adjustConfig
인스턴스의 isDeferredDeeplinkOpeningEnabled
속성을 true
로 설정하여 SDK가 딥링크를 열 수 있도록 해야 합니다.
adjustConfig.isDeferredDeeplinkOpeningEnabled = true;
딥링크 해석
SDK v4에서는 url
를 processDeeplink
메서드에 전달하여 단축 딥링크를 해결할 수 있습니다.
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
으로 설정하여 앱을 Play Store Kids 앱 으로 마킹할 수 있습니다. 이 속성은 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에서는 adjustConfig
인스턴스의 isSkanAttributionEnabled
속성을 false
로 설정하여 SKAdNetwork 통신을 비활성화해야 합니다.
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; }});
에서 삭제됨
다음 플러그인은 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;
Android 플랫폼에서의 어트리뷰션 콜백을 통해 최종 어트리뷰션만 전달되기 때문에 SDK v5에서는 이 설정이 삭제되었습니다.
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는 SDK 트래픽 서명에 사용할 AdjustConfig
인스턴스에서 setAppSecret
메서드를 호출하여 앱 시크릿을 설정하는 것을 지원합니다.
adjustConfig.setAppSecret(secretId, info1, info2, info3, info4);
이 설정은 SDK v5에서 제거되었습니다.