更新時間:2026年6月8號
如果你正在使用Adobe Analytics,並希望追蹤商品瀏覽、加入購物車、結帳及購買等電商行為,那麼你一定會接觸到兩個重要元件:
- ACDL(Adobe Client Data Layer)
- s.products(Adobe Analytics商品變數)
在本篇教學中,你將學會:
- 什麼是ACDL
- Adobe Analytics的電商事件如何運作
- s.products的資料格式
- 如何使用Adobe Tags將ACDL資料轉換為Product String
- 如何驗證電商資料是否成功送出
為什麼要使用ACDL?
在Adobe Analytics中,商品資料必須透過s.products傳送。
如果直接使用JavaScript手動組裝Product String,當網站商品資訊變多時,維護成本會變得相當高。
例如:
- 商品列表頁
- 商品詳細頁
- 購物車頁
- 結帳流程
- 購買完成頁
都可能需要建立不同的Product String。
因此Adobe推出了ACDL,讓網站能以標準化方式傳遞商品與事件資料,再由Adobe Tags負責轉換與發送。
什麼是ACDL
ACDL(Adobe Client Data Layer)是Adobe官方提供的資料層解決方案。
如果你曾使用過Google Tag Manager的 dataLayer.push(),那麼ACDL可以視為Adobe版本的Data Layer。
透過ACDL,可以將網站上的使用者行為、產品資訊及交易資料,統一推送至Adobe Experience Cloud各項產品使用。
基本寫法如下:
adobeDataLayer.push({"event":"myevent","data":"something"})
當網站觸發特定事件時,資料會先進入ACDL,再由Adobe Tags讀取並傳送至Adobe Analytics。
Adobe Analytics 電商事件有哪些?
如果你熟悉GA4電商追蹤,會發現Adobe Analytics內建的標準電商事件相對較少:
| Google Analytics 4 | Adobe Analytics | |
| 產品展示 | view_item_list | |
| 查看產品 | view_item | prodView |
| 點擊產品 | select_item | |
| 展示促銷產品 | view_promotion | |
| 點擊促銷產品 | select_promotion | |
| 將產品添加到購物車 | add_to_cart | scAdd |
| 將產品從購物車移除 | remove_from_cart | scRemove |
| 開始結算 | begin_checkout | scCheckout |
| 添加支付信息 | add_payment_info | |
| 添加地址信息 | add_shipping_info | |
| 購買成功 | purchase | purchase |
| 退款 | refund | |
| 新建購物車 | scOpen | |
| 購物車查看次數 | scView |
看到這裡,你可能會覺得Adobe Analytics的電商功能比較弱。
實際上剛好相反。
Adobe Analytics最大的優勢在於:
- 支援自訂事件
- 支援Merchandising eVar
- 事件可直接與商品綁定
- 可建立商品層級分析報表
因此在大型電商專案中,Adobe Analytics往往比GA4擁有更高的分析彈性。
認識s.products
在Adobe Analytics中,所有商品資料都是透過s.products傳送。
其格式如下:
类别;产品名称;数量;价格;事件;eVar
每個欄位之間使用分號(;)分隔。
具体參數用途如下:
- 類別 (選用):產品類別。 此欄位的長度上限為 100 個位元組。
- 產品名稱 (必要):產品的名稱。 此欄位的長度上限為 100 個位元組。
- 數量 (選用):此產品在購物車內的數量有多少。此欄位僅適用於購買事件的點擊。
- 價格 (選用):小數形式的產品總價。如果數量超過一個,請將價格設定為總價,而非個別產品價格。調整此值的貨幣,使其與
currencyCode變數相符。請勿在此欄位中加入貨幣符號。此欄位僅適用於購買事件的點擊。 - 事件 (選用):與產品相連結的事件。請使用垂直號 (
|) 分隔多個事件。 - eVar (選用):與產品相連結的銷售 eVar。請使用垂直號 (
|) 分隔多個銷售 eVar。
// Set a single product using all available fields s.products = "Example category;Example product;1;3.50;event1=4.99|event2=5.99;eVar1=Example merchandising value 1|eVar2=Example merchandising value 2";
// Set multiple products - useful for when a visitor views their shopping cart s.products = "Example category 1;Example product 1;1;3.50,Example category 2;Example product 2;1;5.99";
這種方式屬於硬編碼寫法。
當商品資料變多時,維護成本會快速增加,因此實務上較少直接使用。
使用AA Product String Builder自動建立Product String
在Adobe Tags 中,可以透過Extension自動產生Product String。
常見方案包括:
- AA Product String Builder
- Common Analytics Plugins
- 自訂 Data Elements
其中最常使用的是:AA Product String Builder
接下來將以AA Product String Builder為例進行說明。
Step 1:建立ACDL電商資料層
假設前端工程師透過ACDL推送以下商品資料:
window.adobeDataLayer.push({
"event": "prodView",
"product": [{ // Array[String]
"name": "GRN",
"sku": "HC30",
"quantity": 1,
"total_price": 12
}, {
"name": "XL",
"sku": "ABJ786",
"quantity": 16,
"total_price": 12
}, {
"name": "intercampaign",
"sku": "",
"icid":"icid_name"
}, {
"name": "intercampaign3",
"sku": "",
"icid":"icid_name"
}
]
});
這類資料結構通常由前端工程師負責實作。
Step 2:Rule的設定
在Adobe Tags中建立 Rule,如:
EVETNS
Event條件中,設定監聽ACDL事件prodView,ACDL推送什麼Event名稱,這裡就設定相同的名稱即可。
ACTIONS
雖然Rule中可能包含多個Action,但實際上最重要的是前兩個
Action 1:建立 Product String
此步驟負責將ACDL中的產品資料轉換成Adobe Analytics所需的s.products格式。
%root%是一個變數,就是ACDL資料層裡所有的資料,設定為:
可以通過Data Layer Computed State獲取ACDL裡所有的資料,如果為空就表示是所有的資料。
- Product Collection Path是設定電商產品的數組位置,這裡就是product,需要注意,product是數組。
- Product String Core Settings的設定就是將產品數組設定到s.product裡裡。
還可以產品數組裡發送給更多的資料,設定為evar(由於截圖大小所限,並沒有在上面截圖體現出來,具體位置下拉就看到)
Action 2:設定電商事件
第二個 Action 主要負責設定對應的電商事件,如prodView,並與 Product String 一起送出至 Adobe Analytics。
Step 3:預覽調試
電商資料正常綁定和發送。
如果沒有觸發,可以在瀏覽器控制台输入adobeDataLayer檢查是否有ACDL的資料層:
總結
Adobe Analytics的電商追蹤核心在於s.products變數,而ACDL則提供了一套標準化的資料傳遞方式。透過ACDL搭配Adobe Tags的AA Product String Builder Extension,可以大幅降低Product String組裝的複雜度,讓商品瀏覽、加入購物車、結帳及購買等電商行為更容易實作與維護。
對於大型電商網站而言,建議優先規劃完善的ACDL資料結構,再透過Adobe Launch統一處理Product String與事件設定,可有效提升後續分析與維護效率。






