Consent preflight:發布前的檢查
為什麼(這樣教): vibe coding 讓你能在一個下午輕鬆推出應用程式,但同時也容易引發訴訟。常見的陷阱是追蹤像素(Meta、Google、TikTok)在頁面開啟的瞬間就開始運作。在加州,未經同意就追蹤可能被視為竊聽,每次違規最高罰款 $5,000 美元。如果像素在用戶點擊橫幅之前就已觸發,Cookie 橫幅也無法保護你。擁有橫幅和等待許可,是完全不同的兩件事。 解決方法很簡單:給你的 AI 建構工具一個指令,然後確認它確實生效。
要記住的一個提示: 「確保在用戶點擊 Cookie 橫幅上的『接受』之前,沒有任何追蹤像素、分析工具或第三方腳本載入。」
並非法律建議。這能捕捉常見且代價高昂的錯誤,但並不保證任何事。
10 項檢查
在全新的、無 Cookie 的分頁中,對預覽或線上 URL 執行這些檢查(使用 Claude 內建瀏覽器:清除儲存空間,然後在任何點擊前執行 read_network_requests),如果程式碼可用,則加上程式碼掃描:
python3 ~/.claude/skills/consent-audit/scripts/scan_trackers.py <app-dir>
| # | 檢查 | 通過條件 |
|---|---|---|
| 1 | 全新訪問,未點擊: 是否有任何對廣告/分析/重播網域(facebook、google-analytics、googletagmanager、tiktok、licdn、hotjar、clarity、posthog、segment、heycatch…)的請求? | 無 |
| 2 | 點擊前的 Cookie: _ga、_fbp、_gcl_au、_ttp、_hj*、ph_*? | 無 |
| 3 | 主機附加元件關閉或受限: Lovable Visitor analytics、Vercel/Netlify/Cloudflare analytics、網站建構工具像素欄位 | 關閉或受限 |
| 4 | 拒絕按鈕有效: 點擊拒絕,瀏覽 2 個頁面,沒有任何可選項目觸發 | 是 |
| 5 | 橫幅公平: 接受和拒絕按鈕同樣顯眼;切換開關未勾選。如果沒有可選追蹤器,就沒有橫幅(不需要) | 是 |
| 6 | 返回方式: 頁尾有「隱私選擇」連結,可變更或撤回同意 | 是(如果橫幅存在) |
| 7 | 無身份資訊傳給追蹤器: 使用測試帳戶登入;追蹤器請求中沒有電子郵件或用戶 ID | 未傳送 |
| 8 | URL 中無機密資訊外傳: 追蹤器請求中沒有 ?code=、?token=、?email= 或搜尋文字 | 無 |
| 9 | 隱私權聲明: 公開頁面,在頁尾和註冊頁面皆有連結,列出真實的供應商和真實的聯絡方式 | 是 |
| 10 | 發布範圍: 你清楚此次發布將釋出所有哪些未發布的變更 | 已列出並確認 |
結果
PREFLIGHT: <app> - <PASS / FIX FIRST> (<date>)
1 ✅/❌ ... 10 ✅/❌ (每個項目一行證據:發現的網域、找到的 Cookie,或「無」)
Fix first: <失敗的檢查,按風險順序:1、7、2、3 優先>
- 全部通過: 發布,然後在線上 URL 上重新執行檢查 1、2 和 4。託管服務可能會加入預覽中沒有的腳本。
- 1-4 或 7-8 任一項失敗: 不要發布。執行
consent-audit進行完整庫存,然後執行consent-gate(或移除追蹤器)。 - 僅 5、6 或 9 失敗: 使用
consent-gate的橫幅/聲明部分修復,然後發布。
教學筆記(給學生)
- 展示,而非告知: 在全新的分頁中,開啟 DevTools → Network,篩選「facebook」或「google」,重新載入頁面,讓他們親眼看到像素在觸碰橫幅前就觸發了。那一刻會讓這堂課深植心中。
- 更少的追蹤器是簡單的勝利。 如果他們還沒投放廣告,就不需要追蹤像素。沒有追蹤器就沒有橫幅,也沒有風險。
- 分析工具 vs. 你自己的數據: 關閉追蹤器不會刪除他們的應用程式為用戶儲存的資料(帳戶、進度、表單答案)。這是第一方數據,由他們的隱私權聲明涵蓋,而非橫幅。
- 課程和影片網站: 在播放影片的頁面上使用 Meta 像素會帶來額外的聯邦法規風險(VPPA)。讓像素遠離課程頁面。