앱 링크 정보

Android 앱 링크는 Android 6 이상에서 제공되는 특별한 딥 링크 기능으로, 확인된 웹사이트 URL을 클릭하면 사용자가 명확하게 구분하는 대화상자에서 앱을 선택할 필요 없이 Android 앱에서 콘텐츠가 바로 열리도록 합니다. 이를 위해 Android는 웹사이트에 호스팅된 Digital Asset Links 문을 사용하여 웹사이트와 앱 간에 안전하고 확인된 연결을 설정합니다. 연결을 확인한 후 Android는 딥 링크를 웹사이트에서 앱으로 직접 라우팅하여 처리할 수 있습니다.

Android 15부터 동적 앱 링크가 도입되어 앱 링크가 더욱 강력해졌습니다. 새로운 동적 기능을 사용하면 앱의 새 버전을 출시하지 않고도 더 많은 제어 권한으로 앱의 딥 링크 동작을 즉석에서 세부적으로 조정할 수 있습니다.

앱 링크를 사용해야 하는 이유

  • 원활한 사용자 환경 – 검색 결과, 웹사이트, 메시지, 기타 앱에서 앱의 특정 콘텐츠로 사용자를 바로 안내합니다. 앱 링크는 웹사이트와 앱에서 동일한 콘텐츠에 단일 URL을 사용하므로 앱이 설치되지 않은 사용자는 웹사이트로 이동합니다. 404 오류나 기타 오류가 발생하지 않습니다.
  • 보안 강화 – 앱 링크는 도메인 소유권 확인을 요구하므로 다른 앱이 링크를 가로채지 못하도록 합니다.
  • 동적 구성 (Android 15 이상) – 앱의 딥 링크 동작을 즉석에서 업데이트하여 가상 URL, 시즌 캠페인 또는 사용자별 링크와 같은 항목을 더 유연하게 업데이트할 수 있습니다.
  • 참여 – 검색 결과, 광고, 웹페이지, 메시지 등의 링크를 통해 사용자의 참여를 유도할 수 있습니다.

앱 링크를 지원하는 방법

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

또는 Android Studio의 Android 앱 링크 어시스턴트를 사용하여 Android 앱 링크를 만들고 확인하는 데 필요한 각 단계를 안내받을 수 있습니다. 자세한 내용은 앱 링크 개발자 도구를 참고하세요.

  • 동적 앱 링크 – Android 15 (API 수준 35) 이상, Google 서비스가 설치된 기기
  • 앱 링크 – Android 6 (API 수준 23) 이상, Google 서비스가 설치된 기기
  • 일반 (사용자 관리) 딥 링크 – 모든 Android 버전, 모든 기기

앱 링크 작동 방식

앱 링크는 자체 웹사이트로 연결되는 링크의 처리를 완전히 제어할 수 있는 특별한 딥 링크 방식입니다. 다른 딥 링크 유형에서 사용하는 것과 동일한 인텐트 기반 시스템을 기반으로 하지만 웹사이트의 디지털 애셋 링크 파일을 사용하여 링크에 확인 단계를 추가합니다.

앱 링크는 앱 데이터와 웹사이트 또는 도메인에서 호스팅하는 특수 assetlinks.json 파일을 사용하여 앱과 웹사이트 간에 안전하고 신뢰할 수 있는 연결을 만듭니다. assetlinks.json 파일은 앱 연결을 확인하기 위해 디지털 애셋 링크 문을 선언합니다.

개념적 흐름은 다음과 같습니다.

  1. 앱의 매니페스트는 인텐트 필터에서 URL을 선언하고 android:autoVerify="true"를 사용하여 웹사이트 호스트를 가리킵니다.
  2. 앱이 설치되면 Android 시스템은 웹 서버의 알려진 위치에서 assetlinks.json 파일을 가져옵니다.
  3. 시스템은 assetlinks.json 파일이 유효하고 sha256_cert_fingerprints가 앱의 서명 인증서와 일치하는지 확인합니다.
  4. 사용자가 일치하는 링크를 클릭하면 시스템은 명확하게 구분하는 대화상자를 표시하지 않고 사용자를 앱으로 직접 라우팅합니다.

앱 링크는 HTTP URL과 웹사이트 연결을 사용하므로 앱이 설치되지 않은 사용자는 사이트의 콘텐츠로 바로 이동합니다. 이러한 방식으로 앱 링크는 웹 속성의 딥 링크를 탭하는 사용자에게 신뢰할 수 있고 원활한 환경을 제공합니다.

Android 15부터 동적 앱 링크가 도입되어 앱 링크가 더욱 강력해졌습니다. 동적 앱 링크를 사용하면 앱의 새 버전을 게시하지 않고도 서버 측의 assetlinks.json 파일에서 딥 링크 규칙을 업데이트할 수 있습니다. 동적 앱 링크는 딥 링크 규칙을 세부적으로 조정하기 위해 디지털 애셋 링크 필드를 지원합니다. Google 서비스가 설치된 Android 기기는 파일을 주기적으로 새로고침하고 새로운 딥 링크 규칙을 동적으로 적용합니다. 앱 업데이트는 필요하지 않습니다.

이전에는 이 파일이 주로 기본 확인에 사용되었습니다. 이제 경로, 쿼리 매개변수, 프래그먼트, 제외를 지정할 수 있는 강력한 구성 도구로, 동적이고 강력한 딥 링크 솔루션을 제공합니다.

  • 제외 지원: 앱 링크 구성과 일치하더라도 앱을 열지 않아야 하는 URL의 특정 경로 또는 섹션을 지정할 수 있습니다.
  • 쿼리 매개변수 지원: 새로운 쿼리 매개변수 기능을 사용하면 URL에 있는 경우 앱이 열리지 않도록 하는 특정 매개변수를 정의할 수 있습니다. 이를 통해 동적 제외, A/B 테스트, 특정 사용자 세그먼트에 앱 링크를 점진적으로 사용 설정하는 등의 흥미로운 가능성을 열 수 있습니다.
  • 동적 업데이트: 서버에 호스팅된 assetlinks.json 파일 내에서 앱이 직접 처리하는 URL 경로를 지정하여 앱을 업데이트하지 않고도 앱 링크 구성을 업데이트할 수 있습니다.

동적 앱 링크를 사용하면 URL 경로, 프래그먼트, 쿼리 매개변수 일치를 비롯하여 앱을 열려는 URL을 세부적으로 제어할 수도 있습니다. 일치 항목을 제외하여 앱을 열지 못하도록 할 수도 있습니다. 자세한 내용은 동적 규칙 구성을 참고하세요.

동적 앱 링크의 개념적 흐름은 다음과 같습니다.

  1. 앱의 매니페스트는 인텐트 필터에서 URL을 선언하고 android:autoVerify="true"를 사용하여 웹사이트 호스트를 가리킵니다.
  2. 앱이 설치되면 Android 시스템은 웹 서버의 알려진 위치에서 assetlinks.json 파일을 가져옵니다.
  3. 시스템은 파일이 유효하고 sha256_cert_fingerprints가 앱의 서명 인증서와 일치하는지 확인합니다.
  4. 시스템은 디지털 애셋 링크 문의 dynamic_app_deep_link_components 필드 내에 정의한 딥 링크 규칙을 파싱하고 매니페스트 선언 규칙과 병합합니다.
    1. 사용자가 일치하는 링크를 클릭하면 시스템은 명확하게 구분하는 대화상자를 표시하지 않고 사용자를 앱으로 직접 안내합니다.
  5. 시스템은 assetlinks.json 파일을 최신 규칙을 가져오기 위해 **주기적으로 다시 가져오므로** 앱 업데이트 없이 링크를 업데이트할 수 있습니다. 주기적인 다시 가져오기는 Android 15 (API 수준 35) 이상을 실행하고 Google 서비스가 설치된 기기에서 지원됩니다.

사용 사례 예시

  • 시즌 마케팅 캠페인: 소매 앱은 `/promo/summer-sale` 규칙을 assetlinks.json 파일에 추가하여 사용자를 특정 할인 화면으로 안내할 수 있습니다. 할인이 종료되면 사용자가 앱을 업데이트하지 않고도 규칙을 삭제할 수 있습니다.
  • 파트너의 가상 URL: 인플루언서와 파트너십을 맺은 경우 '/partner/influencer-name'과 같은 맞춤 URL을 만들고 규칙을 추가할 수 있습니다. 그런 다음 파트너십이 변경됨에 따라 이 URL을 동적으로 추적, 업데이트 또는 삭제할 수 있습니다.
  • A/B 테스트 URL 경로: 개발자는 특정 URL 경로에서 새 기능을 게시하고 assetlinks.json 파일에 규칙을 추가할 수 있습니다. 이를 통해 일부 사용자를 대상으로 기능을 테스트한 다음 전체 앱 배포 없이 라우팅을 수정할 수 있습니다.
  • 단기 이벤트: 티켓팅 또는 이벤트 앱은 특정 이벤트의 URL 규칙을 추가할 수 있습니다. 이벤트가 종료되면 서버에서 이러한 규칙을 삭제할 수 있습니다.

앱 링크 구현과의 호환성

Android 15의 동적 앱 링크 확장 프로그램은 이전 버전의 Android를 실행하는 기기의 기존 앱 링크 구현과 완전히 호환되도록 설계되었습니다. 하위 앱 버전은 동적 구성 또는 구성 기능을 사용할 수 없으며 매니페스트에 선언된 규칙으로 대체됩니다. 이전 Android 버전의 사용자를 위해 앱 링크는 앱을 올바르게 열거나 웹으로 정상적으로 대체할 수 있습니다. 대부분의 경우 나머지 사용자층의 환경에 영향을 미치지 않고 동적 규칙을 안전하게 배포할 수 있습니다.

동적 앱 링크 필터 규칙 설정 시 고려사항

Android 15 이상에서 동적 앱 링크와 함께 사용할 인텐트 필터를 설정하는 경우 서버 측 assetlinks.json 파일에 정의된 경로 수준 라우팅 규칙은 매니페스트 파일 인텐트 필터 규칙에서 정적으로 설정한 범위를 확장할 수 없습니다.

따라서 매니페스트 인텐트 필터에서 가능한 가장 광범위한 범위를 설정한 다음 서버 측 assetlinks.json 규칙을 사용하여 추가로 세부적으로 조정하는 것이 좋습니다. 이 이상적인 구성을 사용하면 매니페스트에 설정된 광범위한 범위 내에 맞는 새로운 앱 링크를 동적으로 추가할 수 있습니다.

앱 링크 구현 계획

앱 링크를 지원하려면 앱에서 구현해야 하며 서버 측에서 assetlinks.json 파일을 설정해야 합니다. 일반적인 준비 및 구현 작업은 여기에 나열되어 있으며 자세한 내용은 다른 리소스의 링크를 참고하세요.

  • 딥 링크 계획 – 필요한 딥 링크, 사용할 URL 패턴, 업데이트 시점 및 방법, 각 URL이 앱에서 확인하려는 Activity 또는 작업을 평가하는 것으로 시작합니다.
  • 동적 앱 링크 지원 - 최신 Android 기기의 사용자에게 최상의 환경을 제공합니다. Android 15 이상을 사용하는 사용자를 위해 동적 앱 링크를 활용합니다.
  • 동적 필터 규칙 계획 – 동적 앱 링크를 사용하는 경우 서버 측 규칙이 앱 매니페스트의 정적으로 정의된 규칙과 어떻게 작동하는지 계획합니다. assetlinks.json 파일의 필터 규칙은 앱 매니페스트 필터의 범위를 확장할 수 없습니다. 매니페스트 필터가 가능한 가장 광범위한 범위를 선언하도록 계획한 다음 서버 측 규칙이 필요에 따라 이러한 규칙을 세부적으로 조정할 수 있습니다. 자세한 내용은 동적 규칙 구성을 참고하세요.
  • 링크의 인텐트 필터 만들기 및 테스트 – 인텐트 필터에서 딥 링크를 선언하고 URL 패턴 일치 및 수신 인텐트 처리를 테스트합니다. 동적 앱 링크를 지원하려면 일부 세부 경로를 서버 측 JSON 파일로 이동해야 할 수 있습니다.
  • 수신 앱 링크 인텐트에서 데이터 읽기 - 수신 딥 링크 인텐트를 적절하게 처리하여 적절한 Activity로 확인합니다. 앱 링크의 구현은 수신 인텐트에서 데이터 읽기에 설명된 일반 딥 링크와 동일합니다.
  • 웹사이트 연결 및 동적 규칙 구성 - 앱 링크를 지원하려면 웹사이트 또는 도메인에서 호스팅되는 서버 측 파일을 구성해야 합니다. Android 기기는 이 파일을 가져와 앱으로 앱 링크 구현을 검증합니다. 자세한 내용은 여기를 참고하세요.
  • 앱 링크 확인 테스트 - Android 시스템이 딥 링크를 자동으로 확인할 수 있는지 확인합니다. 디버깅 및 엔드 투 엔드 테스트를 사용하여 구성이 안전하고 확인된 모든 앱 링크 경로에서 올바르게 작동하는지 확인합니다.
  • Android Studio 및 Play Console을 비롯하여 앱 링크를 설정하는 데 사용할 수 있는 도구에 관해 알아봅니다. 자세한 내용은 여기를 참고하세요.