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 Links가 아닌 웹 링크를 클릭하면 항상 웹브라우저에 콘텐츠가 표시됩니다. 이전 버전의 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 App Links는 웹사이트와 앱의 동일한 콘텐츠에 단일 HTTP URL을 사용하므로 앱을 설치하지 않은 사용자는 앱이 아닌 웹사이트로 연결됩니다. 404 오류가 없으며 오류가 없습니다.
  • Android 인스턴트 앱 지원: Android 인스턴트 앱을 사용하면 사용자가 Android 앱을 설치하지 않고도 실행할 수 있습니다. Android 앱에 인스턴트 앱 지원을 추가하려면 Android 앱 링크를 설정하고 g.co/InstantApps를 참고하세요.
  • Google 검색에서 사용자 참여: 사용자는 모바일 브라우저, Google 검색 앱, Android의 화면검색에서 Google이 제공한 URL을 클릭하거나 Google 어시스턴트를 통해 앱에서 곧바로 특정 콘텐츠를 엽니다.

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

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

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

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

Android App Links 관리 및 확인

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

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

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

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

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