Unity SDK: 딥링크 구현

Singular Unity SDK
다운로드 Singular Unity SDK version 2.1.2
호환성 Unity 4.7.2+
샘플 앱 Review our sample app for an example of a complete SDK integration based on best practices.
연동 가이드

 

소개

딥링크란 앱 내의 특정 컨텐츠로 연결하는 링크를 의미합니다. 유저가 앱이 설치된 디바이스에서 딥링크를 클릭하면 앱의 특정 컨텐츠가 열리면서 유저를 특정 프로덕트로 인도하거나 유저에게 특정 경험을 제공할 수 있습니다.

Singular 트래킹 링크에는 이러한 딥링크와 디퍼드 딥링크를 포함할 수 있습니다. 자세한 내용은 딥링크 FAQSingular 링크 FAQ를 참조하세요.

본 가이드는 다음 내용을 안내합니다.

  • 앱이 열렸을 때 이를 유발한 트래킹 링크에 접근합니다.
  • 딥링크 목적지를 읽습니다.
  • 의도한 컨텐츠를 보여 줍니다.

주의:

  • 본 문서는 2019년 도입된 Singular의 새로운 트래킹 링크 기술인 Singular 링크를 사용하는 고객사 기준으로 기술되었습니다. 이전 고객사는 Singular 링크 대신 이전 트래킹 링크(레가시 링크)를 사용하고 있을 수 있습니다. 레가시 링크에서 딥링크를 사용하려면 레가시 링크에서 딥링크 처리 항목을 참조하세요.
  • 앱 내의 딥링크 목적지는 Singular의 Apps 페이지에 입력되어야 합니다. 딥링크 URL 설정 부분을 참고하세요.

딥링크 준비 사항

iOS와 Android 설정

딥링크를 활성화하려면 Singular 링크 필수 조건 문서의 지시 사항을 따르세요.

Unity 추가 설정

앱의 AndroidManifest.xml 파일 내에서 activity 이름 속성을 기본 UnityPlayerActivity (예: <activity android:name="net.singular.unitysdk.UnityPlayerActivity">)에서 SingularUnityActivity로 변경합니다.

<activity android:name="com.singular.unitybridge.SingularUnityActivity">

커스텀 액티비티를 직접 구현한 경우 해당 액티비티 내의 onNewIntent에서 다음 메서드를 호출해 주세요.

@Override
protected void onNewIntent(Intent intent) {
    setIntent(intent);

    // 커스텀 액티비티의 onNewIntent 내에서 다음 메서드 호출
    SingularUnityBridge.onNewIntent(intent);
}

딥링크 처리

Singular SDK는 핸들러 동작 원리를 사용해서 앱을 열리게 한 트래킹 링크의 세부 사항을 확인합니다.

핸들러는 다음 단계를 통해 사용할 수 있습니다.

  • SingularLinkHandler 인터페이스를 구현합니다.
  • 클래스 내에서 SetSingularLinkHandler 메서드를 호출해서 딥링크를 위한 핸들러로 클래스를 등록합니다.
  • SetSingularLinkHandler를 호출하면 Singular SDK가 트래킹 링크를 가져 와서 OnSingularLinkResolved 메서드를 호출하고 트래킹 링크 세부 사항을 해당 메서드에 전달합니다. 링크의 세부 사항을 읽고 처리하려면 이 메서드를 오버라이드하세요.

다음 샘플 코드에서 위에서 설명한 세 가지 단계를 확인할 수 있습니다.

public class Main : SingularLinkHandler {
    // ...
    void Awake () {
      // 딥링크를 위한 핸들러로 클래스를 등록
      //앱이 실행되는 어느 시점에서던지 이 메서드를 호출할 수 있습니다. 이는 트래킹 링크 세부사항을 가져와서 OnSingularLnkResolved를 호출합니다..
      SingularSDK.SetSingularLinkHandler(this);
    }
    
    public void OnSingularLinkResolved(SingularLinkParams linkParams) {
      // Manage Links 페이지에서 설정된 딥링크 목적지
      string deeplink = linkParams.Deeplink;
      
      // passthrough 파라미터를 링크에 설정한 경우
      string passthrough = linkParams.Passthrough;
      
      // 디퍼드 딥링크로 링크가 설정된 경우
      bool isLinkDeferred = linkParams.IsDeferred;
      
      // 딥링크를 처리하기 위한 코드를 아래에 추가하세요.
    }
    
    // ...

 

SetSingularLinkHandler 메서드 세부 사항
정의 앱을 열게 한 트래킹 링크의 세부 사항을 검색할 핸들러 등록
메서드
public void SetSingularLinkHandler(SingularLinkHandler 
handler)
사용예
public class Main : MonoBehaviour, SingularLinkHandler {
    void Awake () {
        SingularSDK.SetSingularLinkHandler(this)
    }
}
OnSingularLinkResolved 메서드 세부 사항
정의 SetSingularLinkHandler를 위한 콜백 메서드. Read the tracking link details and process them.트래킹 링크 세부 사항을 읽고 처리
메서드
public void OnSingularLinkResolved(SingularLinkParams
linkParams)

주의: SingularLinkParams 오브젝트에는 아래 값이 포함됩니다.

  • Deeplink - Singular 플랫폼의 Manage Links 페이지에서 설정된 딥링크 목적지
  • Passthrough - passthrough 파라미터를 링크에 설정한 경우의 passthrough 값
  • IsDeferred - 디퍼드 딥링크로 링크가 설정된 경우
사용예
public void OnSingularLinkResolved(SingularLinkParams
linkParams){ // 트래킹 링크 세부 사항을 읽고 로그로 남기는 예제 Debug.Log("deeplink: " + linkParams.Deeplink); Debug.Log("passthrough: " + linkParams.Passthrough); Debug.Log("is_deferred: " + linkParams.IsDeferred); }

레가시 링크에서 딥링크 처리

기존 Singular 고객사라면 새로 추가된 Singular 링크가 아니라 Singular의 예전 트래킹 링크 동작 원리인 레가시 트래킹 링크를 사용하고 있을 수 있습니다. Create LinkView Links 페이지에서 관리되는 레가시 링크에서도 딥링크와 디퍼드 딥링크 기능을 제공합니다.

레가시 링크를 사용하는 경우 위에서 설명한 SingularLinksHandler 대신 SingularDeferredDeepLinkHandler라는 딥링크 핸들러를 사용해야 하며, 구현 방법은 유사합니다.

도움이 되었습니까?