향상된 전자상거래는 유니버설 애널리틱스 속성에서 사용할 수 있는 Google 애널리틱스 기능으로, 사용자의 쇼핑 환경 전반에서 제품과의 사용자 상호작용을 측정할 수 있습니다. 여기에는 제품 노출수, 품 클릭수, 제품 세부정보 조회수, 장바구니에 항목 추가, 결제 시작, 거래, 환불이 포함될 수 있습니다.
차세대 버전의 Google 태그 관리자 및 모바일 앱용 Google 애널리틱스 모두 Google의 모바일 앱 플랫폼인 Firebase와 함께 작동합니다. Firebase SDK로 앱을 측정할 때 자동으로 생성된 여러 모바일 앱 보고서에 액세스할 수 있으므로, 인앱 코드를 통해 이러한 보고서를 추가로 맞춤설정하고 보완할 수 있습니다. 이 보고서에는 iTunes의 App Store와 Google Play에서 처리되는 인앱 구매 데이터가 자동으로 포함됩니다. 전자상거래 앱용 추천 이벤트를 구현하면 전자상거래 관련 보고서를 추가로 생성할 수 있습니다. 쇼핑 행동(즉, 향상된 전자상거래)에 대한 심층 보고서는 현재 유니버설 애널리틱스 속성에서만 사용할 수 있습니다.
이 문서에서는 Firebase SDK와 함께 iOS 앱용 태그 관리자를 사용하여 향상된 향상된 전자상거래 데이터를 유니버설 애널리틱스 속성으로 전송하는 방법을 설명합니다. 동일한 이벤트 및 매개변수 구문을 사용하여 향후 추가 전자상거래 보고서를 위한 단계를 설정해야 합니다.
첫 단계
시작하기 전에 앱에 다음과 같은 기본 요건을 설정합니다.
- 앱에 Firebase와 Google 태그 관리자를 설치하고 구성 합니다. iOS용 Firebase SDK 버전 11 이상을 사용하고 있는지 확인합니다.
- 태그 관리자 컨테이너에서 'promotions'라는 사용자 정의 변수를
구성하고, 다음과 같이 설정합니다.
- 이벤트 유형: 맞춤 매개변수
- 이벤트 매개변수 키: promotions
- 기본값: 정의되지 않음
구현
다음 섹션에서는 향상된 전자상거래 활동을 측정하는 데 필요한 매개변수를 사용하여 이벤트를 로깅하는 방법을 보여줍니다.
제품 노출수
kFIRParameterItemID
매개변수와 더불어 관련성 높은 필드로 정의된 하나 이상의
항목(제품)을 통해 이벤트를 로깅하여 제품 노출수를
측정합니다.
// Define product with relevant parameters.
NSDictionary *product1 = @{
kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
kFIRParameterItemName : @"Android Jogger Sweatpants",
kFIRParameterItemCategory : @"Apparel/Men/Pants",
kFIRParameterItemVariant : @"Blue",
kFIRParameterItemBrand : @"Google",
kFIRParameterPrice : @39.99,
kFIRParameterCurrency : @"USD", // Item-level currency unused today.
kFIRParameterIndex : @1 // Position of the item in the list.
};
NSDictionary *product2 = @{
kFIRParameterItemID : @"sku5678", // ITEM_ID or ITEM_NAME is required.
kFIRParameterItemName : @"Android Capri",
kFIRParameterItemCategory : @"Apparel/Women/Pants",
kFIRParameterItemVariant : @"Black",
kFIRParameterItemBrand : @"Google",
kFIRParameterPrice : @35.99,
kFIRParameterCurrency : @"USD", // Item-level currency unused today.
kFIRParameterIndex : @2 // Position of the item in the list.
};
// Prepare ecommerce dictionary.
NSArray *items = @[product1, product2];
NSDictionary *ecommerce = @{
@"items" : items,
kFIRParameterItemList : @"Search Results" // List name.
};
// Log select_content event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventViewSearchResults
parameters:ecommerce];
이 예시에 대한 태그 구성 보기
- 태그 유형: 유니버설 애널리틱스
- 추적 유형: 화면 조회수
- 설정할 필드: (필드 이름) screenName (예: 값) 검색 결과 화면
- 향상된 전자상거래 기능 사용: True
- 데이터 읽기 출처: Firebase 이벤트
- 트리거 예시: (맞춤 > 일부 이벤트) 이벤트 이름이 view_search_results와 같음
제품 클릭수/선택 횟수
관련성 높은 필드로 정의된 항목(제품)을 통해 kFIREventSelectContent
이벤트를
로깅하여 제품 클릭수를 측정합니다.
// Define product with relevant parameters.
NSDictionary *product1 = @{
kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
kFIRParameterItemName : @"Android Jogger Sweatpants",
kFIRParameterItemCategory : @"Apparel/Men/Pants",
kFIRParameterItemVariant : @"Blue",
kFIRParameterItemBrand : @"Google",
kFIRParameterPrice : @39.99,
kFIRParameterCurrency : @"USD", // Item-level currency unused today.
kFIRParameterIndex : @1 // Position of the item in the list.
};
// Prepare ecommerce dictionary.
NSArray *items = @[product1];
NSDictionary *ecommerce = @{
@"items" : items,
kFIRParameterItemList : @"Search Results" // List name.
};
// Log select_content event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventSelectContent
parameters:ecommerce];
이 예시에 대한 태그 구성 보기
- 태그 유형: 유니버설 애널리틱스
- 추적 유형: 이벤트
- 이벤트 카테고리 예시: 전자상거래
- 이벤트 액션 예시: 제품 클릭
- 향상된 전자상거래 기능 사용: True
- 데이터 읽기 출처: Firebase 이벤트
- 트리거 예시: (맞춤 > 일부 이벤트) 이벤트 이름이 select_content와 같고 가 undefined와 같음
제품 세부정보 조회수
관련성 높은 필드로 정의된 항목(제품)을 통해 kFIREventViewItem
이벤트를
로깅하여 제품 세부정보 조회수를 측정합니다.
// Define product with relevant parameters.
NSDictionary *product1 = @{
kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
kFIRParameterItemName : @"Android Jogger Sweatpants",
kFIRParameterItemCategory : @"Apparel/Men/Pants",
kFIRParameterItemVariant : @"Blue",
kFIRParameterItemBrand : @"Google",
kFIRParameterPrice : @39.99,
kFIRParameterCurrency : @"USD", // Item-level currency unused today.
};
// Prepare ecommerce dictionary.
NSArray *items = @[product1];
NSDictionary *ecommerce = @{
@"items" : items,
kFIRParameterItemList : @"Search Results" // List name.
};
// Log view_item event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventViewItem
parameters:ecommerce];
이 예시에 대한 태그 구성 보기
- 태그 유형: 유니버설 애널리틱스
- 추적 유형: 화면 조회수
- 설정할 필드: (필드 이름) screenName (예: 값) 제품 세부정보 화면
- 향상된 전자상거래 기능 사용: True
- 데이터 읽기 출처: Firebase 이벤트
- 트리거 예시: (맞춤 > 일부 이벤트) 이벤트 이름이 view_item과 같고
- 가 undefined와 같음
장바구니에 추가된 제품
관련성 높은 필드로 정의된 항목(제품)을 통해 kFIREventAddToCart
이벤트를
로깅하여 장바구니에 추가되는 제품을
측정합니다.
/// Define product with relevant parameters.
NSDictionary *product1 = @{
kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
kFIRParameterItemName : @"Android Jogger Sweatpants",
kFIRParameterItemCategory : @"Apparel/Men/Pants",
kFIRParameterItemVariant : @"Blue",
kFIRParameterItemBrand : @"Google",
kFIRParameterPrice : @39.99,
kFIRParameterCurrency : @"USD", // Item-level currency unused today.
kFIRParameterQuantity : @1
};
// Prepare ecommerce dictionary.
NSArray *items = @[product1];
NSDictionary *ecommerce = @{
@"items" : items
};
// Log add_to_cart event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventAddToCart
parameters:ecommerce];
이 예시에 대한 태그 구성 보기
- 태그 유형: 유니버설 애널리틱스
- 추적 유형: 이벤트
- 이벤트 카테고리 예시: 전자상거래
- 이벤트 액션 예시: 장바구니에 추가
- 향상된 전자상거래 기능 사용: True
- 데이터 읽기 출처: Firebase 이벤트
- 트리거 예시: (맞춤 > 일부 이벤트) 이벤트 이름이 add_to_cart와 같음
장바구니에서 삭제된 제품
관련성 높은 필드로 정의된 항목(제품)을 통해 kFIREventRemoveFromCart
이벤트를
로깅하여 장바구니에서 삭제되는 제품을
측정합니다.
// Define product with relevant parameters.
NSDictionary *product1 = @{
kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
kFIRParameterItemName : @"Android Jogger Sweatpants",
kFIRParameterItemCategory : @"Apparel/Men/Pants",
kFIRParameterItemVariant : @"Blue",
kFIRParameterItemBrand : @"Google",
kFIRParameterPrice : @39.99,
kFIRParameterCurrency : @"USD", // Item-level currency unused today.
kFIRParameterQuantity : @1
};
// Prepare ecommerce dictionary.
NSArray *items = @[product1];
NSDictionary *ecommerce = @{
@"items" : items
};
// Log remove_from_cart event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventRemoveFromCart
parameters:ecommerce];
이 예시에 대한 태그 구성 보기
- 태그 유형: 유니버설 애널리틱스
- 추적 유형: 이벤트
- 이벤트 카테고리 예시: 전자상거래
- 이벤트 액션 예시: 장바구니에서 삭제
- 향상된 전자상거래 기능 사용: True
- 데이터 읽기 출처: Firebase 이벤트
- 트리거 예시: (맞춤 > 일부 이벤트) 이벤트 이름이 remove_from_cart와 같음
프로모션 노출수
관련성 높은 필드로 정의된 프로모션 항목을 통해 kFIREventViewItem
이벤트를
로깅하여 프로모션 노출수를 측정합니다.
/// Define promotion with relevant parameters.
NSDictionary *promotion = @{
kFIRParameterItemID : @"PROMO_1234", // promotion ID; either ITEM_ID or ITEM_NAME is.
kFIRParameterItemName : @"Summer Sale", // promotion name.
kFIRParameterCreativeName : @"summer_banner2",
kFIRParameterCreativeSlot : @"banner_slot1"
};
// Prepare ecommerce dictionary.
NSArray *promotions = @[promotion];
NSDictionary *ecommerce = @{
@"promotions" : promotions
};
// Log view_item, view_item_list, or view_search_results
// event with ecommerce bundle.
[FIRAnalytics logEventWithName:kFIREventViewItem
parameters:ecommerce];
이 예시에 대한 태그 구성 보기
- 태그 유형: 유니버설 애널리틱스
- 추적 유형: 이벤트
- 이벤트 카테고리 예시: 내부 프로모션
- 이벤트 액션 예시: 노출
- 비 상호작용 조회: True
- 향상된 전자상거래 기능 사용: True
- 데이터 읽기 출처: Firebase 이벤트
- 트리거 예시: (맞춤 > 일부 이벤트) 이벤트 이름이 view_item과 같고
- 가 undefined와 같지 않음
프로모션 클릭수/선택 횟수
관련성 높은 필드로 정의된 프로모션을 통해 kFIREventSelectContent
이벤트를
로깅하여 프로모션 클릭수를 측정합니다.
// Define promotion with relevant parameters.
NSDictionary *promotion = @{
kFIRParameterItemID : @"PROMO_1234", // promotion ID; either ITEM_ID or ITEM_NAME is required.
kFIRParameterItemName : @"Summer Sale", // promotion name.
kFIRParameterCreativeName : @"summer_banner2",
kFIRParameterCreativeSlot : @"banner_slot1"
};
// Prepare ecommerce dictionary.
NSArray *promotions = @[promotion];
// Set properties for the event to be shown in the Google Analytics (Firebase) reports.
// These properties will not impact the Universal Analytics reporting.
NSDictionary *ecommerce = @{
kFIRParameterItemID : @"PROMO_1234",
kFIRParameterContentType : @"Internal Promotions",
@"promotions" : promotions
};
// Log select_content, view_item_list, or view_search_results event with ecommerce bundle.
[FIRAnalytics logEventWithName:kFIREventSelectContent
parameters:ecommerce];
이 예시에 대한 태그 구성 보기
- 태그 유형: 유니버설 애널리틱스
- 추적 유형: 이벤트
- 이벤트 카테고리 예시: 내부 프로모션
- 이벤트 액션 예시: 클릭
- 향상된 전자상거래 기능 사용: True
- 데이터 읽기 출처: Firebase 이벤트
- 트리거 예시: (맞춤 > 일부 이벤트) 이벤트 이름이 select_content와 같고 가 undefined와 같지 않음
결제 프로세스
결제 시작
관련성 높은 필드로 정의된 하나 이상의 항목(제품)을 통해
kFIREventBeginCheckout
이벤트를 로깅하여 결제 프로세스의 첫 번째 단계를
측정합니다.
// Define products with relevant parameters.
NSDictionary *product1 = @{
kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
kFIRParameterItemName : @"Android Jogger Sweatpants",
kFIRParameterItemCategory : @"Apparel/Men/Pants",
kFIRParameterItemVariant : @"Blue",
kFIRParameterItemBrand : @"Google",
kFIRParameterPrice : @39.99,
kFIRParameterCurrency : @"USD", // Item-level currency unused today.
kFIRParameterQuantity : @1
};
// Prepare ecommerce dictionary.
NSArray *items = @[product1];
// Set checkout step and optional checkout option.
NSDictionary *ecommerce = @{
@"items" : items,
kFIRParameterCheckoutStep : @1, // Optional for first step.
kFIRParameterCheckoutOption : @"Visa" // Optional.
};
// Log BEGIN_CHECKOUT event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventBeginCheckout
parameters:ecommerce];
이 예시에 대한 태그 구성 보기
- 태그 유형: 유니버설 애널리틱스
- 추적 유형: 화면 조회수
- 설정할 필드: (필드 이름) screenName (예: 값) 장바구니 화면
- 향상된 전자상거래 기능 사용: True
- 데이터 읽기 출처: Firebase 이벤트
- 트리거 예시: (맞춤 > 일부 이벤트) 이벤트 이름이 begin_checkout과 같음
결제 옵션
결제 옵션을 사용하면 결제 프로세스의 상태에 대한 추가 정보를 측정할 수 있습니다. 위와 같이 결제 단계 이벤트의 일환으로 또는 지정된 결제 단계의 이벤트가 이미 로깅된 후 사용자가 옵션을 선택한 경우 결제 옵션을 측정할 수 있습니다.
결제 단계가 끝나면 해당 kFIRParameterCheckoutStep
및 kFIRParameterCheckoutOption
매개변수로
kFIREventCheckoutProgress
이벤트를 로깅하여
결제 옵션을 측정합니다.
// Define products with relevant parameters.
NSDictionary *product1 = @{
kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
kFIRParameterItemName : @"Android Jogger Sweatpants",
kFIRParameterItemCategory : @"Apparel/Men/Pants",
kFIRParameterItemVariant : @"Blue",
kFIRParameterItemBrand : @"Google",
kFIRParameterPrice : @39.99,
kFIRParameterCurrency : @"USD", // Item-level currency unused today.
kFIRParameterQuantity : @1
};
// Prepare ecommerce dictionary.
NSArray *items = @[product1];
// Set checkout step and optional checkout option.
NSDictionary *ecommerce = @{
@"items" : items,
kFIRParameterCheckoutStep : @2, // Optional for first step.
kFIRParameterCheckoutOption : @"Visa" // Optional.
};
// Log CHECKOUT_PROGRESS event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventCheckoutProgress
parameters:ecommerce];
이 예시에 대한 태그 구성 보기
- 태그 유형: 유니버설 애널리틱스
- 추적 유형: 이벤트
- 이벤트 카테고리 예시: 전자상거래
- 이벤트 액션 예시: 결제 옵션 설정
- 향상된 전자상거래 기능 사용: True
- 데이터 읽기 출처: Firebase 이벤트
- 트리거 예시: (맞춤 > 일부 이벤트) 이벤트 이름이 set_checkout_option과 같음
구매
관련성 높은 필드로 정의된 하나 이상의 항목(제품)을 통해
kFIREventEcommercePurchase
이벤트를 로깅하여 구매를 측정합니다.
// Define products with relevant parameters.
NSDictionary *product1 = @{
kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
kFIRParameterItemName : @"Android Jogger Sweatpants",
kFIRParameterItemCategory : @"Apparel/Men/Pants",
kFIRParameterItemVariant : @"Blue",
kFIRParameterItemBrand : @"Google",
kFIRParameterPrice : @39.99,
kFIRParameterCurrency : @"USD", // Item-level currency unused today.
kFIRParameterQuantity : @1
};
NSDictionary *product2 = @{
kFIRParameterItemID : @"sku5678", // ITEM_ID or ITEM_NAME is required.
kFIRParameterItemName : @"Android Capri",
kFIRParameterItemCategory : @"Apparel/Women/Pants",
kFIRParameterItemVariant : @"Black",
kFIRParameterItemBrand : @"Google",
kFIRParameterPrice : @35.99,
kFIRParameterCurrency : @"USD", // Item-level currency unused today.
kFIRParameterQuantity : @1
};
// Prepare ecommerce dictionary.
NSArray *items = @[product1, product2];
NSDictionary *ecommerce = @{
@"items" : items,
kFIRParameterItemList : @"Search Results", // List name.
kFIRParameterTransactionID : @"T12345",
kFIRParameterAffiliation : @"Google Store - Online",
kFIRParameterValue : @75.98, // Revenue.
kFIRParameterTax : @3.80,
kFIRParameterShipping : @5.34,
kFIRParameterCurrency : @"USD",
kFIRParameterCoupon : @"SUMMER2017"
};
// Log ecommerce_purchase event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventEcommercePurchase
parameters:ecommerce];
이 예시에 대한 태그 구성 보기
- 태그 유형: 유니버설 애널리틱스
- 추적 유형: 화면 조회수
- 설정할 필드: (필드 이름) screenName (예: 값) 감사 화면
- 향상된 전자상거래 기능 사용: True
- 데이터 읽기 출처: Firebase 이벤트
- 트리거 예시: (맞춤 > 일부 이벤트) 이벤트 이름이 ecommerce_purchase와 같음
환불
관련성 높은 지정된 거래 ID와 더불어 원하는 경우(부분 환불의 경우)
상품 ID 및 수량으로 정의된 하나 이상의 항목(제품)을 통해
kFIREventPurchaseRefund
이벤트를 로깅하여 환불을 측정합니다.
// (OPTIONAL) For partial refunds, define the item IDs and
// quantities of products being refunded.
NSDictionary *refundedProduct = @{
kFIRParameterItemID : @"sku1234", // Required for partial refund.
kFIRParameterQuantity : @1
};
// Prepare ecommerce bundle with transaction ID to be refunded.
NSDictionary *ecommerce = @{
@"items" : @[ refundedProduct ],
kFIRParameterTransactionID : @"T12345", // Required.
kFIRParameterValue : @75.98 // Optional in Universal Analytics.
};
// Log purchase_refund event with ecommerce.
[FIRAnalytics logEventWithName:kFIREventPurchaseRefund
parameters:ecommerce];
이 예시에 대한 태그 구성 보기
- 태그 유형: 유니버설 애널리틱스
- 추적 유형: 이벤트
- 이벤트 카테고리 예시: 전자상거래
- 이벤트 액션 예시: 환불
- 향상된 전자상거래 기능 사용: True
- 데이터 읽기 출처: Firebase 이벤트
- 트리거 예시: (맞춤 > 일부 이벤트) 이벤트 이름이 purchase_refund와 같음