單行託管內容,或獨立程式碼片段
當您新增託管追蹤器時,只需新增腳本標籤;如果您不想依賴外部程式碼,您也可以貼上包含完整程式碼片段的腳本。無論哪種方式,它都會產生標識符,尊重隱私訊號,並將頁面瀏覽量POST追蹤到特定端點:
您發送客戶端位
URL、標題、引薦來源網址、id、螢幕、語言、時區、UTM — 僅此而已。
Flash 豐富服務端
設備、作業系統和瀏覽器資訊透過使用者代理程式解析;國家/地區資訊透過 IP 位址解析;機器人程式會被偵測並標記。客戶端無需信任即可取得這些資訊。
始終回傳 204
無論是機器人請求、GPC 請求、格式錯誤請求或已接受請求,端點都會靜默回應。追蹤功能絕不會在您的頁面上拋出任何錯誤。
在您自己的網域上,使用者行為是匿名的。 您的網站上沒有 Flash 會話 cookie,因此頁面瀏覽量與您產生的 anonymous_id 相關聯,而不是與已知的會員相關聯。會員歸屬發生在 Flash 擁有的平台上(例如會員入口網站和應用程式內會員中心),在這些平台上,會話會解析出會員資訊。請使用一致的 anonymous_id,以確保訪客的網站行為在其所有會話中至少保持一致。
兩種方式。設定YOUR_TEAM_ID即可上線。
選項 A · 託管 — 單行
在 </body> 之前刪除一個腳本標記。它會自動追蹤單一頁面應用程式路由變更並公開 window.flashTrack() — 無需連接其他任何內容。
<!-- 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>選項 B · 內嵌 — 無需外部腳本
想要零外部請求(嚴格的 CSP,或將程式碼放在您自己的套件內)?請貼上以下獨立程式碼片段。它會暴露 window.shTrack() — 在單頁應用程式中,每次路由更改後調用它:
<!-- 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>// Single-page apps: after each client-side route change
router.afterEach(function () { window.shTrack && window.shTrack(); });信標主體
發送application/json(或透過sendBeacon發送純文字string)。任何超過 4 KB 或驗證失敗的文件都會被靜默丟棄。
| 場地 | 類型 | 筆記 |
|---|---|---|
v | number | 模式版本。始終為 1。 |
page_url | string | 頁面的完整 URL (≤ 2048)。必需的。 |
page_title | string? | 文件標題(≤ 500 字)。 |
referrer | string? | document.referrer (≤ 2048)。 |
anonymous_id | string | 您產生的穩定瀏覽器 ID(≤ 36)。必填。 |
session_id | string | 您產生的每個會話的 ID(≤ 36)。必填。 |
team_id | string | 您的 SocialHub 團隊 ID(≤ 36)— 用於識別品牌。必填。 |
utm | object? | 從查詢 string 解析出 { 來源、媒介、活動、術語、內容 }。 |
screen | string? | “1920x1080”。 |
language | string? | 導航器語言。 |
timezone | string? | IANA 時區,例如:America/Los_Angeles。 |
timestamp | number | 客戶時代女士。必需的。 |
旨在抵禦詐欺流量
您的 team_id 位於頁面原始碼中——就像任何分析 ID 一樣,它是公開的。因此,該端點會在伺服器端靜默地進行自我保護(它始終回應 204,因此攻擊者無法獲得任何可用於探測的回饋):
基準速率限制 · 始終開啟
所有團隊預設都受到保護,無需任何設定:端點限制了單一來源可以發送的信標數量,因此抓取的 team_id 不會造成資料氾濫或污染您的分析資料。它具有故障保持功能——即使出現短暫中斷,也不會影響您的真實流量。
來源允許列表 · 可選
在「設定」→「追蹤保護」中,您可以將允許的信標限制在您自己的網域內,並在強制執行前透過監控預覽檢查 false 是否為陽性。這將阻止其他網站在瀏覽器中使用您的 SDK。
坦誠面對限制
速率限制和允許清單提高了門檻並限制了損失,但任何無金鑰客戶端都無法完全阻止蓄意偽造請求的腳本。對於高敏感度的資料接收,請改用經過驗證的 API 進行伺服器間通訊。
下游資料已清理
反濫用機制在任何資料儲存之前運行,因此被過濾的流量永遠不會到達您的會員時間軸、細分或儀表板—「追蹤保護」頁面會顯示有多少流量被攔截。
尊重訪客體驗
GPC 和“請勿追蹤”
此程式碼片段會檢查 navigator.globalPrivacyControl 和 navigator.doNotTrack,如果其中任何一個被設置,則不發送任何內容。請保留此保護措施。
無原始 PII
僅發送識別碼和頁面上下文 - 絕不發送信標中的姓名、電子郵件或表單內容。會員資格在 Flash 表面上解析,而不是在您的網站上解析。
首先顯示您的同意橫幅
如果您的網站使用同意管理器,請控制同意後面的程式碼片段 - 僅在訪客接受分析後才呼叫追蹤器。
機器人過濾
伺服器端機器人偵測會標記非人類流量,避免其污染您的會員時間軸或統計資料。