拡張 e コマースは、ユニバーサル アナリティクスのプロパティで使用できる Google アナリティクスの機能のひとつです。この機能を使って、ショッピングの全過程を通したユーザー インタラクションを測定できます。これには、インプレッション、商品のクリック、商品の詳細の表示、ショッピング カートへの商品の追加、決済手続きの開始、購入、払い戻しなどが含まれます。
モバイルアプリ向けの Google タグ マネージャーと Google アナリティクスの各最新バージョンは、Google のモバイルアプリ プラットフォームである Firebase と連携して動作します。Firebase SDK を使用してアプリの測定を行うと、多くのモバイルアプリ レポートが自動的に生成されます。このレポートはアプリ内コードでカスタマイズし、機能を強化することもできます。これらのレポートには、iTunes の App Store や Google Play で処理されたアプリ内購入に関するデータが自動的に表示されます。e コマース関連のその他のレポートは、e コマースアプリの推奨イベントを実装することで生成できます。ショッピング行動に関する詳細なレポート(拡張 e コマースなど)は、現時点ではユニバーサル アナリティクスのプロパティでのみ利用可能です。
このドキュメントでは、iOS アプリ向けのタグ マネージャーと Firebase SDK を使用して、拡張 e コマースのデータをユニバーサル アナリティクスのプロパティに送信する方法について説明します。後で追加の e コマース レポートのステージを設定するには、同じイベントとパラメータの構文を使用します。
最初の手順
まずは、アプリに関する次の必須要件を整えます。
- アプリに Firebase と Google タグ マネージャーをインストールして設定します。iOS 向けの Firebase SDK は必ずバージョン 11 以上を使用してください。
- 「promotions」というタグ マネージャー コンテナにユーザー定義変数を次の設定で構成します。
- イベントの種類: カスタム パラメータ
- イベント パラメータキー: promotions
- デフォルト値: 未定義
実装
次以降のセクションでは、次のような拡張 e コマースのアクティビティを測定するために必要なパラメータを使用してイベントを記録する方法を説明します。
商品のインプレッション
商品のインプレッションを測定するには、kFIRParameterItemID
パラメータと、対応するフィールドで定義された 1 つ以上のアイテム(商品)を使用してイベントを記録します。
// 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(値の例)検索結果の画面
- 拡張 e コマース機能を有効にする: 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];
この例のタグ設定:
- タグタイプ: ユニバーサル アナリティクス
- トラッキング タイプ: イベント
- イベント カテゴリの例:e コマース
- イベント アクションの例: 商品のクリック
- 拡張 e コマース機能を有効にする: true
- データの参照先: Firebase イベント
- トリガーの例: ([カスタム] > [一部のイベント])「イベント名」が select_content に等しく、{{promotions}} が未定義に等しい
商品詳細表示
商品の詳細の表示を測定するには、関連するフィールドでアイテム(商品)を定義して 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(値の例)商品の詳細画面
- 拡張 e コマース機能を有効にする: true
- データの参照先: Firebase イベント
- トリガーの例: ([カスタム] > [一部のイベント])「イベント名」が select_content に等しく、
- {{promotions}} が未定義に等しい
カートへの商品の追加
ショッピング カートへの商品の追加を測定するには、関連するフィールドでアイテム(商品)を定義して 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];
この例のタグ設定:
- タグタイプ: ユニバーサル アナリティクス
- トラッキング タイプ: イベント
- イベント カテゴリの例:e コマース
- イベント アクションの例: カートへの商品の追加
- 拡張 e コマース機能を有効にする: 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];
この例のタグ設定:
- タグタイプ: ユニバーサル アナリティクス
- トラッキング タイプ: イベント
- イベント カテゴリの例:e コマース
- イベント アクションの例: カートからの商品の削除
- 拡張 e コマース機能を有効にする: 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
- 拡張 e コマース機能を有効にする: true
- データの参照先: Firebase イベント
- トリガーの例: ([カスタム] > [一部のイベント])「イベント名」が select_content に等しく、
- {{promotions}} が未定義に等しい
プロモーションのクリックや選択
プロモーションのクリックを測定するには、関連するフィールドでプロモーションを定義して 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];
この例のタグ設定:
- タグタイプ: ユニバーサル アナリティクス
- トラッキング タイプ: イベント
- イベント カテゴリの例:内部プロモーション
- イベント アクションの例: クリック
- 拡張 e コマース機能を有効にする: true
- データの参照先: Firebase イベント
- トリガーの例: ([カスタム] > [一部のイベント])「イベント名」が select_content に等しく、{{promotions}} が未定義に等しい
決済手続き
決済手続きの開始
決済手続きの最初のステップを測定するには、関連するフィールドで 1 つ以上のアイテム(商品)を定義して 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(値の例)カートの画面
- 拡張 e コマース機能を有効にする: 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];
この例のタグ設定:
- タグタイプ: ユニバーサル アナリティクス
- トラッキング タイプ: イベント
- イベント カテゴリの例: e コマース
- イベント アクションの例: 決済オプションの設定
- 拡張 e コマース機能を有効にする: true
- データの参照先: Firebase イベント
- トリガーの例: (カスタム > 一部のイベント)イベント名は set_checkout_option
購入
購入を測定するには、関連するフィールドで 1 つ以上のアイテム(商品)を定義して 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(値の例)「ありがとうございます」画面
- 拡張 e コマース機能を有効にする: true
- データの参照先: Firebase イベント
- トリガーの例: (カスタム > 一部のイベント)イベント名は ecommerce_purchase となります
払い戻し
払い戻しを測定するには、関連する取引 ID を指定して kFIREventPurchaseRefund
イベントを記録します。(一部払い戻しの場合など)必要な場合はアイテム ID と数量で 1 つ以上のアイテム(商品)を定義します。
// (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];
この例のタグ設定:
- タグタイプ: ユニバーサル アナリティクス
- トラッキング タイプ: イベント
- イベント カテゴリの例:e コマース
- イベント アクションの例: 払い戻し
- 拡張 e コマース機能を有効にする: true
- データの参照先: Firebase イベント
- トリガーの例: (カスタム > 一部のイベント)イベント名は purchase_refund です