시작에 앞서
SDK v5로 업데이트하기 전에 다음을 수행하시기 바랍니다.
-
SDK v5에 필요한 API의 최소 지원 버전이 업데이트되었습니다. 앱이 이보다 낮은 버전을 대상으로 하는 경우 먼저 업데이트해야 합니다.
- iOS: 12.0
- Android: 21
SDK 설치
SDK v5를 사용하려면 프로젝트에서 디펜던시로 추가해야 합니다. 이를 위해 다음을 수행하시기 바랍니다.
-
GitHub에서 SDK 아카이브를 다운로드합니다.
-
dist디렉토리에서 C++ 파일을 복사하고 Cocos2d-x 프로젝트에 추가합니다. -
( Android만 해당 ): C++ 파일의 경로를
Android.mk파일의LOCAL_SRC_FILES섹션에 추가합니다.$(LOCAL_PATH)/../../../Classes/Adjust/AdjustConfig2dx.cpp \$(LOCAL_PATH)/../../../Classes/Adjust/AdjustAttribution2dx.cpp \$(LOCAL_PATH)/../../../Classes/Adjust/AdjustProxy2dx.cpp \$(LOCAL_PATH)/../../../Classes/Adjust/AdjustEvent2dx.cpp \$(LOCAL_PATH)/../../../Classes/Adjust/Adjust2dx.cpp \$(LOCAL_PATH)/../../../Classes/Adjust/AdjustEventFailure2dx.cpp \$(LOCAL_PATH)/../../../Classes/Adjust/AdjustEventSuccess2dx.cpp \$(LOCAL_PATH)/../../../Classes/Adjust/AdjustSessionFailure2dx.cpp \$(LOCAL_PATH)/../../../Classes/Adjust/AdjustSessionSuccess2dx.cpp \$(LOCAL_PATH)/../../../Classes/Adjust/AdjustAppStoreSubscription2dx.cpp \$(LOCAL_PATH)/../../../Classes/Adjust/AdjustPlayStoreSubscription2dx.cpp \$(LOCAL_PATH)/../../../Classes/Adjust/AdjustThirdPartySharing2dx.cpp \$(LOCAL_PATH)/../../../Classes/Adjust/AdjustAdRevenue2dx.cpp$(LOCAL_PATH)/../../../Classes/Adjust/AdjustAppStorePurchase2dx.cpp \$(LOCAL_PATH)/../../../Classes/Adjust/AdjustPlayStorePurchase2dx.cpp \$(LOCAL_PATH)/../../../Classes/Adjust/AdjustDeeplink2dx.cpp \$(LOCAL_PATH)/../../../Classes/Adjust/AdjustPurchaseVerificationResult2dx.cpp \CMake를 사용하는 경우, 다음의 소스 및 헤더 목록을
CMakeLists.txt파일에 추가합니다.# add cross-platforms source files and header fileslist(APPEND GAME_SOURCEClasses/Adjust/AdjustConfig2dx.cppClasses/Adjust/AdjustAttribution2dx.cppClasses/Adjust/AdjustProxy2dx.cppClasses/Adjust/AdjustEvent2dx.cppClasses/Adjust/AdjustAdRevenue2dx.cppClasses/Adjust/AdjustAppStoreSubscription2dx.cppClasses/Adjust/AdjustPlayStoreSubscription2dx.cppClasses/Adjust/AdjustAppStorePurchase2dx.cppClasses/Adjust/AdjustPlayStorePurchase2dx.cppClasses/Adjust/Adjust2dx.cppClasses/Adjust/AdjustEventFailure2dx.cppClasses/Adjust/AdjustEventSuccess2dx.cppClasses/Adjust/AdjustSessionFailure2dx.cppClasses/Adjust/AdjustSessionSuccess2dx.cppClasses/Adjust/AdjustThirdPartySharing2dx.cppClasses/Adjust/AdjustDeeplink2dx.cppClasses/Adjust/AdjustPurchaseVerificationResult2dx.cpp)list(APPEND GAME_HEADERClasses/Adjust/AdjustConfig2dx.hClasses/Adjust/AdjustAttribution2dx.hClasses/Adjust/AdjustProxy2dx.hClasses/Adjust/AdjustEvent2dx.hClasses/Adjust/AdjustAdRevenue2dx.hClasses/Adjust/AdjustAppStoreSubscription2dx.hClasses/Adjust/AdjustPlayStoreSubscription2dx.hClasses/Adjust/AdjustAppStorePurchase2dx.hClasses/Adjust/AdjustPlayStorePurchase2dx.hClasses/Adjust/Adjust2dx.hClasses/Adjust/AdjustEventFailure2dx.hClasses/Adjust/AdjustEventSuccess2dx.hClasses/Adjust/AdjustSessionFailure2dx.hClasses/Adjust/AdjustSessionSuccess2dx.hClasses/Adjust/AdjustThirdPartySharing2dx.hClasses/Adjust/AdjustDeeplink2dx.hClasses/Adjust/AdjustPurchaseVerificationResult2dx.h) -
( Android만 해당 ): GitHub 릴리스 페이지에서 최신
adjust-android.aar를 다운로드하고 Android Studio 프로젝트로 가져옵니다. -
( iOS만 해당 ): GitHub 릴리스 페이지에서 최신
AdjustSdk.framework를 다운로드하고 Xcode 프로젝트에 연결합니다.
서명 라이브러리 설정
SDK v5는 SDK Signature 라이브러리 를 사용하여 Adjust SDK에서 Adjust 서버로 전송되는 정보를 암호화합니다. SDK v5를 사용하려면 프로젝트에 Signature 라이브러리를 추가해야 합니다.
Android 앱
- Adjust Signature 라이브러리 GitHub 리포지토리에서 최신
adjust-android-signature.aar를 다운로드합니다. - Android Studio 프로젝트에
.aar를 추가합니다.
iOS 앱
- Adjust Signature 라이브러리 GitHub 리포지토리에서 최신
AdjustSigSdk-iOS-Static.a를 다운로드합니다. - Xcode 프로젝트에서
.a를 연결합니다.
앱의 프라이버시 매니페스트 업데이트(iOS만 해당)
앱 스토어에 Adjust SDK의 프라이버시 요건을 알리려면 프라이버시 매니페스트를 Adjust의 프라이버시 매니페스트와 병합해야 합니다.
- 앱의 프라이버시 매니페스트에 Adjust SDK 프라이버시 매니페스트 속성을 추가합니다.
- 앱의 프라이버시 매니페스트에 Signature 라이브러리의 프라이버시 매니페스트 속성을 추가합니다.
초기화 메서드 업데이트
SDK v4에서 초기화 메서드는 Adjust2dx::start(adjustConfig)입니다. 이것이 Adjust2dx::initSdk(adjustConfig)로 변경되었습니다.
#include "Adjust/Adjust2dx.h"
std::string appToken = "YourAppToken";std::string environment = AdjustEnvironmentSandbox2dx;
AdjustConfig2dx adjustConfig = AdjustConfig2dx(appToken, environment);
Adjust2dx::start(adjustConfig);
* Adjust2dx::initSdk(adjustConfig);변경된 API
다음 API가 SDK v5에서 변경되었습니다.
SDK 비활성화 및 활성화
SDK v4에서는 bool 값과 함께 Adjust2dx::setEnabled 를 호출하여 SDK를 활성화 및 비활성화할 수 있습니다.
Adjust2dx::setEnabled(false); // disable SDKAdjust2dx::setEnabled(true); // enable SDKSDK v5에서는 명확성을 위해 이 기능이 별도의 명령으로 분리되었습니다.
- SDK를 비활성화하려면
Adjust2dx::disable()를 호출합니다. - SDK를 활성화하려면
Adjust2dx::enable()를 호출합니다.
Adjust2dx::disable();Adjust2dx::enable();백그라운드에서 정보 전송
SDK v4에서는 adjustConfig 인스턴스의 sendInBackground 속성을 true 로 설정하여 앱이 백그라운드에서 실행되는 동안 SDK가 adjust에 정보를 보낼 수 있도록 할 수 있습니다.
adjustConfig.sendInBackground(true);SDK v5에서는 앱이 백그라운드에서 실행되는 동안 SDK가 Adjust에 정보를 전송할 수 있도록 adjustConfig 인스턴스의 enableSendingInBackground 메서드를 호출해야 합니다.
adjustConfig.enableSendingInBackground();사전 설치된 앱 측정
SDK v4에서는 true 인수로 adjustConfig 인스턴스의 setPreinstallTrackingEnabled 메서드를 호출하여 사전 설치된 앱 측정을 활성화할 수 있습니다.
adjustConfig.setPreinstallTrackingEnabled(true);SDK v5에서 사전 설치된 앱 측정을 활성화하려면 adjustConfig 인스턴스의 enablePreinstallTracking 메서드를 호출해야 합니다.
adjustConfig.enablePreinstallTracking();AdServices 정보 읽기 비활성화
SDK v4에서는 false 값으로 adjustConfig 의 setAllowAdServicesInfoReading 메서드를 호출하여 Adjust SDK가 AdServices 정보를 읽는 것을 방지할 수 있습니다.
adjustConfig.setAllowAdServicesInfoReading(false);SDK v5에서 Adjust SDK가 AdServices 정보를 읽는 것을 방지하려면 adjustConfig 인스턴스의 disableAdServices 메서드를 호출해야 합니다. 디폴트 상태는 true 입니다.
adjustConfig.disableAdServices();IDFA 읽기 비활성화
SDK v4에서는 false 값으로 adjustConfig 의 setAllowIdfaReading 메서드를 호출하여 Adjust SDK가 기기의 IDFA를 읽는 것을 방지할 수 있습니다.
adjustConfig.setAllowIdfaReading(false);SDK v5에서 Adjust SDK가 기기의 IDFA를 읽는 것을 방지하려면 adjustConfig 인스턴스의 disableIdfaReading 메서드를 호출해야 합니다. 디폴트 상태는 true 입니다.
adjustConfig.disableIdfaReading();어트리뷰션에서 비용 데이터 활성화
SDK v4에서는 true 값으로 adjustConfig 인스턴스의 setNeedsCost 메서드를 호출하여 기기의 어트리뷰션 정보에서 비용 데이터를 활성화할 수 있습니다.
adjustConfig.setNeedsCost(true);SDK v5에서 기기의 어트리뷰션 정보에서 비용 데이터를 활성화하려면 adjustConfig 인스턴스의 enableCostDataInAttribution 메서드를 호출해야 합니다. 디폴트 상태는 false 입니다.
adjustConfig.enableCostDataInAttribution();LinkMe 활성화
SDK v4에서는 true 값으로 adjustConfig 인스턴스의 setLinkMeEnabled 메서드를 호출하여 Adjust LinkMe를 활성화할 수 있습니다.
adjustConfig.setLinkMeEnabled(true);SDK v5에서 Adjust LinkMe를 활성화하려면 adjustConfig 인스턴스의 enableLinkMe 메서드를 호출해야 합니다. 디폴트 상태는 false 입니다.
adjustConfig.enableLinkMe();기기 ID를 한 번만 읽기
SDK v4에서는 true 값으로 adjustConfig 의 setReadDeviceInfoOnceEnabled 메서드를 호출하여 SDK가 기기 ID를 한 번만 읽도록 지시할 수 있습니다.
adjustConfig.setReadDeviceInfoOnceEnabled(true);SDK v5에서 SDK가 기기 ID를 한 번만 읽게 하려면 adjustConfig 의 enableDeviceIdsReadingOnce 메서드를 호출해야 합니다. 디폴트 상태는 false 입니다.
adjustConfig.enableDeviceIdsReadingOnce();오프라인 모드
SDK v4에서는 bool 인수와 함께 Adjust2dx::setOfflineMode 를 호출하여 SDK의 오프라인 모드를 활성화 및 비활성화할 수 있습니다.
Adjust2dx::setOfflineMode(true);Adjust2dx::setOfflineMode(false);SDK v5에서는 명확성을 위해 이 기능이 별도의 명령으로 분리되었습니다.
- SDK를 오프라인 모드로 설정하려면
Adjust2dx::switchToOfflineMode를 호출합니다. - SDK를 온라인 모드로 전환하려면
Adjust2dx::switchBackToOnlineMode를 호출합니다.
Adjust2dx::switchToOfflineMode(); // Put the SDK in offline modeAdjust2dx::switchBackToOnlineMode(); // Put the SDK back in online mode세션 콜백 파라미터
SDK v4에서는 키-값 쌍을 Adjust2dx::addSessionCallbackParameter 메서드에 전달하여 세션 콜백 파라미터를 추가하고, Adjust2dx::removeSessionCallbackParameter 메서드를 사용하여 개별 파라미터를 제거할 수 있습니다.
Adjust2dx::addSessionCallbackParameter("key", "value");Adjust2dx::removeSessionCallbackParameter("key");Adjust2dx::resetSessionCallbackParameters();SDK v5에서는 세션 콜백 파라미터가 글로벌 파라미터로 이름이 변경되었습니다.
Adjust2dx::addGlobalCallbackParameter("key", "value");Adjust2dx::removeGlobalCallbackParameter("key");Adjust2dx::removeGlobalCallbackParameters();세션 파트너 파라미터
SDK v4에서는 키-값 쌍을 Adjust2dx::addSessionPartnerParameter 메서드에 전달하여 파트너 파라미터를 추가하고, Adjust2dx::removeSessionPartnerParameter 메서드를 사용하여 개별 파라미터를 제거할 수 있습니다.
Adjust2dx::addSessionPartnerParameter("key", "value");Adjust2dx::removeSessionPartnerParameter("key");Adjust2dx::resetSessionPartnerParameters();SDK v5에서는 세션 파트너 파라미터가 글로벌 파트너 파라미터로 이름이 변경되었습니다.
Adjust2dx::addGlobalPartnerParameter("key", "value");Adjust2dx::removeGlobalPartnerParameter("key");Adjust2dx::removeGlobalPartnerParameters();이벤트 중복 제거
SDK v4에서는 이벤트 중복 제거가 이벤트 transaction ID 와 결합되어 있으며 최대 10개의 고유 ID로 제한됩니다.
adjustEvent.setTransactionId("transaction-id");SDK v5에서는 이 기능이 transaction ID 와 분리되었습니다. 이벤트 중복 제거를 위해 deduplicationId 라는 새로운 ID 필드가 추가되었습니다.
adjustEvent.setDeduplicationId("deduplication-id");중복 이벤트를 식별하기 위해 목록에 추가할 수 있는 deduplicationId 수의 사용자 지정 한도를 설정할 수 있습니다. 기본 설정된 값은 10 입니다.
AdjustConfig2dx adjustConfig = AdjustConfig2dx("appToken", AdjustEnvironmentSandbox2dx);adjustConfig.setEventDeduplicationIdsMaxSize(20);Adjust2dx::initSdk(adjustConfig);앱 스토어 구독
SDK v4에서는 AdjustAppStoreSubscription2dx 객체를 구성하여 새 구독을 설정할 수 있습니다. 이 객체는 4개의 인수 price, currency, transactionId, receipt 로 초기화됩니다.
AdjustAppStoreSubscription2dx subscription = AdjustAppStoreSubscription2dx(price, currency, transactionId, receipt);SDK v5에서는 결제 검증에 더 이상 필요하지 않으므로 receipt 인수를 전달하지 않아도 됩니다.
AdjustAppStoreSubscription2dx subscription = AdjustAppStoreSubscription2dx(price, currency, transactionId);딥링크를 사용한 리어트리뷰션
SDK v4에서는 딥링크 정보를 Adjust2dx::appWillOpenUrl 메서드에 전달할 수 있습니다.
Adjust2dx::appWillOpenUrl("url");SDK v5에서는 명확성을 위해 이름이 Adjust2dx::processDeeplink 로 변경되었습니다. 딥링크 구성을 위해 새로운 AdjustDeeplink2dx 클래스가 추가되었습니다. 딥링크를 처리하려면 딥링크 URL을 사용하여 AdjustDeeplink2dx 객체를 인스턴스화하고 Adjust2dx::processDeeplink 메서드로 전달합니다.
AdjustDeeplink2dx deeplink = AdjustDeeplink2dx("url");Adjust2dx::processDeeplink(deeplink);딥링크 해석
SDK v4에서는 Adjust2dx::processDeeplink 메서드에 url 을 전달하여 단축 딥링크를 해석할 수 있습니다.
Adjust2dx::processDeeplink("url", [](std::string resolvedLink) { std::cout << "Resolved link: " << resolvedLink;});SDK v5에서는 딥링크 url 을 사용하여 초기화된 AdjustDeeplink2dx 객체를 전달해야 합니다. 이러게 하면 축약되지 않은 원래의 딥링크가 반환됩니다.
AdjustDeeplink2dx deeplink = AdjustDeeplink2dx("url");Adjust2dx::processDeeplink(deeplink, [](std::string resolvedLink) { std::cout << "Resolved link: " << resolvedLink;});COPPA 준수
SDK v4에서는 true 값으로 adjustConfig 인스턴스의 coppaCompliantEnabled 메서드를 호출하여 COPPA 준수를 활성화할 수 있습니다.
adjustConfig.setCoppaCompliantEnabled(true);SDK v5에서 COPPA 준수를 활성화하려면 adjustConfig 인스턴스의 enableCoppaCompliance 메서드를 호출해야 합니다. 디폴트 상태는 false 입니다.
adjustConfig.enableCoppaCompliance();플레이 스토어 어린이용 앱
SDK v4에서는 true 값으로 adjustConfig 인스턴스의 setPlayStoreKidsAppEnabled 메서드를 호출하여 앱을 플레이 스토어 어린이용 앱으로 표시할 수 있습니다. SDK 초기화 중에 읽히기 때문에 SDK가 초기화된 후에는 해당 값을 업데이트할 수 없습니다.
adjustConfig.setPlayStoreKidsAppEnabled(true);SDK v5에서 준수를 활성화하려면 adjustConfig 인스턴스의 enablePlayStoreKidsCompliance 메서드를 호출해야 합니다. 디폴트 상태는 false 입니다.
adjustConfig.enablePlayStoreKidsCompliance();데이터 레지던시 및 URL 전략 설정
SDK v4에서는 URL 전략 및 데이터 레지던시 도메인이 AdjustConfig 클래스의 상수로 정의됩니다.
adjustConfig.setUrlStrategy(AdjustDataResidencyEU);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 - 데이터 레지던시 여부 |
|---|---|---|---|
AdjustDataResidencyEU | "eu.adjust.com" | true | true |
AdjustDataResidencyTR | "tr.adjust.com" | true | true |
AdjustDataResidencyUS | "us.adjust.com" | true | true |
AdjustUrlStrategyChina | "adjust.world", "adjust.com" | true | false |
AdjustUrlStrategyCn | "adjust.cn", "adjust.com" | true | false |
AdjustUrlStrategyCnOnly | "adjust.cn" | true | false |
AdjustUrlStrategyIndia | "adjust.net.in", "adjust.com" | true | false |
예
// India URL strategyadjustConfig.setUrlStrategy({"adjust.net.in", "adjust.com"}, true, false);
// China URL strategyadjustConfig.setUrlStrategy({"adjust.world", "adjust.com"}, true, false);
// China only URL strategyadjustConfig.setUrlStrategy({"adjust.cn"}, true, false);
// EU URL strategyadjustConfig.setUrlStrategy({"eu.adjust.com"}, true, true);
// Turkey URL strategyadjustConfig.setUrlStrategy({"tr.adjust.com"}, true, true);
// US URL strategyadjustConfig.setUrlStrategy({"us.adjust.com"}, true, true);광고 매출 금액 기록
SDK v4에서는 AdjustAdRevenue2dx 객체를 광고 매출 소스 상수로 인스턴스화하여 광고 매출을 기록할 수 있습니다.
AdjustAdRevenue2dx adRevenue = AdjustAdRevenue2dx(AdjustAdRevenueSourceAppLovinMAX);SDK v5에서는 AdjustAdRevenue 객체를 source 문자열로 인스턴스화해야 합니다.
AdjustAdRevenue2dx adRevenue = AdjustAdRevenue2dx("applovin_max_sdk")| v4 | v5 |
|---|---|
AdjustAdRevenueSourceAppLovinMAX | "applovin_max_sdk" |
AdjustAdRevenueSourceAdMob | "admob_sdk" |
AdjustAdRevenueSourceIronSource | "ironsource_sdk" |
AdjustAdRevenueSourceAdMostSource | "admost_sdk" |
AdjustAdRevenueSourceUnity | "unity_sdk" |
AdjustAdRevenueSourceHeliumChartboost | "helium_chartboost_sdk" |
AdjustAdRevenueSourceAdx | "adx_sdk" |
AdjustAdRevenueSourcePublisher | "publisher_sdk" |
AdjustAdRevenueSourceTopOn | "topon_sdk" |
AdjustAdRevenueSourceMopub | 더 이상 지원 안 됨 |
SKAdNetwork 커뮤니케이션 비활성화
SDK v4에서는 adjustConfig.deactivateSKAdNetworkHandling 메서드를 호출하여 SDK가 SKAdNetwork와 통신하는 것을 방지할 수 있습니다.
adjustConfig.deactivateSKAdNetworkHandling();SDK v5에서 SKAdNetwork 커뮤니케이션을 비활성화하려면 adjustConfig 인스턴스의 disableSkanAttribution 메서드를 호출해야 합니다. 디폴트 상태는 true 입니다.
adjustConfig.disableSkanAttribution();전환값 업데이트 수신
SDK v4에서는 adjustConfig 의setPostbackConversionValueUpdatedCallback 메서드를 호출하여 전환값 업데이트를 수신할 수 있습니다. SKAN4 이전에서는 setConversionValueUpdatedCallback 메서드를 사용할 수 있었습니다.
// pre-SKAN4 callbackadjustConfig.setConversionValueUpdatedCallback([](int conversionValue) { std::cout << "\nConversion value: " << conversionValue;});// SKAN4 callbackadjustConfig.setPostbackConversionValueUpdatedCallback([]( int conversionValue, std::string coarseValue, bool lockWindow) { std::cout << "\nConversion value: " << conversionValue; std::cout << "\nCoarse value: " << coarseValue; std::cout << "\nLock window: " << lockWindow;});SDK v5에서는 adjustConfig 객체의 setSkanUpdatedCallback 메서드에 콜백 함수를 지정해야 합니다.
adjustConfig.setSkanUpdatedCallback([]( std::unordered_map<std::string, std::string> data) { std::cout << "\nConversion value: " << data["conversionValue"]; std::cout << "\nCoarse value: " << data["coarseValue"]; std::cout << "\nLock window: " << data["lockWindow"]; std::cout << "\nError: " << data["error"];});전환값 업데이트
SDK v4에서는 다음 메서드 중 하나를 사용하여 업데이트된 전환값을 Adjust에 전송할 수 있습니다.
// pass just the conversion value (deprecated method)Adjust2dx::updateConversionValue(6);
// pass the conversion value and a callback to receive a message about potential errorAdjust2dx::updatePostbackConversionValue(6, [](std::string error) { std::cout << "Error while updating conversion value: " << error;});
// SKAN 4.0// pass the conversion value, coarse value and a callback to receive a message about potential errorAdjust2dx::updatePostbackConversionValue(6, "low", [](std::string error) { std::cout << "Error while updating conversion value: " << error;});
// SKAN 4.0// pass the conversion value, coarse value, lock window and a callback to receive a message about potential errorAdjust2dx::updatePostbackConversionValue(6, "low", false, [](std::string error) { std::cout << "Error while updating conversion value: " << error;});SDK v5에서는 다음 인수와 함께 updateSkanConversionValue 메서드를 사용하여 전환값을 업데이트할 수 있습니다.
conversionValue(int): 업데이트된 전환값coarseValue(std::string): 업데이트된 coarse 전환값lockWindow(bool): 전환값 윈도우가 종료되기 전에 포스트백을 전송할지 여부
Adjust2dx::updateSkanConversionValue(6, "low", true, [](std::string error) { std::cout << "Error while updating conversion value: " << error;});App Tracking Transparency(ATT) 승인 래퍼
SDK v4에서는 Adjust2dx::requestTrackingAuthorizationWithCompletionHandler 메서드를 사용하여 사용자의 ATT 승인 상태 변경 사항을 처리할 수 있습니다.
Adjust2dx::requestTrackingAuthorizationWithCompletionHandler([] (int 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에서 이름이 Adjust2dx::requestAppTrackingAuthorization 으로 변경되었습니다.
Adjust2dx::requestAppTrackingAuthorization([] (int 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에서는 이러한 메서드가 비동기적으로 실행되도록 변경되었습니다. 비동기 프로세스가 완료되면 콜백 기능을 추가하여 해당 정보를 처리할 수 있습니다.
// IDFA getterAdjust2dx::getIdfa([](std::string idfa) { std::cout << "\nIDFA = " << idfa;});
// IDFV getterAdjust2dx::getIdfv([](std::string idfv) { std::cout << "\nIDFV = " << idfa;});
// ADID getterAdjust2dx::getAdid([](std::string adid) { std::cout << "\nAdjust ID = " << adid;});
// Attribution getterAdjust2dx::getAttribution([](AdjustAttribution2dx attribution) { // process attribution});
// Enabled status getterAdjust2dx::isEnabled([](bool isEnabled) { // process isEnabled});
// SDK version getterAdjust2dx::getSdkVersion([](std::string sdkVersion) { std::cout << "\nSDK version = " << sdkVersion;});
// Last deep link getterAdjust2dx::getLastDeeplink([](std::string lastDeeplink) { std::cout << "\nLast deeplink = " << lastDeeplink;});삭제된 API
다음 API가 SDK v5에서 삭제되었습니다.
이벤트 버퍼링
SDK v4는 이벤트 버퍼링을 지원합니다. 이 기능은 요청 이벤트, 광고 매출, 푸시 토큰 및 기타 정보를 로컬 버퍼에 저장하여 나중에 전송할 수 있게 해줍니다.
adjustConfig.setEventBufferingEnabled(true);이 설정은 SDK v5에서 제거되었습니다.
커스텀 사용자 에이전트 문자열
SDK v4는 사용자 에이전트 문자열과 함께 adjustConfig.setUserAgent 를 호출하여 사용자 지정 사용자 에이전트를 설정하는 기능을 지원합니다.
adjustConfig.setUserAgent("custom-user-agent");이 설정은 SDK v5에서 제거되었습니다.
알려진 기기 여부 설정
SDK v4에서는 adjustConfig.setDeviceKnown 메서드를 호출하여 알려진 기기인지 여부를 수동으로 SDK에 알릴 수 있습니다.
adjustConfig.setDeviceKnown(true);이 설정은 SDK v5에서 제거되었습니다.
SDK 작동 시작 지연
SDK v4는 adjustConfig.setDelayStart 를 호출하여 SDK 작동 시작을 최대 10초 간 지연하는 기능을 지원합니다.
adjustConfig.setDelayStart(10);이 메서드는 SDK v5에서 제거되었습니다. 지연을 중단하는 Adjust2dx::sendFirstPackages() 메서드도 삭제되었습니다.
글로벌 서드파티 공유 비활성화
SDK v4에서는 Adjust2dx::disableThirdPartySharing 메서드를 호출하여 전 세계에서 서드파티와의 정보 공유를 비활성화할 수 있습니다.
Adjust2dx::disableThirdPartySharing();이 기능은 SDK v5에서 제거되었습니다. SDK v5에서는 Adjust2dx::trackThirdPartySharing 메서드를 사용하여 서드파티 공유를 활성화 또는 비활성화합니다.
AdjustThirdPartySharing2dx thirdPartySharing = AdjustThirdPartySharing2dx(false);Adjust2dx::trackThirdPartySharing(thirdPartySharing);