Android 앱 링크 처리하기

딥 링크는 콘텐츠 URI를 처리합니다. 웹 링크는 HTTP 및 HTTPS 스키마를 처리합니다. Android App Links가 autoVerify 속성을 처리합니다.
그림 1. 딥 링크, 웹 링크, Android App Links의 기능

사용자가 기기에서 링크를 따라갈 때는 보고 싶은 콘텐츠에 도달하려는 한 가지 목표를 염두에 두고 있습니다. 개발자는 앱 선택 대화상자(명확성 대화상자라고도 함)를 건너뛰고 앱에서 링크의 특정 콘텐츠로 사용자를 바로 연결하도록 Android 앱 링크를 설정할 수 있습니다. Android 앱 링크는 HTTP URL 및 웹사이트 연결을 활용하기 때문에 앱을 설치하지 않은 사용자는 개발자의 사이트에 있는 콘텐츠로 바로 연결됩니다.

Android 앱 링크를 구현하기 전에 Android 앱에서 만들 수 있는 다양한 링크 유형(딥 링크, 웹 링크, Android 앱 링크)을 이해하는 것이 중요합니다. 그림 1은 이러한 유형의 링크 간의 관계를 보여주며 다음 섹션에서는 각 유형의 링크를 자세히 설명합니다.

딥 링크는 사용자를 앱의 특정 부분으로 직접 연결하는 스키마의 URL입니다. 딥 링크를 만들려면 다음 코드 스니펫과 같이 인텐트 필터를 추가하여 사용자를 앱의 올바른 활동으로 유도합니다.

<activity
    android:name=".MyMapActivity"
    android:exported="true"
    ...>
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="geo" />
    </intent-filter>
</activity>

사용자가 딥 링크를 클릭하면 명확성 대화상자가 표시될 수 있습니다. 이 대화상자를 통해 사용자는 특정 딥 링크를 처리할 수 있는 여러 앱 중 하나를 선택할 수 있습니다(앱 포함). 그림 2는 사용자가 지도 링크를 클릭할 때 지도 또는 Chrome에서 링크를 열 것인지 묻는 대화상자를 보여줍니다.

그림 2. 명확성 대화상자

웹 링크는 HTTP 및 HTTPS 스키마를 사용하는 딥 링크입니다. Android 12 이상에서는 Android App Link가 아닌 웹 링크를 클릭하면 항상 웹브라우저에 콘텐츠가 표시됩니다. 이전 버전의 Android를 실행하는 기기에서 앱 또는 사용자 기기에 설치된 다른 앱이 웹 링크를 처리할 수도 있는 경우 사용자가 브라우저로 바로 이동하지 않을 수 있습니다. 대신 그림 2에 표시된 것과 유사한 구분 대화상자가 표시됩니다.

다음 코드 스니펫은 웹 링크 필터의 예를 보여줍니다.

<intent-filter>
    <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:host="myownpersonaldomain.com" />
</intent-filter>

Android 6.0 (API 수준 23) 이상에서 사용할 수 있는 Android App Links는 HTTP 및 HTTPS 스키마를 사용하고 autoVerify 속성이 포함된 웹 링크입니다. 이 속성을 사용하면 앱이 특정 유형의 링크에 적용되는 기본 핸들러로 앱 자체를 지정할 수 있습니다. 따라서 사용자가 Android App Link를 클릭하면 앱이 설치되어 있는 경우 즉시 열리며 명확성 대화상자는 표시되지 않습니다.

사용자가 앱을 기본 핸들러로 사용하지 않으려는 경우 앱 설정에서 이 동작을 재정의할 수 있습니다.

다음 코드 스니펫은 Android 앱 링크 필터의 예를 보여줍니다.

<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" />

    <!-- Do not include other schemes. -->
    <data android:scheme="http" />
    <data android:scheme="https" />

    <data android:host="myownpersonaldomain.com" />
</intent-filter>

Android 앱 링크의 이점은 다음과 같습니다.

  • 안전성 및 구체성: Android 앱 링크는 내가 소유한 웹사이트 도메인에 연결되는 HTTP URL을 사용하므로, 다른 앱이 내 링크를 사용할 수 없습니다. Android 앱 링크의 요구사항 중 하나는 Google의 웹사이트 연결 방법 중 하나를 통해 개발자의 도메인 소유권을 확인하는 것입니다.
  • 원활한 사용자 환경: Android 앱 링크는 웹사이트와 앱에 있는 동일한 콘텐츠에 단일 HTTP URL을 사용하므로 앱을 설치하지 않은 사용자는 앱이 아니라 웹사이트로 연결됩니다. 404 오류가 아닙니다.
  • Android 인스턴트 앱 지원: Android 인스턴트 앱을 통해 사용자는 Android 앱을 설치하지 않고도 실행할 수 있습니다. Android 앱에 인스턴트 앱 지원을 추가하려면 Android 앱 링크를 설정하고 g.co/InstantApps를 참고하세요.
  • Google 검색에서 사용자 참여: 사용자는 모바일 브라우저, Google 검색 앱, Android의 화면검색에서 Google이 제공한 URL을 클릭하거나 Google 어시스턴트를 통해 앱에서 곧바로 특정 콘텐츠를 엽니다.

Android 앱 링크를 만드는 단계는 일반적으로 다음과 같습니다.

  1. 앱의 특정 콘텐츠로 연결되는 딥 링크 만들기: 앱 매니페스트에서 웹사이트 URI의 인텐트 필터를 만들고 인텐트의 데이터를 사용하여 사용자를 앱의 올바른 콘텐츠로 안내하도록 앱을 구성합니다. 앱 콘텐츠로 연결되는 딥 링크 만들기에서 자세히 알아보세요.
  2. 딥 링크의 인증 추가하기: 앱 링크 인증을 요청하도록 앱을 구성합니다. 그런 다음 Google Search Console을 통해 소유권을 확인하도록 디지털 애셋 링크 JSON 파일을 웹사이트에 게시합니다. 앱 링크 인증하기에서 자세히 알아보세요.

위 링크의 문서에서 설명하는 방법 대신 Android 스튜디오의 Android App Links Assistant라는 도구를 사용하면 Android 앱 링크를 만드는 데 필요한 단계를 하나하나 따라갈 수 있습니다.

자세한 내용은 다음 리소스를 참조하세요.

Android App Links 관리 및 확인

Play Console을 통해 딥 링크를 관리하고 확인할 수 있습니다. 앱이 업로드되면 대시보드(성장 > 딥 링크 아래에 있음)에 딥 링크 및 구성 오류의 개요가 표시됩니다.

그림 3. Play Console 딥 링크 대시보드

대시보드에는 다음 섹션이 있습니다.

  • 전체 딥 링크 구성의 주요 내용
  • 매니페스트 파일에 선언된 모든 도메인
  • 경로별로 그룹화된 웹 링크
  • 맞춤 스키마가 있는 링크
이러한 각 섹션에는 딥 링크 상태와 오류가 발생할 경우 이를 해결하는 방법이 표시됩니다.

대시보드에 대한 자세한 내용은 이 가이드를 참고하세요.