Android 앱 링크는 Android 6 이상에서 제공되는 특별한 딥 링크 기능으로, 인증된 웹사이트 URL을 클릭하면 명확성 대화상자에서 사용자가 앱을 선택할 필요 없이 Android 앱에서 해당 콘텐츠가 바로 열립니다. 이를 위해 Android는 웹사이트에 호스팅된 디지털 애셋 링크 문을 사용하여 웹사이트와 앱 간에 안전하고 확인된 연결을 설정합니다. 연결을 확인한 후 Android는 웹사이트의 딥 링크를 앱으로 직접 라우팅하여 처리할 수 있습니다.
Android 15부터 동적 앱 링크가 도입되어 앱 링크가 더욱 강력해졌습니다. 새로운 동적 기능을 사용하면 앱의 새 버전을 출시하지 않고도 더 세밀하게 제어하면서 앱의 딥 링크 동작을 즉시 조정할 수 있습니다.
앱 링크를 사용해야 하는 이유:
- 원활한 사용자 환경: 검색 결과, 웹사이트, 메시지, 기타 앱에서 사용자를 앱의 특정 콘텐츠로 바로 연결합니다. 앱 링크는 웹사이트와 앱에 있는 동일한 콘텐츠에 단일 URL을 사용하므로 앱을 설치하지 않은 사용자는 앱이 아니라 웹사이트로 연결됩니다. 404 오류가 아닙니다.
- 보안 강화: 앱 링크는 도메인 소유권 확인이 필요하므로 다른 앱이 링크를 가로채지 못합니다.
- 동적 구성 (Android 15 이상): 앱의 딥 링크 동작을 즉시 업데이트하여 URL, 시즌 캠페인, 사용자별 링크와 같은 항목을 더 유연하게 업데이트할 수 있습니다.
- 참여도: 검색 결과, 광고, 웹페이지, 메시지 등의 링크를 통해 사용자의 참여를 유도할 수 있습니다.
앱 링크 지원 방법
- 앱의 특정 콘텐츠로 연결되는 딥 링크 만들기: 앱 매니페스트에서 웹사이트 URI의 인텐트 필터를 만들고 인텐트에서 얻은 데이터를 사용하여 사용자를 앱의 올바른 콘텐츠로 안내하도록 앱을 구성합니다. 자세히 알아보세요.
- 딥 링크의 인증 추가하기: 앱 링크 인증을 요청하도록 앱을 구성합니다. 그런 다음 소유권을 확인하도록 디지털 애셋 링크 JSON 파일을 웹사이트에 게시합니다.
또는 Android 스튜디오의 Android App Links Assistant를 사용하여 Android 앱 링크를 만들고 확인하는 데 필요한 단계를 안내받을 수 있습니다. 자세한 내용은 App Links 개발자 도구를 참고하세요.
앱 링크 사용 가능 여부
- 동적 App Links – Android 15 (API 수준 35) 이상, Google 서비스가 설치된 기기
- App Links – Android 6 (API 수준 23) 이상, Google 서비스가 설치된 기기
- 일반 (사용자 관리) 딥 링크: 모든 기기에서 모든 Android 버전
앱 링크의 작동 방식
앱 링크는 자체 웹사이트로 연결되는 링크의 처리를 완전히 제어할 수 있는 특별한 딥 링크 방식입니다. 다른 딥 링크 유형에서 사용하는 동일한 인텐트 기반 시스템을 기반으로 하지만 웹사이트의 디지털 애셋 링크 파일을 사용하여 링크에 대한 확인 단계를 추가합니다.
앱 링크는 앱 데이터와 웹사이트 또는 도메인에서 호스팅하는 특수 assetlinks.json
파일을 사용하여 앱과 웹사이트 간에 안전하고 신뢰할 수 있는 연결을 만듭니다. assetlinks.json
파일은 앱 연결을 확인하는 디지털 애셋 링크 문을 선언합니다.
개념적 흐름은 다음과 같습니다.
- 앱의 매니페스트는
android:autoVerify="true
'를 사용하여 인텐트 필터에서 URL을 선언하고 웹사이트 호스트를 가리킵니다. - 앱이 설치되면 Android 시스템은 웹 서버의 알려진 위치에서
assetlinks.json
파일을 가져옵니다. - 시스템은
assetlinks.json
파일이 유효하고sha256_cert_fingerprints
이 앱의 서명 인증서와 일치하는지 확인합니다. - 사용자가 일치하는 링크를 클릭하면 시스템은 세부 설정 대화상자를 표시하지 않고 사용자를 앱으로 직접 라우팅합니다.
앱 링크는 HTTP URL 및 웹사이트 연결을 사용하므로 앱을 설치하지 않은 사용자는 개발자의 사이트에 있는 콘텐츠로 바로 연결됩니다. 이러한 방식으로 앱 링크는 웹 속성의 딥 링크를 탭하는 사용자에게 신뢰할 수 있는 원활한 환경을 제공합니다.
동적 앱 링크
Android 15부터 동적 앱 링크가 도입되어 앱 링크가 더욱 강력해졌습니다. 동적 앱 링크를 사용하면 앱의 새 버전을 게시하지 않고도 서버 측의 assetlinks.json
파일에서 딥 링크 규칙을 업데이트할 수 있습니다. 동적 앱 링크는 디지털 애셋 링크 필드를 지원하여 딥 링크 규칙을 세부적으로 조정할 수 있습니다. Google 서비스가 설치된 Android 기기는 파일을 주기적으로 새로고침하고 새로운 딥 링크 규칙을 동적으로 적용합니다. 앱 업데이트가 필요하지 않습니다.
이전에는 이 파일이 주로 기본 확인에 사용되었습니다. 이제 경로, 쿼리 매개변수, 프래그먼트, 제외를 지정할 수 있는 강력한 구성 도구가 되어 동적이고 강력한 딥 링크 솔루션을 제공합니다.
- 제외 지원: 앱 링크 구성과 일치하는 URL의 특정 경로 또는 섹션이라도 앱을 열지 않아야 하는 경우를 지정할 수 있습니다.
- 쿼리 매개변수 지원: 새로운 쿼리 매개변수 기능을 사용하면 URL에 있는 경우 앱이 열리지 않도록 하는 특정 매개변수를 정의할 수 있습니다. 이를 통해 동적 제외, A/B 테스트, 특정 사용자 세그먼트에 대한 앱 링크 점진적 사용 설정 등 다양한 가능성이 열립니다.
- 동적 업데이트: 서버에 호스팅된
assetlinks.json
파일 내에서 앱이 직접 처리하는 URL 경로를 지정하여 앱을 업데이트하지 않고도 앱 링크 구성을 업데이트할 수 있습니다.
동적 앱 링크를 사용하면 URL 경로, 프래그먼트, 쿼리 매개변수 일치를 비롯하여 앱을 열려는 URL을 세부적으로 제어할 수 있습니다. 일치 항목을 제외하여 앱을 열지 못하도록 할 수도 있습니다. 자세한 내용은 동적 규칙 구성을 참고하세요.
다음은 동적 앱 링크의 개념적 흐름입니다.
- 앱의 매니페스트는
android:autoVerify="true
'를 사용하여 인텐트 필터에서 URL을 선언하고 웹사이트 호스트를 가리킵니다. - 앱이 설치되면 Android 시스템은 웹 서버의 알려진 위치에서
assetlinks.json
파일을 가져옵니다. - 시스템에서 파일이 유효하고
sha256_cert_fingerprints
이 앱의 서명 인증서와 일치하는지 확인합니다. - 시스템은 디지털 애셋 링크 문에서
dynamic_app_deep_link_components
필드 내에 정의한 딥 링크 규칙을 파싱하고 매니페스트 선언 규칙과 병합합니다.- 사용자가 일치하는 링크를 클릭하면 시스템은 확인 대화상자를 표시하지 않고 사용자를 앱으로 바로 안내합니다.
- 시스템은 최신 규칙을 가져오기 위해 주기적으로
assetlinks.json
파일을 다시 가져오므로 앱 업데이트 없이 링크를 업데이트할 수 있습니다. 주기적 재가져오기는 Android 15 (API 수준 35) 이상을 실행하고 Google 서비스가 설치된 기기에서 지원됩니다.
사용 사례 예시
- 시즌별 마케팅 캠페인: 소매 앱은
assetlinks.json
파일에 '/promo/summer-sale' 규칙을 추가하여 사용자를 특정 할인 화면으로 안내할 수 있습니다. 할인이 종료되면 사용자가 앱을 업데이트하지 않아도 규칙을 삭제할 수 있습니다. - 파트너용 가상 URL: 인플루언서와 파트너십을 맺은 경우 '/partner/influencer-name'과 같은 맞춤 URL을 만들고 규칙을 추가할 수 있습니다. 그런 다음 파트너십이 변경될 때 이 URL을 동적으로 추적, 업데이트 또는 삭제할 수 있습니다.
- URL 경로 A/B 테스트: 개발자가 특정 URL 경로에 새 기능을 게시하고
assetlinks.json
파일에 규칙을 추가할 수 있습니다. 이를 통해 사용자는 일부 사용자를 대상으로 기능을 테스트한 후 전체 앱을 배포하지 않고 라우팅을 수정할 수 있습니다. - 단기 이벤트: 티켓팅 또는 이벤트 앱은 특정 이벤트의 URL 규칙을 추가할 수 있습니다. 이벤트가 종료되면 서버에서 이러한 규칙을 삭제할 수 있습니다.
앱 링크 구현과의 호환성
Android 15의 동적 앱 링크 확장 프로그램은 이전 버전의 Android를 실행하는 기기에서 기존 앱 링크 구현과 완전히 호환되도록 설계되었습니다. 앱 버전이 낮으면 동적 구성이나 구성 기능을 사용할 수 없으며 매니페스트에 선언된 규칙으로 대체됩니다. 이전 Android 버전의 사용자를 위해 앱 링크가 앱을 올바르게 열거나 웹으로 정상적으로 대체될 수 있습니다. 대부분의 경우 나머지 사용자층의 환경에 영향을 주지 않고 동적 규칙을 안전하게 배포할 수 있습니다.
동적 앱 링크 필터 규칙 설정 시 고려사항
Android 15 이상에서 동적 앱 링크와 함께 사용할 인텐트 필터를 설정하는 경우 서버 측 assetlinks.json 파일에 정의된 경로 수준 라우팅 규칙은 매니페스트 파일 인텐트 필터 규칙에 정적으로 설정한 범위를 확장할 수 없습니다.
따라서 매니페스트 인텐트 필터에서 가능한 가장 광범위한 범위를 설정한 다음 서버 측 assetlinks.json 규칙을 사용하여 추가로 세부 조정하는 것이 좋습니다. 이 이상적인 구성을 사용하면 매니페스트에 설정된 광범위한 범위에 맞는 새 앱 링크를 동적으로 추가할 수 있습니다.
앱 링크 구현 계획
앱 링크를 지원하려면 앱에서 구현해야 할 뿐만 아니라 서버 측에서 assetlinks.json
파일을 설정해야 합니다. 일반적인 준비 및 구현 작업은 여기에 나열되어 있으며 자세한 내용은 다른 리소스로 연결되는 링크를 참고하세요.
- 딥 링크 계획하기 - 필요한 딥 링크, 사용할 URL 패턴, 업데이트 방법과 시기, 각 URL이 앱에서 해결되기를 원하는 활동 또는 작업에 대한 평가부터 시작하세요.
- 동적 앱 링크 지원 - 최신 Android 기기 사용자에게 최상의 환경을 제공하세요. Android 15 이상을 사용하는 사용자를 위해 동적 앱 링크를 활용하세요.
- 동적 필터 규칙 계획: 동적 앱 링크를 사용하는 경우 서버 측 규칙이 앱 매니페스트에 정적으로 정의된 규칙과 어떻게 작동할지 계획합니다. assetlinks.json 파일의 필터 규칙은 앱 매니페스트 필터의 범위를 확장할 수 없습니다. 매니페스트 필터가 가능한 가장 광범위한 범위를 선언하도록 계획해야 하며, 필요에 따라 서버 측 규칙이 이러한 규칙을 세부적으로 조정할 수 있습니다. 자세한 내용은 동적 규칙 구성을 참고하세요.
- 링크의 인텐트 필터 만들기 및 테스트: 인텐트 필터에서 딥 링크를 선언하고 URL 패턴 일치 및 수신 인텐트 처리를 테스트합니다. 동적 앱 링크를 지원하려면 일부 세부 경로를 서버 측 JSON 파일로 이동해야 할 수 있습니다.
- 수신되는 앱 링크 인텐트에서 데이터 읽기 - 수신되는 딥 링크 인텐트를 적절하게 처리하여 적절한 활동으로 해결합니다. 앱 링크 구현은 수신 인텐트에서 데이터 읽기에 설명된 일반 딥 링크와 동일합니다.
- 웹사이트 연결 및 동적 규칙 구성 - 앱 링크를 지원하려면 웹사이트 또는 도메인에 호스팅된 서버 측 파일을 구성해야 합니다. Android 기기는 이 파일을 검색하여 앱의 앱 링크 구현을 앱과 함께 검증합니다. 자세한 내용은 여기를 참고하세요.
- 앱 링크 인증 테스트 - Android 시스템에서 딥 링크를 자동으로 인증할 수 있는지 확인합니다. 디버깅 및 엔드 투 엔드 테스트를 사용하여 구성이 안전하고 인증된 모든 앱 링크 경로에서 올바르게 작동하는지 확인합니다.
- Android 스튜디오, Play Console 등 앱 링크를 설정하는 데 사용할 수 있는 도구에 대해 알아봅니다. 자세한 내용은 여기를 참고하세요.