본문 바로가기

안드로이드

[Android] 안드로이드 Referrer 추출

Referrer란?

사용자가 플레이스토어를 통해서 앱을 설치하는 유입경로를 분석하기 위해 쓰이는 값

 

쓰는 방식

1. URL에 Referrer 값 추가

 

https://play.google.com/store/apps/details?id=(패키지명)?referrer=(사용할 referrer 값) 

 

- 출시된 앱의 고유 URL 뒤에 "?referrer=(사용할 referrer값)" 을 붙여서 사용

- referrer값은 임의로 설정

 

예시) https://play.google.com/store/apps/details?id=(패키지명)?referrer=participateID=1234

 

 

2. 앱단 코딩

 

리시버 추가

public class InstallReferrerReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        String referrer = "";
        if(intent.getAction().equals("com.android.vending.INSTALL_REFERRER")) {
            Bundle bundle = intent.getExtras();
            referrer = bundle.getString("referrer");
            Log.i("LOG", "Referrer: " + referrer);
        }
    }
}

- referrer 값이 있는 경우, 앱단에서 bundle로 값을 받아볼 수 있음

 

예시) 앱을 1번 예시의 URL로 설치했을 경우, "participateID=1234" 값이 들어오게 됨

 

 

매니페스트

<receiver
    android:name="(패키지명).receiver.InstallReferrerReceiver"
    android:permission="android.permission.INSTALL_PACKAGES"
    android:exported="true">
    <intent-filter>
        <action android:name="com.android.vending.INSTALL_REFERRER" />
    </intent-filter>
</receiver>

 

테스트 (ADB)

1. 커맨드 창 실행 후 adb가 있는 곳으로 이동

adb 위치 => C:\Users\puch9\AppData\Local\Android\Sdk\platform-tools

 

 

2. platform-tools 내에서 해당 명령어 입력

adb shell am broadcast -a com.android.vending.INSTALL_REFERRER -n (패키지명)/(리시버 명) --es "referrer" "(레퍼러로 전달할 값)"

- (리시버 명): 경로까지 전체다 적어야 한다. 예를 들어, 리시버 명이 "InstallReferrerReceiver" 일 경우, "com.example.receiver.InstallReferrerReceiver" 이런식으로