Play 설치 리퍼러 라이브러리

Google Play 스토어의 Install Referrer API를 사용하여 Google Play에서 추천 콘텐츠를 안전하게 가져올 수 있습니다. Play Install Referrer API 클라이언트 라이브러리는 자바 프로그래밍 언어로 작성되며 설치 리퍼러 서비스의 인터페이스를 정의하는 Android 인터페이스 정의 언어(AIDL) 파일의 래퍼입니다. Play Install Referrer API 클라이언트 라이브러리를 사용하여 개발 프로세스를 간소화할 수 있습니다.

이 가이드에서는 Play 설치 리퍼러 라이브러리를 사용하여 Google Play에서 추천 정보를 가져오는 데 관한 기본 사항을 설명합니다.

앱의 종속 항목 업데이트

build.gradle 파일의 종속 항목 섹션에 다음 줄을 추가합니다.

Groovy

dependencies {
    ...
    implementation "com.android.installreferrer:installreferrer:2.2"
}

Kotlin

dependencies {
    ...
    implementation("com.android.installreferrer:installreferrer:2.2")
}

Google Play에 연결

다음 단계를 사용하여 Play 스토어 앱과의 연결을 설정해야 Play Install Referrer API 라이브러리를 사용할 수 있습니다.

  1. newBuilder() 메서드를 호출하여 InstallReferrerClient 클래스의 인스턴스를 만듭니다.
  2. startConnection()을 호출하여 Google Play와의 연결을 설정합니다.

  3. startConnection() 메서드는 비동기식이므로 startConnection()이 완료된 후 콜백을 수신하려면 InstallReferrerStateListener를 재정의해야 합니다.

  4. 콜백이 완료될 때 알림을 받도록 onInstallReferrerSetupFinished() 메서드를 재정의합니다. 이 메서드는 응답 코드와 함께 호출되며 이를 사용하여 여러 상태를 처리해야 합니다. OK는 연결이 성공했음을 나타냅니다. 다른 각 InstallReferrerResponse 상수는 다양한 유형의 오류에 사용됩니다.

  5. Google Play 연결이 중단된 경우를 처리하기 위해 onInstallReferrerServiceDisconnected() 메서드를 재정의합니다. 예를 들어, 백그라운드에서 Play 스토어 서비스를 업데이트한다면 Play 설치 리퍼러 라이브러리 클라이언트에서 연결이 끊어질 수 있습니다. 추가 요청을 하기 전에 연결을 다시 시작하려면 라이브러리 클라이언트에서 startConnection() 메서드를 호출해야 합니다.

다음 코드는 Play 스토어 앱 연결을 시작하고 테스트하는 방법을 보여줍니다.

Kotlin

private lateinit var referrerClient: InstallReferrerClient

referrerClient = InstallReferrerClient.newBuilder(this).build()
referrerClient.startConnection(object : InstallReferrerStateListener {

    override fun onInstallReferrerSetupFinished(responseCode: Int) {
        when (responseCode) {
            InstallReferrerResponse.OK -> {
                // Connection established.
            }
            InstallReferrerResponse.FEATURE_NOT_SUPPORTED -> {
                // API not available on the current Play Store app.
            }
            InstallReferrerResponse.SERVICE_UNAVAILABLE -> {
                // Connection couldn't be established.
            }
        }
    }

    override fun onInstallReferrerServiceDisconnected() {
        // Try to restart the connection on the next request to
        // Google Play by calling the startConnection() method.
    }
})

자바

InstallReferrerClient referrerClient;

referrerClient = InstallReferrerClient.newBuilder(this).build();
referrerClient.startConnection(new InstallReferrerStateListener() {
    @Override
    public void onInstallReferrerSetupFinished(int responseCode) {
        switch (responseCode) {
            case InstallReferrerResponse.OK:
                // Connection established.
                break;
            case InstallReferrerResponse.FEATURE_NOT_SUPPORTED:
                // API not available on the current Play Store app.
                break;
            case InstallReferrerResponse.SERVICE_UNAVAILABLE:
                // Connection couldn't be established.
                break;
        }
    }

    @Override
    public void onInstallReferrerServiceDisconnected() {
        // Try to restart the connection on the next request to
        // Google Play by calling the startConnection() method.
    }
});

설치 리퍼러 가져오기

Play 스토어 앱에 연결을 설정한 후 다음 단계를 완료하여 설치 리퍼러에서 세부정보를 가져옵니다.

  1. 동기화된 getInstallReferrer() 메서드를 사용하여 ReferrerDetails의 인스턴스를 반환합니다.

  2. ReferrerDetails 클래스가 제공하는 메서드를 사용하여 설치 리퍼러에 관한 세부정보를 가져옵니다.

다음 코드는 설치 리퍼러 정보에 액세스하는 방법을 보여줍니다.

Kotlin

val response: ReferrerDetails = referrerClient.installReferrer
val referrerUrl: String = response.installReferrer
val referrerClickTime: Long = response.referrerClickTimestampSeconds
val appInstallTime: Long = response.installBeginTimestampSeconds
val instantExperienceLaunched: Boolean = response.googlePlayInstantParam

자바

ReferrerDetails response = referrerClient.getInstallReferrer();
String referrerUrl = response.getInstallReferrer();
long referrerClickTime = response.getReferrerClickTimestampSeconds();
long appInstallTime = response.getInstallBeginTimestampSeconds();
boolean instantExperienceLaunched = response.getGooglePlayInstantParam();

주의: 설치 리퍼러 정보는 90일 동안 사용할 수 있으며 애플리케이션을 재설치하지 않는 한 변경되지 않습니다. 앱에서 불필요한 API 호출을 피하려면 설치 후 첫 실행 시 한 번만 API를 호출해야 합니다.

서비스 연결 종료

리퍼러 정보를 가져온 후 InstallReferrerClient 인스턴스의 endConnection() 메서드를 호출하여 연결을 종료합니다. 연결을 종료하면 누출 및 성능 문제를 방지할 수 있습니다.

자세한 내용은 Play 설치 리퍼러 라이브러리 참조를 확인하세요.