iOS용 모바일 앱 SDK용 Google 애널리틱스를 사용하면 iOS 기반 애플리케이션에서 Google 애널리틱스를 쉽게 구현할 수 있습니다. 이 문서에서는 SDK를 앱과 통합하는 방법을 설명합니다.
SDK 개요
이 SDK는 기존 웹사이트로 사용자를 추적하고 기존 웹페이지의 위젯과의 상호작용을 추적하도록 설계된 추적 모델을 사용합니다. 따라서 아래와 같은 용어는 기존 웹사이트 추적 모델을 반영하며, 모바일 애플리케이션 추적에 매핑됩니다. 이 SDK의 작동 방식을 이해하려면 애널리틱스 추적을 잘 알아야 합니다.
모바일 추적 SDK를 사용하여 다음 애널리틱스 상호작용 유형으로 휴대전화 애플리케이션을 추적합니다.
- 페이지 조회 추적
- 페이지 조회는 기존 웹사이트에 대한 트래픽 양을 측정하는 표준 수단입니다. 모바일 앱에는 HTML 페이지가 포함되어 있지 않으므로 페이지 조회 요청을 트리거할 시점과 빈도를 결정해야 합니다. 또한 페이지 조회 요청은 디렉터리 구조를 보고하도록 설계되었으므로 애널리틱스의 콘텐츠 보고서에서 페이지 경로 이름 지정을 활용하려면 요청의 구체적인 이름을 제공해야 합니다. 선택한 이름은 실제로 HTML 페이지가 아니더라도 애널리틱스 보고서에 페이지 경로로 채워지지만, 경로를 추가로 구성하여 호출에 유용하게 사용할 수 있습니다.
- 이벤트 추적
- 애널리틱스의 이벤트는 페이지 조회와는 별개로 웹페이지 요소와 사용자 상호작용을 추적하도록 설계되었습니다. Google 애널리틱스의 이벤트 추적 기능을 사용하면 애널리틱스 보고서 인터페이스의 이벤트 추적 섹션에서 보고되는 추가 호출을 수행할 수 있습니다. 이벤트는 카테고리를 사용하여 그룹화되며 이벤트별 라벨을 사용할 수도 있으므로 보고서의 유연성을 제공합니다. 예를 들어 멀티미디어 앱에서 동영상 카테고리에 재생/중지/일시중지 작업을 실행하고 각 동영상 이름에 라벨을 할당할 수 있습니다. 그러면 Google 애널리틱스 보고서에서 video 카테고리로 태그가 추가된 모든 이벤트의 이벤트를 집계합니다. 이벤트 추적에 관한 자세한 내용은 이벤트 추적 가이드를 참고하세요.
- 전자상거래 추적
- 전자상거래 추적 기능을 사용하여 장바구니 거래 및 인앱 구매를
추적합니다.
거래를 추적하려면
addTransaction
메서드를 호출하여 전체 거래를 만들고 장바구니의 각 제품에 대한addItem
메서드도 생성합니다. 데이터를 수집하면 Google 애널리틱스 인터페이스의 전자상거래 보고서 섹션에서 확인할 수 있습니다. 전자상거래 추적에 대한 자세한 내용은 전자상거래 추적 가이드를 참고하세요. - 맞춤 변수
- 맞춤 변수는 Google 애널리틱스 추적을 미세 조정하기 위해 추적 코드에 삽입할 수 있는 이름-값 쌍 태그입니다. 맞춤 변수를 사용하는 방법에 관한 자세한 내용은 맞춤 변수 가이드를 참고하세요.
- NoThumb 지원
-
iPhone용 SDK에는 이제 라이브러리의 NoThumb 버전과 표준 Thumb 버전이 함께 제공됩니다. 라이브러리의 NoThumb 버전을 사용하려면
libGoogleAnalytics.a
파일 대신libGoogleAnalytics_NoThumb.a
파일을 사용하세요.
시작하기
요구사양
Google 애널리틱스 추적 기능을 iOS 앱에 통합하려면 다음이 필요합니다.
- iOS 개발자 SDK(Mac OS X 10.5.3 이상에서 실행되는 Xcode 3.1 이상 필요)
- 모바일 앱용 Google 애널리틱스 iOS SDK
설정
- Xcode를 열고 새 iPhone OS 프로젝트를 만듭니다.
- SDK의 라이브러리 디렉터리에서 새 프로젝트로
GANTracker.h
및libGoogleAnalytics.a
를 드래그합니다. - 프로젝트에
CFNetwork
프레임워크를 포함하고libsqlite3.0.dylib
에 연결합니다.
모바일 앱용 Google 애널리틱스 SDK는 iOS 2.0 이상을 실행하는 모든 iPhone 또는 iPod Touch에서 사용할 수 있습니다. 라이브러리는 네이티브 애플리케이션을 지원하는 모든 iOS 버전과 호환됩니다.
애플리케이션이 성공적으로 설치되면 어떤 모습이어야 하는지 보여주는 예시 애플리케이션이 SDK에 포함되어 있습니다. 애널리틱스 통합 앱의 템플릿으로 사용할 수 있습니다.
SDK 사용
SDK를 사용하기 전에 먼저 www.google.com/analytics에서 무료 계정을 만들고 허위이지만 구체적인 웹사이트 URL (예: http://mymobileapp.mywebsite.com
)을 사용하여 해당 계정에 새 웹 속성을 만들어야 합니다. 속성을 만든 후 새로 만든 속성에 생성된 웹 속성 ID를 기록하거나 보관해 두세요.
애플리케이션 내에서 또는 서비스 약관에서 사용자에게 앱 내에서의 사용자 활동을 익명으로 추적하고 보고할 권리를 보유해야 한다고 사용자에게 알려야 합니다. Google 애널리틱스 SDK 사용에는 추가적으로 Google 애널리틱스 서비스 약관이 적용되며, 이 경우 계정을 신청할 때 동의해야 합니다.
샘플 및 권장사항
code.google.com의 analytics-api-samples 프로젝트 아래에서 샘플 코드와 권장사항을 확인할 수 있습니다.
EasyTracker 라이브러리
EasyTracker 라이브러리를 사용할 수 있습니다. 애플리케이션 개발과 UIViewController 수준 추적을 제공하며 개발 작업이 거의 필요하지 않습니다. analytics-api-samples 프로젝트의 다운로드 섹션에서 확인할 수 있습니다.
트래커 시작
[GANTracker sharedTracker]
를 통해 가져온 추적기 싱글톤에서 startTrackerWithAccountID
메서드를 호출하여 추적기를 시작합니다. 이 메서드는 주로 앱 대리자의 applicationDidFinishLaunching
메서드에서 직접 호출합니다. 웹 서비스 ID, 필수 전달 기간, 선택적 위임을 전달합니다. 예를 들면 다음과 같습니다.
#import "BasicExampleAppDelegate.h" #import "GANTracker.h" // Dispatch period in seconds static const NSInteger kGANDispatchPeriodSec = 10; @implementation BasicExampleAppDelegate @synthesize window = window_; - (void)applicationDidFinishLaunching:(UIApplication *)application { // ************************************************************************** // PLEASE REPLACE WITH YOUR ACCOUNT DETAILS. // ************************************************************************** [[GANTracker sharedTracker] startTrackerWithAccountID:@"UA-0000000-1" dispatchPeriod:kGANDispatchPeriodSec delegate:nil]; NSError *error; if (![[GANTracker sharedTracker] setCustomVariableAtIndex:1 name:@"iPhone1" value:@"iv1" withError:&error]) { // Handle error here } if (![[GANTracker sharedTracker] trackEvent:@"my_category" action:@"my_action" label:@"my_label" value:-1 withError:&error]) { // Handle error here } if (![[GANTracker sharedTracker] trackPageview:@"/app_entry_point" withError:&error]) { // Handle error here } [window_ makeKeyAndVisible]; } - (void)dealloc { [[GANTracker sharedTracker] stopTracker]; [window_ release]; [super dealloc]; } @end
페이지 조회 및 이벤트 추적
페이지 조회와 이벤트를 추적하는 방법은 간단합니다. 페이지 조회를 트리거할 때마다 추적기 객체의 trackPageView
를 호출하기만 하면 됩니다. trackEvent
를 호출하여 이벤트를 녹화합니다. 페이지 조회 및 이벤트에 대한 자세한 내용은 위의 SDK 개요를 참조하세요.
맞춤 변수 사용
맞춤 변수를 추가하는 것도 간단합니다. 모바일 SDK에서 제공하는 setCustomVariableAtIndex
메서드를 사용하면 됩니다. 각 맞춤 변수가 매핑되는 색인을 미리 계획하여 기존 변수를 덮어쓰지 않도록 하는 것이 좋습니다. 맞춤 변수에 관한 자세한 내용은 맞춤 변수 가이드를
참고하세요. setCustomVariableAtIndex
메서드는 데이터를 자체로 직접 전송하지 않습니다. 그 대신 추적되는 페이지 조회 또는 이벤트와 함께 데이터가 전송됩니다. 페이지 조회 또는 이벤트를 추적하려면 먼저 setCustomVariableAtIndex
를 호출해야 합니다. 맞춤 변수의 기본 범위는 페이지 범위로 설정됩니다.
전자상거래 추적 이용하기
애플리케이션에서 전자상거래 추적을 사용 설정하는 데 사용하는 방법에는 4가지가 있습니다.
addTransaction
addItem
trackTransactions
clearTransactions
addTransaction
및 addItem
를 호출하면
거래 또는 항목이 내부 전자상거래 버퍼에 추가되며, 여기에 더 많은 항목과
거래를 추가할 수 있습니다. trackTransactions
를 호출하는 경우에만 트랜잭션과 항목이 디스패처로 전송되고 큐에 추가되어 Google 애널리틱스로 전송됩니다.
버퍼를 지우려면 clearTransactions
메서드를 호출하면 됩니다.
참고: 이전에 디스패처로 전송된 거래나 Google 애널리틱스에서 이미 수집한 거래는 기억되지 않습니다.
다음 샘플 코드를 사용하여 시작할 수 있습니다.
/** * The purchase was processed. We will track the transaction and its associated line items * now, but only if the purchase has been confirmed. */ - (void) processPurchase:Purchase purchase { [[GANTracker sharedTracker] addTransaction:[purchase transactionId] totalPrice:[purchase totalPrice] storeName:[purchase store] totalTax:[purchase tax] shippingCost:[purchase shipping] withError:&error]; if (error) { // Handle error } for (PurchaseItem item in [purchase items]) { [[GANTracker sharedTracker] addItem:[purchase transactionId] itemSKU:[item itemSKU] itemPrice:[item price] itemCount:[item count] itemCategory:[item category] withError:&error]; if (error) { // Handle error } } if ([purchase isConfirmed]) { [[GANTracker sharedTracker] trackTransactions:&error]; } else { // The purchase was denied or failed in some way. We need to clear out // any data we've already put in the Ecommerce buffer. [[GANTracker sharedTracker] clearTransactions:&error]; } }
전자상거래에 대한 자세한 내용은 전자상거래 추적 가이드를 참조하세요.
IP 익명 처리
사용자 IP 정보를 익명처리하려면 anonymizeIp
속성을 YES로 설정합니다.
Google 애널리틱스에 SDK에서 전송된 정보를 익명처리하기 전에
저장하기 전에 IP 주소의 마지막 옥텟을 삭제합니다.
다음은 설정 방법의 예입니다.
[[GANTracker sharedTracker] setAnonymizeIp:YES];
언제든지 anonymizeIp
를 설정할 수 있습니다.
샘플링 레이트 설정
sampleRate
속성을 사용하여 샘플링 레이트를 설정할 수 있습니다.
애플리케이션에서 애널리틱스 트래픽이 많이 생성되는 경우 샘플링 레이트를 설정하면 샘플링된 데이터를 사용하여 보고서가 생성되지 않을 수 있습니다. 샘플링은 순 사용자 전체에 걸쳐 일관되게 나타나므로 샘플링 레이트를 사용 설정하면 트렌드와 보고에 무결성이 유지됩니다.
sampleRate
매개변수는 NSUInteger이며 0과 100 사이의 값을 가질 수 있습니다. 다음은 sampleRate
를 95%로 낮추는 예입니다.
[[GANTracker sharedTracker] setSampleRate:95];
속도를 0으로 설정하면 조회 생성이 사용 중지되고, 100으로 설정하면 모든 데이터가 Google 애널리틱스로 전송됩니다.
추적 메서드를 호출하기 전에 sampleRate
을 설정하는 것이 가장 좋습니다.
샘플링 개념 가이드에서 샘플링에 대해 자세히 알아볼 수 있습니다.
일괄 조회
연결 및 배터리 오버헤드를 줄이려면 추적 요청을 일괄 처리하는 것이 좋습니다. 추적 객체에 dispatch
를 호출하면 언제든지 일괄 요청을 할 수 있으며 수동 또는 특정 시간 간격을 두고 호출할 수 있습니다.
알려진 문제
dispatch
를 호출하지 않는 것이 좋습니다.-
applicationWillTerminate
메서드에서 -
applicationDidEnterBackground
-
stopTracker
에 전화하기 전에
dispatchSynchronous:
메서드를 사용하세요.
캠페인 추적
일반 캠페인 추적
iOS용 Google 애널리틱스 SDK 버전 1.3에서는 이제 캠페인 추천을 추적할 수 있습니다. 예를 들어 애플리케이션에서 맞춤 URL 스키마를 구현하는 경우 캠페인 쿼리 매개변수가 포함된 URL을 만들 수 있습니다. 이러한 URL에 대한 응답으로 애플리케이션이 실행되면 쿼리 매개변수를 가져와 이를 setReferrer에 전달하여 정보가 Google 애널리틱스에 저장되도록 할 수 있습니다.
캠페인 추천 정보를 설정하려면 다음과 같이 setReferrer
메서드를 사용합니다.
[[GANTracker sharedTracker] setReferrer:referrer withError:&error];
이 기능을 사용하는 데는 두 가지 제한사항이 있습니다. 먼저 setReferrer
를 호출하기 전에 startTrackerWithAccountID
을 호출해야 합니다. startTrackerWithAccountID
를 호출하기 전에 Google 애널리틱스에서 사용하는 SQLite 데이터베이스가
설정되지 않았으므로 setReferrer
를 사용해야 합니다. startTrackerWithAccountID
를 호출하지 않은 경우
오류가 반환됩니다.
두 번째 제한사항은 setReferrer
에 전달된 추천 문자열이 특정 형식을 따라야 한다는 점입니다.
URL 매개변수의 조합 형태여야 하며 gclid 매개변수 또는 utm_campaign, utm_medium, utm_source 각각 1개 이상을 포함해야 합니다. 후자의 경우 utm_term 및 utm_content 매개변수도 있을 수 있습니다.
gclid 매개변수는 Google 애널리틱스를 Google Ads에 자동으로 연결하는 자동 태그 추가 기능의 일부입니다. 자동 태그 추가를 사용하는 캠페인 추천의 예는 다음과 같습니다.
referrer = @“gclid=gclidValue”;
수동 캠페인 추천 문자열은 다음과 같습니다.
referrer = @“utm_campaign=campaign&utm_source=source&utm_medium=medium&utm_term=term&utm_content=content”;
형식이 잘못된 리퍼러 문자열을 setReferrer
에 전달하면 리퍼러 정보는 변경되지 않으며 false 반환 값을 받게 됩니다. 반환 값이 true인 경우 리퍼러가 업데이트되었으며 앞으로 모든 조회에 추가된다는 의미입니다.
또한 호출 실패 시 어떤 문제가 발생했는지 세부정보를 확인하기 위해 검사할 수 있는 오류도 반환됩니다.
또한 setReferrer를 호출할 때 새 세션이 시작되고 true를 반환합니다.
추천 링크 매개변수
매개변수 | 필수 | 설명 | 예시 |
---|---|---|---|
utm_campaign |
예 | 특정 제품 프로모션 또는 전략적 캠페인을 식별하기 위해 키워드 분석에 사용되는 캠페인 이름 | utm_campaign=spring_sale |
utm_source |
예 | 검색엔진, 뉴스레터 또는 기타 소스를 식별하는 데 사용되는 캠페인 소스 | utm_source=google |
utm_medium |
예 | 이메일 또는 클릭당비용 (CPC)과 같은 매체를 식별하는 데 사용되는 캠페인 매체 | utm_medium=cpc |
utm_term |
아니요 | 캠페인 용어. 유료 키워드를 찾기 위해 키워드 검색에 사용 | utm_term=running+shoes |
utm_content |
아니요 | 캠페인 콘텐츠: A/B 테스트 및 콘텐츠 타겟팅 광고로 동일한 URL을 가리키는 광고 또는 링크를 구분하는 데 사용됨 |
utm_content=logolink
utm_content=textlink
|