返回部落格

行動端指紋模擬:與桌面端的參數差異對照

行動端指紋模擬要讓桌面瀏覽器以行動裝置身分運行。螢幕、裝置型號、感測器與觸控、網路與電信商、UA 與 App 識別這幾組參數必須彼此一致,環境才經得起檢測。

在 Facebook、Instagram、TikTok 這類平台做投放和營運,很多操作在行動端與桌面端的表現並不一樣:頁面配置不同、可用的功能入口不同,平台對行動端流量的處理策略也可能不同。若要在不準備一堆實機的前提下驗證這些情境,就得讓桌面瀏覽器以行動裝置的身分出現。

說起來只是一句話,實際上卻要處理一整套參數。行動端環境的可信度,取決於這些參數彼此之間是否說得通。

行動端和桌面端差在哪裡

最容易想到的是螢幕。行動裝置的邏輯解析度和 viewport 寬度與桌面差異很大,而且同一款機型在不同系統版本下的可用 viewport 也可能改變。螢幕這一項對不上,後面幾項怎麼調都會顯得彆扭。

裝置型號和硬體級別是第二層。平台可能參考裝置型號判斷這台裝置所處的級別,再決定提供哪一版頁面或素材。型號、pixel ratio、記憶體與圖形參數之間要能互相對應;高階機型的名稱搭配一套低階機的硬體特徵,本身就是矛盾。

感測器和觸控特徵是最容易被忽略的一層。真實手機有陀螺儀、加速度計,touch events 也可能帶有壓力、接觸面積和多點觸控等特徵,而桌面瀏覽器預設並不具備這些。如果只把 UA 改成手機,一檢查 touch events 就可能露出不一致。這一層要補的是合理的感測器讀值和觸控事件形態,而不是單純打開幾個開關。

網路類型與電信商同樣屬於指紋的一部分。行動裝置通常會走行動網路,頁面也可能讀到電信商名稱、連線類型,甚至與訊號相關的資訊。若環境聲稱使用某個國家的某家電信商,出口卻掛著 data-center IP,這種組合在真實裝置上並不常見,值得另外核對。

最後一層是 user agent 和裝置識別,也是很多人唯一有修改的一層。UA 要與裝置型號、系統版本、瀏覽器版本同源;App 內的 WebView 識別與一般瀏覽器識別又是兩套不同的東西,平台可能據此判斷這次訪問是從 App 裡開啟,還是從瀏覽器直接開啟。把兩者混用,就等於主動暴露環境拼接的痕跡。

一致性該怎麼核對

參數配完後,建議依固定順序做一輪檢查。順序很重要,因為前面的問題經常會偽裝成後面的問題。

先看 device identity 這一組:檢測頁面讀到的作業系統、裝置型號、解析度、pixel ratio 是否與設定一致,UA 裡的型號和系統版本是否也與前面幾項對得上。再看時區和語言,這兩項要與帳號的目標市場一致,同時地理位置與出口地區也應落在同一片區域,三者互相矛盾是最常見的破綻之一。接著看網路:出口 IP 是 residential 還是 data-center,電信商資訊與 IP 歸屬是否匹配,WebRTC 有沒有洩漏一個與當前環境完全不搭的位址。最後看行為能力:touch events、感測器讀值、字型集合是不是一台行動裝置應有的樣子。

核對時如果發現某幾項不對,先找出是哪一個參數與整體不匹配,而不是反覆重建環境。重建無法解決參數內部彼此矛盾的問題。

還有一件事值得說明:第三方檢測頁面顯示異常,不一定就是環境本身有問題。不同檢測站收集資料的方法各不相同,有的跑 scripts 讀瀏覽器特徵,有的看 request headers,同一套環境在不同網站得到不同結果很正常;瀏覽器擴充功能也可能改變頁面讀到的資訊;檢測站依賴的 IP 資料庫如果更新不及時,也可能把 residential IP 判到錯誤的地方。挑一個更新勤、口碑穩定的檢測站作為基準,比在多個網站之間來回比較更有意義。

行動端模擬取代不了實機

有些情境還是必須使用真實裝置:需要真實感測器資料、相機或陀螺儀完整能力的測試;平台對裝置真實性要求很高、會在 App 內進行驗證的風控環節;涉及真實付款與真實電信商網路的驗證。另外,部分平台功能只在原生客戶端提供,網頁端做不了,這類操作也不能指望模擬環境解決。

可以這樣分工:網頁端能覆蓋的行動情境交給模擬環境,涉及硬體和 App 層的驗證交給實機。兩者是互補關係,不是替代關係。

幾個常被問到的問題

只改 UA 能不能通過檢測 通常很難。UA 是整套參數裡最容易單獨修改、也最容易被交叉驗證的一項。解析度、字型、語言、時區和觸控能力對不上,檢測很容易看出來。

一個帳號該固定在行動端還是桌面端 建議保持固定。同一帳號在兩類裝置之間反覆跳動,本身就可能是一個異常訊號。讓環境的裝置類型與這個帳號平常的使用方式保持一致。

合規上要注意什麼 只用於自己營運的帳號和自有業務測試,不要用來偽造裝置身分以繞過平台驗證,也不要用於詐欺類操作。

收尾

行動端指紋模擬要處理的不是某一個參數,而是整套參數與裝置身分、目標市場之間的自洽。螢幕、型號、感測器、網路、UA 這幾組各自要對得上,而且彼此不能打架,環境才站得住。把行動端和桌面端環境分開管理,一個帳號長期固定一種裝置形態,再搭配一個與地區一致的獨立出口,才有行動端營運穩定性的基礎。PurpleMark 這類環境管理工具在建立環境時就能把裝置與系統參數、proxy 和 start page 一起綁定,打開環境時即恢復同一套設定,省去每次重新配置的麻煩。