웹에서는 url 를 통해 원하는 페이지로 연결되게 가능한데
모바일이 발전되면서 앱에서도 이러한 필요 사항이 생겼고
이에 딥링크라는 모바일 앱 내부의
특정 화면이나 기능으로 바로 이동할 수 있도록 설계되었습니다.
Scheme URI는 딥링크를 구현하는 가장 기본적인 방법 중 하나입니다.
Scheme URI는 앱에 고유한 ✌🏻커스텀 스키마✌를 사용하여
앱 내부의 특정 페이지로 이동할 수 있도록 합니다.
ex) myapp://product/123
과 같은 형태
🧐 한계점
여기서 앱 스킴은 무조건 내가 사용하는 앱 스킴이 아닌
다른 어떤 스킴도 정의해서 사용할 수 있습니다.
즉 ✌🏻고유값이 아니라서✌🏻 다른 누구도 사용할 수 있다는 의미가 되는데요
이에 AppLink와 Universal Link가 등장 합니다.
AppLink (안드로이드):
AppLink는 HTTP/HTTPS URL을 사용하여 앱 내부의 특정 콘텐츠로 연결합니다.
앱이 설치되어 있지 않을 경우, 웹 페이지로 리다이렉트될 수 있습니다.
intent-filter를 통해 앱이 특정 URL을 처리할 수 있도록 설정합니다.
Universal Link (iOS):
Universal Link도 HTTP/HTTPS URL을 사용하며, iOS에서 앱과 웹 사이트를 연결하는 방식입니다.
앱이 설치되어 있으면 앱으로, 설치되어 있지 않으면 웹 페이지로 이동합니다.
"핵심은 http/https 를 사용하여 고유의 URL를 할당받아
설치유무에 따라 적절한 페이지로 이동하게 만들어주는 것 입니다"
🧐 한계점
유저가 광고를 보고 혹 하여
해당 링크를 클릭하여 상품을 구매하려고 했을 때
링크를 클릭하여 설치했지만 해당 페이지가 나오지 않았을 때
사용자 경험이 저하됩니다🥲
이에 Deferred Deep Link가 등장합니다.
Deferred Deep Link는 앱이 ✌🏻설치되어 있지 않은 상태에서도✌🏻
사용자가 앱을 설치한 후 특정 콘텐츠로 바로 이동할 수 있도록 하는 기술입니다.
이는 마케팅 캠페인에서 유용하게 사용됩니다.
앱스플라이어 원링크를 사용하면 어트리뷰션, 리디렉션, 딥링킹 기능을 통해 캠페인용 링크를 생성하여
기기, 운영 체제, 채널, 플랫폼에 관계없이 소유 미디어 사용자를
앱 사용자로 전환하고 기존 사용자의 원활한 컨텍스트 여정을 통해 참여를 유도할 수 있습니다.
원링크 가이드
https://[subdomain].onelink.me/[template_id]/[campaign_id]?pid=[media_source]&[custom_params]
앱에서 다음과 같은 파라미터는 알고 있으면
커뮤니케이션에 도움이 됩니다.
(전체 원링크 파라미터 정보)
💡 딥링크 관련 파라미터
만드는 경로
이러한 설정들은 트래킹과 분석을 위한 구조화된 데이터를 제공하며, 마케팅 효과 측정에 활용됩니다.
URL ID는 OneLink의 최종 URL을 구성할 때 사용되는 고유 식별자입니다.
https://petnow.onelink.me/AWiE/1sn86af7
/[Template ID]/[URL ID]
Use OG tags from desktop web URL or store
Create your own preview image and tags
Create social app landing page
버튼 클릭시:Deep link value
Additional deep link value
실제 사용 예시:
🧑🏻🔧 초기 SDK 설정 가이드(permission, proguard)
🧑🏻🔧 Application 클래스에 설정할 부분
🧑🏻🔧 딥링크 관련 intent-filter 설정
아래에 첨부한 코드는
일부 설정을 보기 쉽게 올렸을 뿐
전체 설정이 아닙니다.
🚨 꼭 위 가이드대로 전체 셋팅을 하시길 바랍니다.
key 설정 및 리스너 슬정
가이드에서는 DeepLink 및 ConversionData Listener 설정을 Application 클래스에서 함
해당 앱의 Root Activity(MainActivity) 가 실행되고 있는지 확인하기 위한 설정
딥링크 리스너 부분
컨벤션 데이터 리스너 부분
Activity <-> OneLinkBehavior 연동
OneLink 를 클릭 후
데이터는 AppsFlyer 서버에 저장되고
앱을 실행하면서 sdk가 데이터를 리스너로 받는다.
✅ 앱이 설치된 유저
❌ 앱이 설치되지 않은 유저
💡 ConversionData 란?
사용자가 앱에 도달한 채널을 설명
SDK를 사용하면 모든 앱 세션에 대해
이 데이터에 실시간으로 액세스할 수 있습니다.
데이터를 사용할 수 있을 때
📌 af_status = Organic 일 떄 확인 가능한 데이터
📌 af_status = Non-organic 일 때 확인 가능한 데이터
{
"redirect_response_data": null,
"adgroup_id": null,
"engmnt_source": null,
"is_incentivized": false,
"retargeting_conversion_type": "none",
"orig_cost": 0.0,
"deep_link_value": "petnowio://post/?postId=6z4K6-zyQlSLbURIyuoJvA",
"is_first_launch": false,
"af_click_lookback": "7d",
"CB_preload_equal_priority_enabled": false,
"af_cpi": null,
"iscache": true,
"click_time": "2025-01-24 02:35:27.332",
"is_branded_link": null,
"adset": null,
"match_type": "gp_referrer",
"campaign_id": null,
"shortlink": "pnu6u2vl",
"af_pmod_lookback_window": "30m",
"af_dp": "petnowio://",
"install_time": "2025-01-24 02:36:09.747",
"agency": null,
"media_source": "SMS",
"af_siteid": null,
"af_status": "Non-organic",
"af_sub1": null,
"cost_cents_USD": 0,
"af_sub5": null,
"af_sub4": null,
"af_sub3": null,
"af_sub2": null,
"adset_id": null,
"esp_name": null,
"http_referrer": null,
"campaign": "test_enter_sms",
"is_universal_link": null,
"is_retargeting": false,
"adgroup": null
}
만약 유저가 앱을 딥링크로 처음 설치한 유저가 아닐 경우 (Organic) 인데
✌🏻앱을 지웠고✌🏻
이후에 딥링크를 통해서 재설치를 한 경우에는 데이터를 어떻게 보낼 수 있을까?
위 케이스에 앱을 실행하면
af_status 는 Organic으로 찍히고 그러면 당연히 ConversionData 에서 원하는 데이터는 확인할 수 없으며
디퍼드 딥링크로 들어올테니 딥링크 리스너에도 역시 데이터를 확인할 수 없다.
📌 위 케이스에 데이터를 관찰하고 싶다면
OneLink 설정을 Retargeting 을 설정해야 한다.
그러면 ConversionData 에서
으로 확인할 수 있다.
AppsFlyer 에서 링크를 테스트 하는 방법도 있겠지만
저는 실제와 비슷한 환경에서 테스트 해보고 싶어서
다음처럼 테스트 했습니다.
- 앱이 우선 없는 상태로 만들고
- OneLink 클릭(스토어 노출 됨)
- 앱을 빌드하여 설치 or 내부 테스트 트랙에 올려져있는 앱 설치
링크를 누르는 시점에 데이터가
AppsFlyer Server에 저장되고 받아오는 형식이기에
위와 같이 테스트하면 각 케이스별로 데이터를 확인할 수 있습니다 🥹