다음과 같이 Google 애널리틱스 구현을 런타임으로 변경할 수 있습니다. 앱 바이너리를 다시 빌드하여 마켓에 다시 제출할 필요가 없습니다. Google 태그 관리자로 앱에 유니버설 애널리틱스 (UA) 구현하기 Google 태그 관리자(GTM)로 전송합니다.
이 가이드에서는 유니버설 애널리틱스 태그 및 iOS용 Google 태그 관리자 SDK를 사용하여 다음 작업을 수행할 수 있습니다.
를 통해 개인정보처리방침을 정의할 수 있습니다.화면 조회수 보내기
새 화면이 열릴 때마다 화면 조회수를 전송합니다. Google 애널리틱스에 연결할 수 있습니다
- 화면 이름 변수를 만듭니다.
- 열린 화면 만들기 이벤트 트리거를 사용합니다.
- 유니버설 애널리틱스 만들기 화면 조회수 태그를 사용합니다.
- 화면 열기 이벤트 푸시하기 화면 이름을 데이터 영역에 추가할 수 있습니다.
1. 화면 이름 변수 만들기
GTM에서 화면 이름 변수를 만드는 방법은 다음과 같습니다.
- Google 태그 관리자에 로그인합니다. 있습니다.
- 모바일 컨테이너를 선택합니다.
- 왼쪽 탐색 메뉴에서 변수를 클릭합니다.
- 사용자 정의 변수 아래에 있는 새로 만들기를 클릭합니다.
- 제목 없는 변수를 클릭하여 변수 이름 화면 이름을 입력합니다.
- 데이터 영역 변수를 변수 유형으로 선택합니다.
- 데이터 영역 변수 이름으로 screenName을 입력하고 기본값은 unknown screen입니다.
- 변수 만들기를 클릭합니다.
2. 화면 열기 이벤트 트리거 만들기
GTM에서 트리거를 만들어 유니버설 애널리틱스 화면 조회 태그:
- Google 태그 관리자에 로그인합니다. 있습니다.
- 모바일 컨테이너를 선택합니다.
- 왼쪽 탐색 메뉴에서 트리거를 클릭합니다.
- 새로 만들기를 클릭합니다.
- 제목 없는 트리거를 클릭하여 트리거 이름을 입력합니다. OpenScreenEvent.
- 맞춤 이벤트를 선택합니다.
- 실행 시점에 다음 조건을 입력합니다.
- 트리거 만들기를 클릭합니다.
3. 유니버설 애널리틱스 화면 조회 태그 만들기
다음에 의해 실행되는 유니버설 애널리틱스 화면 조회 태그를 만드는 방법은 다음과 같습니다. 화면 열기 이벤트를 사용합니다.
- Google 태그 관리자에 로그인합니다. 있습니다.
- 모바일 컨테이너를 선택합니다.
- 왼쪽 탐색 메뉴에서 태그를 클릭합니다.
- 새로 만들기를 클릭합니다.
- 제목 없는 태그를 클릭하여 태그 이름 화면 열기를 입력합니다.
- Google 애널리틱스 제품을 선택합니다.
- 추적 ID를 입력합니다.
- 트랙 유형으로 앱 보기를 선택합니다.
- 설정 더보기를 클릭합니다.
- 설정할 필드를 클릭합니다.
- + 필드 추가를 반복적으로 클릭하여 다음 필드를 추가합니다.
- 계속을 클릭합니다.
- 실행 시점에서 커스텀을 클릭합니다.
- 맞춤 트리거 OpenScreenEvent를 선택합니다.
- 저장을 클릭합니다.
- 태그 만들기를 클릭합니다.
4. 화면 열기 이벤트 푸시 및 데이터 영역에 화면 이름 추가
앱에 코드를 추가하여 openScreen
이벤트 및
screenName
값을 데이터 영역에 추가합니다. 예를 들면 다음과 같습니다.
// ViewController.m // Push an 'openScreen' event to the data layer. // #import "ViewController.h" #import "TAGDataLayer.h" #import "TAGManager.h" @implementation ViewController - (void)viewDidAppear { [super viewDidAppear]; // NOTE: A GTM container should already have been opened, otherwise events // pushed to the DataLayer will not fire tags in that container. TAGDataLayer *dataLayer = [TAGManager instance].dataLayer; [dataLayer push:@{@"event": @"openScreen", // Event, name of Open Screen Event. @"screenName": @"Home Screen"}]; // Name of the screen name field, screen name value. } // Rest of the ViewController implementation @end
이벤트 전송
사용자가 상호작용할 때 Google 애널리틱스로 이벤트 전송 앱의 UI 컨트롤 또는 콘텐츠:
다음 단계는 이벤트가 Google 애널리틱스로 전송되는 방법을 보여줍니다. 사용자가 동영상 재생을 시작할 때
1. (선택사항) 이벤트 변수 만들기
이벤트가 데이터 영역 변수를 사용하여 카테고리를 나타내는 경우 먼저 해당 변수를 만들어야 합니다. 이 예에서 동영상 재생 이벤트 태그는 데이터 영역 변수를 사용합니다. 동영상 이름을 가져옵니다.
GTM에서 동영상 이름 변수를 만드는 방법은 다음과 같습니다.
- Google 태그 관리자 계정에 로그인합니다.
- 모바일 컨테이너를 선택합니다.
- 왼쪽 탐색 메뉴에서 변수를 클릭합니다.
- 사용자 정의 변수 아래에 있는 새로 만들기를 클릭합니다.
- 제목 없는 변수를 클릭하여 변수 이름 동영상 이름을 입력합니다.
- 데이터 영역 변수를 변수 유형으로 선택합니다.
- 데이터 영역 변수 이름으로 videoName을 입력하고 기본값은 알 수 없는 동영상입니다.
- 변수 만들기를 클릭합니다.
2. 이벤트 트리거 만들기
GTM에서 이벤트 트리거를 만들어 유니버설 애널리틱스 이벤트 태그:
- Google 태그 관리자에 로그인합니다. 있습니다.
- 모바일 컨테이너를 선택합니다.
- 왼쪽 탐색 메뉴에서 트리거를 클릭합니다.
- 새로 만들기를 클릭합니다.
- 제목 없는 트리거를 클릭하여 트리거 이름을 입력합니다. VideoPlayEvent를 참조하세요.
- 맞춤 이벤트를 선택합니다.
- 실행 시점에 다음 조건을 입력합니다.
- 트리거 만들기를 클릭합니다.
3. 유니버설 애널리틱스 이벤트 태그 만들기
다음에서 실행되는 유니버설 애널리틱스 이벤트 태그를 만들려면 다음을 실행합니다. 동영상 재생 이벤트를 호출합니다.
- Google 태그 관리자에 로그인합니다. 있습니다.
- 모바일 컨테이너를 선택합니다.
- 왼쪽 탐색 메뉴에서 태그를 클릭합니다.
- 새로 만들기를 클릭합니다.
- 제목 없는 태그를 클릭하여 태그 이름 동영상 재생 이벤트를 입력합니다.
- Google 애널리틱스 제품을 선택합니다.
- 추적 ID를 입력합니다.
- 추적 유형으로 이벤트를 선택합니다.
- 다음과 같은 이벤트 추적 매개변수를 입력합니다.
- 설정 더보기를 클릭합니다.
- 설정할 필드를 클릭합니다.
- + 필드 추가를 반복적으로 클릭하여 다음 필드를 추가합니다.
- 계속을 클릭합니다.
- 실행 시점에서 커스텀을 클릭합니다.
- 맞춤 트리거 VideoPlayEvent를 선택합니다.
- 저장을 클릭합니다.
- 태그 만들기를 클릭합니다.
4. 푸시 이벤트 및 이벤트 변수 값 데이터 영역으로
videoPlay
이벤트 및
videoName
값을 데이터 영역에 추가합니다. 예를 들면 다음과 같습니다.
// VideoPlayer.m // Push a 'videoPlay' event to the data layer. // #import "TAGDataLayer.h" #import "TAGManager.h" #import "Video.h" #import "VideoPlayer.h" @implementation VideoPlayer // Called when a user initiates a video playback. - (void)onPlay:(Video *)video { TAGDataLayer *dataLayer = [TAGManager instance].dataLayer; // This call assumes the container has already been opened, otherwise events // pushed to the DataLayer will not fire tags in that container. [dataLayer push:@{@"event": @"videoPlay", // Event, name of Video Play Event. @"videoName": video.title, // Additional data layer variables used by the event tag. @"screenName": @"Home Screen"}]; [self play:video]; } // Rest of the implementation @end
전자상거래 데이터 보내기
사용자가 인앱 구매를 완료하면 거래를 전송하고 다음과 같습니다.
- 트랜잭션 트리거를 만듭니다.
- 유니버설 애널리틱스 만들기 거래 태그를 사용합니다.
- 푸시 트랜잭션 이벤트, 트랜잭션 데이터 레이어에 항목을 추가할 수 있습니다.
지원되는 거래 및 항목 변수 이름 목록은 다음을 참조하세요. 지원되는 전자상거래 데이터 레이어 변수를 참조하세요.
1. 트랜잭션 트리거 만들기
GTM에서 트랜잭션 트리거를 만들어 유니버설 애널리틱스 거래 태그:
- Google 태그 관리자에 로그인합니다. 있습니다.
- 모바일 컨테이너를 선택합니다.
- 왼쪽 탐색 메뉴에서 트리거를 클릭합니다.
- 새로 만들기를 클릭합니다.
- 제목 없는 트리거를 클릭하여 트리거 이름을 입력합니다. TransactionCompleted에 포함되어 있습니다.
- 맞춤 이벤트를 선택합니다.
- 실행 시점에 다음 조건을 입력합니다.
- 트리거 만들기를 클릭합니다.
2. 유니버설 애널리틱스 거래 태그 만들기
다음을 실행하는 유니버설 애널리틱스 거래 태그를 만들려면 거래 이벤트를 다음과 같이 처리합니다.
- Google 태그 관리자에 로그인합니다. 있습니다.
- 모바일 컨테이너를 선택합니다.
- 왼쪽 탐색 메뉴에서 태그를 클릭합니다.
- 새로 만들기를 클릭합니다.
- 제목 없는 태그를 클릭하여 거래 완료라는 태그 이름을 입력합니다.
- Google 애널리틱스 제품을 선택합니다.
- 추적 ID를 입력합니다.
- 추적 유형으로 거래를 선택합니다.
- 설정 더보기를 클릭합니다.
- 설정할 필드를 클릭합니다.
- + 필드 추가를 반복적으로 클릭하여 다음 필드를 추가합니다.
- 계속을 클릭합니다.
- 실행 시점에서 커스텀을 클릭합니다.
- 커스텀 트리거 TransactionCompleted를 선택합니다.
- 저장을 클릭합니다.
- 태그 만들기를 클릭합니다.
3. 푸시 트랜잭션 이벤트, 트랜잭션 데이터 영역으로
거래 이벤트, 트랜잭션, 관련 이벤트를 푸시하는 코드를 작성합니다. 항목을 데이터 영역에 추가할 수 있습니다. 먼저 지원되는 거래가 상품 변수 이름을 사용하여 거래 및 상품 데이터를 데이터 영역으로 푸시합니다. 예를 들면 다음과 같습니다.
// Called when a user completes a transaction. - (void)onPurchaseCompleted:(Purchase *)purchase { TAGDataLayer *dataLayer = [TAGManager instance].dataLayer; // An array to store dictionaries of item data. NSMutableArray *purchasedItems = [NSMutableArray array]; // Push item data into dictionaries and store in the purchasedItems array. // Note that item.price and item.quantity must be of type NSString. for (id item in purchase.items) { [purchasedItems addObject:@{@"name": item.name, @"sku": item.sku, @"category": item.category, @"price": item.price, @"currency": @"USD", @"quantity": item.quantity}]; } // This call assumes the container has already been opened, otherwise events // pushed to the DataLayer will not fire tags in that container. // Note that purchase.tax, purchase.shipping, and purchase.total must be of type NSString. [dataLayer push:@{@"event": @"transaction", // Event, name of Transaction Event. @"transactionId": purchase.transactionId, // Additional fields required by the tag. @"transactionTotal": purchase.total, @"transactionAffiliation": @"In-app Store", @"transactionTax": purchase.tax, @"transactionShipping": purchase.shipping, @"transactionCurrency": @"USD", @"transactionProducts": purchasedItems}]; // Since the data layer is persistent, you should reset fields to [NSNull null] after // you are done pushing the transaction. [dataLayer push:@{@"transactionId": [NSNull null], @"transactionTotal": [NSNull null], @"transactionAffiliation": [NSNull null], @"transactionTax": [NSNull null], @"transactionShipping": [NSNull null], @"transactionCurrency": [NSNull null], @"transactionProducts": [NSNull null]}]; }