Unity SDK - 딥 링크 지원

문서

딥링킹 지원 추가

딥링크는사용자를 앱 내의 특정 콘텐츠로 연결합니다. 사용자가 앱이 설치된 기기에서 딥링크를 탭하면 앱이 제품 페이지나 특정 경험 등 의도한 콘텐츠로 바로 연결됩니다.

Singular 추적 링크는 표준 딥링킹(설치된 앱의 경우)과 디퍼드 딥링킹(신규 설치의 경우)을 모두 지원합니다. 자세한 내용은 딥링킹 FAQSingular 링크 FAQ를 참조하세요.


앱에 딥링킹을 사용하려면 Singular 링크 사전 요구 사항을완료하세요.

참고:

  • 이 문서에서는 귀하의 조직이 Singular의 추적 링크 기술인 Singular 링크를사용하고 있다고 가정합니다. 기존 고객은 레거시 트래킹 링크를 사용하고 있을 수 있습니다. 레거시 링크를 통한 딥링킹을 지원하려면 이 가이드 끝에 있는 레거시 링크 섹션을 참조하세요.
  • 앱의 딥링크 대상은 Singular의 페이지에서 설정해야 합니다( 어트리뷰션 추적을 위해 앱 구성하기 참조).

Singular 링크 핸들러는 앱이 열릴 때 Singular 추적 링크에서 딥링크, 디퍼드 딥링크 및 패스스루 파라미터를 검색하는 콜백 메커니즘을 제공합니다.

사용 가능한 파라미터

  • 딥링크(_dl): 링크를 클릭하는 사용자의 앱 내 목적지 URL입니다.
  • 디퍼드 딥링크(_ddl): 링크를 클릭한 후 앱을 설치하는 사용자를 위한 목적지 URL
  • 패스스루(_p): 추가 컨텍스트를 위해 추적 링크를 통해 전달되는 사용자 지정 데이터

안드로이드 앱 링크 기술을 통해 딥링킹을 지원하도록 안드로이드 앱을 구성합니다.

프로젝트 > 에셋 > 플러그인 > 안드로이드 > 안드로이드 매니페스트.xml을열고 활동 이름을 업데이트합니다.

다음에서 변경합니다:

XML
<activity android:name="com.unity3d.player.UnityPlayerActivity"

변경 대상::

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

사용자 지정 활동 구현: 사용자 지정 활동을 구현한 경우 활동의 onNewIntent 메소드에 다음을 추가합니다:

Java
import com.singular.unitybridge.SingularUnityBridge;

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

    // Call this method from your custom activity in onNewIntent
    SingularUnityBridge.onNewIntent(intent);
}

인텐트 필터를 추가하여 안드로이드 앱 링크를 지원합니다. android:host 값은 Singular 링크 도메인과 일치해야 합니다.

AndroidManifest.xml
<!-- Added Intent Filter for Singular Android Links Deeplinking -->
<!-- Replace example.sng.link with your Singular Links domain -->
<intent-filter android:autoVerify="true">
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT" />
  <category android:name="android.intent.category.BROWSABLE" />
  <data android:scheme="http" />
  <data android:scheme="https" />
  <data android:host="example.sng.link" />
  <data android:pathPrefix="/A"/>
  <data android:pathPrefix="/B"/>
  <data android:pathPrefix="/E"/>
  <data android:pathPrefix="/F"/>
</intent-filter>

자세한 설정 지침은 Singular 링크 안드로이드 사전 요구 사항을완료하세요.


유니버설 링크 및 사용자 지정 URL 체계를 통해 딥링킹을 지원하도록 iOS 앱을 구성합니다.

  1. Singular 링크 도메인을 구성합니다: 어트리뷰션 > 링크 관리페이지의 Singular 링크에서 하나 이상의 하위 도메인을 설정합니다.
  2. 연결된 도메인을 활성화합니다: Apple 개발자 포털에서 식별자로 이동하여 앱을 선택한 다음, 기능 메뉴에서 연결된 도메인을 활성화합니다.
  3. Xcode에 도메인을 추가합니다: Xcode 프로젝트에서 프로젝트 설정 > 기능 > 연결된 도메인으로이동하여 applinks:yourdomain.sng.link형식으로 Singular 링크 도메인을 추가합니다.
  4. 팀 ID 구성: Apple 개발자 포털에서 "앱 접두사"(팀 ID)를 복사합니다.
  5. Singular에 팀 ID를 추가합니다: Singular에서 앱 구성으로 이동하여 앱을 찾은 다음 iOS 앱 고급 설정을 확장하고 팀 ID를 붙여넣습니다. 이렇게 하면 Singular가 유니버설 링크용 apple-app-site-association 파일을 호스팅할 수 있습니다.

유니버설 링크가 작동하지 않는 경우 사용자 지정 URL 구성표를 폴백으로 추가합니다.

  1. Singular의 iOS 앱 고급 설정(팀 ID 아래)에서 iOS 앱 스키마를입력합니다.
  2. Xcode 프로젝트의 정보 > URL 유형에서앱 스키마를 "URL 유형"으로 등록합니다.

iOS URL 체계에 대한 자세한 내용은 Apple의 개발자 문서를 참조하세요.


앱이 실행될 때 들어오는 딥링크 및 디퍼드 딥링크 데이터를 처리하도록 Singular링크 핸들러를 구성합니다.

  1. Singular링크핸들러 인터페이스를 메인 클래스에 추가하거나 전용 클래스를 생성하여 SingularSDKObject에 첨부합니다.
  2. Script 상단에 Singular 지시문을 추가합니다( using Singular;).
  3. 클래스에서 Singular링크핸들러 인터페이스를 구현합니다.
  4. SetSingularLinkHandler() 을 호출하여 핸들러를 등록합니다( Awake() 함수에서 권장).
  5. OnSingularLinkResolved() 을 재정의하여 딥링크 매개변수를 처리합니다.
C#
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Singular;

public class DeepLinkManager : MonoBehaviour, SingularLinkHandler
{
    void Awake()
    {
        Debug.Log("Registering Singular Link Handler");

        // Register this class as the Singular Link handler
        // This will fetch the tracking link details and call OnSingularLinkResolved
        SingularSDK.SetSingularLinkHandler(this);
    }

    // Callback method that receives deep link parameters
    public void OnSingularLinkResolved(SingularLinkParams linkParams)
    {
        Debug.Log("Singular Link Resolved");

        // Extract parameters from the tracking link
        string deeplink = linkParams.Deeplink;
        string passthrough = linkParams.Passthrough;
        bool isDeferred = linkParams.IsDeferred;

        // Log the parameters
        Debug.Log($"Deeplink: {deeplink ?? "null"}");
        Debug.Log($"Passthrough: {passthrough ?? "null"}");
        Debug.Log($"Is Deferred: {isDeferred}");

        // Handle deep link routing
        if (!string.IsNullOrEmpty(deeplink))
        {
            HandleDeepLink(deeplink, isDeferred);
        }
    }

    private void HandleDeepLink(string url, bool isDeferred)
    {
        // Your deep link routing logic here
        Debug.Log($"Routing to: {url} (Deferred: {isDeferred})");

        // Example: Parse the URL and navigate to the appropriate screen
        // if (url.Contains("product"))
        // {
        //     NavigateToProduct(url);
        // }
    }
}

참고: Singular링크 핸들러는 앱이 Singular 링크를 통해 열릴 때만 트리거됩니다. 자세한 내용은 Singular 링크 FAQ를 참조하세요.


Singular링크 핸들러는 앱이 새로 설치되었는지 또는 이미 설치되었는지에 따라 다르게 동작합니다.

새로 설치한 경우 앱이 실행될 때 오픈 URL이 존재하지 않습니다. 추적 링크에 딥링크 또는 디퍼드 딥링크 값이 포함되어 있는지 확인하기 위해 Singular 어트리뷰션이 완료됩니다.

디퍼드 딥링크 흐름:

  1. 사용자가 딥링크 값으로 구성된 Singular 트래킹 링크를 클릭합니다.
  2. 사용자가 앱을 처음 설치하고 실행합니다.
  3. Singular SDK가 첫 번째 세션을 Singular 서버로 전송합니다.
  4. 어트리뷰션이 트래킹 링크에서 딥링크를 식별하고 어트리뷰션을 완료합니다.
  5. 딥링크 값이 deeplink 파라미터의 SingularLinkHandler에 isDeferred = true으로 반환됩니다.

디퍼드 딥링크 테스트:

  1. 테스트 기기에서 앱을 제거합니다(현재 앱이 설치되어 있는 경우).
  2. iOS: IDFA를 재설정합니다. Android:구글 광고 ID(GAID)를 재설정합니다.
  3. 기기에서 Singular 추적 링크를 클릭합니다(딥링크 값으로 구성되어 있는지 확인).
  4. 앱을 설치하고 엽니다.

어트리뷰션이 성공적으로 완료되고 디퍼드 딥링크 값이 Singular링크 핸들러에 전달됩니다.

프로 팁: 다른 패키지 이름이나 번들 ID를 사용하는 개발 빌드로 딥링크를 테스트하는 경우, 개발 앱의 식별자에 맞게 추적 링크를 구성하세요. 테스트 링크를 클릭한 후 앱 스토어에서 프로덕션 앱을 다운로드하지 말고 Unity 또는 플랫폼별 툴을 통해 개발 빌드를 디바이스에 직접 설치합니다.


앱이 이미 설치된 경우 Singular 링크를 클릭하면 유니버설 링크(iOS) 또는 Android 앱 링크 기술을 사용하여 앱이 즉시 열립니다.

즉시 딥링크 흐름:

  1. 사용자가 Singular 추적 링크를 클릭합니다.
  2. 운영 체제는 전체 Singular 추적 링크가 포함된 오픈 URL을 제공합니다.
  3. SDK 초기화 중에 Singular가 URL을 구문 분석합니다.
  4. Singular가 deeplinkpassthrough값을 추출합니다.
  5. 값은 SingularLinkHandler를 통해 isDeferred = false으로 반환됩니다.

패스스루 매개변수를 사용하여 추적 링크 클릭에서 추가 데이터를 캡처합니다.

추적 링크에 passthrough (_p) 파라미터가 포함된 경우, SingularLinkHandler의 passthrough 파라미터에 해당 데이터가 포함됩니다. 캠페인 메타데이터, 사용자 세분화 데이터 또는 앱에서 필요한 사용자 지정 정보를 캡처하는 데 사용합니다.


_forward_params=2 파라미터를 추가하여 추적 링크 URL에서 모든 쿼리 파라미터를 캡처합니다.

_forward_params=2 을 추적 링크에 추가하면 모든 쿼리 파라미터가 SingularLinkHandler의 deeplink 파라미터에 포함되므로 모든 파라미터가 포함된 전체 URL에 액세스할 수 있습니다.

추적 링크 예시:
https://yourapp.sng.link/A1b2c/abc123?_dl=myapp://product/123&_forward_params=2&utm_source=facebook&promo=SALE2024

Singular링크 핸들러가 수신합니다:
deeplink = "myapp://product/123?utm_source=facebook&promo=SALE2024"