iOS SDK Integration
1. 필수 설정
SDK 설치
Cocoapod 환경에서 SDK 다운로드 방법
XCode 프로젝트 파일중 Podfile 파일에 다음과 같이 SDK를 추가합니다
CopySHELL1pod 'RW'
기존에 SDK를 한번 설치한 경우에는 설치할SDK 버전을 표시해야 하는 경우도 있습니다. 아래와 같이 설치할 SDK버전을 명시적으로 표시하면 됩니다.
CopySHELL1pod 'RW', '~> 1.0.6'
Podfile 에 해당라인을 추가한 후 Terminal 프로그램을 실행하여 다음의 명령을 수행합니다
CopySHELL1pod install
SDK 버전 업데이트의 경우 다음의 명령을 수행합니다.
CopySHELL1pod update
정상적으로 설치가 되면 아래와 같은 폴더 구조를 확인할 수 있습니다.
dotAuthorizationKey 등록
info.plist 파일을 Open As Source Code 방식으로 오픈한 후, 아래 코드를 추가합니다.
CopyXML1<key>dotAuthorizationKey</key>2<dict>3 <key>serviceNumber</key>4 <string>xxxxx</string>5 <key>expireDate</key>6 <string>14</string>7 <key>isDebug</key>8 <string>true</string>9 <key>isInstallRetention</key>10 <string>true</string>11 <key>isFingerPrint</key>12 <string>true</string>13 <key>accessToken</key>14 <string></string>15 <key>useMode</key>16 <string>2</string>17</dict>
추가한 코드 중 serviceNumber
의 value를 올바른 값으로 변경해야 합니다. 와이즈트래커에 로그인하여 화면 상단의 Service 부분을 선택하면 앱 이름과 함께 올바른 Service Number 가 나타납니다. Service No. 옆의 숫자를 복사하여 serviceNumber
의 value로 입력해주세요.
HTTP 통신 허용
http통신을 허용하기 위해 NSAppTransportSecurity 를 아래와 같이 추가합니다
CopyXML1<key>NSAppTransportSecurity</key>2<dict>3 <key>NSAllowsArbitraryLoads</key>4 <true/>5</dict>
초기화
AppDelegate의 didFinishLaunchingWithOptions
함수에 SDK를 Initialization하기 위한 코드를 다음과 같이 적용합니다.
SDK가 정상적으로 초기화 되었을 때 아래와 같은 기본 분석이 가능합니다.
- 앱 실행 및 방문수, 일/주/월순수방문수 등 방문과 관련된 지표
- 통신사, 단말기, 국가 등 방문자의 단말기 환경으로 부터 추출될 수 있는 지표
CopyOBJECTIVEC1#import <DOT/DOT.h>2- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {3 [DOT initialization:launchOptions application:application];4}
DOT가 사용되는 곳에서는 import DOT
을 통해 import가 필요합니다. 이하 적용 예시에서는 import하는 부분이 생략되어 있습니다.
페이지 분석을 위한 설정
페이지뷰, 페이지 체류시간 분석이 가능합니다. 각 ViewController 이동 시에 호출되는 delegate 함수에 다음과 같이 기본적인 페이지 분석을 위한 코드를 적용합니다.
CopyOBJECTIVEC1- (void)viewWillAppear:(BOOL)animated {2 [super viewWillAppear:animated];3 [DOT onStartPage];4}
Hybrid App을 위한 설정
Hybrid 앱의 경우 앱 내에서 WebView 를 사용하여 웹 컨텐츠를 서비스 하기도 합니다. 이와 같이 Webview 에 의해서 보여지는 웹 컨텐츠의 경우에는 위에서 설명된 Native 화면과는 다른 방식으로 동작하기 때문에, 별도의 분석 코드 적용이 필요합니다. 분석 대상 앱이 만약 Hybrid 앱인 경우에는 아래의 코드를 참고하여 웹 컨텐츠도 분석할 수 있도록 적용을 해야합니다.
앱내에서 사용할 WKWebView의 Delegate 함수에 아래와 같이 분석코드를 적용합니다
CopyOBJECTIVEC1- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {2 if(webView.isLoading) {3 return;4 }5 [DOT setJavascriptInjectionInWkWebView:webView];6}7- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {8 NSURLRequest *request = navigationAction.request;9 decisionHandler(WKNavigationActionPolicyAllow);10 [DOT setWkWebView:webView reqeust:request];11}
2. 고급설정
고급 설정이란 반드시 적용할 필요는 없지만 와이즈트래커의 확장된 분석기능을 활용하기 위해 추가해야 하는 설정을 말합니다. 필요에 따라 선택적으로 설정을 추가해주시기 바랍니다.
Universal Link 설정
Univarsal Link 사용을 위해 Capabilities에 Associated Domains를 추가해주세요.
associated Domains에 WiseTracker 서비스 도메인을 등록합니다.
- applinks:app.wisetracker.co.kr
위 두 도메인의 서버에 apple-app-site-association에 적용할 앱의 번들 ID와 팀 ID를 당사에 공유해 주세요.
appDelegate 아래 함수 적용
continueUserActivity 부분에 아래와 같이 적용이 되면 유니버셜 링크를 통한 광고분석이 가능합니다.
CopySWIFT1func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {2 if let uniLink = userActivity.webpageURL?.absoluteString {3 DOT.setDeepLink(uniLink)4 }5 return false;6}
앱 설치 경로 측정
앱이 설치된 경로를 분석하는 시점은, 앱이 설치후 처음 실행될때 설치 경로를 획득하게 됩니다. 이에 대한 처리는 기본적으로 위에서 설명된 SDK 필수 적용 사항이 적용된 상태에서는 자동으로 처리가 되기 때문에 별도의 분석코드 적용이 필요하지 않습니다. 다만 앱의 특별한 상황에 의해서 앱에서 수신된 설치 경로 정보를 SDK에 직접 설정하고자 하는 경우에는 다음의 코드를 사용하세요.
AppDelegate 정의 항목중 didFinishLaunchingWithOptions
함수 정의에서 파라미터로 전달받은 launchOptions 로 부터 설치 경로를 직접 획득 후
수신된 값을 setInstallReferrer
함수를 사용해서 SDK로 전달할 수 있습니다.
다만 주의할 사항은 아래와 같이 직접 앱 설치 경로를 SDK에 설정하는 경우 해당 코드가 매 실행 시점마다 반복해서 실행되지 않고 앱 설치 후 최초 1회만 동작하도록 적용되어야 합니다.
또한 아래의 코드는 반드시 SDK initialization() 함수 호출 이후 에 적용되어야 합니다.
CopyOBJECTIVEC1- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {2 NSURL *referrer = [launchOptions valueForKey:UIApplicationLaunchOptionsURLKey];3 if (referrer){4 [DOT setInstallReferrer:referrer];5 }6}
딥링크를 통한 앱 실행 측정
앱이 설치된 이후 DeepLink를 통해서 앱이 실행되는 경로 분석이 필요한 경우 아래와 같이 setDeepLink
함수를 사용하면 분석이 가능합니다
CopyOBJECTIVEC1- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {2 [DOT setDeepLink:[url absoluteString]];3 return YES;4}
Facebook 광고 성과 측정
Facebook 앱에서 유입되는 설치수를 분석하기 위해서는 Facebook에서 제공하는 SDK가 분석 대상 앱에 설치가 선행되어야 합니다.
FBSDK 다운로드 방법
1) XCode 프로젝트 파일중 Podfile 파일에 다음과 같이 SDK를 추가합니다
CopySHELL1pod 'FacebookSDK'
2) Podfile 에 dependency 를 추가한 뒤에는 Terminal 프로그램을 실행하여 다음의 명령을 수행합니다
CopySHELL1cmd> pod install
FBSDK 설치 방법
1) info.plist 파일을 source로 보기 로 오픈합니다
2) 이름 속성 아래에 포함된 내용중 [APP\_ID] 와 [APP\_NAME] 부분을 Facebook Developer Site 에서 제공하는 값으로 치환후 info.plist 파일에 저장합니다
CopyXML1<key>CFBundleURLTypes</key>2<array>3 <dict>4 <key>CFBundleURLSchemes</key>5 <array>6 <string>fb[APP_ID]</string>7 </array>8 </dict>9</array>10<key>FacebookAppID</key>11<string>[APP_ID]</string>12<key>FacebookDisplayName</key>13<string>[APP_NAME]</string>
####. FBSDK 로부터 Install Referrer를 수신하고, SDK에 전달하는 방법
사용자가 Facebook에 노출된 광고를 클릭하고 앱을 설치한 경우 설치된 앱에서는 FBSDK를 통해서 AppLinkData를 수신받을 수 있습니다.
아래의 코드에서 FBSDK로부터 AppLinkData를 수신 받고, 수신 받은 AppLinkData 를 SDK로 전달하는 방법을 확인할 수 있습니다.
이 함수는 appDelegate의 didFinishLaunchingWithOptions
함수에 적용하세요. SDK 초기화 API initialization
호출 전에 적용해주세요.
CopyOBJECTIVEC1- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {2 [FBSDKAppLinkUtility fetchDeferredAppLink:^(NSURL *url, NSError *error) {3 if(error) {4 NSLog(@"Received error while fetching deferred app link %@", error);5 }6 if(url) {7 [DOT setFacebookreferrerData:url];8 }9 }];10}
Facebook SDK와 관련하여 보다 자세한 설치 방법은 아래의 링크에서 확인이 가능합니다 FBSDK iOS 적용방법 자세히 보기