首頁>科技>

下午和同事在微信上聊到 Air Pods Pro 的體驗,晚上拼多多就開始給你講起真香的故事;好奇在搜尋引擎裡搜了下養貓小貼士,開啟淘寶首頁推薦就蹦出了貓砂貓糧貓爬架……甚至會有那些「絕對不可能」的情況,手機彷彿偷聽了你和朋友對話般知曉了你的心中所想。

上面這些情況都是廣告追蹤的實際呈現效果。

儘管對使用者隱私和廣告追蹤資料的尊重已經成為了近年 iOS 和 Android 系統功能更新中的重要一環,在 Google 缺席、魚龍混雜的國內 Android 生態中,通過各種廣告追蹤手段獲取個人隱私依然似探囊取物。今天我們要介紹的 OAID,便是眾多廣告追蹤手段中最新的一種。

ID 體系:你只是一串程式碼

想要了解 OAID,我們首先需要明白 ID 體系:想要追蹤一個使用者就必須先找到使用者,在這個過程中,識別符號(ID)就像我們的另一張身份證,它們就代表了數字化之後的你和我。

不同 App 可能通過某些唯一識別符號對你進行強制跟蹤,廣告平臺則會通過這個唯一識別符號對你進行使用者畫像描繪,進而共享給相關 App 及其後臺,一旦「你」打開了其中的某個 App,那麼你就會被識別到——你點了什麼、看過什麼、可能需要什麼,它們比你自己都清楚。

而在智慧裝置的 ID 體系中存在許許多多不同種類的識別符號,下面是一小部分 Android 裝置內的 ID,它們可能會用於不同方面的跟蹤或標識:

IMEI

IMEI 應該是大家最熟悉的一種 ID了,它是手機的身份證,也是運營商識別入網裝置資訊的程式碼,是一種不可重置的永久識別符號,作用域為裝置。

在廣告跟蹤方面,由於 iOS 的許可權管控,iOS 上的第三方 App 並不能通過 IMEI 跟蹤使用者,但目前 Android 平臺中絕大部分 App(尤其是在國內)都通過 IMEI 來追蹤使用者,開篇所舉的例子在 Android 平臺上大多也通過 IMEI 跟蹤來實現。

與 IMEI 類似的還有一個叫做 IMSI 的識別符號,但它主要用於 SIM 卡的身份標識,這裡不做展開。

Android ID(SSAID)

顧名思義,Android ID 是 Android 裝置裡不依賴於硬體的一種「半永久識別符號」,在系統生命週期內不會改變,但系統重置或刷機後會發生變化,其作用域為一組有關聯的應用。

Android 開發者文件和谷歌開發者中文部落格對 Android 8.0 後的隱私性和 SSAID 變化做出了說明:

Android 開發者文件中對 Android 8.0 隱私性變化的說明

從圖中不難看出,在 Android 8.0 以後,簽名不同的 App 所獲取的 Android ID(SSAID)是不一樣的,但同一個開發者可以根據自己的數字簽名,將所開發的不同 App 進行關聯。

Device ID

在 Android 平臺,Device ID 是一種統稱,與硬體相關的 ID 都可以稱之為 Device ID,一般是一種不可重置的永久識別符號,作用域為裝置。

根據裝置、廠家或者 App 呼叫需求的不同,讀取 Device ID 時可能會返回 IMEI 或其他硬體編碼,但也有可能因為裝置中沒有相關硬體而無法獲取 Device ID 或返回無效值;與之形成對應的,iOS 裝置中也有類似的永久識別符號叫做 UDID,但在 iOS 6 之後,蘋果已經不允許需要獲取 UDID 的 App 上架 App Store 以防止這種不可重置的 ID 被用於追蹤或濫用,取而代之的是 IDFA 識別符號,即 iOS 裝置廣告識別符號。

另外還有一種叫做 openUDID 的裝置唯一識別符號,它在 iOS 和 Android 系統內都可以使用,但由於不是系統官方提供的 ID 體系,且依賴於第三方 App 生成,所以應用並不廣泛,而隨著系統迭代升級,openUDID 也逐漸被邊緣化甚至被廢棄。

UUID、GUID

UUID 也叫做例項 ID,這兩個 ID 可以說是在計算機體系內的通用識別符號(詳細了解 UUID 和 GUID 可以閱讀 維基百科 相關內容)。

根據所面向物件的不同,其意義也有微小差別。如果說前面三個 ID 可以用來識別裝置,那麼這兩個 ID 在 Android 系統中的作用主要是識別 App 程序、元素或資料。

因為它們的作用域僅僅是單個應用內,如果使用者解除安裝了該 App 並重新安裝,那麼 UUID 也會發生變化。不過 App 開發者可以通過儲存 UUID 或與其他 ID、使用者資訊進行組合、繫結、計算等方式,實現 UUID 識別符號的「準永久化」。

根據 Android 開發者指南:

標識執行在裝置上的應用例項最簡單明了的方法就是使用例項 ID,在大多數非廣告用例中,這是建議的解決方案。只有進行了針對性配置的應用例項才能訪問該識別符號,並且識別符號重置起來(相對)容易,因為它只存在於應用的安裝期。

因此,與無法重置的裝置級硬體 ID 相比,例項 ID 具有更好的隱私權屬性。

AAID

AAID 與 IDFA 作用相同——IDFA 是 iOS 平臺內的廣告跟蹤 ID,AAID 則用於 Android 平臺。

它們都是一種非永久、可重置的識別符號,專門提供給 App 以進行廣告行為,使用者隨時可以重置該類 ID,或通過系統設定關閉個性化廣告跟蹤。但 AAID 依託於 Google 服務框架,因此如果手機沒有內建該框架、或框架不完整、或無法連線到相關服務,這些情況都有可能導致 AAID 不可用。

除了以上這些 ID 識別符號以外,某些硬體 ID(例如 MAC 地址)也可能會被用於追蹤。

國內 Android 的廣告追蹤之道

這麼多 ID 識別符號,每一個都各司其職。而理論上來說,只有 AAID 和 IDFA 是真正用於廣告行為的。

但現實狀況顯然不是這樣。

一方面,Android 平臺的不少 App 普遍存在違反 Android 開發規範、繞過 Google Play 審查,通過濫用 ID 來追蹤使用者,以此達到為廣告流量、營銷分析等商業利益服務的目的。

另一方面,由於 AAID 依託於 Google 服務框架,但在國內使用 Google 服務並不太可行,或者大部分國行手機內建的 Google 服務不完整,App 開發者需要尋找另一個方式去標識使用者。

UDID、GUID 作用域太小,不適合廣告跟蹤;Android ID 可以通過某些方式被改變或因為 bug 導致不可用,第三方 App 無保證可用性;MAC 地址雖然精準,但在Android 6.0(API 23)到 Android 9(API 28)中,系統限制了第三方 API 獲取MAC 地址;再加上早些時候,大部分「非玩機使用者」對此類功能並沒有太多概念,第三方 App 為了能以更加精準持久的方式來跟蹤使用者,將 IMEI 變成了用於廣告跟蹤的首選 ID(在 Google Play 幫助中心,獲取永久識別符號是一種有條件的、退而求其次的廣告投放方法,所以在此之前這種方式也不算完全違規)。

這也是我們看到很多 App 提示必須獲取「電話」許可權才能執行的原因——因為獲取 IMEI 必須獲得「電話」許可權,可是由此也帶來了一些隱私問題:允許「電話」許可權可能導致 App 讀取到很多種其他資訊,就像我需要你給我身份證來查詢身份證號,但與此同時你的姓名、住址、生日也暴露給我了。

我們可以在 這個網站 查詢到部分 App 所需要的許可權、資源以及它可能會發送的隱私資訊。例如微信,在網站中收錄的 6.7.3 版本中,微信獲取了如下許可權,但並沒有檢測到傳送以下隱私資料。

微信 6.7.3 版本所需的許可權

微信 6.7.3 版本並沒有傳送以上隱私資訊(灰色虛線框標識未檢測到)

隨著時代發展,使用者逐漸認識到手機 App 瘋狂獲取許可權的行為有可能會侵犯隱私,加之近幾年 Android 系統的許可權和隱私管理逐漸收緊,Android 10(API 29)終於對第三方 App 獲取不可重置永久裝置識別符號(包括 IMEI)的行為做出了 限制。

具體到使用者層面,在 Android 10 之後應用即便能夠獲取到「電話」許可權,系統返回給應用的 IMEI 資訊值也為空(你可以通過 My IMEI 這款應用進行測試)。

Android 10 中應用無法獲取 IMEI 資訊

OAID:Android 10 之後的替代方案

至此,國內 App 和廣告跟蹤服務急需一種替代方案以避免廣告流量的損失,OAID 順勢而生。

Android 開發者文件中對 Android 10 限制裝置識別符號讀取的說明 OAID 的本質其實是一種在國行系統內使用的、應對 Android 10 限制讀取 IMEI 的、「拯救」國內移動廣告的廣告跟蹤識別符號,其背後是 移動安全聯盟(Mobile Security Alliance,簡稱 MSA)。

該聯盟由中國資訊通訊研究院擔任理事長和祕書長單位,北京大學、vivo、360、華為擔任副理事長單位,並有包括蘋果、中興、OPPO、小米等多家理事和會員單位(點選檢視聯盟成員詳情),OAID 所屬的識別符號體系也是由該聯盟牽頭髮起的(參見「移動智慧終端補充裝置標識體系」)。

根據聯盟官網以及開發文件,這個「本土化」識別符號體系除了 OAID,還包含 UDID、VAID 和 AAID 一共四種識別符號。

我知道你在想什麼,不過這裡的 UDID 和 AAID 與上一節所說的完全不同。你可以通過下圖來了解「移動智慧終端補充裝置標識體系」所規定的四種識別符號以及獲取它們的介面開發方式。另外,你也可以在 MSA 官網或會員單位的開發者網站下載 SDK 開發說明。

從這四種識別符號的描述和功能我們大致可以確定,「移動智慧終端補充裝置標識體系」所規定的 UDID、OAID、VAID、AAID 在 Android 系統中分別對應了 Device ID(例如 IMEI,或對應了 iOS 裝置的 UDID)、AAID、SSAID、UUID(或 GUID)。在理想狀態下,引入 OAID 即能保證廣告平臺的正常運作,也能減小對使用者帶來的影響,因為第三方 App 無需請求許可權即可使用 OAID 完成廣告行為,而該過程匿名,使用者也可以隨時重置 OAID。

從廣告服務商 Adjust 於 2019 年12 月 20 日釋出的 新聞稿 中我們也可以獲知,Adjust 已經接入了 OAID 廣告識別符號,能夠對中國大陸的廣告主提供廣告相關服務;國內廣告資料服務商神策資料在其 幫助文件 中同樣提供了 OAID 匹配指南;華為則在其 開發者平臺 提供了基於 OAID 的「HUAWEI Ads OAID」廣告平臺接入指南。

事實上,主流手機廠商都已經在其開發者平臺上提供了 Android 10 適配指引,包括 三星中國開發者網站、華為開發者聯盟、OPPO 開放平臺、vivo 開放平臺 都已針對 Android 10 的相關變化做出了說明和解決方案建議,其中就包括 Google 官方識別符號適配建議和 OAID 適配方式。

OPPO 開放平臺引用 Android 開發者文件作為推薦適配方案之一

另外 OPPO 和 vivo 也分別在其開放平臺提供了「移動智慧終端補充裝置標識體系」相關文件和 SDK 下載。

不難看出,廣告平臺已經開始接入 OAID 作為國內廣告識別符號的建議方案,主流裝置廠家也已經開始指導開發者採用「移動智慧終端補充裝置標識體系」,並且考慮到國內主流的應用預置和分發平臺(例如手機廠商內建的應用商店)與 Google Play 一樣開始對上架 App 的 API 等級做出強制要求,包括 OAID 在內的識別符號體系毫無疑問將成為國內第三方 App 的強制執行標準。

小結

最後,從使用者的角度出發,我們又該如何看待 OAID 呢?

Android 一直在安全和隱私方面做出努力,也正是因為 Android 10 大刀闊斧地動作,讓 IMEI 等唯一識別符號不再被濫用,但放眼國內市場,在 Google 服務依舊無法正常使用的環境下,出臺本土化的體系標準來兼顧使用者隱私安全和廣告渠道利益其實可以說是一種進步,與之類似的舉措還包括「互傳聯盟」「統一推送」等等。

不過即便該體系在當前環境下不失為一種最優解決方案,但長久以來國內 Android 生態真正需要的除了這種強制性標準,還有手機廠商和 App 開發者在源頭上的自我管理。

最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 庫克喊你去睡覺!Beddit 3.5睡眠監測帶體驗