SocialHub.AI
開發者中心 · 網路追踪

追蹤您網站上的使用者行為。

在任何行銷或電子商務網站上部署第一方信標,其頁面瀏覽量就會流入與電子郵件、會員入口網站和您的應用程式相同的 會員行為時間軸。無需金鑰,無需依賴項——只需幾行原生 JavaScript 程式碼即可發佈到公共端點。 Flash 在伺服器端解析設備、地理位置和機器人偵測。

01 — 工作原理

單行託管內容,或獨立程式碼片段

當您新增託管追蹤器時,只需新增腳本標籤;如果您不想依賴外部程式碼,您也可以貼上包含完整程式碼片段的腳本。無論哪種方式,它都會產生標識符,尊重隱私訊號,並將頁面瀏覽量POST追蹤到特定端點:

POST https://flash.socialhub.ai/api/v1/tracking/pageview

您發送客戶端位

URL、標題、引薦來源網址、id、螢幕、語言、時區、UTM — 僅此而已。

Flash 豐富服務端

設備、作業系統和瀏覽器資訊透過使用者代理程式解析;國家/地區資訊透過 IP 位址解析;機器人程式會被偵測並標記。客戶端無需信任即可取得這些資訊。

始終回傳 204

無論是機器人請求、GPC 請求、格式錯誤請求或已接受請求,端點都會靜默回應。追蹤功能絕不會在您的頁面上拋出任何錯誤。

在您自己的網域上,使用者行為是匿名的。 您的網站上沒有 Flash 會話 cookie,因此頁面瀏覽量與您產生的 anonymous_id 相關聯,而不是與已知的會員相關聯。會員歸屬發生在 Flash 擁有的平台上(例如會員入口網站和應用程式內會員中心),在這些平台上,會話會解析出會員資訊。請使用一致的 anonymous_id,以確保訪客的網站行為在其所有會話中至少保持一致。

02 — 安裝

兩種方式。設定YOUR_TEAM_ID即可上線。

推薦

選項 A · 託管 — 單行

在 </body> 之前刪除一個腳本標記。它會自動追蹤單一頁面應用程式路由變更並公開 window.flashTrack() — 無需連接其他任何內容。

index.html
<!-- SocialHub web tracking — one line, before </body> -->
<script src="https://flash.socialhub.ai/sdk/flash-tracker.js"
        data-team-id="YOUR_TEAM_ID" defer></script>
↓ 下載 flash-tracker.js查看原始碼 ↗無相依性 · 可依您的需求從本機伺服器自架

選項 B · 內嵌 — 無需外部腳本

想要零外部請求(嚴格的 CSP,或將程式碼放在您自己的套件內)?請貼上以下獨立程式碼片段。它會暴露 window.shTrack() — 在單頁應用程式中,每次路由更改後調用它:

index.html
<!-- SocialHub web tracking — paste before </body> on every page -->
<script>
(function () {
  var TEAM_ID = "YOUR_TEAM_ID";                                  // Settings → API
  var ENDPOINT = "https://flash.socialhub.ai/api/v1/tracking/pageview";

  // Honor Global Privacy Control / Do Not Track — no signal sent.
  if (navigator.globalPrivacyControl === true || navigator.doNotTrack === "1") return;

  function uid() {
    return (window.crypto && crypto.randomUUID)
      ? crypto.randomUUID()
      : (Date.now() + "-" + Math.random().toString(16).slice(2));
  }
  function persist(store, key) {
    try { var v = store.getItem(key); if (!v) { v = uid(); store.setItem(key, v); } return v; }
    catch (e) { return uid(); }
  }
  function utm() {
    var p = new URLSearchParams(location.search), o = {};
    ["source", "medium", "campaign", "term", "content"].forEach(function (n) {
      var val = p.get("utm_" + n); if (val) o[n] = val;
    });
    return Object.keys(o).length ? o : undefined;
  }
  function track() {
    var body = JSON.stringify({
      v: 1,
      page_url: location.href,
      page_title: document.title,
      referrer: document.referrer || undefined,
      anonymous_id: persist(localStorage, "sh_anon"),       // stable per browser
      session_id: persist(sessionStorage, "sh_session"),    // resets per tab session
      team_id: TEAM_ID,
      utm: utm(),
      screen: screen.width + "x" + screen.height,
      language: navigator.language,
      timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
      timestamp: Date.now()
    });
    try {
      if (navigator.sendBeacon) navigator.sendBeacon(ENDPOINT, body);
      else fetch(ENDPOINT, { method: "POST", body: body, keepalive: true }).catch(function () {});
    } catch (e) { /* never break the page */ }
  }

  window.shTrack = track;   // for SPAs: call window.shTrack() after each route change
  track();                  // initial page view
})();
</script>
spa-router.js
// Single-page apps: after each client-side route change
router.afterEach(function () { window.shTrack && window.shTrack(); });
03 — 酬載合約

信標主體

發送application/json(或透過sendBeacon發送純文字string)。任何超過 4 KB 或驗證失敗的文件都會被靜默丟棄。

場地類型筆記
vnumber模式版本。始終為 1。
page_urlstring頁面的完整 URL (≤ 2048)。必需的。
page_titlestring?文件標題(≤ 500 字)。
referrerstring?document.referrer (≤ 2048)。
anonymous_idstring您產生的穩定瀏覽器 ID(≤ 36)。必填。
session_idstring您產生的每個會話的 ID(≤ 36)。必填。
team_idstring您的 SocialHub 團隊 ID(≤ 36)— 用於識別品牌。必填。
utmobject?從查詢 string 解析出 { 來源、媒介、活動、術語、內容 }。
screenstring?“1920x1080”。
languagestring?導航器語言。
timezonestring?IANA 時區,例如:America/Los_Angeles。
timestampnumber客戶時代女士。必需的。
04 — 保護

旨在抵禦詐欺流量

您的 team_id 位於頁面原始碼中——就像任何分析 ID 一樣,它是公開的。因此,該端點會在伺服器端靜默地進行自我保護(它始終回應 204,因此攻擊者無法獲得任何可用於探測的回饋):

基準速率限制 · 始終開啟

所有團隊預設都受到保護,無需任何設定:端點限制了單一來源可以發送的信標數量,因此抓取的 team_id 不會造成資料氾濫或污染您的分析資料。它具有故障保持功能——即使出現短暫中斷,也不會影響您的真實流量。

來源允許列表 · 可選

在「設定」→「追蹤保護」中,您可以將允許的信標限制在您自己的網域內,並在強制執行前透過監控預覽檢查 false 是否為陽性。這將阻止其他網站在瀏覽器中使用您的 SDK。

坦誠面對限制

速率限制和允許清單提高了門檻並限制了損失,但任何無金鑰客戶端都無法完全阻止蓄意偽造請求的腳本。對於高敏感度的資料接收,請改用經過驗證的 API 進行伺服器間通訊。

下游資料已清理

反濫用機制在任何資料儲存之前運行,因此被過濾的流量永遠不會到達您的會員時間軸、細分或儀表板—「追蹤保護」頁面會顯示有多少流量被攔截。

05 — 隱私

尊重訪客體驗

GPC 和“請勿追蹤”

此程式碼片段會檢查 navigator.globalPrivacyControl 和 navigator.doNotTrack,如果其中任何一個被設置,則不發送任何內容。請保留此保護措施。

無原始 PII

僅發送識別碼和頁面上下文 - 絕不發送信標中的姓名、電子郵件或表單內容。會員資格在 Flash 表面上解析,而不是在您的網站上解析。

首先顯示您的同意橫幅

如果您的網站使用同意管理器,請控制同意後面的程式碼片段 - 僅在訪客接受分析後才呼叫追蹤器。

機器人過濾

伺服器端機器人偵測會標記非人類流量,避免其污染您的會員時間軸或統計資料。

記錄購物旅程的後續階段

網路是四大平台之一。了解電子郵件、會員入口網站和您的應用程式如何共同建立同一條會員時間軸。