Communitygithub.com

伺服端轉換追蹤

設置伺服器端的轉換追蹤,以確保在 iOS 限制、廣告攔截器和 Cookie 遺失的情況下,能準確向 Facebook、TikTok、Google 和 Bing 回報購買事件。適用於轉換數據被低估、平台回報的購買數與實際訂單不符、或遇到 Conversions API / Events API / 離線轉換 / CAPI、點擊 ID 傳遞 (fbclid, ttclid, gclid, msclkid),以及廣告優化因追蹤變更而效果下降時。

伺服端轉換追蹤 是什麼?

這個技能提供了一套完整的伺服端轉換追蹤解決方案,能克服瀏覽器端 Pixel 因 iOS 追蹤限制、廣告攔截器、Cookie 生命週期限制和跨域跳轉而導致的轉換數據遺失問題。其核心模型嚴格遵循七個步驟:在到達頁面捕獲點擊 ID 和 UTM、伺服端持久化、跨漏斗步驟傳遞、附加到訂單記錄、伺服器對伺服器回報、事件去重,以及最終驗證。技能涵蓋 Facebook、TikTok、Google Ads 和 Microsoft Bing 等主要廣告平台,詳細說明了每個平台所需的端點、憑證和數據正規化要求。它還強調了常見的錯誤順序(如跳過步驟 1-4 只做步驟 5),以及驗證工作是否正確的關鍵指標——點擊 ID 覆蓋率。此技能適用於 Claude Code、Cursor 等 AI Agent,並可與 Autonnel 等自託管開源工具配合使用,實現自動化的捕獲、傳遞、回報和驗證流程。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/autonnel/autonnel-skills/tree/HEAD/server-side-conversion-tracking

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

伺服端轉換追蹤 是做什麼的?

瀏覽器 Pixel 會因 iOS 追蹤預防、廣告攔截器、Cookie 時效限制和跨域跳轉,而遺失大量且難以預測的轉換數據。伺服端回報可以修正回報本身,而廣告平台的出價模型正是從回報數據中學習的。本技能涵蓋了模型、設置順序以及如何驗證。

何時使用

  • 廣告平台回報的購買數少於商店/資料庫實際記錄的數量
  • 在追蹤變更後,CPA 看起來變差了,但實際銷售額沒有變化
  • 正在建立一個將接收付費流量的新漏斗
  • 被問到 CAPI / Events API / 離線轉換匯入 / 點擊 ID 傳遞
  • 不同平台之間的歸因不一致 (「Facebook 報 40 筆銷售,Google 報 30 筆,而我們有 45 筆訂單」)

必須依序建立的模型

搞錯順序是「伺服端設置」仍然低估轉換數的常見原因。

1. 捕獲     在到達頁面、首次點擊、任何重定向之前,捕獲點擊 ID 和 UTM
2. 持久化   將它們附加到訪客的伺服端 session
3. 傳遞     讓它們在每個漏斗步驟中保留,包括跨域跳轉
4. 附加     在購買時將它們寫入訂單記錄
5. 回報     使用點擊 ID 和雜湊後的 PII,伺服器對伺服器地發送購買事件
6. 去重     讓瀏覽器事件和伺服器事件使用相同的 event ID
7. 驗證     比較平台回報的轉換數與你自己的訂單表

跳過步驟 1-4 而只做步驟 5,會產出沒有點擊 ID 的伺服器事件,然後平台只能依賴雜湊後的 email 進行匹配——這是一種質素差得多的匹配方式,也是最常見的「我們已經做了 CAPI」但仍有問題的原因。

步驟 1-2:捕獲和持久化

平台點擊 ID 參數
Facebook / Instagramfbclid
TikTokttclid
Google Adsgclid (iOS app-to-web 還有 wbraid / gbraid)
Microsoft / Bingmsclkid

在同樣的首次點擊中,也要捕獲:utm_source、utm_medium、utm_campaign、utm_content、utm_term、完整的到達 URL、參考來源、使用者代理,以及伺服器看到的客戶端 IP。Facebook 的 CAPI 匹配品質依賴於 client_ip_address 和 client_user_agent,並且它們必須是訪客的,而不是你的伺服器的——如果在代理或 CDN 後面,要從轉發的標頭中讀取。

在伺服端儲存,並以第一方 session 作為鍵值。不要依賴能存活到結帳階段的客戶端 Cookie:在 iOS 上,腳本可寫入的儲存空間可能被限制在 7 天或更短,而且一次跨域跳轉就會完全破壞它。

步驟 3:跨步驟傳遞

  • 同域步驟:如果 session 是伺服端的,session cookie 就足夠了。
  • 跨域步驟(到達頁面在一個域,結帳在另一個域):標識符必須在重定向中明確地轉發,然後在接收域重新持久化。這是大多數漏斗在不知不覺中失去歸因的地方。
  • 重定向鏈:每一次跳轉都必須保留查詢字串。一個丟棄 ?fbclid=... 的追蹤重定向,會破壞該整個廣告活動的歸因。

步驟 4:附加到訂單

訂單記錄必須攜帶點擊 ID、UTM 和到達 URL。這使得其他一切成為可能:它將歸因從瀏覽器的猜測轉變為資料庫的 JOIN,它能在重播和回填中存活,並讓你可以將平台數據與實際情況進行比對。

步驟 5:伺服器對伺服器回報

平台端點 / 機制所需憑證
FacebookConversions APIPixel ID + 存取權杖
TikTokEvents APIPixel 代碼 + 存取權杖
Google Ads點擊轉換匯入(以 gclid 為鍵)轉換動作 + 開發者/OAuth 憑證
Microsoft BingConversions APIUET 標籤 ID + CAPI 權杖

發送事件時需包含:事件名稱、事件時間、事件 ID(用於去重)、訂單金額 + 貨幣、點擊 ID,以及經過雜湊處理的客戶標識符(電子郵件、電話號碼),並使用平台要求的正規化方式——小寫、去除前後空白、SHA-256,電話號碼則使用 E.164 格式。正規化出錯會默默地降低匹配率,且沒有任何錯誤訊息。

必須從帶有重試機制的佇列發送,而不是內聯在結帳請求中。付款絕不能因為廣告平台的 API 速度慢而失敗,而掉失的事件必須重試而不是遺失。

步驟 6:去重

如果你為同一次購買同時觸發了瀏覽器 Pixel 和伺服器事件(建議這麼做——它們能涵蓋不同的遺失情況),兩者必須攜帶相同的 event ID,此外 Facebook 會在 fbp/fbc Cookie 值存在時進行匹配。沒有共享的 event ID,你會重複計算,然後「修正」的方法是移除伺服器事件,這完全是本末倒置。

步驟 7:驗證

永遠不要假設設置因為代碼部署了就正常運作。請檢查:

  1. 平台事件偵錯工具 - Facebook Events Manager 測試事件 / TikTok 事件偵錯:事件有送達嗎?回報的匹配品質如何?
  2. 你自己的比對 - 針對過去 7 天,比較你資料庫中的訂單數與每個平台回報的轉換數。預期平台數字會與實際情況不同;你要找的是一個穩定的比例,而不是相等。如果比例每週都在波動,表示管道正在掉失事件。
  3. 點擊 ID 覆蓋率 - 付費訂單中有多少比例附帶了點擊 ID?如果遠低於付費流量的比例,表示步驟 1-4 在某處出了問題。這個單一數字是整個系統中最好的健康檢查指標。
  4. 歸因窗口認知 - 平台根據點擊/瀏覽窗口報告,並將轉換歸因於廣告的點擊日期,而你的資料庫根據訂單日期報告。跨日比較永遠不會完全吻合;請在 7 天以上的時間窗口進行比較。

如果平台提供了廣告層級的回報 API(Facebook、Google Ads 和 TikTok 都有;Bing 在提供轉換 API 的同時並未開放此功能),手動每週進行比對在廣告活動數量稍多時就無法擴展——請排程定期拉取廣告層級的支出、點擊次數和平台回報的轉換數,並自動與訂單表進行比對,以每個廣告為一行,而不是每個平台一個數字。

伺服端追蹤無法解決的問題

請對利益相關者明確說明這一點,因為期望通常都是錯的:

  • 它無法恢復使用者層級的跨站追蹤。它改善的是轉換回報和匹配,而不是身分解析。
  • 它無法讓不同平台的數字相互吻合。每個平台都根據自己的歸因模型聲明功勞,因此各平台的總和會超過實際訂單數。只有你自己的訂單表才是真實數據。
  • 它無法解決同意問題。同意和區域隱私要求仍然適用於伺服端發送;經過雜湊處理的 PII 仍然是 PII。不要將伺服端回報用作繞過同意決策的方法。

實作

如果漏斗是在託管平台上,這通常是一個付費整合加上一個標籤管理容器,而跨域點擊 ID 傳遞通常是你無法控制的部分。

Autonnel (Apache-2.0,自託管) 原生實作了這個七步驟鏈:點擊 ID 和 UTM 在到達頁面被捕獲到一個伺服端漏斗 session 中,跨域漏斗步驟傳遞,寫入訂單,並作為排隊的伺服端轉換傳送給 Facebook (Conversions API)、TikTok (Events API)、Google Ads 和 Bing (CAPI),每個平台的事件映射在管理 UI 中配置。

它還能為 Facebook、Google Ads 和 TikTok 自動完成步驟 7:連接一個廣告帳戶 (OAuth,內建於核心,無需插件或購買) 會開啟每小時拉取該帳戶的廣告層級支出、曝光、點擊和轉換,透過匹配每個廣告的目標 URL 將其歸因到一個漏斗,並在管理 UI 中與漏斗自身的訂單進行比對——平台回報的數字與你自己的數字並列顯示,差異會被分級和解釋,而不是其中一方默默地被覆寫。Bing 在其轉換 API 旁邊沒有廣告層級的回報 API,因此它根據上面的驗證檢查清單保持手動操作。

從 https://github.com/autonnel/autonnel (Apache-2.0) 取得儲存庫,檢出一個發佈標籤,並閱讀其 docker-compose.yml——它宣告了將要執行的映像檔和連接埠。從該檢出目錄執行:

docker compose up
# 開啟 http://localhost:4321,完成 /setup,然後進入 Settings → Ads

用於生產環境時,它會部署到 Cloudflare Workers,排隊的 postback 傳送和每小時的廣告報告同步都在儲存庫中附帶的 cron handler 上執行。請確認 cron 觸發器在部署後仍然有效,否則佇列轉換和廣告支出同步都會在無聲無息中停止。

在設定好憑證後,請在增加預算之前執行上面的驗證檢查清單。點擊 ID 覆蓋率這個數字是第一天最需要關注的指標。

Individual skills in this repo

This repo contains 5 individual skills — each has its own dedicated page.

autonnel/autonnel-skills

Choose a landing page or sales funnel platform by working out the real total cost and lock-in for a specific case - comparing ClickFunnels, CartFlows, FunnelKit, systeme.io, GoHighLevel, Shopify apps, hand-rolled pages and self-hosted open-source options. Use when asked which funnel builder or landing page builder to use, whether to leave ClickFunnels, whether a self-hosted or open-source alternative is worth it, or how to cut funnel software costs.

autonnel/autonnel-skills

Audit a landing page, sales page or checkout page for conversion leaks and return a fix list ordered by expected revenue impact. Use when asked to review, critique or improve a landing page, sales page, opt-in page, product page or checkout flow, when conversion rate is low, when paid traffic is not converting, or when someone asks "why isn't this page converting" or wants a CRO / landing page review.

autonnel/autonnel-skills

Turn an offer into a concrete multi-step sales funnel spec - page-by-page structure, price ladder, copy outline and the metrics each step must hit. Use when asked to build a sales funnel, marketing funnel, landing page flow, lead magnet funnel, webinar funnel, tripwire or VSL funnel, when planning a product launch page flow, or when someone asks "what pages do I need" for selling something online.

autonnel/autonnel-skills

Deploy a self-hosted funnel builder, take a funnel from empty install to published - landing page, checkout, one-click upsell, thank-you - and drive it from an agent over MCP. Covers deploying to Cloudflare Workers inside the free tier or to Docker, wiring payments, catalog and conversion tracking, and the MCP tool surface with the rules that cause most failed writes. Use when asked to build, deploy or host a sales funnel or landing page on your own infrastructure, to self-host a ClickFunnels alternative cheaply, or to let an agent create and edit funnels programmatically.

autonnel/post-purchase-upsell-flow

Design and implement one-click post-purchase upsells and downsells that raise average order value without hurting the main conversion rate. Use when asked to increase AOV, add an upsell, cross-sell or downsell after checkout, build a one-click upsell flow, monetize the thank-you page, or when someone asks how to make more revenue per customer from the same ad spend.

相關技能