[딥링크101] iOS Safari에서 딥링크 동작 시 경고 문구가 뜨는 이유가 무엇일까요?
Trends & Insights
March 22, 2022
By
Minah Lee

유저를 앱 내 특정 페이지로 부드럽게 연결시키는 딥링크. 가능한 한 많은 유저를 우리 앱으로 유입시켜야 하는 앱 마케터 입장에서, 잘 작동하는 딥링크는 앱 마케팅의 핵심입니다. 이때 잘 작동하는 딥링크란, 링크를 클릭한 유저가 앱으로 이동하는 과정 및 앱이 설치되어 있지 않아서 다른 곳으로 이동(Fallback)하는 과정이 매끄러운 것을 의미합니다. 즉, 링크를 클릭한 유저가 어떠한 이유로라도 중간에 이탈하지 않도록 만드는 것이죠. 하지만, 이를 앱 마케터가 원하는 대로 구현하도록 만드는 것은 쉽지 않습니다.

지난 포스트 [딥링크101] 마케터와 개발자를 위한 딥링크 시작하기에서 딥링크에는 크게 세 가지 유형이 있으며, 이 딥링크 기술만으로는 앱 마케터가 원하는 대로 구현하도록 만드는 것이 쉽지 않다는 점을 알아보았습니다. 특히 URI Scheme 딥링크의 경우, 링크를 클릭했으나 앱이 설치되어 있지 않을 때는 다른 곳으로의 이동(Fallback)이 불가능합니다. 즉, 아무런 동작이 발생하지 않죠. 이에 대해 대표적인 OS인 Android 및 iOS에서는 이를 해결할 수 있는 각각의 방법을 제안하고 있으며, 개발자들도 해결 방법을 찾아가는 중입니다. 이 과정에서, iOS Safari에서는 Scheme 기반 딥링크가 동작할 때 경고 문구가 뜬다는 문제가 발생하기도 합니다. 앱 마케터라면 한 번쯤 고민해 봤을 매끄러운 딥링크의 활용과 iOS Safari에서의 경고 문구, 해결할 수 있는 방법이 있을까요?

Android에서 URI Scheme 딥링크 이후 Fallback 설정하는 방법

Android에서 URI Scheme 딥링크를 사용할 때, 다음의 두 가지 방법을 통해 fallback을 설정할 수 있습니다.

  1. 자바스크립트(javascript)를 활용

일반적이면서도 고전적인 방법으로, iframe을 사용하여 딥링크를 업로드하고, 자바스크립트로 지연시켰다가를 Google Playstore로 리디렉션하는 것입니다. URI Scheme을 src로 세팅하는 것으로, ‘airbridge://’가 커스텀 Scheme이라고 했을 때, 코드의 예시는 아래와 같습니다. 이때 앱이 설치된 경우에는 앱이 실행되고 자바 스크립트는 실행되지 않습니다.

다만, 이 방법은 Android 브라우저인 Chrome의 버전 18 혹은 그 이전 그리고 Android 브라우저에서 활용 가능한 방법으로, Chrome for Android 버전 25 이상부터는 작동이 중지되었습니다. (Chrome 개발 문서에서 더 자세한 내용 확인하기)

  1. Android Intent를 활용

Android의 Chrome 버전 25 이상부터는 자바스크립트를 사용하지 못하게 되었는데요. URI Scheme을 사용하게 되면, 앱이 이미 설치되어 있는 유저라고 하더라도 링크가 작동하지 않습니다. 대신, intent: 문법을 사용할 수 있습니다.

클릭된 링크나 프로그램의 요청이 웹 URI 인텐트(intent)를 호출하면 Android 시스템에서는 요청이 성공할 때까지 다음 각 작업을 순서대로 시도합니다. 1) URI를 처리할 수 있는, 사용자가 선호하는 앱(지정되어 있는 경우)을 엽니다. 2) URI를 처리할 수 있는, 사용 가능한 유일한 앱을 엽니다. 3) 사용자가 대화상자에서 앱을 선택하도록 합니다.

인텐트 필터를 추가하는 방법은 Android 개발 문서에서 자세히 확인할 수 있으며, 아래는 예제 이미지입니다.

iOS에서 URI Scheme 딥링크 이후 Fallback 설정

그렇다면, iOS에서도 이와 같은 방법으로 해결하면 될 것이라고 생각하기 쉬운데요. 하지만, iOS 9.2부터는 Apple의 모바일 브라우저인 Safari에서 URI Scheme 딥링크를 시도했을 때, 앱이 설치되어 있지 않으면 경고 문구가 표시됩니다. iOS 7 및 8에서 iframe을 활용한 자바스크립트로 회피했던 방식도 불가능해지면서, iOS Safari에서 URI Scheme 딥링크를 여는 유저들이라면 아래와 같은 경고 문구를 반드시 마주하게 되었습니다.

앱 미설치 상태에서는 "주소가 유효하지 않기 때문에 Safari가 해당 페이지를 열 수 없습니다."라는 경고 문구가 노출됩니다.

앱 설치 상태에서는 "'{앱이름}'에서 이 페이지를 열겠습니까?"라는 경고 문구가 노출됩니다.

이렇게 iOS에서 URI Scheme 딥링크 동작에 제한을 둔 것은 보안상의 이유 때문이라고 할 수 있습니다. URI Scheme은 소유권을 증명할 수 없다는 문제로 인해, Scheme 값이 중복되는 경우가 발생할 수 있습니다. 또한, 자바스크립트를 통해 딥링크를 동작시켜서 Safari의 외부 앱으로 이동하는 경우에는, 원래의 의도와는 다른 동작이 발생할 수도 있기 때문입니다. 그래서 iOS Safari에서는 URI Scheme 딥링크가 동작되는 경우, 위와 같이 경고 문구를 띄워서 유저에게 안내하고 있습니다.

이러한 이슈로 인해, Safari를 메인 브라우저로 사용하고 있는 유저들 중 딥링크 연결에 불편함을 겪고 있는 유저가 많으며, 마케터도 딥링크 활용에 곤란함을 겪고 있는 경우가 많습니다. 링크 한 번의 클릭으로 관련 인앱 페이지로 자연스럽게 연결시키는 것이 ‘딥링크'인데, 중간에 ‘프롬프트'라는 장애물을 마주하게 되면서 이탈하는 유저가 늘어날 수밖에 없습니다.

이에 대한 대안으로는, iOS에서 URI Scheme에 대한 대안으로 개발한 딥링크인 Universal Links를 활용하는 겁니다. 보안을 위해 소유권을 인증한 URL을 활용하는 거죠. 그러나 Universal Links의 경우 앱스토어로 바로 랜딩 시키는 URL 사용이 불가능하기 때문에, 앱을 설치하지 않았을 경우 마케터가 의도한 대로 링크 활용이 불가능할 수 있습니다.

에어브릿지에서는 프로덕트 팀의 지속적인 연구를 통해 이러한 문제를 해결하기 위해 노력하고 있습니다. 이 부분에 대해 더 자세히 알고 싶은 경우, 에어브릿지에 문의해주세요. 에어브릿지가 iOS Safari에서 원활한 URI Scheme 동작에 해결책이 되어드릴 수 있습니다.

* 다른 딥링크101 시리즈 보러가기
👉[딥링크101] 마케터와 개발자를 위한 딥링크 시작하기
👉[딥링크101] 디퍼드 딥링크로 앱을 설치하지 않은 유저도 앱 내 특정 페이지로 연결하기
더 많은 마테크
인사이트를
얻고 싶다면?
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Minah Lee
Product Marketing Manager
프로덕트 마케팅 매니저로서 콘텐츠를 제작하고 다양한 마케팅 캠페인을 기획합니다. 팀, 고객 및 파트너의 성장을 위해 협력하고 있습니다.
마케팅 솔루션 사용법부터 인사이트까지!
에어브릿지 뉴스레터를 구독하세요.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
합리적인 비용의 올인원 모바일 마케팅 패키지로 서비스를 성장시켜보세요.
Copyright ⓒ 2022 AB180 Inc. All Rights Reserved.