📋 서베이몽키 : 초심자도 쉽게 제작할 수 있는 인터페이스를 갖고 있어요. 대화 형식의 설문조사 폼을 제공하고 설문 결과에 대한 인사이트를 제공하죠. 대부분의 기능이 유료로 제한되어 있지만 유료 기능을 체험해볼 수 있어요.
📋 타입폼 : 템플릿이 다양하고 좀 더 섬세한 인사이트를 제공해줘요. GA나 스프레드시트 등 많은 솔루션과 연동이 가능하지만 한국어 지원이 되지 않아 어려움을 느낄 수 있어요. 유료로 제한되는 기능이 많아 아쉬웠어요.
📋 탈리 : 무료로도 충분히 많은 기능을 이용할 수 있어요. 다양한 템플릿이 제공되고 노션이나 구글 스프레드시트 등의 솔루션과 연동이 가능해요. 홈페이지에 임베드해서 사용할 수 있는 기능도 있더라고요. 하지만 높은 자유도는 호불호가 갈릴 수 있고, 한국어 제공, 인사이트가 지원되지 않는 점은 아쉬웠어요.
📋 모아폼 : 한국어로 되어있고 인터페이스가 직관적이에요. 무료 버전으로도 충분한 기능을 이용할 수 있고 공동 작업까지 가능하죠. 하지만 템플릿을 활용하기는 다소 어렵고 인사이트 제공이 되지 않아요. 로직을 직접 추가할 수 있고 무료로 이용 가능하지만 조금 어려워요.
리뷰만 보더라도 사용해본 것처럼 느끼시기를 바라며 열심히 사용 화면을 캡처했어요. 아래 링크를 통해 실제로 사용하는 화면과 제가 제작한 설문조사 폼을 확인하시면 앞서 이야기한 내용이 더 와닿으실 거예요
일선에서 일하는 사람들만이 매장에서의 실상을 제대로 알고 있다. 최고 아이디어는 평사원으로부터 나온다. 조직 하부에 까지 책임감을 부여하라. 그리고 그 안에서 아이디어가 솟아나도록 하라. 당신은 동료들이 무슨 말을 하는지 ‘들어야만’ 한다. - 샘 월튼, 월마트 창업 회장
경영자가 10번을 얘기해야 직원들이 비로소 이해하기 시작하듯이 직원이 10번은 얘기해야 경영자도 비로소 관심을 기울이게 됩니다. 경영자는 많은 정보에 노출되어 있는 반면, 직원들은 경영자에게 좋지 않은 정보를 전달하는 것을 매우 꺼려합니다. 경영자는 직원들의 자그마한 소리를 온전히 듣는 자세로 경청해줘야 합니다. 말을 안하기 시작하는 조직은 죽어가는 조직이라 할 수 있습니다.
좋은 사회적 관계는 우리 뇌에 보상처럼 작동한다. 오랫동안 사랑을 키워 온 연인의 사진을 본 사람들의 뇌에서는 보상과 관련된 영역이 활성화된다. 또 신체적 고통을 겪고 있어도 연인의 사진을 보면 뇌의 고통 처리 신경망이 상대적으로 덜 반응하고 고통도 덜 느끼는 것으로 나타났다. 사회적으로 따돌림을 당한 상황에서 공감이나 위로처럼 정서적 지지를 받게 되면 심리적 고통을 처리하는 뇌 영역의 반응도 감소했다.
- 정수근의《팬데믹 브레인》중에서 -
* 사랑하는 사람의 사진을 품속 지갑에 넣고 다니는 사람 많습니다. 이유는 간단합니다. 사진을 보는 것만으로도 기분이 좋고 힘이 나기 때문입니다. 신체적 고통마저 잊게 만듭니다. 인간의 뇌 회로가 그렇게 작동되도록 설계되어 있다는 사실이 신비로울 뿐입니다. 사진이 아니더라도 사랑하는 연인을 마음에 그려보는 것만으로도, 누군가에 정서적 공감과 위로를 보내는 것만으로도 우리 뇌는 행복 호르몬을 쏟아냅니다.
모바일 앱에서도 이와 유사한 기능을 하는 것이 있습니다. 바로 딥링크(Deeplink) 입니다.
딥링크는 특정 주소 혹은 값을 입력하면 앱이 실행되거나 앱 내 특정 화면으로 이동시키는 기능을 수행합니다. 즉, 딥링크가 사용되면 광고에 반응한 이용자는 앱이 바로 실행되어 특정 화면으로 이동하는 경험을 하게 됩니다. 혹은 앱 설치 후 실행하면 특정 화면으로 바로 이동하게 됩니다(지연된 딥링크). 따라서 광고를 운영하는 마케터 입장에서는 광고 성과 최적화를 위해 반드시 활용해야 하는 기능입니다.
딥링크는 3가지 방식으로 구분됩니다.
URI 스킴 방식 : 앱에 URI 스킴(scheme) 값을 등록하여 딥링크 사용
앱링크(App Link) : Android 제공 - 도메인 주소를 이용한 딥링크 사용
유니버셜 링크 (Universal Link) : iOS 제공 - 도메인 주소를 이용한 딥링크 사용
모두 딥링크 기능을 수행 함에도 왜 'URI 스킴', '앱링크', '유니버셜 링크' 방식으로 각각 구분하는 것일까요? 각각의 기능과 차이점에 대해서 알아보겠습니다.
'URI Scheme' 방식의 딥링크
'URI Scheme' 방식 이해
가장 일반적으로 사용되는 딥링크 방식은 URI Scheme(URI 스킴) 방식 입니다.
URI 스킴을 이용한 딥링크는 앱에 Scheme값을 등록하는 형태로 앱을 구분합니다. 스킴은 앱마다 등록할 수 있는 값으로 "특정 스킴값을 호출하면 특정 앱이 오픈된다." 라는 약속을 실행합니다. 여러분이 트위터 앱을 오픈하고자 한다면 twitter:// 라는 스킴값을 이용하면 됩니다. 이 스킴값은 앱 개발시 효율적인 앱 오픈을 위해 자체적으로 개발사에서 자신들만의 값으로 등록을 하게 됩니다.
앱 내에서의 특정 페이지는 'path' 값으로 구분합니다. 예를 들어, 트위터 앱의 회원가입 페이지를 오픈하고자 한다면 twitter://signup 이라는 값을 사용합니다.
정리하면, URI 스킴 방식은 Scheme://Path라는 두개의 요소로 구성됩니다.
Scheme://Path
Scheme = 앱을 특정함 (트위터)
Path = 앱 내 페이지를 특정함 (트위터 내 회원가입 페이지)
안드로이드의 경우 아래와 같이 Androidmanifest.xml 이라는 파일에 스킴값을 등록합니다.
[위 스크린샷에서 android:scheme 라고 적힌 항목이 스킴값입니다.]
iOS 의 경우 앱 정보 화면에서 URL Scheme 항목에 스킴값을 입력할 수 있습니다.
[iOS 에서 스킴값을 등록하는 화면]
URI 스킴 방식의 한계
URI 스킴 방식의 딥링크는 앱의 수가 상대적으로 적었던 시기에는 광고를 통해 앱을 바로 실행시키는 훌륭한 마케팅 수단이었습니다. 그러나 앱 수가 증가하면서 생각하지 못한 문제가 발생하기 시작하였습니다. 바로 앱 스킴값이 서로 중복되는 경우에 대한 문제입니다. 앱 개발자 입장에서는 앱에 등록된 스킴값이 자신들의 앱만 사용하는 고유값인지 확인할 방법이 현재는 없습니다.
구글플레이 앱은 자신들의 앱을 오픈하기 위한 스킴 값으로 market:// 란 값을 사용하고 있습니다. OneStore, 삼성 앱스토어 등의 오픈 마켓 또한 이 스킴 값을 사용합니다. 따라서 안드로이드 이용자들은 아래처럼 어떤 앱을 실행시켜야 하는지에 선택하는 화면을 보게 됩니다.
[서로 동일한 market:// 스킴값을 사용할 경우 발생하는 문제.]
즉, 안드로이드 시스템이 현재 market:// 란 스킴값으로 앱을 열려고 할 때 사용자에게 " 이 3종의 앱이 모두 "market://" 란 스킴값을 사용하는데 어떤 앱을 열어야 하나요?" 라고 물어보는 화면입니다. 안드로이드, iOS 모두 이와 비슷한 문제를 가지고 있습니다. 앱을 개발하는 개발자가 자신이 적용한 스킴값이 다른앱은 사용하지 않는 고유값인지 아닌지 확인할 수 있는 방법이 없고 다른 앱이 자신의 스킴값을 사용한다 할지라도 이를 방지할 방법이 없는 상황입니다.
애플과 구글의 개발자들은 이를 근본적으로 막을 수 있는 방법은 없을지 고민했습니다. 그 고민끝에 탄생한 것이 유니버셜 링크 (iOS 제공)와 앱링크 (Android 제공) 입니다.
유니버셜 링크와 앱링크
웹페이지 주소를 사용한 딥링크
현재 여러분이 사용하고 있는 사이트의 인터넷 주소는 모두 고유의 값을 가지고 있습니다. 가령 아이지에이웍스는 igaworks.com 이라는 고유의 인터넷 주소를 가지고 있고 애드브릭스 역시 adbrix.io 라는 고유의 주소를 가지고 있습니다. 이를 도메인 (Domain) 주소라고 합니다.
애플과 구글의 개발자들은 이 도메인 주소를 딥링크 실행값으로 사용하기로 결정합니다. 예를 들면, 스마트폰 브라우저 앱 주소창에http://naver.com 을 입력하면 네이버 앱이 바로 오픈되어 사용할 수 있도록 한 것입니다.
바로 이 기능을 iOS 에서는 유니버셜 링크(Universal Link), Android 에서는 앱링크(App Link)라고 부릅니다.
안드로이드의 경우 Androidmanifest.xml 라는 파일에서 아래와 같이 앱링크 도메인을 등록할 수 있습니다. (아래 예시는 애드브릭스 트랙킹 링크의 유니버셜 링크, 앱링크 연동을 기준으로 작성하였습니다.)
iOS 의 경우 Singing & Capabilities 에서 Associated Domains 에서 등록할 수 있습니다.
유니버셜 링크와 앱링크의 한계
하지만 안타깝게도 유니버셜 링크와 앱링크가 아직까지는 완전하지 않습니다. 모든 앱에서 유니버셜 링크와 앱링크 오픈을 지원하는 것이 아니기 때문입니다.
앱링크는 구글에서 만든 앱에서만 동작하고, 구글 이외에 앱에서는 정상적으로 동작하지 않습니다. 유니버셜 링크 역시 애플에서 만든 앱 이외에는 정상적으로 동작하지 않습니다.
애드브릭스 팀에서는 주요 환경 별 유니버셜 링크, 앱링크 실행 결과를 확인했습니다. 결과를 보면 하나의 방식이 모든 환경에 완벽하게 대응하지 못하고 있습니다. 따라서 원활한 광고 운영과 어트리뷰션을 위해서는 URI스킴 방식, 유니버셜 링크, 앱링크 모두 연동이 필요하다는 결론에 도달합니다.
앱링크 테스트 결과
테스트 환경테스트 결과
1
안드로이드 카메라 앱에서 QR 코드 촬영하여 앱 실행
앱링크 작동
2
Gmail 앱에서 링크를 클릭하여 앱 실행
앱링크 작동
3
카카오톡에서 링크를 클릭하여 앱 실행
URI스킴 방식 작동
4
네이버 앱에서 주소창에 링크 입력 후 앱 실행
URI스킴 방식 작동
5
네이버 앱에서 카메라로 QR 코드 촬영하여 앱 실행
URI스킴 방식 작동
6
크롬에서 주소창에 트래킹 링크 입력 후 앱 실행
딥링크가 동작하지 않음
7
크롬에서 링크를 클릭하여 앱 실행
앱링크 작동
8
삼성 브라우저에서 주소창에 링크 입력 후 앱 실행
딥링크가 동작하지 않음
9
삼성 브라우저에서 링크를 클릭하여 앱 실행
앱링크 작동
유니버셜 링크 테스트 결과
테스트 환경테스트 결과
사파리 브라우저 주소창에 링크 입력 후 앱 실행
URI스킴 방식 작동 (경우에 따라 유니버셜 링크 작동)
2
사파리 브라우저에서 링크를 클릭하여 앱 실행
URI스킴 방식 작동
3
아이폰 카메라 앱으로 QA 코드 촬영하여 앱 실행
유니버셜 링크 작동
4
아이폰 이메일 앱에서 링크를 클릭하여 앱 실행
유니버셜 링크 작동
5
Gmail 앱에서 링크를 클릭하여 앱 실행
URI스킴 방식 작동
6
카카오톡에서 링크를 클릭하여 앱 실행
URI스킴 방식 작동
7
네이버 앱에서 주소창에 링크 입력 후 앱 실행
URI스킴 방식 작동
8
네이버 앱에서 카메라로 QR 코드 촬영 후 앱 실행
URI스킴 방식 작동
9
크롬 주소창에 링크 입력 후 앱 실행
URI스킴 방식 작동
10
크롬에서 링크를 클릭하여 앱 앱 실행
URI스킴 방식 작동
딥링크, 더 알아두기
앱에 딥링크 적용하기
애드브릭스는 앱에 설정된 딥링크 설정값을 받아 실행하는 역할을 수행할 뿐, 딥링크 그 자체는 앱 내에 먼저 설정이 되어있어야 합니다. 즉, 앱 내에 자체적으로 딥링크 설정이 완료 되어야만 딥링크 기능을 이용할 수 있습니다. 문을 열기 위한 열쇠는 광고주 앱이 직접 만들어야 하고, 그 열쇠를 받아서 문을 여는 역할만 애드브릭스가 수행한다고 생각하면 이해하기 쉽습니다.
따라서 마케터가 딥링크를 사용하고자 한다면, 앱 개발팀을 통해 딥링크 사용에 필요한 설정값(스킴과 패스값, url값)을 확보한 후 트래킹링크 설정 옵션에 입력해야 합니다. (Ad-Landing 세팅,트래킹링크 발급)
지연된 딥링크
지연된 딥링크(Deferred Deep Link)란 마켓에 랜딩되어 앱 설치 후 실행한 이용자가 앱 첫 화면이 아닌, 지정된 특정 앱 페이지로 이동되는 기능을 의미합니다. 예를 들어, 'A운동화 광고' 트래킹링크가 적용된 광고에 참여한 이용자가 마켓으로 이동하여 앱을 설치하고 실행하면 'A운동화' 상품 페이지로 바로 이동합니다.
애드브릭스 All-Link : URI스킴, 앱링크, 유니버셜 링크 모두 사용하기
앞서 살펴본 것 처럼 URI스킴, 유니버셜 링크, 앱링크 중 하나의 딥링크 방식 만으로는 모든 환경에 대응하지 못합니다. 따라서 광고UX 최적화를 위해서는 3개 방법을 모두 적용하여 상호보완적으로 사용하는것이 최선의 방법입니다.
애드브릭스의 트래킹 링크는 URI스킴, 유니버셜 링크, 앱링크를 하나의 링크로 지원하는 All-Link 기능을 제공합니다. 애드브릭스 트랙킹 링크의 도메인을 이용하여 유니버셜 링크, 앱링크를 만들수 있습니다. 유니버셜 링크와 앱링크를 지원하지 않는 앱에서도 정상적으로 어트리뷰션이 될 수 있도록 URI스킴 방식 동작 또한 지원합니다. 즉, 유니버셜 링크와 앱링크가 작동되지 않는 환경에서는 2순위로 URI스킴 방식을 작동시켜 앱 실행과 목적된 화면 이동이 정상적으로 완료될 수 있도록 지원합니다.
1. URI (Uniform Resource Identifier)
ㅇ 인터넷 서비스(웹 서비스 등)를 전제로 하여,
- 인터넷 응용 정보자원(텍스트,비디오,음향,이미지,기타 서비스 등)에 대한
통일적 식별체계를 지칭하는 개념적 용어
ㅇ 표준 : RFC 3986 : "Uniform Resource Identifier (URI): Generic Syntax"
- (2732, 2396, 1808들의 대체)
2. URI 하위 종류
※ URI는 이 모든 것들을 총칭하는 용어
ㅇ URL (Uniform Resource Locator) : 특정 자원이 있는 장소에 대한 경로(주소)
- 인터넷 콘텐츠에 대한 프로토콜/서비스/접근방법/경로 등 자원의 위치를 나타냄
. 지리적 위치에 무관하게 특정 호스트 내 자원의 위치를 지칭함
ㅇ URN (Uniform Resource Name) : 특정 자원에 대한 이름 그 자체
- 인터넷 도메인명과는 독립적으로 특정 콘텐츠에 대한 고유 식별(ID)
. 例) 특정 이름, 네임스페이스, 도서번호인 ISBN 등
ㅇ URC (Uniform Resource Charcteristic) : 특정 자원에 대한 특성 정보
- 특정 콘텐츠의 저자,제목 등의 특성 정보
3. URI 또는 URL 구문
ㅇ 구문 => URI스킴://사용자이름:암호@호스트명:포트번호/경로?쿼리#URI프래그먼트
- 참고적으로,
. `콜론(:)`은 2개를 묶은 쌍(pair)에서 좌우 구분을 위한 구분자 임
. `대쉬(//)`는 어떤 시작을 알리는 것
. 원칙적으로 URI 길이 제한 없으나, 구현상 2천자 등의 상한선은 있음
ㅇ URI Scheme (스킴)
- 접근 프로토콜을 가리킴
. URI 표기에서, URI 시작부터 콜론(:) 직전까지의 표현
- 例)
. HTTP => http://www.ktword.co.kr
. HTTPS => https://www.example.com
. FTP => ftp://file.fileserver.com/entries/01
. 이메일 => mailto:사용자이름@호스트명?Subject=Feedback
. SIP => sip:사용자이름:암호@호스트명;uri-parameters
. 전화 => tel:1234;phone-context=servername.example.com
* URI 스킴 목록 ☞ IANA 공식 URI Schemes
ㅇ 호스트명(Hostname)
- 인터넷 상에서 유일(唯一)한 식별
- 여기서, 호스트명은, FQDN 또는 IP 주소 형태 모두 가능
- 例) `www.ktword.co.kr`, `file.fileserver.com`, `192.168.xxx.xxx` 등
ㅇ 경로(path)
- 例) 위에서, 호스트명 직후에 있는 `/entries/01`
4. 절대 URI, 상대 URI, 기준 URI
ㅇ 절대(Absolute) URI : 모든 전체 경로를 다 기술한 URI 표현 (길이가 매우 클 수 있음)
ㅇ 상대(Relative) URI : 전체 경로 중 기준 URI로부터 상대적 경로 표현
ㅇ 기준(Base) URI : 보통, HTML 문서 내 `Head 요소` 안에 `Base 요소`에 표시
5. URI 변화방향
ㅇ 단순히, 정적인 자원의 위치나 식별을 나타내는 수준에서,
- 점차적으로, 동적 자원이나 서비스 결합 등을 고려하며 확대 중
ㅇ 문자체계의 변화 : (국제화)
- 문자체계가 과거 US - ASCII코드에서, 유니코드(Unicode)를 적용하는 국제화된 URI로 확장하며,
- 국제화된 표준인 IRI(Internationalized Resource Identifier) 도모
- (URI %인코딩 방식 例) `나` => UTF-8 인코딩 `%EB%82%98` (동양권 문자 3 바이트)
APP_NAME및APP_PACKAGE를 모바일 앱에 속한 값으로 대체해야 합니다 .APP_HOST는 필요하지 않을 수 있는 선택적 호스트 값입니다(다음 예에서 인스타그램 앱을 여는 데 필요함).
Instagram의 예제 코드:
// Open Instagram
const url = "intent://instagram.com/#Intent;scheme=https;package=com.instagram.android;end";
window.location.replace(url);
IOS
iOS에서 모바일 앱을 열고 앱이 설치되지 않은 경우에만 실행되는 시간 제한을 몇 초로 설정합니다.
window.location.replace("APP_NAME");
// Wait 10s and redirect to App Store if app was not opened
setTimeout(() => {
window.location.replace("APP_STORE_URL");
}, 10000);
APP_NAME및APPSTOREURL을 모바일 애플리케이션에 속한 값으로 대체해야 합니다.
삶이 바뀌지 않고 글도 바뀌지 않는다. 익숙한 글감을 쓰면서 늙어가지 않고, 내가 좋아하며 알고 싶은 세계로 삶을 옮긴 것이다. 태어나서 처음으로 파종부터 탈곡까지 논농사를 지었다. 수확한 벼 품종은 630종이다. 텃밭과 정원을 가꾸는 것도 만만치 않았다. 농번기 두 달은 집필을 멈추고 들녘으로 향했다.
- 김탁환의《섬진강 일기》중에서 -
* 농사꾼이 농번기를 놓치면 그해 농사는 보기 좋게 망치고 맙니다. 농번기 두 달은 모든 일을 제쳐놓고 들녘에서 살아야 합니다. 날씨를 살펴 비 내릴 때는 논두렁 물꼬를 열고, 비가 개면 얼른 물꼬를 막아야 합니다. 그 모든 과정에서, 글쟁이는 수많은 글감을 얻게 됩니다. 농번기에 일을 열심히 한 사람만이 더욱 풍요로운 글을 쓸 수 있습니다.