Home > V2 > Docs > Sdk > Android > Android-install-guide

Android SDK Integration

분석 시스템의 핵심 구성요소인 SDK는 앱 인스톨과 인앱 이벤트를 어트리뷰트하고 인앱 애널리틱스에 필요한 데이터 포인트를 확보하는 역할을 수행합니다. 데이터를 측정하기 위해 본 문서의 안내에 따라 Wisetracker SDK를 Android App에 연동하여 주시기 바랍니다.

1. 필수 설정

필수 설정이란 SDK가 동작하기 위해서 반드시 앱에 추가되어야 하는 최소한의 설정을 말합니다. 필수 설정을 적용하게 되면 인스톨, 세션, 단말기 정보 등을 측정할 수 있게 됩니다.

앱에 SDK 추가

프로젝트의 app/build.gradle 파일에 있는 dependencies에 아래와 같이 Wisetracker SDK를 추가해주세요.

Copy
GROOVY
1dependencies {
2 implementation fileTree(dir: 'libs', include: ['*.jar'])
3 ....
4 implementation 'com.sdk.wisetracker.base:base_module:1.0.25'
5 implementation 'com.sdk.wisetracker.new_dot:new_dot_module:1.0.25'
6}

AuthorizationKey 등록

프로젝트의 app/res/values/strings.xml 파일에 아래 코드를 추가합니다.

Copy
XML
1<string-array name="dotAuthorizationKey">
2 <item name="useMode">1</item>
3 <item name="serviceNumber">xxxxx</item>
4 <item name="expireDate">14</item>
5 <item name="isDebug">false</item>
6 <item name="isInstallRetention">true</item>
7 <item name="isFingerPrint">true</item>
8 <item name="accessToken"></item>
9</string-array>

추가한 코드 중 serviceNumber의 value를 올바른 값으로 변경해야 합니다. 와이즈트래커에 로그인하여 화면 상단의 Service 부분을 선택하면 앱 이름과 함께 올바른 Service Number 가 나타납니다. Service No. 옆의 숫자를 복사하여 serviceNumber의 value로 입력해주세요.

authKey

HTTP 통신 허용

프로젝트의 Target API가 API Level 28 이상일 경우에 적용하는 설정입니다. 아래와 같이 HTTP 통신을 허용하는 두 가지 설정을 추가해주세요.

AndroidManifest.xml 설정

Copy
XML
1<!-- AndroidManifest.xml -->
2<application
3 android:icon="@mipmap/ic_launcher"
4 android:label="@string/app_name"
5 android:networkSecurityConfig="@xml/network_security_config"
6 android:theme="@style/AppTheme">

app/res/xml/network_security_config.xml 설정

Copy
XML
1<?xml version="1.0" encoding="utf-8"?>
2<network-security-config>
3 <domain-config cleartextTrafficPermitted="true">
4 <domain includeSubdomains="true">trk.analytics.wisetracker.co.kr</domain>
5 </domain-config>
6</network-security-config>

초기화

Application을 상속받는 클래스가 아닌 Activity를 상속받는 기본 화면의 onCreate() 함수에 적용해 주세요

Copy
JAVA
1public class MainActivity extends AppCompatActivity {
2 @Override
3 protected void onCreate(Bundle savedInstanceState) {
4 // SDK 호출
5 DOT.initialization(this);
6 }
7}

Activity 감지를 위한 설정 추가

화면(Activity) 전환을 분석하기 위한 설정입니다. onResumeonStartPage를 추가해주세요.

Copy
JAVA
1@Override
2protected void onResume() {
3 super.onResume();
4 DOT.onStartPage(context);
5}

Hybrid App을 위한 설정 추가

Hybrid App인 경우에만 적용하면 되는 설정으로, WebView로 표시한 웹페이지 내에서 발생하는 이벤트를 측정하기 위해 필요합니다. 웹뷰로 불러온 페이지를 감지할 수 있도록 다음과 같이 setWebView 함수를 호출해주세요.

Copy
JAVA
1@Override
2protected void onCreate(@Nullable Bundle savedInstanceState) {
3 super.onCreate(savedInstanceState);
4 WebView webView = findViewById(R.id.web_view);
5
6 DOT.setWebView(webView);
7}

그리고 WebViewClient 의 각각의 콜백에 아래와 같이 적용해주세요.

Copy
JAVA
1webView.setWebViewClient(new WebViewClient() {
2 private Map<String,Object> status = DOT.getWebviewClientStatus();
3 @Override
4 public void onPageStarted(WebView view, String url, Bitmap favicon) {
5 DOT.updatePageStartStatus(status);
6 }
7
8 @SuppressWarnings("deprecation")
9 @Override
10 public boolean shouldOverrideUrlLoading(WebView view, String url) {
11 DOT.updateShouldOverrideUrlLoadingStatus(status);
12 return false;
13 }
14
15 @TargetApi(Build.VERSION_CODES.N)
16 @Override
17 public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
18 DOT.updateShouldOverrideUrlLoadingStatus(status);
19 return false;
20 }
21
22 @Override
23 public void onPageFinished(WebView view, String url) {
24 super.onPageFinished(view, url);
25 if( DOT.checkOnPageFinished(status)){
26 DOT.injectJavascript(view);
27 }
28 }
29});

2. 고급 설정

고급 설정이란 반드시 적용할 필요는 없지만 와이즈트래커의 확장된 분석기능을 활용하기 위해 추가해야 하는 설정을 말합니다. 필요에 따라 선택적으로 설정을 추가해주시기 바랍니다.

앱 링크 설정 가이드는 별도의 문서에 정리되어 있습니다.
Android App Link 설정 방법 자세히 보기

딥링크 설정

  • 딥링크가 설정된 url 을 통해서 오픈된 이벤트를 분석합니다. AndroidManifest.xml 파일에서 앱의 환경에 맞춰 딥링크로 오픈되는 Activity의 android:host, android:scheme 값을 변경해 주세요.
Copy
XML
1<!-- 예시는 wisetracker://wisetracker.co.kr 링크로 앱 진입 경우 -->
2<activity android:name="com.sample.DeepLinkActivity"
3 android:launchMode="singleTop" >
4 <intent-filter>
5 <action android:name="android.intent.action.VIEW" />
6 <category android:name="android.intent.category.DEFAULT" />
7 <category android:name="android.intent.category.BROWSABLE" />
8 <!-- 딥링크로 진입될 스키마와 호스트 정보 수정 -->
9 <data android:host="wisetracker.co.kr"
10 android:scheme="wisetracker" />
11 </intent-filter>
12</activity>

딥링크 분석

딥링크로 실행되는 Activity의 onCreateonNewIntent에 아래와 같이 setDeepLink를 추가합니다.

Copy
JAVA
1public class DeepLinkActivity extends Activity {
2 @Override
3 protected void onCreate(@Nullable Bundle savedInstanceState) {
4 super.onCreate(savedInstanceState);
5 /* 중략.. */
6 DOT.setDeepLink(getApplicationContext(), getIntent());
7 }
8 @Override
9 protected void onNewIntent(Intent intent) {
10 super.onNewIntent(intent);
11 DOT.setDeepLink(getApplicationContext(), getIntent());
12 }
13}

Facebook 광고 성과 측정

Facebook App Ads의 퍼포먼스를 와이즈트래커로 측정하는데 필요한 설정으로, Facebook SDK가 앱에 추가되어 있는 경우에만 설정을 적용할 수 있습니다.

설정 적용

프로젝트의 app/res/values/strings.xml 파일에 아래 설정을 추가합니다.

Copy
XML
1<!-- facebook AppLinkData 사용 여부 -->
2 <string name="useFacebookAppLinkData">Y</string>

최초로 실행되는 Activity의 onCreate에 다음 코드를 추가해 주세요.

Copy
JAVA
1// call Facebook API
2AppLinkData.fetchDeferredAppLinkData(context, new AppLinkData.CompletionHandler() {
3 @Override
4 public void onDeferredAppLinkDataFetched(AppLinkData appLinkData) {
5 if (appLinkData == null) {
6 DOT.receiveFailFacebookReferrer(1);
7 return ;
8 }
9 Bundle bundle = appLinkData.getArgumentBundle();
10 if (bundle == null) {
11 DOT.receiveFailFacebookReferrer(2);
12 return;
13 }
14 DOT.setFacebookReferrer(bundle);
15 }
16});

데이터 확인

Facebook의 App Ads Helper로 Deferred Deep Linking 을 테스트 함으로써 위 설정이 올바르게 적용 되었는지를 확인할 수 있습니다.

준비사항

  1. Android 테스트 단말기 환경
    • 단말기에 Facebook 앱을 설치하고 Facebook 개발자 계정으로 로그인해주세요.
    • 단말기에 테스트 대상 앱(고객사 앱)이 설치되어 있다면 삭제해주세요.
    • 개발자 모드와 USB 디버깅을 활성화 해주세요.
  2. 데스크탑 환경
    • Android Studio를 설치해주세요.
    • USB로 연결된 테스트 단말기의 log를 Android Studio의 logcat으로 확인할 수 있어야 합니다.
  3. Facebook 설정
    • 테스트 대상 앱이 Facebook Developer에 등록되어 있어야 합니다.
    • 개발자 계정으로 로그인하여 테스트를 진행합니다.

앱 설치형 광고 테스트

  1. https://developers.facebook.com -> 도구 -> 앱 광고 지원 도구 메뉴로 이동합니다.

fb01

  1. 테스트할 앱을 선택한 후 페이지 하단 Developer Tool의 딥링크 테스트를 클릭합니다.

fb02

  1. PC에서 Android Studio를 실행하고 테스트 단말기를 USB로 연결하여 관련 로그를 logcat으로 확인할 수 있도록 준비합니다. 앱이 수신한 Deep Link를 logcat에서 확인해야 하기 때문입니다.

  2. Facebook 테스트 페이지로 돌아갑니다. 앱의 커스텀 스키마를 Send Deep Link에 입력하고 Send to Android 를 클릭합니다. 이 때 전송지연은 반드시 체크되어 있어야 합니다.

fb03

  1. 테스트 단말기의 Facebook 앱에 알림이 전송됩니다. 해당 알림를 탭하면 플레이스토어로 진입 할 것입니다. 플레이스토어에서 앱을 다운로드 받지 마시고, 6)번 단계로 진행하십시오.

fb04

  1. 안드로이드 스튜디오를 통해 해당 앱을 실행하고 로그를 확인 합니다. Facebook에 입력한 커스텀 스키마가 아래 그림처럼 logcat에서 보인다면 페이스북 앱 설치 광고에 대한 분석이 가능합니다.

fb05

앱 참여형 광고 테스트

  1. 앱 참여 광고를 진행하는 경우 이미 앱을 설치한 사용자가 광고를 클릭하여 앱을 실행하는 시점에 페이스북 광고에 등록한 딥 링크값이 동작하는지 여부를 확인하면 됩니다.

  2. 앱 참여 광고 등록 시 사용한 딥 링크를 Send Deep Link 영역에 입력 후 Send to Android 버튼을 클릭합니다. 이 때 전송 지연는 반드시 체크 해제되어 있어야 합니다.(위의 4)단계와 비교)

fb06

  1. 테스트 단말기의 Facebook 앱에 알림이 전송됩니다. 해당 링크를 클릭하여 앱을 실행합니다.

  2. Facebook에 입력한 커스텀 스키마가 아래 그림처럼 logcat에서 보인다면 페이스북 앱 광고에 대한 분석이 가능합니다.

fb07

Table of Contents

© 2020 Wisetracker 주식회사 와이즈트래커
대표이사: 김선준 | 서울시 강남구 테헤란로 415, 스파크플러스 2층 | 02-6925-6636 | contact@wisetracker.co.kr | 사업자등록번호: 261-81-22632 | 통신판매업신고: 2015-서울강남-02766