Android 앱 링크 처리하기

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

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

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

딥 링크는 사용자를 앱의 특정 부분으로 직접 안내하는 스키마의 URI입니다. 딥 링크를 만들려면 다음 코드 스니펫과 같이 인텐트 필터를 추가하여 앱에서 적절한 활동으로 사용자를 유도합니다.

<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 Links를 클릭하면 앱이 설치되어 있는 경우 즉시 열리며 명확성 대화상자가 표시되지 않습니다.

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

다음 코드 스니펫은 Android App Links 필터의 예를 보여줍니다.

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

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

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

Android App Links를 만드는 일반적인 단계는 다음과 같습니다.

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

위에 링크된 문서의 대안으로, Android App Links Assistant는 Android 스튜디오의 도구로, Android App Links를 만드는 데 필요한 각 단계를 안내합니다.

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

Android App Links 관리 및 확인

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

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

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

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

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