유니버설 애널리틱스의 iOS용 향상된 전자상거래

향상된 전자상거래유니버설 애널리틱스 속성에서 사용할 수 있는 Google 애널리틱스 기능으로, 사용자의 쇼핑 환경 전반에서 제품과의 사용자 상호작용을 측정할 수 있습니다. 여기에는 제품 노출수, 품 클릭수, 제품 세부정보 조회수, 장바구니에 항목 추가, 결제 시작, 거래, 환불이 포함될 수 있습니다.

차세대 버전의 Google 태그 관리자 및 모바일 앱용 Google 애널리틱스 모두 Google의 모바일 앱 플랫폼인 Firebase와 함께 작동합니다. Firebase SDK로 앱을 측정할 때 자동으로 생성된 여러 모바일 앱 보고서에 액세스할 수 있으므로, 인앱 코드를 통해 이러한 보고서를 추가로 맞춤설정하고 보완할 수 있습니다. 이 보고서에는 iTunes의 App Store와 Google Play에서 처리되는 인앱 구매 데이터가 자동으로 포함됩니다. 전자상거래 앱용 추천 이벤트를 구현하면 전자상거래 관련 보고서를 추가로 생성할 수 있습니다. 쇼핑 행동(즉, 향상된 전자상거래)에 대한 심층 보고서는 현재 유니버설 애널리틱스 속성에서만 사용할 수 있습니다.

이 문서에서는 Firebase SDK와 함께 iOS 앱용 태그 관리자를 사용하여 향상된 향상된 전자상거래 데이터를 유니버설 애널리틱스 속성으로 전송하는 방법을 설명합니다. 동일한 이벤트 및 매개변수 구문을 사용하여 향후 추가 전자상거래 보고서를 위한 단계를 설정해야 합니다.

첫 단계

시작하기 전에 앱에 다음과 같은 기본 요건을 설정합니다.

  1. 앱에 Firebase와 Google 태그 관리자를 설치하고 구성 합니다. iOS용 Firebase SDK 버전 11 이상을 사용하고 있는지 확인합니다.
  2. 태그 관리자 컨테이너에서 '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과 같음

결제 옵션

결제 옵션을 사용하면 결제 프로세스의 상태에 대한 추가 정보를 측정할 수 있습니다. 위와 같이 결제 단계 이벤트의 일환으로 또는 지정된 결제 단계의 이벤트가 이미 로깅된 후 사용자가 옵션을 선택한 경우 결제 옵션을 측정할 수 있습니다.

결제 단계가 끝나면 해당 kFIRParameterCheckoutStepkFIRParameterCheckoutOption 매개변수로 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와 같음