유니버설 애널리틱스 태그

앱 바이너리를 다시 빌드하여 마켓에 다시 제출할 필요가 없는 런타임 변경사항을 Google 애널리틱스 구현에 사용하려면 Google 태그 관리자 (GTM)를 사용하여 앱에 유니버설 애널리틱스(UA)를 구현합니다.

이 가이드에서는 유니버설 애널리틱스 태그와 iOS용 Google 태그 관리자 SDK를 사용하여 다음을 수행하는 방법을 설명합니다.

화면 조회수 전송

앱에서 새 화면이 열릴 때마다 Google 애널리틱스로 화면 조회수를 전송하는 방법은 다음과 같습니다.

  1. 화면 이름 변수를 만듭니다.
  2. 오픈 화면 이벤트 트리거를 만듭니다.
  3. 유니버설 애널리틱스 화면 조회 태그를 만듭니다.
  4. 화면 열기 이벤트 및 화면 이름을 데이터 영역에 푸시합니다.

1. 화면 이름 변수 만들기

GTM에서 화면 이름 변수를 만들려면 다음 단계를 따르세요.

  1. Google 태그 관리자 계정에 로그인합니다.
  2. 모바일 컨테이너를 선택합니다.
  3. 왼쪽 탐색 메뉴에서 변수를 클릭합니다.
  4. 사용자 정의 변수 아래에 있는 새로 만들기를 클릭합니다.
  5. 제목 없는 변수를 클릭하여 변수 이름 화면 이름을 입력합니다.
  6. 변수 유형으로 데이터 영역 변수를 선택합니다.
  7. screenName데이터 영역 변수 이름으로 입력하고 기본값인 unknown screen을 설정합니다.
  8. 변수 만들기를 클릭합니다.

2. 오픈 화면 이벤트 트리거 만들기

GTM에서 트리거를 만들어 유니버설 애널리틱스 화면 조회 태그를 실행하는 방법은 다음과 같습니다.

  1. Google 태그 관리자 계정에 로그인합니다.
  2. 모바일 컨테이너를 선택합니다.
  3. 왼쪽 탐색 메뉴에서 트리거를 클릭합니다.
  4. New(새로 만들기)를 클릭합니다.
  5. 제목 없는 트리거를 클릭하여 트리거 이름 OpenScreenEvent를 입력합니다.
  6. 맞춤 이벤트를 선택합니다.
  7. 실행 시점에서 다음 조건을 입력합니다.

    이벤트가 openScreen과 동일하면 실행되는 트리거입니다.

  8. 트리거 만들기를 클릭합니다.

3. 유니버설 애널리틱스 화면 조회 태그 만들기

화면 열기 이벤트에서 실행된 유니버설 애널리틱스 화면 조회 태그를 만드는 방법은 다음과 같습니다.

  1. Google 태그 관리자 계정에 로그인합니다.
  2. 모바일 컨테이너를 선택합니다.
  3. 왼쪽 탐색 메뉴에서 태그를 클릭합니다.
  4. New(새로 만들기)를 클릭합니다.
  5. 제목 없는 태그를 클릭하여 태그 이름 Open Screen을 입력합니다.
  6. Google 애널리틱스 제품을 선택합니다.
  7. 추적 ID를 입력합니다.
  8. 트랙 유형으로 앱 보기를 선택합니다.
  9. 설정 더보기를 클릭합니다.
  10. 설정할 필드를 클릭합니다.
  11. + 필드 추가를 반복적으로 클릭하여 다음 필드를 추가합니다.

    앱 이름, 앱 버전, 화면 이름 필드를 추가하세요.

  12. 계속을 클릭합니다.
  13. 실행 시점에서 커스텀을 클릭합니다.
  14. 맞춤 트리거 OpenScreenEvent를 선택합니다.
  15. 저장을 클릭합니다.
  16. 태그 만들기를 클릭합니다.

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

이벤트 전송

사용자가 앱의 UI 컨트롤 또는 콘텐츠와 상호작용할 때 Google 애널리틱스로 이벤트를 전송하는 방법은 다음과 같습니다.

  1. (선택사항) 이벤트 변수를 만듭니다.
  2. 이벤트 트리거를 만듭니다.
  3. 유니버설 애널리틱스 이벤트 태그를 만듭니다.
  4. 이벤트 및 이벤트 변수 값을 데이터 영역에 푸시합니다.

다음 단계에서는 사용자가 동영상 재생을 시작할 때 이벤트가 Google 애널리틱스로 전송되는 방식을 보여줍니다.

1. (선택사항) 이벤트 변수 만들기

이벤트가 데이터 영역 변수를 사용하여 카테고리, 작업, 라벨, 값 필드를 나타내는 경우 먼저 이러한 변수를 만들어야 합니다. 이 예에서 동영상 재생 이벤트 태그는 데이터 영역 변수를 사용하여 동영상의 이름을 가져옵니다.

GTM에서 동영상 이름 변수를 만들려면 다음 단계를 따르세요.

  1. Google 태그 관리자 계정에 로그인합니다.
  2. 모바일 컨테이너를 선택합니다.
  3. 왼쪽 탐색 메뉴에서 변수를 클릭합니다.
  4. 사용자 정의 변수 아래에 있는 새로 만들기를 클릭합니다.
  5. 제목 없는 변수를 클릭하여 변수 이름 video name을 입력합니다.
  6. 변수 유형으로 데이터 영역 변수를 선택합니다.
  7. 데이터 영역 변수 이름videoName을 입력하고 기본값을 알 수 없는 동영상으로 설정합니다.
  8. 변수 만들기를 클릭합니다.

2. 이벤트 트리거 만들기

GTM에서 이벤트 트리거를 만들어 유니버설 애널리틱스 이벤트 태그를 실행하는 방법은 다음과 같습니다.

  1. Google 태그 관리자 계정에 로그인합니다.
  2. 모바일 컨테이너를 선택합니다.
  3. 왼쪽 탐색 메뉴에서 트리거를 클릭합니다.
  4. New(새로 만들기)를 클릭합니다.
  5. 제목 없는 트리거를 클릭하여 트리거 이름 VideoPlayEvent를 입력합니다.
  6. 맞춤 이벤트를 선택합니다.
  7. 실행 시점에서 다음 조건을 입력합니다.

    이벤트가 videoPlay와 같으면 실행되는 트리거입니다.

  8. 트리거 만들기를 클릭합니다.

3. 유니버설 애널리틱스 이벤트 태그 만들기

동영상 재생 이벤트에서 실행되는 유니버설 애널리틱스 이벤트 태그를 만드는 방법은 다음과 같습니다.

  1. Google 태그 관리자 계정에 로그인합니다.
  2. 모바일 컨테이너를 선택합니다.
  3. 왼쪽 탐색 메뉴에서 태그를 클릭합니다.
  4. New(새로 만들기)를 클릭합니다.
  5. 제목 없는 태그를 클릭하여 태그 이름 동영상 재생 이벤트를 입력합니다.
  6. Google 애널리틱스 제품을 선택합니다.
  7. 추적 ID를 입력합니다.
  8. 추적 유형으로 이벤트를 선택합니다.
  9. 다음 이벤트 추적 매개변수를 입력합니다.

    추적 매개변수(카테고리: 동영상, 액션: 재생, 라벨: 동영상)를 입력합니다.

  10. 설정 더보기를 클릭합니다.
  11. 설정할 필드를 클릭합니다.
  12. + 필드 추가를 반복적으로 클릭하여 다음 필드를 추가합니다.

    앱 이름, 앱 버전, 화면 이름 필드를 추가하세요.

  13. 계속을 클릭합니다.
  14. 실행 시점에서 커스텀을 클릭합니다.
  15. 맞춤 트리거 VideoPlayEvent를 선택합니다.
  16. 저장을 클릭합니다.
  17. 태그 만들기를 클릭합니다.

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


전자상거래 데이터 전송

사용자가 인앱 구매를 완료하면 거래 및 관련 항목을 Google 애널리틱스로 전송하려면 다음 단계를 따르세요.

  1. 트랜잭션 트리거를 만듭니다.
  2. 유니버설 애널리틱스 거래 태그를 만듭니다.
  3. 거래 이벤트, 거래, 항목을 데이터 영역으로 푸시

지원되는 거래 및 상품 변수 이름의 목록은 지원되는 전자상거래 데이터 영역 변수를 참고하세요.

1. 트랜잭션 트리거 만들기

GTM에서 거래 트리거를 만들어 유니버설 애널리틱스 거래 태그를 실행하는 방법은 다음과 같습니다.

  1. Google 태그 관리자 계정에 로그인합니다.
  2. 모바일 컨테이너를 선택합니다.
  3. 왼쪽 탐색 메뉴에서 트리거를 클릭합니다.
  4. New(새로 만들기)를 클릭합니다.
  5. 제목 없는 트리거를 클릭하여 트리거 이름 TransactionCompleted를 입력합니다.
  6. 맞춤 이벤트를 선택합니다.
  7. 실행 시점에서 다음 조건을 입력합니다.

    이벤트가 트랜잭션과 같을 때 실행되는 트리거입니다.

  8. 트리거 만들기를 클릭합니다.

2. 유니버설 애널리틱스 거래 태그 만들기

거래 이벤트에 의해 실행되는 유니버설 애널리틱스 거래 태그를 만드는 방법은 다음과 같습니다.

  1. Google 태그 관리자 계정에 로그인합니다.
  2. 모바일 컨테이너를 선택합니다.
  3. 왼쪽 탐색 메뉴에서 태그를 클릭합니다.
  4. New(새로 만들기)를 클릭합니다.
  5. 제목 없는 태그를 클릭하여 태그 이름 Transaction Completed를 입력합니다.
  6. Google 애널리틱스 제품을 선택합니다.
  7. 추적 ID를 입력합니다.
  8. 추적 유형으로 거래를 선택합니다.
  9. 설정 더보기를 클릭합니다.
  10. 설정할 필드를 클릭합니다.
  11. + 필드 추가를 반복적으로 클릭하여 다음 필드를 추가합니다.

    앱 이름, 앱 버전, 화면 이름 필드를 추가하세요.

  12. 계속을 클릭합니다.
  13. 실행 시점에서 커스텀을 클릭합니다.
  14. 맞춤 트리거 TransactionCompleted를 선택합니다.
  15. 저장을 클릭합니다.
  16. 태그 만들기를 클릭합니다.

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]}];
}


Android용 Google 태그 관리자 SDK를 사용하여 유니버설 애널리틱스 향상된 전자상거래 기능을 구현하는 방법에 대한 자세한 내용은 향상된 전자상거래를 참고하세요.

지원되는 전자상거래 데이터 영역 변수

범용 거래 태그는 다음과 같은 거래 및 항목 변수 이름을 지원합니다.

트랜잭션 변수

변수 이름 설명 유형 필수
transactionId 고유 거래 식별자 string 지원됨
transactionAffiliation 파트너 또는 상점 string No
transactionTotal 거래의 총 가치 string No
transactionTax 거래에 대한 과세액 string No
transactionShipping 거래 배송비 string No
transactionCurrency 거래 통화 string No
transactionProducts 거래에서 구매한 상품 목록 상품 변수의 배열입니다. No

항목 변수

변수 이름 설명 유형 필수
name 제품 이름 string 지원됨
sku 제품 SKU string No
category 제품 카테고리 string No
price 상품 가격 string No
currency price의 통화 유형 string No
quantity 상품 수량 string No

향상된 전자상거래 데이터 보내기

향상된 전자상거래 데이터를 전송하는 방법을 알아보려면 향상된 전자상거래 개발자 가이드를 참고하세요.