adjust-icon

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

시작에 앞서

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

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

SDK 설치

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

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

  2. Podfile에 다음 줄을 추가합니다.

    Podfile
    pod 'Adjust/AdjustWebBridge', :git => 'https://github.com/adjust/ios_sdk.git', :tag => 'v5.0.0'
  3. pod install을 실행하여 디펜던시를 설치합니다.

변경 사항

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 구성의 변경 사항을 다룹니다.

IDFA 읽기 비활성화

SDK v5에서는 AdjustConfig 인스턴스에서 disableIdfaReading 메서드를 호출하여 Adjust SDK 가 광고주에 대한 기기 ID(IDFA)를 읽는 것을 방지할 수 있습니다.

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

AdServices 정보 읽기 비활성화

SDK v4에서는 AdjustConfig 인수와 함께 setAllowAdServicesInfoReading 메서드를 호출하여 Adjust SDK가 AdServices 정보를 읽는 것을 방지할 수 있습니다.

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

SDK v5에서는 Adjust SDK가 AdServices 정보를 읽는 것을 방지하려면 인수 없이 disableAdServices 메서드를 호출해야 합니다.

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

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 인스턴스의 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는 이벤트 버퍼링을 지원합니다. 이 기능은 요청 이벤트, 광고 매출, 푸시 토큰 및 기타 정보를 로컬 버퍼에 저장하여 나중에 전송할 수 있게 해줍니다.

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에서 제거되었습니다.

setPushToken

SDK v4는 푸시 토큰과 함께 Adjust.setDeviceToken 를 호출하여 기기 푸시 토큰 설정을 지원합니다.

Adjust.setDeviceToken(deviceToken);

이 기능은 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 v5에서는 AdjustConfig 인스턴스의 disableDeferredDeeplinkOpening 메서드를 호출하여 SDK가 디퍼드 딥링크를 여는 것을 방지할 수 있습니다.

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

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

Adjust.appWillOpenUrl(data, getApplicationContext());

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

Adjust LinkMe

SDK v4에서는 AdjustConfig 인스턴스의 setLinkMeEnabled 메서드를 부울 인수와 함께 호출하여 Adjust 웹 브릿지를 통해 Adjust LinkMe 를 활성화할 수 있습니다.

setupWebViewJavascriptBridge(function (bridge) {
var yourAppToken = yourAppToken;
var environment = AdjustConfig.EnvironmentSandbox;
var adjustConfig = new AdjustConfig(yourAppToken, environment);
adjustConfig.setLinkMeEnabled(true);
});

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

프라이버시 기능

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

COPPA 준수

SDK v4에서 COPPA 준수 는 부울 인수와 함께 AdjustConfig 인스턴스에서 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에서는 소스와 페이로드를 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);

SKAdNetwork 및 ATT

이 섹션에서는 SDK v5의 SKAdNetwork 및 App Tracking Transparency(ATT) 기능의 변경 사항을 다룹니다.

SKAdNetwork 어트리뷰션 비활성화

SDK v5에서는 AdjustConfig 인스턴스의 disableSkanAttributionHandling 메서드를 호출하여 Adjust SDK가 Apple의 SKAdNetwork로 어트리뷰션 정보를 전송하는 것을 방지할 수 있습니다.

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

SKAdNetwork 업데이트 콜백

SDK v5에서는 콜백 함수와 함께 AdjustConfig 인스턴스의 setSkanUpdatedCallback 메서드를 호출하여 사용자의 SKAdNetwork 전환값이 변경될 때 콜백 함수를 실행하도록 Adjust SDK를 구성할 수 있습니다.

const adjustConfig = new AdjustConfig(this, appToken, environment);
adjustConfig.setSkanUpdatedCallback(function (skanData) {
alert("SKAN: " + skanData.error);
});

ATT 승인 상태 요청

SDK v4에서는 Adjust.requestTrackingAuthorizationWithCompletionHandler 메서드를 사용하여 사용자의 ATT 승인 상태 변경 사항을 처리할 수 있습니다.

Adjust.requestTrackingAuthorizationWithCompletionHandler(function(status) {
alert('Permission status\n' + status);
};

명확성을 위해 SDK v5에서 이름이 requestAppTrackingAuthorizationWithCompletionHandler으로 변경되었습니다.

Adjust.requestAppTrackingAuthorizationWithCompletionHandler(function(status) {
alert('Permission status\n' + status);
};

ATT 상태 확인

SDK v4에서는 Adjust.checkForNewAttStatus 메서드를 호출하여 사용자의 ATT 상태에 대한 변경 사항을 확인할 수 있습니다.

Adjust.checkForNewAttStatus();

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

디바이스 정보 확인

이 섹션에서는 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);
});