AI 正在初次分析文章並整理建議,請稍候…
誰說 SEO 只是做白工?2026 WordPress 多渠道歸因實戰:用程式碼抓出那些被廣告搶功勞的訂單
大家好,我是浪花科技的 Eric。身為一個整天跟數據和程式碼搏鬥的資深工程師,我最怕聽到行銷主管跑來跟我說:「Eric 啊,我看這季的報表,SEO 帶來的轉換怎麼又是零?是不是我們該把預算全部砸去投 Meta 廣告算了?」
這時候,我通常會深吸一口氣,忍住翻白眼的衝動。為什麼?因為這是典型的「最後點擊(Last Click)」迷思。在 2026 年的今天,使用者的消費旅程複雜得像迷宮,如果你的 WordPress 網站還在依賴 GA4(或者現在的 GA5)預設的報表,那你看到的數據,很可能都是「廣告搶功勞」後的結果。
今天這篇文章不講虛的理論,Eric 要帶大家直接用 PHP 和 JavaScript 手刻一套「多渠道歸因(Multi-Channel Attribution)」追蹤系統。我們要抓出那個「第一次」——即便是廣告收割了訂單,我們也要知道,是誰先把客人帶進門的。
為什麼你的 SEO 總是「做白工」?
想像一個場景:
- 第一天: 使用者小明想買人體工學椅,他在 Google 搜尋「2026 人體工學椅推薦」,點進了你精心撰寫的 SEO 文章。他看了很心動,但還在猶豫,於是關掉網頁。(功勞:SEO Organic)
- 第三天: 你設定的 Meta 像素(Pixel)發揮作用,對小明投遞了「再行銷(Retargeting)」廣告。小明看到了,點擊廣告,還是沒買。(功勞:Paid Social)
- 第五天: 小明終於領薪水了,他直接在瀏覽器輸入你的網址,下單購買。(功勞:Direct)
在傳統的「最後點擊」模型下,SEO 的功勞是零,因為最後一哩路不是它走的。但如果沒有第一天的 SEO 文章,小明根本不會進入你的再行銷名單。這就是為什麼我們需要「首次接觸歸因(First Touch Attribution)」,甚至是更完整的「線性歸因(Linear Attribution)」。
在 2026 年,隨著 iOS 19 的隱私權更嚴格,以及瀏覽器全面封殺第三方 Cookie,依賴外部平台的數據越來越不準。最可靠的數據,永遠是我們自己伺服器端(Server-Side)抓到的第一手資料(First-Party Data)。
技術實戰:如何在 WordPress 抓取並儲存歸因數據
我們要做的邏輯很簡單:當使用者第一次進入網站時,檢查網址參數(UTM)或來源(Referer),把它存進 Cookie(設定長效期)。等到使用者結帳時,再把這個 Cookie 的值寫入 WooCommerce 的訂單資料(Order Meta)。
步驟一:設定首次來源 Cookie
我們需要在 `functions.php` 或者你自製的外掛中加入這段程式碼。這段 PHP 會在全站載入前執行,檢查是否有來源參數。
/**
* 浪花科技 Eric 的碎碎念:
* 這段程式碼負責捕捉使用者的「第一次」。
* 如果 Cookie 已經存在,我們就不覆蓋它(First Touch 邏輯)。
* 如果你想做 Last Touch,就把 !isset($_COOKIE...) 的判斷拿掉。
*/
add_action('init', 'roamer_set_source_cookie');
function roamer_set_source_cookie() {
// 如果是後台或管理員,就不要浪費效能了
if (is_admin() || current_user_can('manage_options')) {
return;
}
$cookie_name = 'roamer_first_source';
$cookie_time = time() + (86400 * 90); // Cookie 存活 90 天,這年頭使用者猶豫期很長的
$cookie_domain = COOKIE_DOMAIN;
// 檢查 Cookie 是否已存在(只抓首次來源)
if (!isset($_COOKIE[$cookie_name])) {
$source_data = [];
// 1. 優先檢查 UTM 參數
if (isset($_GET['utm_source'])) {
$source_data = [
'source' => sanitize_text_field($_GET['utm_source']),
'medium' => isset($_GET['utm_medium']) ? sanitize_text_field($_GET['utm_medium']) : '',
'campaign' => isset($_GET['utm_campaign']) ? sanitize_text_field($_GET['utm_campaign']) : '',
'type' => 'utm'
];
}
// 2. 其次檢查 Google Click ID (GCLID) - 這代表是廣告來的
elseif (isset($_GET['gclid'])) {
$source_data = [
'source' => 'google',
'medium' => 'cpc',
'campaign' => 'gclid_detected',
'type' => 'gclid'
];
}
// 3. 最後檢查 HTTP Referer (自然流量 SEO 或其他外連)
elseif (isset($_SERVER['HTTP_REFERER'])) {
$referer = parse_url($_SERVER['HTTP_REFERER']);
$host = $referer['host'] ?? '';
// 排除自己的網域,不然會變成 Direct
if ($host && strpos($host, $_SERVER['HTTP_HOST']) === false) {
$medium = 'referral';
// 簡單判斷搜尋引擎
if (strpos($host, 'google') !== false || strpos($host, 'yahoo') !== false || strpos($host, 'bing') !== false) {
$medium = 'organic';
}
$source_data = [
'source' => $host,
'medium' => $medium,
'campaign' => '',
'type' => 'referer'
];
}
}
// 如果抓到了資料,就寫入 Cookie
if (!empty($source_data)) {
$json_data = json_encode($source_data);
// 2026 年資安很重要,記得設定 HTTPOnly 和 Secure
setcookie($cookie_name, $json_data, $cookie_time, '/', $cookie_domain, true, true);
// 為了讓 JS 也能讀取 (如果需要),可以設另一個非 HTTPOnly 的 Cookie,但這邊我們先只做後端處理
}
}
}
步驟二:在 WooCommerce 結帳時儲存數據
捕捉到來源後,重點是要把它跟「錢」綁在一起。當使用者下單時,我們把 Cookie 裡的資料抓出來,存進這筆訂單的 Meta Data。
/**
* 結帳時將歸因數據寫入訂單
*/
add_action('woocommerce_checkout_update_order_meta', 'roamer_save_source_to_order');
function roamer_save_source_to_order($order_id) {
$cookie_name = 'roamer_first_source';
if (isset($_COOKIE[$cookie_name])) {
// 解碼 JSON
$source_data = json_decode(stripslashes($_COOKIE[$cookie_name]), true);
if ($source_data) {
// 儲存為訂單 Meta,方便後續撈取或傳給 CRM
update_post_meta($order_id, '_roamer_attribution_source', $source_data['source']);
update_post_meta($order_id, '_roamer_attribution_medium', $source_data['medium']);
update_post_meta($order_id, '_roamer_attribution_campaign', $source_data['campaign']);
// 我個人喜歡加一個標籤,方便後台一眼看到
$note = sprintf(
'【歸因分析】首次來源: %s | 媒介: %s | 活動: %s',
$source_data['source'],
$source_data['medium'],
$source_data['campaign']
);
// 加到訂單備註,給業務或行銷看
$order = wc_get_order($order_id);
$order->add_order_note($note);
$order->save();
}
} else {
// 如果沒有 Cookie,通常就是 Direct 或者我們追蹤不到的「暗網流量」
update_post_meta($order_id, '_roamer_attribution_source', 'direct');
update_post_meta($order_id, '_roamer_attribution_medium', 'none');
}
}
數據視覺化:別讓數據躺在資料庫睡覺
實作完上述程式碼後,當有新訂單進來,你的 WooCommerce 訂單備註區就會出現類似這樣的文字:
【歸因分析】首次來源: google.com | 媒介: organic | 活動:
這時候,真相就大白了。即便 GA4 告訴你這筆訂單是來自 Facebook CPC(因為那是最後點擊),你的後台備註會誠實地告訴你:「嘿,別忘了,這傢伙 30 天前是因為搜尋了我們的 SEO 文章才認識我們的!」
進階玩法:傳送給 CRM 或 Google Sheets
身為資深工程師,Eric 建議不要只把數據留在 WordPress。你可以透過 Webhook 或是像 n8n 自動化工具,將這些 _roamer_attribution_source 欄位傳送到你的 CRM(如 HubSpot, Salesforce)或 Google Sheets。這樣你就能算出真正的 ROI:
- SEO 貢獻營收: 加總所有
medium = organic的訂單金額(即使 GA 說是 Direct)。 - 廣告真實 ROAS: 比較廣告後台的 ROAS 與你的歸因數據,你會發現很多廣告其實是在「收割」SEO 的流量。
2026 年的隱私挑戰與應對
我知道有些比較技術流的朋友會問:「Eric,現在瀏覽器都在擋 Cookie,這樣做準嗎?」
老實說,沒有 100% 準確的歸因,只有「相對準確」。我們上面使用的是 First-Party Cookie(第一方 Cookie),是你的網域自己發給使用者的,目前為止,Safari 的 ITP (Intelligent Tracking Prevention) 對第一方 Cookie 的限制主要是縮短效期(例如 7 天),但如果你有 Server-Side GTM 配置,或者像我們上面這樣用 PHP (Server-Side) 設定 Cookie,存活率會比純 JavaScript 設定的高很多。
此外,2026 年 Google 推出的 Topics API 和隱私沙盒(Privacy Sandbox)已經改變了廣告追蹤的生態,但「第一方數據」的所有權永遠在你自己手上。這也是為什麼我們浪花科技一直強調企業要建立自己的數據護城河,不要過度依賴外部平台報表的原因。
結論:還 SEO 一個公道
多渠道歸因分析不只是為了幫 SEO 團隊「爭功勞」,更重要的是讓老闆看清預算的真實流向。當你發現 30% 的廣告轉換其實源自於半年前的一篇部落格文章時,你對內容行銷的投資策略就會完全改變。
別再當盲目的行銷人了,用程式碼把真相抓出來吧!
推薦閱讀
- 告別「憑感覺」抓業績!用 WordPress + CRM 數據打造你的 AI 銷售預測水晶球
- 拒絕盲目行銷!資深工程師教你用 WordPress 打造「使用者行為偵測」自動標籤系統
- 告別手動複製貼上!WooCommerce Webhook 終極指南:打造零失誤、全自動的訂單處理流程
覺得程式碼太複雜,或者是數據對不起來讓你頭很痛?這很正常,因為從 2026 年開始,追蹤技術已經變成純工程師的戰場了。如果你需要一個專業團隊幫你架構完整的企業級歸因系統,歡迎聯繫浪花科技,讓 Eric 和我們的團隊來幫你解決技術債!
常見問題 (FAQ)
Q1: 為什麼 GA4 的數據跟後台訂單的歸因數據對不上?
這非常正常。GA4 預設使用的是「以數據為準(Data-driven)」或「最後點擊(Last Click)」模型,且受限於使用者的 Cookie 同意與瀏覽器隱私設定。我們用 PHP 抓取的是伺服器端的第一方數據,能夠捕捉到一些 GA4 漏失或被過濾掉的原始來源,通常後端數據會比前端分析工具更接近真實情況。
Q2: 如果使用者用手機看文章,回家用電腦下單,這套程式碼抓得到嗎?
這是一個好問題。這段純 Cookie 的程式碼無法解決「跨裝置(Cross-Device)」的問題。要解決這個問題,你需要引入「User ID」追蹤,也就是鼓勵使用者登入會員。當使用者在手機登入看文章,然後在電腦登入購買,我們可以透過會員 ID 將這兩個 session 串接起來。這需要更進階的 CRM 整合開發。
Q3: 這段程式碼會拖慢網站速度嗎?
幾乎不會。這段 PHP 邏輯非常輕量,只是簡單的參數檢查和 Cookie 設定,不像外部的 JavaScript 追蹤碼(如 Pixel 或 GTM)需要下載額外的檔案並在瀏覽器執行。在伺服器端處理歸因,反而是 2026 年網站效能優化的最佳實踐之一。






