향상된 전자상거래 추적 - iOS SDK

이 문서에서는 iOS용 Google 애널리틱스 SDK v3으로 인앱 전자상거래 관련 액션과 노출을 측정하는 방법을 설명합니다.

개요

향상된 전자상거래를 사용하면 제품 노출수, 제품 클릭수, 제품 세부정보 보기, 장바구니에 제품 추가, 결제 프로세스 시작, 거래, 환불 등 사용자의 쇼핑 환경 전체에 걸친 사용자 상호작용을 측정할 수 있습니다.

구현

앱에 향상된 전자상거래 추적을 구현하기 전에 향상된 전자상거래 라이브러리를 앱에 추가해야 합니다.

향상된 전자상거래를 사용하도록 애플리케이션을 구성한 후 다음 작업을 할 수 있습니다.

전자상거래 활동 측정

일반적인 향상된 전자상거래 구현은 제품 노출수 및 다음 작업을 측정합니다.

  • 제품 선택
  • 제품 세부정보 보기
  • 내부 프로모션 노출수 및 선택
  • 장바구니에서 제품 추가 또는 삭제
  • 제품의 결제 절차 시작
  • 구매 및 환불

노출수 측정

제품 노출수를 측정하려면 제품 및 노출 값을 설정하고 조회와 함께 전송합니다.

id tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
[product setId:@"P12345"];
[product setName:@"Android Warhol T-Shirt"];
[product setCategory:@"Apparel/T-Shirts"];
[product setBrand:@"Google"];
[product setVariant:@"Black"];
[product setCustomDimension:1 value:@"Member"];
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createScreenView];

// Sets the product impression for the next available slot, starting with 1.
[builder addProductImpression:product
               impressionList:@"Search Results"
             impressionSource:@"From Search"];
[tracker set:kGAIScreenName value:@"My Impression Screen"];
[tracker send:[builder build]];

제품에는 이름 또는 ID 값이 있어야 합니다. 다른 모든 값은 선택사항이며 설정할 필요가 없습니다.

작업 측정

작업은 제품 값을 설정한 후 제품 작업 값을 설정하여 실행되는 작업을 지정하여 측정됩니다.

예를 들어 다음 코드는 검색결과 목록에 표시되는 제품 선택을 측정합니다.

id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
[product setId:@"P12345"];
[product setName:@"Android Warhol T-Shirt"];
[product setCategory:@"Apparel/T-Shirts"];
[product setBrand:@"Google"];
[product setVariant:@"Black"];
[product setCustomDimension:1 value:@"Member"];

GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
[action setAction:kGAIPAClick];
[action setProductActionList:@"Search Results"];
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createScreenView];
[builder setProductAction:action];

// Sets the product for the next available slot, starting with 1
[builder addProduct:product];
[tracker set:kGAIScreenName value:@"My Impression Screen"];
[tracker send:[builder build]];

제품에는 이름 또는 ID 값이 있어야 합니다. 다른 모든 값은 선택사항이며 설정할 필요가 없습니다.

노출수와 작업 결합

제품 노출수와 작업이 모두 있는 경우 단일 조회에서 결합하고 측정할 수 있습니다.

아래 예에서는 관련 상품 섹션을 사용하여 제품 세부정보 보기를 측정하는 방법을 보여줍니다.

// The product from the related products section.
id tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
[product setId:@"P12346"];
[product setName:@"Android Warhol T-Shirt"];
[product setCategory:@"Apparel/T-Shirts"];
[product setBrand:@"Google"];
[product setVariant:@"White"];
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createScreenView];

// Sets the product impression for the next available slot, starting with 1.
[builder addProductImpression:product
               impressionList:@"Related Products"
             impressionSource:@"From Related"];

// The product being viewed.
product = [[GAIEcommerceProduct alloc] init];
[product setId:@"P12345"];
[product setName:@"Android Warhol T-Shirt"];
[product setCategory:@"Apparel/T-Shirts"];
[product setBrand:@"Google"];
[product setVariant:@"Black"];

GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
[action setAction:kGAIPADetail];
[builder setProductAction:action];
// Sets the product for the next available slot, starting with 1.
[builder addProduct:product];
[tracker set:kGAIScreenName value:@"Related Products Screen"];
[tracker send:[builder build]];

거래 측정

제품 값을 설정한 후 제품 작업 값을 설정하여 거래를 측정하여 거래를 측정합니다. 총 수익, 세금, 배송비와 같은 거래 수준 세부정보는 제품 작업 값으로 설정됩니다.

id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
[product setId:@"P12345"];
[product setName:@"Android Warhol T-Shirt"];
[product setCategory:@"Apparel/T-Shirts"];
[product setBrand:@"Google"];
[product setVariant:@"Black"];
[product setPrice:@29.20];
[product setCouponCode:@"APPARELSALE"];
[product setQuantity:@1];
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"Ecommerce"
                                                                       action:@"Purchase"
                                                                        label:nil
                                                                        value:nil];
GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
[action setAction:kGAIPAPurchase];
[action setTransactionId:@"T12345"];
[action setAffiliation:@"Google Store - Online"];
[action setRevenue:@37.39];
[action setTax:@2.85];
[action setShipping:@5.34];
[action setCouponCode:@"SUMMER2013"];
[builder setProductAction:action];

// Sets the product for the next available slot, starting with 1
[builder addProduct:product];
[tracker send:[builder build]];

통화 지정

기본적으로 Google 애널리틱스 관리 웹 인터페이스를 통해 모든 거래 및 상품에 대해 공통된 전체 통화를 구성할 수 있습니다.

현지 통화는 ISO 4217 표준으로 지정해야 합니다. 지원되는 전환 통화의 전체 목록은 통화 코드 참조 문서를 확인하세요.

현지 통화는 추적기에서 통화 코드 값을 설정하여 지정합니다. 예를 들어 이 추적기는 통화 값을 유로로 전송합니다.

id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTracker"];
[tracker set:kGAIScreenName value:@"transaction"];
[tracker set:kGAICurrencyCode value:@"EUR"]; // Set tracker currency to Euros.
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createScreenView];
[tracker send:[builder build]];

환불 측정

전체 거래를 환불하려면 제품 작업 값을 설정하여 거래 ID와 환불 작업 유형을 지정합니다.

// Refund an entire transaction.
id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"Ecommerce"
                                                                       action:@"Refund"
                                                                        label:nil
                                                                        value:nil];
GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
[action setAction:kGAIPARefund];
[action setTransactionId:@"T12345"];
[builder setProductAction:action];
[tracker send:[builder build]];

일치하는 거래가 없으면 환불이 처리되지 않습니다.

부분 환불을 측정하려면 제품 작업 값을 설정하여 환불할 거래 ID, 제품 ID, 제품 수량을 지정합니다.

// Refund a single product.
id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"Ecommerce"
                                                                       action:@"Refund"
                                                                        label:nil
                                                                        value:nil];
GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
[product setId:@"P12345"]; // Product ID is required for partial refund.
[product setQuantity:@1]; // Quanity is required for partial refund.
[builder addProduct:product];

GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
[action setAction:kGAIPARefund];
[action setTransactionId:@"T12345"]; // Transaction ID is required for partial refund.
[builder setProductAction:action];
[tracker send:[builder build]];

환불에 비상호작용 이벤트 사용

이벤트를 사용하여 환불 데이터를 보내야 하는데 이벤트가 일반적으로 측정되는 사용자 동작에 포함되어 있지 않은 경우 (예: 사용자가 시작하지 않음) 비상호작용 이벤트를 전송하는 것이 좋습니다. 이렇게 하면 특정 측정항목이 이벤트의 영향을 받지 않습니다. 예를 들면 다음과 같습니다.

// Refund an entire transaction.
id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"Ecommerce"
                                                                       action:@"Refund"
                                                                        label:nil
                                                                        value:nil];

[builder set:@"1" forKey:kGAINonInteraction];

GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
[action setAction:kGAIPARefund];
[action setTransactionId:@"T12345"];

[builder setProductAction:action];
[tracker send:[builder build]];

결제 절차 측정

결제 절차의 각 단계를 측정하는 방법은 다음과 같습니다.

  1. 추적 코드를 추가하여 결제 프로세스의 각 단계를 측정합니다.
  2. 해당하는 경우 추적 코드를 추가하여 결제 옵션을 측정하세요.
  3. 원하는 경우 웹 인터페이스의 관리 섹션에서 전자상거래 설정을 구성하여 결제 유입경로 보고서에 사용자 친화적인 단계 이름을 설정합니다.

1. 결제 단계 측정

결제 절차의 각 단계에 대해 해당하는 추적 코드를 구현하여 Google 애널리틱스로 데이터를 전송해야 합니다.

Step 필드

측정하는 각 결제 단계에 대해 step 값을 포함해야 합니다. 이 값은 결제 작업을 전자상거래 설정의 각 단계에 대해 구성한 라벨에 매핑하는 데 사용됩니다.

Option 필드

단계가 측정되는 시점에 지정된 결제 단계에 대한 추가 정보가 있는 경우 이 정보를 캡처하는 결제 옵션으로 결제 옵션 필드를 설정할 수 있습니다. 예를 들어 사용자의 기본 결제 유형 (예: 'Visa')이 있습니다.

결제 단계 측정

결제 단계를 측정하려면 제품 값을 설정한 후 결제 액션을 나타내도록 제품 작업 값을 설정합니다. 해당하는 경우 해당 결제로 결제 단계 및 결제 옵션 값을 설정할 수도 있습니다.

다음 예에서는 단일 제품으로 결제 절차의 첫 번째 단계를 측정하는 방법 및 결제 유형에 대한 추가 정보를 보여줍니다.

id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
[product setId:@"P12345"];
[product setName:@"Android Warhol T-Shirt"];
[product setCategory:@"Apparel/T-Shirts"];
[product setBrand:@"Google"];
[product setVariant:@"Black"];
[product setPrice:@29.20];
[product setCouponCode:@"APPARELSALE"];
[product setQuantity:@1];

GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"Ecommerce"
                                                                       action:@"Checkout"
                                                                        label:nil
                                                                        value:nil];

// Add the step number and additional info about the checkout to the action.
GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
[action setAction:kGAIPACheckout];
[action setCheckoutStep:@1];
[action setCheckoutOption:@"Visa"];

[builder addProduct:product];
[builder setProductAction:action];
[tracker send:[builder build]];

2. 결제 옵션 측정

결제 옵션을 사용하면 결제 상태에 대한 추가 정보를 측정할 수 있습니다. 이는 결제 단계를 측정했지만 사용자가 선택한 옵션이 설정된 후 동일한 결제 단계에 대한 추가 정보를 확인할 수 있는 경우에 유용합니다. 예를 들어 사용자가 배송 방법을 선택하는 경우가 있습니다.

결제 옵션을 측정하려면 결제 옵션을 지정하고 단계 번호 및 옵션 설명을 포함하도록 제품 작업 값을 설정합니다.

사용자가 결제 절차의 다음 단계로 넘어가기 위한 작업을 완료하면 이 작업을 측정할 수 있습니다. 예를 들면 다음과 같습니다.

// (On "Next" button click.)
id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"Ecommerce"
                                                                       action:@"CheckoutOption"
                                                                        label:nil
                                                                        value:nil];

GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
[action setAction:kGAIPACheckoutOption];
[action setCheckoutStep:@1];
[action setCheckoutOption:@"Fedex"];

[builder setProductAction:action];
[tracker send:[builder build]];
// Advance to next page.

3. 결제 단계 구성

결제 절차의 각 단계에서 보고서에 사용될 설명이 포함된 이름을 지정할 수 있습니다. 이러한 이름을 구성하려면 Google 애널리틱스 웹 인터페이스의 관리 섹션으로 이동하여 보기 (프로필)를 선택하고 전자상거래 설정을 클릭합니다. 전자상거래 설정 안내에 따라 추적할 각 결제 단계에 라벨을 지정합니다.

Google 애널리틱스 웹
     인터페이스 관리 섹션의 전자상거래 설정 전자상거래가 사용 설정되었으며 결제 단계 라벨 4개
     (1)가 추가되었습니다. 장바구니 검토, 2. 결제 정보 수집, 3. 구매 세부정보 확인,
     4. 영수증
그림 1: 전자상거래 설정 - 결제 유입경로

내부 프로모션 측정

향상된 전자상거래에는 노출 홍보 및 판매 홍보를 위한 배너 같은 내부 프로모션 선택 지원 기능이 포함됩니다.

프로모션 노출수

내부 프로모션 노출수는 일반적으로 프로모션 값을 설정하여 초기 화면 조회수 또는 이벤트로 측정됩니다. 예를 들면 다음과 같습니다.

id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIEcommercePromotion *promotion = [[GAIEcommercePromotion alloc] init];
[promotion setId:@"PROMO_1234"];
[promotion setName:@"Summer Sale"];
[promotion setCreative:@"summer_banner2"];
[promotion setPosition:@"banner_slot1"];

GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"Ecommerce"
                                                                       action:@"Promotion"
                                                                        label:nil
                                                                        value:nil];

[builder addPromotion:promotion];
[tracker send:[builder build]];

프로모션 클릭수

내부 프로모션 클릭수는 프로모션 값을 사용한 다음 제품 액션 값을 설정하여 프로모션 클릭수를 나타내면 측정할 수 있습니다. 예를 들면 다음과 같습니다.

id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIEcommercePromotion *promotion = [[GAIEcommercePromotion alloc] init];
[promotion setId:@"PROMO_1234"];
[promotion setName:@"Summer Sale"];
[promotion setCreative:@"summer_banner2"];
[promotion setPosition:@"banner_slot1"];

GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"Internal Promotions"
                                                                       action:@"click"
                                                                        label:@"Summer Sale"
                                                                        value:nil];

[builder set:kGAIPromotionClick forKey:kGAIPromotionAction];
[builder addPromotion:promotion];
[tracker send:[builder build]];