本指南說明如何使用 analytics.js 收集電子商務資料。
總覽
電子商務評估可讓您評估網站產生的交易次數和收益。在一般電子商務網站上,只要使用者在瀏覽器中按一下「購買」按鈕,他們的購買資訊就會傳送至網路伺服器,供進行交易。如果成功,伺服器會將使用者重新導向至「感謝您」或收據頁面,其中包含交易明細和購買收據。您可以使用 analytics.js 程式庫,將電子商務資料從「感謝您」網頁傳送至 Google Analytics (分析)。
您可以使用 analytics.js 傳送兩種電子商務資料:「交易」和「項目」資料。
交易資料
交易代表網站上發生的整個交易,並包含下列值:
鍵 | 值類型 | 必要 | 說明 |
---|---|---|---|
id |
text | 是 | 交易 ID。(例如:1234) |
affiliation |
text | 否 | 進行交易的商店或聯盟 (例如 Acme 服飾)。 |
revenue |
currency | 否 | 指定與交易相關的總收益或總和 (例如 11.99)。 這個值可能包含運費、稅金或其他調整項,您可以在計算收益時納入這個金額。 |
shipping |
currency | 否 | 指定交易的總運費。(例如:5) |
tax |
currency | 否 | 指定交易的總稅金。(例如:1.29) |
項目資料
一個項目代表購物車中的個別產品,並包含下列值:
鍵 | 值類型 | 必要 | 說明 |
---|---|---|---|
id |
text | 是 | 交易 ID。這個 ID 可將項目連結至其所屬的交易。(例如:1234) |
name |
text | 是 | 項目名稱。例如「柔軟粉紅色兔子」 |
sku |
text | 否 | 指定 SKU 或項目代碼。(例如 SKU47) |
category |
text | 否 | 項目所屬類別 (例如「派對玩具」) |
price |
currency | 否 | 每項商品的個別、單位和價格。(例如:11.99) |
quantity |
整數 | 否 | 交易中購買的單位數。 如果傳入這個欄位中的非整數值 (例如 1.5),系統會將該值四捨五入至最接近的整數值。 |
導入作業
使用者完成結帳程序後,通常就要導入電子商務評估功能。這個情況通常會發生在「感謝您」網頁上。設定完成,並準備好將電子商務資料傳送至 Google Analytics (分析) 後,必須完成下列幾個步驟:
載入電子商務外掛程式
為縮減 analytics.js 程式庫的大小,預設資料庫不提供電子商務評估。而是以外掛程式模組的形式提供,而必須在使用之前載入才能使用。
如要載入電子商務外掛程式,請使用下列指令:
ga('require', 'ecommerce');
這個指令必須在您建立追蹤程式物件之後,以及您使用任何電子商務專用功能之前。
載入後,預設追蹤程式會新增幾個與電子商務評估相關的新指令。
新增交易
外掛程式載入後,會建立透明的購物車物件。您可以將交易和項目資料新增至購物車,完成所有設定後,就可以一次傳送所有資料。
您可以使用 ecommerce:addTransaction
指令,將交易資料加入購物車:
ga('ecommerce:addTransaction', { 'id': '1234', // Transaction ID. Required. 'affiliation': 'Acme Clothing', // Affiliation or store name. 'revenue': '11.99', // Grand Total. 'shipping': '5', // Shipping. 'tax': '1.29' // Tax. });
正在新增項目
接著,請使用 ecommerce:addItem
指令將商品加入購物車:
ga('ecommerce:addItem', { 'id': '1234', // Transaction ID. Required. 'name': 'Fluffy Pink Bunnies', // Product name. Required. 'sku': 'DD23444', // SKU/code. 'category': 'Party Toys', // Category or variation. 'price': '11.99', // Unit price. 'quantity': '1' // Quantity. });
傳送資料
最後,在購物車中設定所有電子商務資料後,請使用 ecommerce:send
指令將資料傳送至 Google Analytics (分析):
ga('ecommerce:send');
這個指令會檢查購物車中的每筆交易和項目,然後將各自的資料傳送至 Google Analytics (分析)。完成後,購物車就會清除,並準備傳送新交易的資料。如果發出先前的 ecommerce:send
指令,系統只會傳送新的交易和項目資料。
正在清除資料
如果您需要手動清除所有交易和商品的購物車,請使用下列指令:
ga('ecommerce:clear');
指定當地幣別
根據預設,您可以透過 Google Analytics (分析) 管理網頁介面,為所有交易和項目設定通用的通用貨幣。根據預設,所有項目和交易都會使用全球貨幣。對於使用多種貨幣進行交易的網站,電子商務外掛程式可讓您指定交易的當地幣別以及個別產品的當地幣別。
指定當地幣別時必須遵守 ISO 4217
標準。如需支援的轉換幣別完整清單,請參閱貨幣代碼參考資料文件。
如要設定特定交易及其所有項目的當地幣別,您只需指定交易的貨幣:
ga('ecommerce:addTransaction', { 'id': '1234', 'affiliation': 'Acme Clothing', 'revenue': '11.99', 'shipping': '5', 'tax': '1.29', 'currency': 'EUR' // local currency code. });
最後,您也可以為各項項目指定幣別:
ga('ecommerce:addItem', { 'id': '1234', 'name': 'Fluffy Pink Bunnies', 'sku': 'DD23444', 'category': 'Party Toys', 'price': '11.99', 'quantity': '1', 'currency': 'GBP' // local currency code. });
支援多部智能設備
如果您在網頁上導入多個 (已命名) 追蹤程式,也可以使用電子商務外掛程式。這個外掛程式與預設追蹤程式的運作方式完全相同,唯一差別是:trackerName.pluginName:method
。舉例來說,如果您建立名為 myTracker
的追蹤器:
ga('create', 'UA-XXXXX-Y', 'auto', {'name': 'myTracker'});
然後使用下列指令載入該命名追蹤程式的電子商務外掛程式:
ga('myTracker.require', 'ecommerce');
如要傳送交易,您可以建立交易物件並傳送至具名追蹤工具,如下所示:
var transaction = { 'id': '1234', // Transaction ID. 'affiliation': 'Acme Clothing', // Affiliation or store name. 'revenue': '11.99', // Grand Total. 'shipping': '5' , // Shipping. 'tax': '1.29' // Tax. }; ga('myTracker.ecommerce:addTransaction', transaction);
使用這個語法,交易物件可以在多個追蹤程式中使用。
最後,您將傳送交易資料,如下所示:
ga('myTracker.ecommerce:send');
範例
大部分電子商務網站會在伺服器上進行交易,而 analytics.js 程式庫則是從瀏覽器將資料傳送至 Google Analytics (分析)。因此,伺服器和用戶端之間需要進行一些協調,才能正確將電子商務資料傳送至 Google Analytics (分析)。
多數電子商務網站會使用伺服器端範本引擎轉譯「致謝」網頁。在此情況下,建議您在伺服器端範本中加入電子商務評估程式碼,並使用伺服器邏輯,將電子商務資料值動態寫入最終網頁。以下是在 PHP 中可能如此呈現的範例。
在 PHP 中,電子商務資料通常會呈現出來。在此範例中,資料會儲存在關聯陣列中:
<?php // Transaction Data $trans = array('id'=>'1234', 'affiliation'=>'Acme Clothing', 'revenue'=>'11.99', 'shipping'=>'5', 'tax'=>'1.29'); // List of Items Purchased. $items = array( array('sku'=>'SDFSDF', 'name'=>'Shoes', 'category'=>'Footwear', 'price'=>'100', 'quantity'=>'1'), array('sku'=>'123DSW', 'name'=>'Sandals', 'category'=>'Footwear', 'price'=>'87', 'quantity'=>'1'), array('sku'=>'UHDF93', 'name'=>'Socks', 'category'=>'Footwear', 'price'=>'5.99', 'quantity'=>'2') ); ?>
第一步是編寫一些邏輯,將電子商務資料轉換為 analytics.js 所需的 JavaScript 字串:
<?php // Function to return the JavaScript representation of a TransactionData object. function getTransactionJs(&$trans) { return <<<HTML ga('ecommerce:addTransaction', { 'id': '{$trans['id']}', 'affiliation': '{$trans['affiliation']}', 'revenue': '{$trans['revenue']}', 'shipping': '{$trans['shipping']}', 'tax': '{$trans['tax']}' }); HTML; } // Function to return the JavaScript representation of an ItemData object. function getItemJs(&$transId, &$item) { return <<<HTML ga('ecommerce:addItem', { 'id': '$transId', 'name': '{$item['name']}', 'sku': '{$item['sku']}', 'category': '{$item['category']}', 'price': '{$item['price']}', 'quantity': '{$item['quantity']}' }); HTML; } ?>
然後在 <script>
標記中,新增額外的 PHP 邏輯,以動態方式輸出交易和項目資料:
<!-- Begin HTML --> <script> ga('require', 'ecommerce'); <?php echo getTransactionJs($trans); foreach ($items as &$item) { echo getItemJs($trans['id'], $item); } ?> ga('ecommerce:send'); </script>
PHP 指令碼執行完畢後,analytics.js 所需的交易和項目資料就會顯示在頁面中。網頁上的 JavaScript 轉譯完成後,所有電子商務資料都會傳送至 Google Analytics (分析)。
貨幣類型
預設貨幣類型可以透過管理介面設定。使用 analytics.js 傳送貨幣值時,值代表貨幣的總價值。
小數點可做為貨幣整個與分數之間的分隔符號。精確度最多可達小數點後 6 位。 以下是貨幣欄位的有效值:
1000.000001
將值傳送至 Google Analytics (分析) 後,所有文字都會移除,直到第一個數字、-
字元或 .
(十進位) 字元為止。舉例來說:
$-55.00
會變成:
-55.00