본문 바로가기
Tip

[Firebase] DynamicLink Custom Parameters

by 너드나무 2024. 4. 30.
728x90

서론

카카오톡 알림톡 등 외부 채널에서 iOS, AOS 환경으로 모바일 App 전환에 대한 내용을 개발하던 도중 발생한 이슈에 대해 정리해본다.
Firebase Dynamic Link 서비스를 사용하며, 임의 매개변수를 입력할 때 모바일 환경에서 정상적으로 파싱이 되지 않는 이슈이다.
추가로, 앱 전환 관련 퍼널을 스터디하며 금번 기술 과제로 적용 가능한 퍼널에 대해 찾아본다.

문제점

  • Firebase 동적 링크 URL 규칙
    • 동적 링크 매개변수는 딥링크, Android, iOS, 기타 등 구분에 따라 사용하는 Parameters가 지정되어 있다.
    • 이외 매개변수 사용 시, 해당 parameter가 사라지는 현상이 발생한다.

  • 임의 매개변수 설정 후 구동 시 파악되는 정보는 다음과 같다.
    • link나 utmParameters에서 key=value에 대한 부분이 나오지 않았다.
// Dynamic Link - Test
"https://{dynamiclink}.page.link/?link=https://{dynamiclink}.page.link/{uri}&apn={ANDROID_PACKAGE_NAME}&isi={APPSTORE_ID}&ibi={IOS_BUNDLE_ID}&key=value"

_handleLink: PendingDynamicLinkData(
	{
    	ios: {
        	minimumVersion: null,
            matchType: 3
        }, 
        android: null, 
        link: https://{dynamiclink}.page.link/{uri}, 
        utmParameters: {}
    }
)

해결

  • 동적 링크 매개변수 중 딥 링크 매개변수(페이로드 매개변수) 부분에 집중해본다.
    • 정황 상 link 매개변수 내 value에 임의 매개변수를 할당하여 모바일에서 link 안에서 구성되어 있는 FULL URL을 후처리하여 사용해야 되는 것으로 가정한다.
    • link=https://domain/?key1=value1&key2=value2
      • https://domain/?key1=value1&key2=value2 : 내용이 1 Set로 link 매개변수에 묶여야 하는 것이 중요하다.

  • URI Encoding을 활용하여 link 내 요소를 String 처리 개념으로 Dynamic Link에 전달한다.
    • https://{dynamiclink}.page.link/?link=https://{dynamiclink}.page.link/{uri}%26key%3Dvalue&apn={ANDROID_PACKAGE_NAME}&isi={APPSTORE_ID}&ibi={IOS_BUNDLE_ID}
    • %26 : &
    • %3D : =
    • 정상적으로 link 내에 임의 매개변수가 포함된 것을 확인할 수 있다.
// Dynamic Link - PoC
"https://{dynamiclink}.page.link/?link=https://{dynamiclink}.page.link/{uri}%26key%3Dvalue&apn={ANDROID_PACKAGE_NAME}&isi={APPSTORE_ID}&ibi={IOS_BUNDLE_ID}"

_handleLink: PendingDynamicLinkData(
	{
    	ios: {
        	minimumVersion: null,
            matchType: 3
        }, 
        android: null, 
        link: https://{dynamiclink}.page.link/{uri}&key=value, 
        utmParameters: {}
    }
)

 

결론

  1. URI의 개념이 혼동될 수 있는 이슈였다고 생각된다.
    1. Encoding한 데이터가 Redirect 이후 변환되었다고 가정하였는데, Firebase 내부 Redirect 요소라 검증은 진행하지 못했다.
  2. 2025년 8월 25일 Dynamic Link 서비스가 종료 예정이다.
  3. 딥링크 기능을 제공하는 별도 서비스를 모색해보아야 한다.
  4. 특정 이벤트에 대한 앱 전환 퍼널은 적용할 요소가 많다. (외부 URI, 배너 등) 다만, 의미없는 전환으로 이어지지 않게 설계하는 것이 중요하지 않을까..

참고 및 인용 출처

- Firebase. [Google]. (2023-10-04). 동적 링크 URL 직접 만들기. https://firebase.google.com/docs/dynamic-links/create-manually?hl=ko
728x90
반응형