拡張 e コマース トラッキング - iOS SDK

このドキュメントでは、iOS 向け Google アナリティクス SDK v3 を使って、アプリ内 e コマースに関連するアクションとインプレッションを測定する方法を概説します。

概要

拡張 e コマースを使用すると、ショッピング ユーザーと商品との接点(商品のインプレッション、商品のクリック、商品情報の表示、ショッピング カートへの商品の追加、決済プロセスの開始、トランザクション、払い戻しなど)を測定できます。

実装

拡張 e コマース トラッキングをアプリに実装する前に、拡張 e コマース ライブラリをアプリに追加する必要があります。

拡張 e コマースを使用するようアプリを設定すると、次のことが可能になります。

e コマース アクティビティの測定

拡張 e コマースの標準的な実装では、商品のインプレッションに加え、次のようなアクションが測定されます。

  • 商品のクリック
  • 商品情報の表示
  • 社内プロモーションのインプレッションとクリック
  • ショッピング カートへの商品の追加や削除
  • 商品の決済プロセスの開始
  • 購入と払い戻し

インプレッションの測定

商品のインプレッションを測定するには、商品と商品のインプレッションの値を設定し、ヒットに付加して送信します。

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 いずれかの値を設定する必要があります。その他の値はすべてオプションで、設定しなくてもかまいません。

インプレッションとアクションの併合

商品のインプレッションとアクションの両方を測定している場合は、1 回のヒットで 2 つをまとめて測定することが可能です。

次のサンプルコードは、商品情報を表示したアクションに、関連する商品セクションの情報を付けて測定する方法を示したものです。

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

払い戻しの測定

1 件のトランザクションすべてを払い戻すには、次のように商品アクションの値を設定して、払い戻しの対象となるトランザクション 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. オプションとして、管理画面の [アナリティクス設定] の [e コマースの設定] で、決済目標到達プロセスのレポートに表示するわかりやすいステップ名を設定します。

1. 決済ステップの測定

決済プロセスの各ステップを測定するには、そのためのトラッキング コードを各ステップに実装し、Google アナリティクスにデータを送る必要があります。

Step フィールド

測定の対象とする決済ステップには、必ず step 値を含めます。この値は、[e コマースの設定] で指定した各ステップのラベル(名前)と決済アクションを結び付けるために使われます。

Option フィールド

決済ステップの測定時にステップに関する情報を追加する場合は、checkout アクションで checkout option フィールドにその情報を設定します。たとえば、対象ユーザーのデフォルトのお支払い方法(例: 「Visa」)などを設定します。

個々の決済ステップの測定

個々の決済ステップを測定するには商品の値を設定してから、商品アクションの値を設定して決済アクションであることを示します。また、必要に応じてその決済に決済ステップと決済オプションを設定することもできます。

次のサンプルコードは、決済プロセスの最初のステップの測定方法を示したもので、1 個の商品と、お支払い方法に関する追加情報が付加されています。

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. 決済オプションの測定

決済オプションを使用すると、決済に関する追加情報を測定できます。この機能は、1 つの決済ステップを測定した後で、同じ決済ステップの別のオプションが指定され、追加情報が出た場合に便利です。たとえば、ユーザーが選択した配送方法を情報として追加できます。

決済オプションを測定するには、商品アクションを設定して決済オプションであることを示し、ステップ番号とオプションの説明を含めます。

このアクションは、ユーザーが決済プロセスの次のステップに移るアクションを実施した後に測定することをおすすめします。たとえば、次のようなコードになります。

// (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 アナリティクスの管理画面の [アナリティクス設定] で対象のビュー(旧プロファイル)を選択して [e コマースの設定] をクリックします。表示される e コマースの設定手順に従って、測定する個々の決済ステップに名前を設定します。

Google アナリティクス ウェブ管理画面の [アナリティクス設定] にある [e コマースの設定]。e コマースが有効で、決済目標到達プロセスのステップラベルが 4 つ追加されています: 1. カートの確認、2. お支払い情報の収集、3. 購入情報の確認、4. 領収書
図 1: e コマースの設定 - 決済目標到達プロセス

社内プロモーションの測定

拡張 e コマースでは、社内プロモーション(セールを宣伝するバナー広告など)のインプレッションとクリックの測定をサポートしています。

プロモーションのインプレッション

社内プロモーションのインプレッションは、一般的に最初のスクリーンビューで測定されるほか、イベントにプロモーションの値を設定することによって測定されます。たとえば、次のようなコードになります。

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