SDK 삽입

웹뷰를 통해 서비스를 제공하는 하이브리드앱은 기본적으로 Android 및 iOS 앱에 종속됩니다. 따라서 기본적으로 Android 및 iOS SDK가 해당 앱에 설치된 상태에서 구글 플레이스토어와 애플 앱스토어에 배포되어야 정확한 웹뷰 데이터 측정이 가능합니다.

필수 설정

필수 설정이란 SDK가 동작하기 위해서 반드시 앱에 추가되어야 하는 최소한의 설정을 말합니다. 하이브리드앱 환경에서의 필수 설정이란,

  1. Android 및 iOS용 앱 SDK가 설치

  2. 웹뷰의 각 페이지에 트래킹 스크립트 삽입

이 완료되는 것을 의미합니다.

앱에 SDK 추가 및 초기화

  • Android 앱에 대한 SDK 설치는 여기를 참고하여 설치를 완료하십시오.

  • iOS 앱에 대한 SDK 설치는 여기를 참고하여 설치를 완료하십시오.

웹,앱 분석을 동시에 해야 하는 경우 예외 처리

HibridApp 으로 개발된 모바일 앱에서, WebView 에 로딩되는 페이지가 일반 데스크탑 브라우저 환경에서도 동일하게 사용하는 경우가 있습니다.

이러한 경우, 해당 웹 페이지에는

  1. 웹 사이트 분석을 위한 SDK 와 분석 코드 셋트와

  2. 모바일 앱 분석을 위한 분석 코드 셋트가 동시에 존재하게 됩니다.

이때 사용자가 모바일 앱으로 접근하여, 해당 페이지를 웹뷰에서 렌더링 시키게되면, 해당 페이지에 적용된 웹 사이트 분석 SDK와 분석 코드 셋트가 실행되어, 데이터가 더블 카운팅되는 현상이 나타날 수 있습니다. 이러한 현상을 방지하기 위한 방법으로 아래의 내용을 참고하시기 바랍니다.

  • 앱에서 웹뷰에 페이지를 렌더링 하기 전에, 아래의 코드 예시와 같이 웹뷰의 navigator.userAgent 문자열에 "RW2SDK" 문자열을 추가합니다.

StringBuilder _userAgent = new StringBuilder();
_userAgent.append(webView.getSettings().getUserAgentString());
_userAgent.append("RW2SDK");
webView.getSettings().setUserAgentString(_userAgent.toString());
  • 웹 사이트 분석 SDK는 아래와 같이 navigator.userAgent 에 "RW2SDK" 문자열이 존재할 경우, SDK의 초기화 요청을 무시하게 되며, 아래와 같은 console 메시지를 출력하도록 구현되어 있습니다.

export class WDOTInitialization {   
/**    * Website SDK Initialzation    ***/   
    static setConfig(config){      
        let _ua = window.navigator.userAgent;      
        if ( _ua.indexOf("RW2SDK") >= 0 ){         
            console.log("WDOT is disabled with RW Native SDK.  ( WDOTInitialization )  ");      
        }      
        else{         
            window.DOP_SDK_CONF = config;         
            console.log("Set window.DOP_SDK_CONF ", window.DOP_SDK_CONF );      
        }   
    }
    .... 중략 ... 
}
  • 위와 같이 모바일 앱에서 사용하는 웹뷰의 userAgent 에 예약된 문자열 (RW2SDK) 를 추가하면, 사용자가 브라우저로 접속하면 웹 사이트 스크립트가 동작할 것이고, 사용자가 모바일 앱을 통해서 웹페이지를 접근하면 User-Agent때문에, 웹사이트 스크립트는 disabled 됩니다.

  • 웹페이지에는 WDOT 로 태깅된 웹사이트 분석코드와, DOT 로 태깅된 모바일 웹뷰 분석코드가 모두 동시에 존재 가능하며, 추가적으로 웹 페이지에 적용되는 분석 코드에 대하여 DOT, WDOT 객체에 대한 Null 체크가 반드시 이루어져야 합니다. 각각의 환경에서 사용되는 SDK Referrence Object가 다르기 때문에 다음과 같이 if 처리를 진행 해 주세요.


// 화면분석을 위한 logScreen 처리 logScreen 처리 ( 모바일 웹뷰에서 로딩시 ) 
if (typeof DOT != 'undefined') {
  DOT.logScreen(screen);
}
else if (typeof WDOT != 'undefined') {       // ( 브라우져로 로딩시 ) 
  WDOT.onStartPage(window.WDOTParam || {});
}

// 앱내 동작 분석을 위한 logEvent
if (typeof DOT != 'undefined') {
  DOT.logEvent(event);
}
else if (typeof WDOT != 'undefined') {
  WDOT.logEvent(event);
}

Last updated