iOS v3 - 향상된 전자상거래

이 가이드에서는 iOS용 Google 태그 관리자 SDK를 사용하여 유니버설 애널리틱스 향상된 전자상거래 기능을 구현하는 방법을 설명합니다.

개요

Google 애널리틱스의 향상된 전자상거래를 사용하면 제품 노출, 프로모션, 판매 데이터를 Google 애널리틱스 화면 조회수 및 이벤트와 함께 전송할 수 있습니다.

시작하기 전에

구현을 계획하는 데 도움이 되도록 Google 애널리틱스 향상된 전자상거래 개발자 가이드 (웹)향상된 전자상거래 데이터 유형 및 작업 섹션을 검토하는 것이 좋습니다. 이 가이드는 측정하려는 각 전자상거래 상호작용의 필수 필드와 선택 필드를 이해하는 데 도움이 됩니다.

구현

다음 섹션에서는 데이터 영역을 사용하여 다음과 같은 향상된 전자상거래 활동을 측정하는 방법을 보여줍니다.

제품 노출수 측정

  • 전자상거래 측정: impressions
  • 허용되는 데이터: impressionFieldObjects의 배열

impression 작업과 하나 이상의 impressionFieldObjects를 사용하여 제품 노출수를 측정합니다. 다음 예에서는 화면이 표시될 때 표시되는 제품의 세부정보를 알 수 있다고 가정합니다.

// Product impressions are sent by pushing an impressions object
// containing one or more impressionFieldObjects.
[dataLayer push:@{@"ecommerce": @{
                    @"currencyCode": @"EUR",                      // Local currency is optional.
                    @"impressions": @[
                      @{@"name": @"Triblend Android T-Shirt",     // Name or ID is required.
                        @"id": @"12345",
                        @"price": @"15.25",
                        @"brand": @"Google",
                        @"category": @"Apparel",
                        @"variant": @"Gray",
                        @"list": @"Search Results",
                        @"position": @1},
                      @{@"name": @"Donut Friday Scented T-Shirt",
                        @"id": @"67890",
                        @"price": @"33.75",
                        @"brand": @"Google",
                        @"category": @"Apparel",
                        @"variant": @"Black",
                        @"list": @"Search Results",
                        @"position": @2}]}}];

제품 클릭수/선택 횟수 측정

  • 전자상거래 측정: click
  • 허용되는 데이터: list, productFieldObjects의 배열

click 작업을 데이터 영역으로 푸시하여 선택한 제품을 나타내는 productFieldObject와 함께 제품 선택을 측정합니다.

[dataLayer push:@{@"event": @"productClick",
                  @"ecommerce": @{
                    @"click": @{
                      @"actionField": @{
                        @"list": @"Search Results"},              // Optional list property.
                      @"products": @[
                        @{@"name": @"Triblend Android T-Shirt",   // Name or ID is required.
                          @"id": @"12345",
                          @"price": @"15.25",
                          @"brand": @"Google",
                          @"category": @"Apparel",
                          @"variant": @"Gray"}]}}}];

제품 세부정보의 조회수 측정

  • 전자상거래 측정: detail
  • 허용되는 데이터: list, productFieldObjects의 배열

조회 중인 제품을 나타내는 하나 이상의 productFieldObjects와 함께 detail 작업을 데이터 영역으로 푸시하여 제품 세부정보 보기를 측정합니다.

// Measure a view of product details.
[dataLayer push:@{@"ecommerce": @{
                    @"detail": @{
                      @"actionField": @{
                        @"list": @"Apparel Gallery"},             // 'detail' actions have an optional list property.
                      @"products": @[
                        @{@"name": @"Triblend Android T-Shirt",   // Name or ID is required.
                          @"id": @"12345",
                          @"price": @"15.25",
                          @"brand": @"Google",
                          @"category": @"Apparel",
                          @"variant": @"Gray"}]}}}];

장바구니에 추가 또는 장바구니에서 삭제한 횟수 측정

  • 전자상거래 측정: add, remove
  • 허용되는 데이터: list, productFieldObjects의 배열

add 또는 remove actionFieldObjectproductFieldObjects 목록을 사용하여 장바구니에서 추가 또는 삭제를 측정합니다.

장바구니에 제품 추가

// Measure adding a product to a shopping cart by using an "add"
// actionFieldObject and a list of productFieldObjects.
[dataLayer push:@{@"event": @"addToCart",
                  @"ecommerce": @{
                    @"currencyCode": @"EUR",
                    @"add": @{                                  // 'add' actionFieldObject measures.
                      @"products": @[
                        @{@"name": @"Triblend Android T-Shirt",
                          @"id": @"12345",
                          @"price": @"15.25",
                          @"brand": @"Google",
                          @"category": @"Apparel",
                          @"variant": @"Gray",
                          @"quantity": @1}]}}}];

장바구니에서 제품 삭제

// Measure the removal of a product from a shopping cart.
[dataLayer push:@{@"event": @"removeFromCart",
                  @"ecommerce": @{
                    @"remove": @{                               // 'remove' actionFieldObject measures.
                      @"products": @[
                        @{@"name": @"Triblend Android T-Shirt",
                          @"id": @"12345",
                          @"price": @"15.25",
                          @"brand": @"Google",
                          @"category": @"Apparel",
                          @"variant": @"Gray",
                          @"quantity": @1}]}}}];

프로모션 측정

특정 제품 하위 집합의 판매를 광고하기 위해 앱에 표시되는 배너나 무료 배송 혜택과 같은 내부 앱 프로모션에서 노출수와 선택 항목을 모두 측정할 수 있습니다.

프로모션 노출수 측정

  • 전자상거래 측정: promoView
  • 허용되는 데이터: promoFieldObjects의 배열

프로모션 노출수를 측정하려면 전자상거래 데이터 영역의 promoView 키를 화면에서 사용자에게 표시되는 프로모션을 설명하는 promoFieldObject로 설정하세요.

// An example of measuring promotion views. This example assumes that
// information about the promotions displayed is available when the screen is
// displayed.
[dataLayer push:@{@"ecommerce": @{
                    @"promoView": @{
                      @"promotions": @[                     // Array of promoFieldObjects.
                        @{@"id": @"JUNE_PROMO13",           // ID or Name is required.
                          @"name": @"June Sale",
                          @"creative": @"banner1",
                          @"position": @"slot1"},
                        @{@"id": @"FREE_SHIP13",
                          @"name": @"Free Shipping Promo",
                          @"creative": @"skyscraper1",
                          @"position": @"slot2"}]}}}];

프로모션 클릭수/선택 횟수 측정

프로모션 선택을 측정하려면 선택한 프로모션을 설명하는 promoFieldObject가 포함된 배열이 있는 데이터 영역으로 promoClick 작업을 푸시합니다.

[dataLayer push:@{@"event": @"promotionClick",
                  @"ecommerce": @{
                    @"promoClick": @{
                      @"promotions": @[
                        @{@"id":  @"JUNE_PROMO13",          // Name or ID is required.
                          @"name": @"June Sale",
                          @"creative": @"banner1",
                          @"position": @"slot1"}]}}}];

결제 측정

결제 프로세스의 각 단계를 측정하려면 다음 안내를 따르세요.

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

1. 결제 단계 측정

  • 전자상거래 측정: checkout
  • 허용되는 데이터: step, productFieldObjects의 배열

결제 버튼 및 사용자가 배송 및 결제 정보를 입력하는 하나 이상의 결제 화면이 포함될 수 있는 결제 프로세스를 측정하려면 checkout 작업과 step 필드를 사용하여 결제 프로세스의 어느 단계를 측정 중인지 표시합니다. option 필드를 사용하여 사용자가 선택한 결제 유형과 같은 결제 프로세스에 관한 추가 데이터를 제공할 수도 있습니다.

[dataLayer push:@{@"event": @"checkout",
                  @"ecommerce": @{
                    @"checkout": @{
                      @"actionField": @{
                        @"step": @1,
                        @"option": @"Visa"},
                      @"products": @[
                        @{@"name": @"Triblend Android T-Shirt",
                          @"id": @"12345",
                          @"price": @"15.25",
                          @"brand": @"Google",
                          @"category": @"Apparel",
                          @"variant": @"Gray",
                          @"quantity": @1}]}}}];

2. 결제 옵션 측정

  • 전자상거래 측정: checkout_option
  • 허용되는 데이터: step, option

결제 옵션은 이미 결제 단계를 측정했으나 동일한 결제 단계에 대해 추가 정보를 파악하려는 경우에 유용합니다. 예를 들어 사용자가 선택한 배송 방법이 있습니다. 이를 측정하려면 checkout_option 작업을 stepoption 필드와 함께 사용합니다.

[dataLayer push:@{@"event": @"checkoutOption",
                  @"ecommerce": @{
                    @"checkout_option": @{
                      @"actionField": @{
                        @"step": @1,
                        @"option": @"Express"}}}}];

3. 결제 단계 구성

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

Google 애널리틱스 관리자 인터페이스의 전자상거래 설정 결제
         단계는 4단계, 즉 1. 장바구니 검토, 2. 결제 정보
         수집, 3. 구매 세부정보 확인, 4. 영수증으로 정의됩니다.
그림 1: 전자상거래 설정, 결제 단계

구매 측정

  • 전자상거래 측정: purchase
  • 허용되는 데이터: id (거래 ID), productFieldObjects의 배열

향상된 전자상거래가 사용 설정된 태그를 실행하는 event와 함께 purchase 작업을 사용하여 거래 세부정보를 데이터 영역에 푸시합니다. 이 예에서는 화면이 표시된 시점에 거래 세부정보를 알 수 있습니다.

// Send transaction data with a screenview if possible.
// Otherwise, use an event when the transaction data becomes available.
[dataLayer push:@{@"ecommerce": @{
                    @"purchase": @{
                      @"actionField": @{
                        @"id": @"T12345",                         // Transaction ID. Required for purchases and refunds.
                        @"affiliation": @"Online Store",
                        @"revenue": @"35.43",                     // Total transaction value (incl. tax and shipping)
                        @"tax":"4.90",
                        @"shipping": @"5.99",
                        @"coupon": @"SUMMER_SALE"},
                      @"products": @[                             // List of productFieldObjects.
                        @{@"name": @"Triblend Android T-Shirt",   // Name or ID is required.
                          @"id": @"12345",
                          @"price": @"15.25",
                          @"brand": @"Google",
                          @"category": @"Apparel",
                          @"variant": @"Gray",
                          @"quantity": @1,
                          @"coupon": @""},                        // Optional fields may be omitted or set to empty string.
                        @{@"name": @"Donut Friday Scented T-Shirt",
                          @"id": @"67890",
                          @"price": @"33.75",
                          @"brand": @"Google",
                          @"category": @"Apparel",
                          @"variant": @"Black",
                          @"quantity": @1}]}}}];

환불 측정

  • 전자상거래 측정: refund
  • 허용되는 데이터: id (거래 ID), productFieldObjects의 배열

거래의 전액 환불을 측정하려면 refund actionFieldObject를 환불되는 거래의 거래 ID와 함께 푸시합니다.

// Refund an entire transaction by providing the transaction ID. This example
// assumes the details of the completed refund are available when the screen
// is displayed:
[dataLayer push:@{@"ecommerce": @{
                    @"refund": @{
                      @"actionField": @{
                        @"id": @"T12345"}}}}];  // Transaction ID. Required for refunds.

부분 환불을 측정하려면 제품 ID와 환불 수량이 포함된 productFieldObjects 목록을 추가합니다.

// Measure a partial refund by providing an array of productFieldObjects and
// specifying the ID and quantity of each product being returned. This example
// assumes the partial refund details are known at the time the screen is
// displayed:
[dataLayer push:@{@"ecommerce": @{
                    @"refund": @{
                      @"actionField": @{
                        @"id": @"T12345"},      // Transaction ID.
                      @"products": @[
                        @{@"id": @"P4567",
                          @"quantity": @1},     // Product ID & quantity. Required for partial refunds.
                        @{@"id": @"P8901",
                          @"quantity": @2}]}}}];

노출수와 작업 결합

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

아래의 예시에는 관련 상품 섹션에서 제품 노출수를 사용하여 제품 세부정보 보기를 측정하는 방법이 나와 있습니다.

[dataLayer push:@{@"ecommerce": @{
                    @"impressions": @[
                      @{@"name": @"Triblend Android T-Shirt",       // Name or ID is required.
                        @"id": @"12345",
                        @"price": @"15.25",
                        @"brand": @"Google",
                        @"category": @"Apparel",
                        @"variant": @"Gray",
                        @"list": @"Related Products",
                        @"position": @1},
                      @{@"name": @"Donut Friday Scented T-Shirt",
                        @"id": @"67890",
                        @"price": @"33.75",
                        @"brand": @"Google",
                        @"category": @"Apparel",
                        @"variant": @"Black",
                        @"list": @"Related Products",
                        @"position": @2}],
                    @"detail": @{
                      @"actionField": @{
                        @"list": @"Apparel Gallery"},               // 'detail' actions have an optional list property.
                      @"products": @[
                        @{@"name": @"Triblend Android T-Shirt",     // Name or ID is required.
                          @"id": @"12345",
                          @"price": @"15.25",
                          @"brand": @"Google",
                          @"category": @"Apparel",
                          @"variant": @"Gray"}]}}}];