adjust-icon

Android Web bridge v5 마이그레이션 가이드

시작에 앞서

SDK v5로 업데이트하기 전에 다음을 수행하시기 바랍니다.

  1. SDK v5는 SDK Signature(SDK 서명) 인증을 기본적으로 지원합니다. 현재 SDK 서명 라이브러리를 사용하는 경우 먼저 이것을 삭제해야 합니다.
  2. 앱이 21보다 낮은 버전의 API를 대상으로 하는 경우 SDK v5를 사용하려면 앱을 업데이트해야 합니다.

SDK 설치

SDK v5를 사용하려면 프로젝트에서 디펜던시로 추가해야 합니다. 다음을 수행하시기 바랍니다.

  1. 현재 build.gradle 파일에 있는 이전 버전의 SDK를 모두 제거합니다.

  2. 다음의 디펜던시를 build.gradle 파일에 추가합니다.

    build.gradle
    dependencies {
    implementation 'com.adjust.sdk:adjust-android:5.0.0'
    implementation 'com.android.installreferrer:installreferrer:2.2'
    // Add the following if you are using the Adjust SDK inside web views on your app
    implementation 'com.adjust.sdk:adjust-android-webbridge:5.0.0'
    }

변경 사항

v5 SDK를 설치한 후에는 새로운 API를 사용할 수 있도록 기존의 Adjust 코드를 업데이트해야 합니다.

초기화 메서드

SDK v4에서 초기화 메서드는 Adjust.onCreate(AdjustConfig)입니다. 이것이 SDK v5에서 Adjust.initSdk(AdjustConfig)로 변경되었습니다.

const adjustConfig = new AdjustConfig(this, appToken, environment);
Adjust.onCreate(adjustConfig); // v4
Adjust.initSdk(adjustConfig); // v5

구성

이 섹션에서는 SDK 구성의 변경 사항을 다룹니다.

SDK 비활성화 및 활성화

SDK v4에서는 boolean 값과 함께 Adjust.setEnabled()를 호출하여 SDK를 활성화 및 비활성화할 수 있습니다.

  • SDK를 비활성화하려면 Adjust.setEnabled(false)를 호출합니다.
  • SDK를 활성화하려면 Adjust.setEnabled(true)를 호출합니다.
Adjust.setEnabled(false); // disable SDK
Adjust.setEnabled(true); // enable SDK

SDK v5에서는 명확성을 위해 이 기능이 별도의 명령으로 분리되었습니다.

  • SDK를 비활성화하려면 Adjust.disable()를 호출합니다.
  • SDK를 활성화하려면 Adjust.enable()를 호출합니다.
Adjust.disable(); // disable SDK
Adjust.enable(); // enable SDK

오프라인 모드

SDK v4에서는 boolean 값과 함께 Adjust.setOfflineMode()를 호출하여 SDK의 오프라인 모드를 활성화 및 비활성화할 수 있습니다.

Adjust.setOfflineMode(false); // put SDK in offline mode
Adjust.setOfflineMode(true); // put SDK back in online mode

SDK v5에서는 명확성을 위해 이 기능이 별도의 명령으로 분리되었습니다.

  • SDK를 오프라인 모드로 설정하려면 Adjust.switchToOfflineMode()를 호출합니다.
  • SDK를 온라인 모드로 전환하려면Adjust.switchBackToOnlineMode()를 호출합니다.
Adjust.switchToOfflineMode(); // put SDK in offline mode
Adjust.switchBackToOnlineMode(); // put SDK back in online mode

사전 설치 기록

SDK v4에서는 AdjustConfig 인스턴스의 setPreinstallTrackingEnabled 메서드를 부울 인수와 함께 호출하여, 앱이 기기에 사전 설치된 경우 Adjust SDK가 설치 데이터를 Adjust에 전송하도록 할 수 있습니다.

const adjustConfig = new AdjustConfig(this, appToken, environment);
adjustConfig.setPreinstallTrackingEnabled(true);

SDK v5에서는 명확성을 위해 이 메서드의 이름이 enabledPreinstallTracking로 변경되었습니다. 이 새로운 메서드는 인수를 사용하지 않습니다.

const adjustConfig = new AdjustConfig(this, appToken, environment);
adjustConfig.enablePreinstallTracking();

어트리뷰션에서 비용 데이터 활성화

SDK v4에서는 부울 인수와 함께 AdjustConfig 인스턴스의 setNeedsCost 메서드를 호출하여 SDK가 사용자 어트리뷰션의 일부로서 비용 데이터를 전송하도록 할 수 있습니다.

const adjustConfig = new AdjustConfig(this, appToken, environment);
adjustConfig.setNeedsCost(true);

SDK v5에서는 명확성을 위해 이 메서드의 이름이 enableCostDataInAttribution로 변경되었습니다. 이 새로운 메서드는 인수를 사용하지 않습니다.

const adjustConfig = new AdjustConfig(this, appToken, environment);
adjustConfig.enableCostDataInAttribution();

백그라운드에서 정보 전송

SDK v4에서는 AdjustConfig 인스턴스의 setSendInBackground 메서드를 부울 인수로 호출하여 앱이 백그라운드에서 실행 중일 때 SDK가 Adjust에 정보를 전송하도록 할 수 있습니다.

const adjustConfig = new AdjustConfig(this, appToken, environment);
adjustConfig.setSendInBackground(true);

SDK v5에서는 이 메서드의 이름이 enableSendingInBackground로 변경되었습니다. 이 새로운 메서드는 인수를 사용하지 않습니다.

const adjustConfig = new AdjustConfig(this, appToken, environment);
adjustConfig.enableSendingInBackground();

기기 ID를 한 번만 읽기

SDK v4에서는 AdjustConfig 인스턴스의 setReadDeviceInfoOnceEnabled 메서드를 부울 값과 함께 호출하여 초기화 시 기기 ID를 한 번만 읽도록 SDK를 구성할 수 있습니다.

const adjustConfig = new AdjustConfig(this, appToken, environment);
adjustConfig.setReadDeviceInfoOnceEnabled(true);

SDK v5에서는 명확성을 위해 이 메서드의 이름이 enableDeviceIdsReadingOnce로 변경되었습니다. 이 새로운 메서드는 인수를 사용하지 않습니다.

const adjustConfig = new AdjustConfig(this, appToken, environment);
adjustConfig.enableDeviceIdsReadingOnce();

이벤트 버퍼링

SDK v4는 이벤트 버퍼링을 지원합니다. 이 기능은 요청 이벤트, 광고 매출, 푸시 토큰 및 기타 정보를 로컬 버퍼에 저장하여 나중에 전송할 수 있게 해줍니다.

const adjustConfig = new AdjustConfig(this, appToken, environment);
adjustConfig.setEventBufferingEnabled(true);

이 설정은 SDK v5에서 제거되었습니다.

사용자 지정 사용자 에이전트 문자열

SDK v4는 사용자 에이전트 문자열로 AdjustConfig 인스턴스의 setUserAgent 메서드를 호출하여 커스텀 사용자 에이전트 설정을 지원합니다.

const adjustConfig = new AdjustConfig(this, appToken, environment);
adjustConfig.setUserAgent("user_agent_value");

이 설정은 SDK v5에서 제거되었습니다.

알려진 기기 여부 설정

SDK v4에서는 setDeviceKnown 메서드를 호출하여 알려진 기기인지 여부를 수동으로 SDK에 알릴 수 있습니다.

const adjustConfig = new AdjustConfig(this, appToken, environment);
adjustConfig.setDeviceKnown(true);

이 설정은 SDK v5에서 제거되었습니다.

SDK 작동 시작 지연

SDK v4는 최대 120초 지연과 함께 AdjustConfig 인스턴스에서 setDelayStart 메서드를 호출하여 SDK 시작 지연을 지원합니다. 지연이 끝나기 전에 앱이 준비된 경우 Adjust.sendFirstPackages 를 호출하여 정보를 즉시 전송할 수 있습니다.

const adjustConfig = new AdjustConfig(this, appToken, environment);
adjustConfig.setDelayStart(delay);
Adjust.sendFirstPackages();

이 두 메서드는 모두 SDK v5에서 제거되었습니다.

기능 기록

이 섹션에서는 Adjust로 정보를 전송하는 기능의 변경 사항을 다룹니다.

세션 콜백 파라미터

세션 콜백 파라미터가 SDK v5에서 글로벌 콜백 파라미터로 이름이 변경되었습니다.

Adjust.addSessionCallbackParameter("foo", "bar");
Adjust.removeSessionCallbackParameter("foo");
Adjust.resetSessionCallbackParameters();
Adjust.addGlobalCallbackParameter("foo", "bar");
Adjust.removeGlobalCallbackParameter("foo");
Adjust.removeGlobalCallbackParameters();

세션 파트너 파라미터

세션 파트너 파라미터가 SDK v5에서 글로벌 파트너 파라미터로 이름이 변경되었습니다.

Adjust.addSessionPartnerParameter("foo", "bar");
Adjust.removeSessionPartnerParameter("foo");
Adjust.resetSessionPartnerParameters();
Adjust.addGlobalPartnerParameter("foo", "bar");
Adjust.removeGlobalPartnerParameter("foo");
Adjust.removeGlobalPartnerParameters();

이벤트 중복 제거

SDK v4에서는 이벤트 중복 제거가 이벤트 order ID와 결합되어 있으며 최대 10개의 고유 ID로 제한됩니다.

const event = new AdjustEvent("event_token");
event.setOrderId("deduplication_id");
Adjust.trackEvent(event);

SDK v5에서는 이 기능이 order ID와 분리되었습니다. 이벤트 중복 제거를 위해 deduplicationId라는 새로운 ID 필드가 추가되었습니다. 사용자는 중복 이벤트를 식별하기 위해 목록에 추가할 수 있는 deduplicationId 수의 사용자 지정 한도를 설정할 수 있습니다. 기본 설정에 따라 한도는 10 으로 설정되어 있습니다.

const adjustConfig = new AdjustConfig(this, appToken, environment);
adjustConfig.setEventDeduplicationIdsMaxSize(20); // if not set, then 10
Adjust.initSdk(adjustConfig);
const event = new AdjustEvent("event_token");
event.setDeduplicationId("deduplication_id");
Adjust.trackEvent(event);

이 섹션에서는 SDK v5에서 딥링킹의 변경 사항을 다룹니다.

SDK v4에서는 Adjust.appWillOpenUrl() 메서드를 호출하여 웹 브릿지에서 Adjust에 딥링크 URL을 전달할 수 있습니다.

Adjust.appWillOpenUrl(data, getApplicationContext());

이 메서드는 SDK v5에서 제거되었습니다.

프라이버시 기능

이 섹션에서는 Adjust SDK에서 프라이버시 기능의 변경 사항을 다룹니다.

COPPA 준수

SDK v4에서 COPPA 준수 는 boolean 인수와 함께 config 객체의 setCoppaCompliantEnabled 메서드를 호출하여 설정됩니다.

const adjustConfig = new AdjustConfig(this, appToken, environment);
adjustConfig.setCoppaCompliantEnabled(true);

SDK v5에서는 명확성을 위해 이 메서드의 이름이 enableCoppaCompliance로 변경되었습니다. 이 새로운 메서드는 인수를 허용하지 않습니다.

const adjustConfig = new AdjustConfig(this, appToken, environment);
adjustConfig.enableCoppaCompliance();

플레이 스토어 어린이용 앱

SDK v4에서는 boolean 인수와 함께 config 객체의 setPlayStoreKidsAppEnabled 메서드를 호출하여 앱을 Play Store Kids 앱 으로 표시할 수 있습니다.

const adjustConfig = new AdjustConfig(this, appToken, environment);
adjustConfig.setPlayStoreKidsAppEnabled(true);

SDK v5에서는 명확성을 위해 이 메서드의 이름이 enablePlayStoreKidsCompliance로 변경되었습니다. 이 새로운 메서드는 인수를 허용하지 않습니다.

const adjustConfig = new AdjustConfig(this, appToken, environment);
adjustConfig.enablePlayStoreKidsCompliance();

특정 소스로부터 광고 매출 전송

SDK v4에서는 소스와 페이로드를 Adjust.trackAdRevenue() 메서드에 전달하여 특정 소스로부터의 광고 매출을 전송할 수 있습니다.

Adjust.trackAdRevenue(source, payload);

이 메서드는 SDK v5에서 제거되었습니다.

데이터 레지던시 및 URL 전략 설정

SDK v4에서는 URL 전략 및 데이터 레지던시 도메인이 AdjustConfig 클래스의 상수로 정의됩니다.

const adjustConfig = new AdjustConfig(this, appToken, environment);
adjustConfig.setUrlStrategy(AdjustConfig.DataResidencyEU);

SDK v5에서는 선택한 도메인을 배열로 전달해야 합니다. 또한 다음 항목을 설정할 수 있습니다.

  • useSubdomains (boolean): 소스가 하위 도메인을 접두사로 사용해야 하는지 여부.
  • isDataResidency (boolean): 도메인을 데이터 레지던시에 사용해야 하는지 여부.
const adjustConfig = new AdjustConfig(this, appToken, environment);
const domains = ["domain1", "domain2"];
const useSubdomains = true;
const isDataResidency = false;
adjustConfig.setUrlStrategy(domains, useSubdomains, isDataResidency);

아래 표를 보고 SDK v5에서 URL 전략을 구성하는 방법을 확인하시기 바랍니다.

예시
인도 URL 전략
const adjustConfig = new AdjustConfig(this, appToken, environment);
adjustConfig.setUrlStrategy(["adjust.net.in", "adjust.com"], true, false);
중국 URL 전략
const adjustConfig = new AdjustConfig(this, appToken, environment);
adjustConfig.setUrlStrategy(["adjust.world", "adjust.com"], true, false);
중국 전용 URL 전략
const adjustConfig = new AdjustConfig(this, appToken, environment);
adjustConfig.setUrlStrategy(["adjust.cn"], true, false);
EU 데이터 레지던시
const adjustConfig = new AdjustConfig(this, appToken, environment);
adjustConfig.setUrlStrategy(["eu.adjust.com"], true, true);
터키 데이터 레지던시
const adjustConfig = new AdjustConfig(this, appToken, environment);
adjustConfig.setUrlStrategy(["tr.adjust.com"], true, true);
미국 데이터 레지던시
const adjustConfig = new AdjustConfig(this, appToken, environment);
adjustConfig.setUrlStrategy(["us.adjust.com"], true, true);

글로벌 서드파티 공유 비활성화

SDK v4에서는 Adjust.disableThirdPartySharing() 메서드를 호출하여 전 세계에서 서드파티와의 정보 공유를 비활성화할 수 있습니다.

Adjust.disableThirdPartySharing();

이 기능은 SDK v5에서 제거되었습니다. SDK v5에서는 Adjust.trackThirdPartySharing() 메서드를 사용하여 서드파티 공유를 활성화 또는 비활성화합니다.

const adjustThirdPartySharing = new AdjustThirdPartySharing(true);
Adjust.trackThirdPartySharing(adjustThirdPartySharing);

디바이스 정보 확인

이 섹션에서는 SDK v5에서 디바이스 정보 게터의 변경 사항을 다룹니다.

기기 ID 게터

SDK v4에서는 모든 기기 ID 게터 메서드가 동기적으로 실행됩니다. SDK v5에서는 이러한 메서드가 비동기적으로 실행되도록 변경되었습니다.

ADID 게터
Adjust.getAdid(function (adid) {
alert("Ad Id:\n" + adid);
});
어트리뷰션 정보 게터
Adjust.getAttribution(function (attribution) {
alert(
"Tracker token = " +
attribution.trackerToken +
"\n" +
"Tracker name = " +
attribution.trackerName +
"\n" +
"Network = " +
attribution.network +
"\n" +
"Campaign = " +
attribution.campaign +
"\n" +
"Adgroup = " +
attribution.adgroup +
"\n" +
"Creative = " +
attribution.creative +
"\n" +
"Click label = " +
attribution.clickLabel,
);
});
SDK 버전 게터
Adjust.getSdkVersion(function (sdkVersion) {
alert("SDK version:\n" + sdkVersion);
});
활성화된 상태 게터
Adjust.isEnabled(function (isEnabled) {
alert("Is SDK enabled? " + isEnabled);
});