유니버셜 링크는 사용자 경험을 향상시킵니다. 애플은 딥링크의 일종인 유니버셜 링크의 장점으로 다섯 가지 요소를 제시했는데요, 그 중 유연함(Flexible)이 사용자 경험 향상에 직접적으로 기여합니다.
‘유연함’이란 단말기에 앱이 설치되어있지 않아도 링크가 정상적으로 동작한다는 의미입니다. 기존의 딥링크는 앱이 없는 단말기에서는 아무런 동작을 하지 않으며 간혹 예상치 못했던 에러를 일으키기도 합니다. 사용자는 황당한 경험을 하게 되지요.
하지만 유니버셜 링크는 앱이 없는 환경에서도 정상적으로 동작합니다. 앱이 없는 사용자는 해당 유니버셜 링크가 가리키는 웹사이트로 이동하게 됩니다. 앱의 유무와 관계 없이 유연한 동작을 보장함으로써 어떤 식으로든 사용자가 기대했던 결과를 보여준다는 점에서 딥링크보다 높은 사용자 경험을 제공합니다.
커스텀 스키마 형식의 딥링크와는 달리, 유니버셜 링크는 일반적으로 웹사이트 URL과 동일한 문자열을 사용합니다. 예를 들어 웹사이트 주소가 www.yoursite.com이라면, 앱으로 연결되는 유니버셜 링크 역시 동일한 www.yoursite.com을 지정할 수 있습니다.
결과적으로 사용자가 브라우저에 www.yoursite.com을 입력하면 단말기에 앱이 설치되어 있는 경우는 앱이 실행되고, 앱이 없다면 www.yoursite.com 페이지가 열립니다. 아래 그림을 참고하면 이해가 쉽습니다.
위 그림에 빨간색으로 표시한 1번과 2번은 개발 작업이 필요한 항목입니다. 1번은 웹 서버에, 2번은 앱에 별도의 설정을 해줘야 합니다. 이에 대한 구체적인 설정 방법은 애플의 가이드에 따라 개발부서에서 작업을 담당하면 되는데요, 작업을 요청하는 기획자나 마케터도 기본 개념을 알고 있다면 커뮤니케이션에 분명히 도움이 될 것입니다.
그림의 1번에 해당하는 로직은 웹 서버에서 처리합니다. 기본적으로 유니버셜 링크는 www.yoursite.com과 같은 웹 URL 형식이므로, 해당 도메인에 연결되어있는 웹 서버에 1차적으로 요청이 들어갑니다.
보통 상황이라면 웹 서버는 www.yoursite.com의 메인 페이지를 브라우저에 전송하는 식으로 응답 합니다. 하지만 해당 서비스가 1) 유니버셜 링크를 지원한다는 설정이 되어있고, 요청을 보낸 단말기에 2) 특정 앱이 설치되어 있다면 웹사이트 대신 앱을 실행하라는 응답을 보낼 수 있습니다.
위의 1)번 설정을 위해서는 웹 서버에 ‘apple-app-site-association’ 파일을 추가해야 하며, 2)번 설정을 위해서는 유니버셜 링크로 사용할 웹 URL과 연결 대상이 되는 앱 정보를 apple-app-site-association 파일에 입력하면 됩니다.
위 그림의 2번 설정에 대한 내용입니다. 단말기에 앱이 있는 사용자가 위의 1번 로직을 거치게 되면 www.yoursite.com에 해당하는 앱이 실행되어야 합니다. 어떤 앱이 연결되었는지 apple-app-site-association 파일로부터 정보를 받은 OS가 연결된 앱을 호출하고 앱이 실행됩니다.
OS의 호출을 받은 앱이 정상적으로 실행되려면 사전에 해당 앱에 유니버셜 링크 관련 설정이 되어있어야 합니다. 사용자가 앱을 직접 실행한 것이 아니라 외부 URL에 의해서 호출되는 상황이기 때문입니다. 외부 URL에 대한 검증 없이 앱이 실행되게 해버리면 해킹에 매우 취약해지는 치명적인 문제가 있습니다. 따라서 앱에도 특정 URL일때만 동작하도록 설정해줄 필요가 있습니다.
Xcode로 앱을 빌드할 때 ‘Associated Domains’ 항목에 말 그대로 연관 도메인을 입력해주는 설정이 필요합니다. www.yoursite.com을 입력해 놓으면, 다음부터는 www.yoursite.com 도메인을 통한 앱 실행 요청이 들어왔을 때 앱이 실행됩니다. 이 외에도 요청이 들어온 링크를 앱이 핸들링하는 설정이 추가 되어야 하며, 이렇게 웹 서버와 앱에 필요한 설정을 마치면 유니버셜 링크가 동작합니다.
유니버셜 링크를 이용해 앱을 실행한 사용자에 대해서도 트래킹 가능합니다. 유니버셜 링크도 딥링크의 하나이기 때문에 트래킹에는 특별한 문제는 없습니다. 다만 3rd Party Tracker마다 유니버셜 링크를 트래킹 하는 방법은 다를 수 있기 때문에 확인이 필요합니다.
관련 스택