안드로이드 딥 링크 기술 가이드: 구글 플레이 리퍼러

이 문서는 안드로이드 딥 링크 기술 가이드 4부 문서 중 4부입니다. 이전 포스트는 URI 스킴과 크롬 인텐트, 앱링크를 다루었습니다.

딥 링크에 구글 플레이 리퍼러 사용

딥 링크 기술 하나는 앱이 설치되지 않은 경우의 틈새시장을 위한 것입니다. 개발자로서 구글 플레이 스토어를 통해 맞춤 매개 변수를 전달할 수 있으며 사용자가 앱을 처음 열면 앱에서 이 매개 변수가 수신됩니다. 이 기술은 이 매개 변수를 잘 다루면 사용자의 유입 경로를 알 수 있으며 설치 절차를 통해 맞춤 랜딩 페이지나 딥 링크를 만들 수 있게 해 줍니다.

안드로이드 설치 리퍼러 요구사항
  • 앱은 설치되어있지 않아야 합니다
  • 플레이 스토어 URL을 구성해야 하므로 크롬 인텐트와 같이 사용할 수 없습니다
안드로이드 설치 리퍼러 설정

안드로이드 설치 리퍼러를 수신하도록 앱을 구성하려면, 앱이 com.android.vending.INSTALL_REFERRER 브로드캐스트를 수신하도록 등록해야 합니다. 매니페스트 파일의 <application /> 태그 사이에 다음 내용을 삽입하십시오.

<receiver android:name=io.branch.testbed.InstallListener android:exported=true>
<intent-filter>
<action android:name=com.android.vending.INSTALL_REFERRER />
</intent-filter>
</receiver>

 

이 경우에, 브로드캐스트를 수신할 맞춤 클래스 명칭은 io.branch.testbed.InstallListener입니다. 이는 BroadcastReceiver의 간단한 서브클래스입니다. 이 클래스에 필요한 상용 코드는 다음과 같습니다:

public class InstallListener extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// called in the install referrer broadcast case
}
}

 

앱에서 다루기

일단 위에서 언급한 것처럼 BroadcastReceiver를 설정하고 나면 인텐트를 다루기는 쉽습니다! 이는 URI 스킴을처리하는 메커니즘과 매우 유사하지만 이는 onReceive 콜 내부에서 일어납니다. 사례:

@Override
public void onReceive(Context context, Intent intent) {
String rawReferrerString = intent.getStringExtra(“referrer”);
if(rawReferrerString != null) {
Log.i(“MyApp”, “Received the following intent “ + rawReferrerString);
}
}

 

구글 플레이 리퍼러의 실용적인 사용

이 기술을 올바르게 사용하려면 사용자와 상호 작용하는 구글 플레이 스토어 링크를 제어할 수 있어야 합니다. 앱 패키지 명칭이 io.branch.testbed라고 가정하면, 구글 플레이가 다음 두 가지로 열릴 수 있습니다:

  1. market://details?id=io.branch.testbed
  2. https://play.google.com/store/apps/details?id=io.branch.testbed

리퍼러를 추가하려면 이 링크들에 &referrer=specialparam만 추가하면 됩니다. 이를 위해서는 링크 자체를 제어해야 합니다.

참고: 크롬 인텐트 섹션을 읽으며 알아챘을지 모르지만, 플레이 스토어 링크를 제어할 수 없는데 이는 이 방법을 활용할 수 없음을 뜻합니다.

리퍼러 매개 변수를 제어하기 위해서는 URI 메소드에 설명된 클라이언트 측 JS 내에 이를 포함하는 것을 추천합니다. 앱을 열려고 시도한 후에 실행되는 마켓 링크 대체 기능에 리퍼러가 어떻게 추가되는지 보여주는 코드 스니펫을 소개합니다.

var fallbackFunction = function() {
window.location.replace(‘market://details?id=io.branch.testbed&referrer=specialparam’);
};
var addIFrame = function() {
var iframe = document.createElement(“iframe”);
iframe.style.border = “none”;
iframe.style.width = “1px”;
iframe.style.height = “1px”;
iframe.src = ‘your_uri_scheme://’;
document.body.appendChild(iframe);
};
addIFrame();
setTimeout(fallbackFunction, 250);
view rawreferrer.js hosted with ❤ by GitHub

 

결론

구글 딥 링크는 믿을 수 없을 만큼 복잡하며 곳곳에 경계 조건이 널려 있습니다. Branch 툴을 사용하면 링크가 어디서나 작동한다고 확신가지실 수 있습니다.

TO LEARN MORE ABOUT BRANCH'S
PRODUCTS AND SERVICES

Request a demo