Unity SDK 고급 옵션

Singular Unity SDK
다운로드 Singular Unity SDK version 2.4.0
호환성

Unity 4.7.2+

샘플 앱 베스트 프랙티스에 기반한 전체 SDK 연동 방법 확인을 위해 샘플 앱을 참조해주세요.
연동 가이드

 

언인스톨 트래킹

주의: 언인스톨 트래킹 기능은 엔터프라이즈 고객사에만 제공됩니다.

Android 언인스톨 트래킹

Android 앱에서 언인스톨 트래킹을 활성화하려면, 우선 언인스톨 트래킹 설정 가이드에 따라 Singular 플랫폼의 App에서 앱을 설정해야 합니다. 설정한 이후 다음 안내 사항을 진행하세요.

주의: Google은 2018년도 4월부터 GCM API를 더 이상 사용하지 않습니다. 언인스톨 트래킹에는 FCM을 사용해 주세요.

Firebase Cloud Messaging (FCM)를 사용해서 언인스톨 트래킹 활성화

1. FCM 연동:

언인스톨 트래킹을 위해서 Firebase Cloud Messaging (FCM) 플랫폼을 사용할 수 있습니다. FCM을 아직 도입하지 않았다면 Google의 Android에서 Firebase 클라우드 메시징 클라이언트 앱 설정 가이드를 따르세요.

FCM 필요 사항 (출처)

FCM 클라이언트에 Android 4.1 이상을 실행하며 Google Play 스토어 앱도 설치되어 있는 기기 또는 Google API로 Android 4.1을 실행하는 에뮬레이터가 필요합니다. Google Play 스토어를 통해서만 Android 앱을 배포하도록 제한되지는 않습니다.

지원되지 않는 버전의 Android를 사용하는 유저나 디바이스에는 Singular의 언인스톨 트래킹이 동작하지 않습니다.

2. AndroidManifest.xml 파일 업데이트

앱의 AndroidManifest.xml 파일에 다음처럼 인텐트 필터를 추가합니다. MyFirebaseMessagingService는 Firebase Service를 구현한 클래스 이름으로 변경하세요.

<service android:name=".java.MyFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter> </service> <service android:name=".java.MyFirebaseMessagingService" android:exported="false"> intent-filter> action android:name="com.google.firebase.MESSAGING_EVENT" /> </intent-filter> </service>

3. FCM 디바이스 토큰 등록 및 전송

마지막으로 FCM 디바이스 토큰을 OnCreate()에서 SingularConfig를 초기화한 이후 시점에 다음처럼 설정합니다.

Singular.setFCMDeviceToken(String fcmDeviceToken);

iOS 언인스톨 트래킹

iOS의 언인스톨 트래킹은 Apple 푸시 노티피케이션 기술을 기반으로 합니다. 앱이 현재 푸시 노티피케이션을 지원하지 않는 경우 Apple의 가이드를 참조하세요. 앱이 이미 푸시 노티피케이션을 지원하는 경우 SDK가 초기화된 이후 RegisterDeviceTokenForUninstall 메서드를 사용하여 APNS에서 반환된 디바이스 토큰을 전달하도록 구현하기만 하면 됩니다.

SingularSDK.RegisterDeviceTokenForUninstall 메서드
정의 APNS에서 반환된 디바이스 토큰을 전달합니다. APNS 토큰은 주로 binary 데이터이지만 Singular 전달시에는 문자열을 사용해야 함에 유의하세요.
메서드
public static void RegisterDeviceTokenForUninstall
(string APNSToken)
사용예
// hex-string 형태로 APNS 토큰 전달 
SingularSDK.RegisterDeviceTokenForUninstall("ba85ab31a7c7
f5c2f012587f29fb0e596d4b67e7b7b2838fa1a8582c1f7dbdee");

글로벌 프로퍼티 추가

Singular SDK로 추가 프로퍼티를 커스텀으로 정의하고 앱에서 발생하는 모든 세션과 이벤트에 포함해서 Singular 서버에 전송할 수 있습니다. 이 프로퍼티는 유저 관련, 앱 모드, 앱 상태 등 어떤 정보이든 될 수 있습니다. 프로퍼티를 설정하면 추후 리포트에서 데이터를 분류하는 디멘션으로 사용할 수 있습니다.

예를 들어 게임 앱이라면 “Level”이라는 프로퍼티를 정의하고 “0”으로 초기화할 수 있습니다. 이 경우 앱에서 보내는 세션과 이벤트에 "Level": "0"이라는 프로퍼티가 포함됩니다. 유저의 레벨이 상승하면 해당 프로퍼티를 “1”로 업데이트하는 것처럼 값은 계속 변경할 수 있습니다. 이렇게 설정하면 플레이어의 게임 레벨에 따른 세션, 이벤트 및 매출 데이터 등을 확인할 수 있습니다.

  • 글로벌 프로퍼티는 최대 5개까지 설정할 수 있습니다.
  • 앱 실행 간에도 최신 값이 유지되며 설정을 해제하거나 유저가 앱을 언언스톨하기 전에는 유지됩니다.
  • 각 프로퍼티 이름과 값은 영문 200자까지 설정할 수 있습니다. 더 긴 이름과 값을 전달하면 200자까지만 확인됩니다.
  • 글로벌 프로퍼티는 현재 Singular의 유저 레벨 이벤트 로그(어트리뷰션 로그 추출 가이드 참조)와 포스트백에서 확인할 수 있습니다. Singular의 집계 리포트 (리포팅 페이지나 리포팅 API)에서의 지원은 추후 추가될 예정입니다. 기능에 대한 질문이 있거나 글로벌 프로퍼티 지원에 관심이 있다면 담당 고객 성공 매니저와 상의하세요.

SingularConfig를 통한 초기화 이전 글로벌 프로퍼티 설정

SingularConfig 내의 setGlobalProperty 메서드를 사용하면 SDK 초기화 이전에 글로벌 프로퍼티를 설정할 수 있습니다.

글로벌 프로퍼티와 값이 앱 실행 사이에도 유지되므로 프로퍼티가 이미 다른 값으로 설정되었을 가능성이 있습니다. SDK에 기존 프로퍼티를 신규 값으로 오버라이딩하려면 overrideExisting 파라미터를 사용하세요.

초기화 이후 글로벌 프로퍼티 설정

앱 실행 중 언제든 다음 메서드를 통해 글로벌 프로퍼티의 설정, 설정 해제 및 값 획득이 가능합니다.

SingularSDK.SetGlobalProperty 메서드
정의

Set a global property to a given value.

주의:

  • 아직 존재하지 않는 프로퍼티를 설정하였으나 이미 5개의 글로벌 프로퍼티가 존재한다면 프로퍼티가 추가되지 않음
  • 프로퍼티가 이미 설정된 경우 overrideExisting 파라미터를 통해 현재 값을 오버라이드할지 결정
  • 프로퍼티가 정상 설정되면 true, 설정되지 않으면 false 값 반환
메서드 public static bool SetGlobalProperty(string key, string value, bool overrideExisting)
사용예
bool result = SingularSDK.SetGlobalProperty("key", "value", false);
SingularSDK.GetGlobalProperties 메서드
정의 모든 글로벌 프로퍼티를 획득하고 맵 형태로 현재 값 반환
메서드 public static Dictionary<string, string> GetGlobalProperties()
사용예
Dictionary<string, string> props = SingularSDK.GetGlobalProperties();
SingularSDK.UnsetGlobalProperty 메서드
정의 하나의 글로벌 프로퍼티 삭제
메서드 public static void UnsetGlobalProperty(string key)
사용예
SingularSDK.UnsetGlobalProperty(“test_key”);
SingularSDK.ClearGlobalProperties 메서드
정의 모든 글로벌 프로퍼티 삭제
메서드 public static void ClearGlobalProperties()
사용예
SingularSDK.clearGlobalProperties();

데이터 개인정보 보호 법률 준수

Singular는 개인정보 보호를 준수하는 기능을 제공하여 GDPR나 CCPA (California Consumer Privacy Act)와 같이 소비자 개인 정보 보호 법률을 준수하고자 하는 고객사를 지원하고 있습니다.   만약 유저가 개인 정보를 공유하도록 동의한 경우 파트너들은 해당 사항에 대해 알림 수신을 원할 수 있습니다.

유저의 정보 공유 동의를 획득하는 방법을 구현했다면 limitDataSharing 메서드를 사용해서 유저의 동의 여부에 대해 알릴 수 있습니다.

  • 유저가 정보 공유를 동의한 경우 SingularSDK.LimitDataSharing(false)를 사용하세요.

  • 유저가 정보 공유를 거부한 경우 SingularSDK.LimitDataSharing(true)를 사용하세요.

Singular는 관련 규정을 준수하기 위해 이 정보를 관련 파트너에게 전달합니다.

주의: 본 메서드 사용은 선택 사항이나, 동의를 얻은 유저임을 구체적으로 알리는 경우에만 파트너가 Singular에게 공유하는 어트리뷰션 정보가 존재할 수 있습니다.

SingularSDK.LimitDataSharing 메서드
정의 Notify Singular of user consent (opt-in) for sharing private data.
메서드 SingularSDK.LimitDataSharing(bool shouldLimitDataSharing)
사용예
// 유저가 데이터 공유를 동의한 경우
SingularSDK.LimitDataSharing(false);

GDPR 규정 준수를 위한 추가 메서드

Singular SDK는 고객사가 GDPR 규정을 준수하고 사용자의 트래킹 동의 및 비동의 사항을 Singular에 알리는데 필요한 여러 메서드를 제공합니다.

SingularSDK.TrackingOptIn 메서드
정의 Singular에 유저의 트래킹 동의(옵트인)를 고지
사용예
SingularSDK.TrackingOptIn();
SingularSDK.TrackingUnder13 메서드
정의 Singular에 유저가 미성년(13세 미만)임을 고지
사용예
SingularSDK.TrackingUnder13();
SingularSDK.StopAllTracking 메서드
정의 해당 앱에서 해당 유저를 트래킹하는 모든 행위를 중단
주의: 이 메서드를 호출하면 SDK가 비활성화되며 앱의 재시작 이후에도 상태 값이 보존됩니다. 트래킹을 재개하려면 resumeAllTracking() 메서드를 명시적으로 호출해야 합니다.
사용예
SingularSDK.StopAllTracking();
SingularSDK.ResumeAllTracking 메서드
정의 해당 앱에서 해당 유저의 트래킹을 재개
사용예
SingularSDK.ResumeAllTracking();
SingularSDK.IsAllTrackingStopped 메서드
정의 해당 앱에서 해당 유저의 트래킹 중단 상태를 확인. StopAllTracking() 메서드를 통해 현재 트래킹이 중단되어 재개되지 않은 상태인 경우 true 값 반환
사용예
SingularSDK.IsAllTrackingStopped();