加強型電子商務是 通用 Analytics (分析) 資源提供的 Google Analytics (分析) 功能,可針對使用者購物體驗,評估使用者與產品的互動情形。包括產品曝光次數、產品點擊次數、產品詳細資料瀏覽次數、將商品加入購物車、開始結帳、交易和退款。
最新一代的 Google 代碼管理工具和 Google Analytics (分析) 行動應用程式,可與 Google 的行動應用程式平台 Firebase 搭配使用。 使用 Firebase SDK 評估應用程式時,您可以存取許多自動產生的行動應用程式報表,這些報表可進一步自訂,並可透過應用程式內的程式碼提供。這些報表會自動納入 App Store 的 iTunes 和 Google Play 處理的應用程式內購資料。 您可以導入電子商務應用程式建議事件,產生其他電子商務相關報表。目前只有通用 Analytics (分析) 資源提供詳盡的購物行為報表 (例如加強型電子商務)。
本文說明如何搭配使用 iOS 應用程式與 Firebase SDK,以便將加強型電子商務資料傳送至通用 Analytics (分析) 資源。建議您採用相同的事件和參數語法,為日後的電子商務報表設定更多階段。
首要步驟
在開始之前,請先為您的應用程式設定下列必備條件:
- 在您的應用程式中安裝及設定 Firebase 和 Google 代碼管理工具。 請務必使用 11 以上版本適用的 Firebase SDK for iOS。
- 在代碼管理工具容器中設定名為「promotions」的使用者定義變數,並指定下列設定:
- 事件類型:自訂參數
- 事件參數鍵:promotion
- 預設值:未定義
實作
以下各節說明如何使用記錄參數記錄事件,以評估加強型電子商務活動,例如:
產品曝光次數
如要記錄產品曝光,請使用 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];
請參閱這個範例的代碼設定:
- 代碼類型:通用 Analytics (分析)
- 追蹤類型:畫面瀏覽
- 要設定的欄位:(欄位名稱) screenName (值,例如搜尋結果 畫面
- 啟用加強型電子商務功能:是
- 讀取來自 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];
請參閱這個範例的代碼設定:
- 代碼類型:通用 Analytics (分析)
- 追蹤類型:事件
- 事件類別,例如:電子商務
- 事件動作,例如: 產品點擊
- 啟用加強型電子商務功能:是
- 讀取來自 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];
請參閱這個範例的代碼設定:
- 代碼類型:通用 Analytics (分析)
- 追蹤類型:畫面瀏覽
- 要設定的欄位:(欄位名稱) screenName (值,例如產品詳細資料 畫面
- 啟用加強型電子商務功能:是
- 讀取來自 Firebase 事件的資料
- 觸發條件,例如:(自訂 > 部分事件) 事件名稱等於 view_item 且
- {{促銷}} 等於未定義
加入購物車的項目
將 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];
請參閱這個範例的代碼設定:
- 代碼類型:通用 Analytics (分析)
- 追蹤類型:事件
- 事件類別,例如:電子商務
- 事件動作,例如: 放進購物車
- 啟用加強型電子商務功能:是
- 讀取來自 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];
請參閱這個範例的代碼設定:
- 代碼類型:通用 Analytics (分析)
- 追蹤類型:事件
- 事件類別,例如:電子商務
- 事件動作,例如: 從購物車中移除
- 啟用加強型電子商務功能:是
- 讀取來自 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];
請參閱這個範例的代碼設定:
- 代碼類型:通用 Analytics (分析)
- 追蹤類型:事件
- 事件類別,例如:內部宣傳
- 事件動作,例如:曝光
- 非互動命中:是
- 啟用加強型電子商務功能:是
- 讀取來自 Firebase 事件的資料
- 觸發條件,例如:(自訂 > 部分事件) 事件名稱等於 view_item 且
- {{促銷}} 不等於未定義
促銷活動點擊/選項
記錄相關點擊,並利用相關欄位定義的促銷活動記錄 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];
請參閱這個範例的代碼設定:
- 代碼類型:通用 Analytics (分析)
- 追蹤類型:事件
- 事件類別,例如:內部宣傳
- 事件動作,例如:
- 啟用加強型電子商務功能:是
- 讀取來自 Firebase 事件的資料
- 觸發條件,例如:(自訂 > 部分事件) 事件名稱等於 select_content &{{promotions}} 不等於 未定義
結帳程序
開始結帳
記錄 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];
請參閱這個範例的代碼設定:
- 代碼類型:通用 Analytics (分析)
- 追蹤類型:畫面瀏覽
- 要設定的欄位:(欄位名稱) screenName (值,例如購物車螢幕
- 啟用加強型電子商務功能:是
- 讀取來自 Firebase 事件的資料
- 觸發條件,例如:(自訂 > 部分事件) 事件名稱等於 start_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];
請參閱這個範例的代碼設定:
- g 類型:通用 Analytics (分析)
- ack Type:事件類型
- ent 類別,例如:電子商務
- 放棄動作,例如: 設定結帳選項
- 加強型電子商務功能:是
- 廣告資料來源: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];
請參閱這個範例的代碼設定:
- 代碼類型:通用 Analytics (分析)
- 追蹤類型:畫面瀏覽
- 要設定的欄位:(欄位名稱) screenName (值,例如感謝畫面
- 啟用加強型電子商務功能:是
- 讀取來自 Firebase 事件的資料
- 觸發條件,例如:(自訂 > 部分事件) 事件名稱等於 ecommerce_purchase
退款
記錄指定相關交易 ID 的 kFIREventPurchaseRefund
事件,並選擇性 (定義部分退款) 使用項目 ID 和數量定義的一或多個項目 (亦即產品):
// (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];
請參閱這個範例的代碼設定:
- 代碼類型:通用 Analytics (分析)
- 追蹤類型:事件
- 事件類別,例如:電子商務
- 事件動作,例如:退款
- 啟用加強型電子商務功能:是
- 讀取來自 Firebase 事件的資料
- 觸發條件,例如:(自訂 > 部分事件) 事件名稱等於購買_refund