React Native SDK: SKAdNetwork 지원 추가

Singular React Native SDK
다운로드 Singular React Native SDK 1.1.6 버전
호환성 React Native 0.46.4+
연동 가이드

 

소개: SKAdNetwork와 SKAN

SKAdNetwork는 유저의 개인 정보를 침해하지 않고 모바일 인스톨 어트리뷰션을 판정하기 위한 Apple의 신규 프레임워크입니다. SKAdNetwork를 사용하면 사용자의 개인 식별 정보를 공유하지 않는 방식으로 앱 마케팅 캠페인 성과를 측정할 수 있습니다.

Singular의 새로운 iOS SDK 버전을 통해 최소한의 개발 리소스로도 SKAdNetwork를 원할히 구현할 수 있습니다.

본 SKAdNetwork 구현은 Singular가 SKAdNetwork를 매끄럽게 구현할 수 있도록 고안한 SKAN 표준안을 따릅니다. SKAN 대한 더 자세한 내용은 SKAN 2020년 7월에 발표된 SKAN 사양을 참조하세요.

SKAdNetwork 트래킹 활성화

Singular 초기화 이전에 skAdNetworkEnabled 설정 옵션을 켜면 앱 내 SKAdNetwork 트래킹을 활성화할 수 있습니다.

const config = new SingularConfig('<API_KEY>', '<SECRET>');

// Enable SKAdNetwork
config.withSkAdNetworkEnabled(true);

// Enable manual conversion value updates
config.withManualSkanConversionManagement();

// Register to a callback for when the conversion value is updated
config.conversionValueUpdatedHandler(value => {
	console.log(`Updated conversion value: ${value}`);
  });

Singular.init(config);

전환값(Conversion Value) 업데이트 처리

관리 모드(Managed Mode)

기본적으로 SKAdNetwork 구현은 Singular 서버 측에서 전환값을 직접 관리합니다.

이를 통해 클라이언트측 코드를 직접 변경하는 대신 Singular 웹앱 플랫폼에서 전환값을 설정하고 변경할 수 있어 보다 편리하고 유연하게 사용할 수 있습니다.

또한 서버측 관리 모드로 SKAdNetwork 타이머 관리 역시 도울 수 있습니다. SKAdNetwork의 전환값은 SKAdNetwork 등록 이후 24시간 이내에만 업데이트할 수 있습니다. 전환값 업데이트를 호출할 때마다 해당 타이머는 24시간 연장됩니다. 따라서 전환값을 선택할 때 해당 이벤트가 업데이트 윈도우 내에 일어나도록 관리해야 합니다. 관리 모드에서는 새로운 앱 버전을 업데이트하지 않고도 언제든 전환 이벤트 설정을 바꿀 수 있습니다.

매뉴얼 모드

관리 모드 사용 대신 앱 코드 내에서 직접 전환값을 수동 업데이트하고자 한다면 SDK 초기화시 withManualSkanConversionManagement를 호출하세요.

const config = new SingularConfig('<API_KEY>', '<SECRET>');
// Enable SKAdNetwork
config.withSkAdNetworkEnabled(true);

// Enable manual conversion value updates
config.withManualSkanConversionManagement();

Singular.init(config);

이후 앱의 생명주기에 맞춰 skanUpdateConversionValue 메서드를 사용해서 전환값을 업데이트할 수 있습니다.

skanUpdateConversionValue 메서드 (JavaScript)
정의 SKAdNetwork 전환값을 수동으로 업데이트
메서드 Singular.skanUpdateConversionValue(conversionValue)
사용예
// signup 이벤트 발생
Singular.event("SignUp");

// 전환값을 7로 업데이트
Singular.skanUpdateConversionValue(7);

주의: 매뉴얼 업데이트 옵션을 설정하지 않으면 skanUpdateConversionValue 메서드가 동작하지 않습니다.

전환값 획득

현재의 전환값을 확인하려면 skanGetConversionValue 메서드를 사용하세요. 이 메서드는 관리 모드와 매뉴얼 모드 모두에서 사용할 수 있습니다.

skanGetConversionValue 메서드 (JavaScript)
정의 Singular SDK에서 트래킹된 현재 전환값 획득
메서드 Singular.skanGetConversionValue()
사용예
const conversionValue = Singular.skanGetConversionValue();

기타 iOS 14 업데이트

App Tracking Transparency Consent Handling

주의: 2020년 9월 3일, Apple은 발표를 통해 iOS 14의 특정 개인 정보 기능 도입의 지연을 안내했습니다. 특히 IDFA 사용을 위해 AppTrackingTransparency를 사용해야만 하는 요구 사항을 내년 초까지 지연하기로 했습니다. 이 변화 사항으로 iOS 14에서 IDFA가 사용 가능하므로 AppTrackingTransprency 팝업창을 구현하지 않기를 권장합니다. 더 많은 내용은 iOS 14 베타 7과 IDFA 사용 가능 포스팅에서 확인하세요.

이어지는 내용은 해당 지연 기간이 끝나고 iOS 14에서 아직 적용되지 않은 추후의 버전, 즉 IDFA 획득을 위해 AppTrackingTransparency가 필요하도록 요구되도록 변경되는 향후 시점에 적용되는 내용입니다.

iOS 14에서 예고된 또다른 변화는 디바이스의 IDFA 값을 포함한 유저 데이터 일부에 접근하려면 App Tracking Transparency 프레임워크를 통해 유저 동의를 받아야 한다는 것입니다. If you want to initialize the Singular SDK before you ask the user for consent, you can delay the SDK from firing events without IDFA for a specified interval of time, in order to wait for user consent.Singular SDK를 유저 동의 전에 초기화하는 경우 유저의 동의를 기다리기 위해 SDK가 IDFA 없이 이벤트를 발송하는 것을 일정 시간 동안 지연할 수 있습니다.

SDK의 세션 발생을 지연하려면 아래 예제 코드처럼 Singular SDK 초기화시 waitForTrackingAuthorizationWithTimeoutInterval 옵션을 추가하세요.

const config = new SingularConfig('<API_KEY>', '<SECRET>');

// SKAdNetwork 활성화
config.withSkAdNetworkEnabled(true);

// 이벤트를 보내기 전 트래킹 권한 획득을 5분간 기다립니다.
config.withWaitForTrackingAuthorizationWithTimeoutInterval(300)

Singular.init(config);