참고
- https://stackoverflow.com/questions/24833801/pass-referrer-data-through-chrome-intent-to-google-play
랜딩 페이지 제작 시 referrer 데이터 전송
- 검색 하면 항상 나오는 형태로 아래와 같이 사용이 가능 하다.
market://details?id=com.패키지.이름&referrer=xxxx
- 위와 같이사용하기 위해서는 웹에서 앱의 설치 유무를 판단 하여 앱실행 또는 마켓이동으로 분기를 처리해야한다. 분기 처리가 완벽하면 문제가 없겠지만 타임아웃을 이용해서 처리하는게 일반적이어서 문제가 발생 한다.
- 차라리 아래와 같은 일반 적인 형태에서 처리가 가능하면 어떨까 해서 찾아 보았습니다.(전달 데이터는 URL인코딩 사용 추천)
Intent://호스트?데이터A=AAAAAAAA&데이터B=BBBBBBB#Intent;scheme=스키마;action=android.intent.action.VIEW;category=android.intent.category.BROWSABLE;package=com.패키지.이름;end
intent:// 스토어 이동시 리퍼러(referrer) 및 extra 데이터 전달
- S.market_referrer= 를 추가하면 플레이스토어어 리퍼러에 데이터 전달 가능
- 아래 처럼 넣으면 InstallReferrerClient 에서 데이터를 확인 가능 합니다.
Intent://호스트?데이터A=AAAAAAAA&데이터B=BBBBBBB#Intent;scheme=스키마;action=android.intent.action.VIEW;category=android.intent.category.BROWSABLE;package=com.패키지.이름;S.market_referrer=데이터A=AAAAAAAA&데이터B=BBBBBBB;end
- 참고
intent 로 데이터를 보내는 형태가 미리 정의 되어 있다.
- 타입
- S.market_referrer 이면 스트링 타입의 market_referrer 이다.
``` String => ‘S’ Boolean =>’B’ Byte => ‘b’ Character => ‘c’ Double => ‘d’ Float => ‘f’ Integer => ‘i’ Long => ‘l’ Short => ‘s’
```
- 웹에서 앱을 시작 할때 쿼리문 말고 아래 처러 보내서 데이터를 확인 가능 합니다.
``` // 웹 Do Whatever
// 앱 intent.extras?.let { val name = it.getString(“name”) val age = it.getInt(“age”) }
```