老王早上搜尋一下Nike鞋,很快便發現不管是抖音、知乎還是微信朋友圈,鋪天蓋地的都出現了運動鞋的廣告。小劉發現自己的洗發水快用完了,正打算買洗發水,就發現京東的洗發水廣告已經推播到了手機上。
為什麽廣告商總能對廣告進行精準投放呢?
這裏就需要「大數據」來分析。我們在網上的每一個行為操作、每個瀏覽記錄、關註內容、使用的App等資訊都被記錄,並根據不同的行為權重對使用者進行畫像,當搜集到足夠多的數據後,便可以描繪出一名使用者的畫像特征,比如ta的性別、年齡、性取向、婚否、文化水平、興趣愛好、在哪住、財產狀況等等等等。最後再將使用者進行劃分歸類,以此達到預測和精準推播的目的。
這個時候就會有第二個問題。比如我在淘寶註冊的賬號是123456,在抖音註冊的賬號是654321,在知乎註冊的賬號是142536,商家又是如何能在不同的軟件或行為操作中,精準定位出哪個是我呢?
這裏就需要對每一名使用者進行一個標記,俗稱的器材唯一標識。也就是說雖然使用者會在不同的軟件註冊不同的賬號,但對於大多數使用者來說,手機器材是不常更換的。只要能對手機進行標記,Alibaba就不光能知道你在淘寶系的數據行為,還能知道你的社交行為、遊戲行為、娛樂行為等等。當然對於其他公司也是同理。
那麽,廣告商是如何對器材進行唯一標識的呢?
我們把Android 和iOS 分開來說。 首先Android。
一般情況下,Android 器材 常用 的有三種器材標識:
1.Device ID:可以用系統提供的TelephonyManager 服務來獲取,具有唯一性。其中包括IMEI和MEID/ESN。
2.IMEI:國際流動通訊器材辨識碼,也就是我們通常所說的手機串號、手機序列號。用於在流動電話網絡中辨識每一部獨立的手機等行動通訊器材,相當於流動電話的身份證。標記在主機板上,除非更換手機(主機板),否則無法變更。Android 6.0以上系統需要使用者授予read_phone_state 許可權,(理論上)如果使用者拒絕就無法獲得。
3.mac Address:區域網路地址,包含了wifi mac 和藍芽mac,用來確認網上器材位置的地址。可以獲取到使用者的位置資訊。
其實從Android 6.0開始,Google 就已經註意到使用者私密被濫用的行為,並且加入對應的許可權管理系統,來幫助使用者管理個人私密。所以我們經常能夠看到一些剛安裝完的App,在啟動的時候會申請獲取一些許可權。使用者可以選擇允許或者拒絕。
但是!但是!但是!Google 在這裏面又耍了個小心眼,當使用者拒絕掉某個許可權時,系統會告訴App,使用者拒絕了你。對於規範一些的App,拒絕就拒絕了。但是對於某些流氓App,就會告訴你:拒絕掉你就別用了!非常遺憾的是,我們一些國民級套用,仰仗著自己近乎壟斷的地位,就這麽做。
這裏插一句,Google 完全可以當使用者拒絕後返回一串無用數據。但我個人認為,Google 不這麽做並不是因為不知情或者存在技術障礙,也許故意而為之。畢竟Google 自己就是全球最大的廣告公司。
Android 還有一個問題,當使用者授予App 電話許可權(TelephonyManager)的時候,不光會允許App 記錄IMEI 等硬件唯一資訊,還會 允許記錄使用者的手機號 。也就是說,即使使用者過幾年換一部手機, 只要不換號,仍然無法擺脫廣告商的追蹤。
有些動手能力比較強的使用者或許會透過appops、root 等方法來進行限制。先不說絕大多數的使用者都不會root。由於Android 開放的特性,appops 等工具可以盡量阻止App 存取檔、通訊錄、位置等等。但仍然無法一些避免流氓廠商對使用者器材進行標記。
再來說iOS。
首先說下iOS器材的幾種器材標識:
1.IMEI:國際流動通訊器材辨識碼,iOS 5 之後被禁止獲取。
2.IDFA:廣告識別元,於iOS 6 時面世,為了滿足廣告商的追蹤需求,同時保證使用者器材不被APP追蹤的折中方案。同一器材上的所有App獲得的IDFA一致。使用者可以在設定裏重設或關閉IDFA,重設手機也會重設IDFA。是目前iOS器材上最主要的標記方式。
3.IDFV:套用開發商識別元,可以用於分析使用者在套用內的行為等。同一器材上不同開發商的App獲得的IDFV不一樣。解除安裝同一開發商的所有App後會重設。
4.mac地址:包括WiFi mac地址和藍芽mac地址。iOS 7之後被禁止獲取。
5.UDID:與手機繫結,用來標示器材的唯一性 。iOS 6 之後被禁止獲取。
6.openUDID:第三方的使用者標記方式,還原手機可以變更,iOS 7後被禁止獲取。
Apple 一直是一家宣稱非常註重使用者私密的公司。因此,Apple 明確表示禁止跟蹤使用者。
其實在iOS 5及之前的時候,Apple 是允許廠商自由獲取與手機繫結的UDID和IMEI辨識碼的。從iOS 6開始,出於對使用者的私密保護,蘋果開始禁止App獲取IMEI。但考慮到廣告商希望監測廣告投放效果,因此變發明了一套與硬件完全無關的識別元,提供給廣告商進行廣告追蹤。也就是我們說的IDFA(廣告識別元)。同時,Apple 允許使用者在設定中重設新的IDFA,避免被長期跟蹤。
因為IDFA並不是唯一的(不同App獲取的IDFA不一樣,且使用者可以自由重設),所以一經推出便遭到了業內的抵制,並想辦法去獲取UDID(與硬件繫結,可標識器材唯一性)。引起Apple大怒,於是的2013年5月1號開始,Apple拒絕采集UDID的App上架App Store。當然機智的從業者們又想出了其他辦法,就是透過獲取mac地址或采用開源的openUDID來繼續追蹤使用者。
時間又過了半年,2013年9月iOS 7釋出,Apple完全禁止獲取mac和openUDID。受限於iOS 的封閉性,不符合規範的App被禁止上架,所以IDFA(廣告識別元)雖然可以被使用者重設,但也成為廣告商最通用標記使用者的方式(況且很多使用者也不會去重設IDFA)。
2016年6月,蘋果釋出了iOS 10,再一次引起廣告業震動。這次,蘋果加入了「限制廣告追蹤」的選項。在iOS 10之前的版本,使用者可以不斷重設IDFA(廣告識別元),但無法徹底關閉。從iOS 10開始,只要使用者開啟了這個功能,App只能獲取到一串無意義的0。
當然,根據國外第三方機構的統計,中國大約僅有10%的使用者開啟了這個功能。而某國內廣告公司的數據,國內IDFA反饋為0的使用者大約僅占1%。可見絕大多數使用者好像並沒有意識到這個功能。
既然使用者可以在設定中重設IDFA,那有沒有什麽辦法能夠在使用者重設後仍然繼續追蹤呢?
流氓開發者們當然有應對辦法。Apple提供了一個功能:所有的App登入資訊都會保存在keychain中,刪除App後保存在keychain的資訊也不會被刪除。這個功能原本是為了方面開發者提供基於器材的免費試用功能等讀取之前的賬戶登入資訊的。但是被一些流氓開發者濫用,他們將IDFA/IDFV資訊儲存於keychain當中,來保證即使使用者重設IDFA或解除安裝重裝App後,仍然可以繼續追蹤使用者。
當然Apple也意識到了keychain被濫用的情況,於是在iOS10和iOS11的測試版本中,封堵了這個漏洞(如果 App 被刪除,之前儲存於keychain 中的數據也會一同被清除。),但遇到開發者強烈反對(因為很多正常功能也依賴keychain)。所以正式版中都回滾了這個功能。
但仍然為了防止keychain被濫用,Apple 在iOS 11上推出了全新的「器材檢查(DeviceCheck)」功能,允許開發者透過其的伺服器與 Apple 伺服器通訊,並為單個器材設定兩個 bit 的數據。來追蹤使用者比如是否已經領取獎勵這類資訊。
比如,某使用者手機在某一個月裏免費試使用了一套用軟件,這一期間內,DeviceCheck將手機狀態記錄為「狀態 A 」。試用期之後,使用者停止該免費軟件的使用,DeviceCheck會將此時的器材情況記錄為「狀態 B 」。 使用者對 iPhone 進行軟件刪除或初始化操作後,使用DeviceCheck程式會重新將手機轉換至「狀態 B 」,從而避免手機陷入再次試用軟件的麻煩中。
目前DeviceCheck功能並未強制使用,開發者仍然可以可以透過IDFA+keychain的方法對使用者進行追蹤。不過可以預見,未來這個漏洞會被封堵。
當然了,追蹤使用者的方法有很多,器材辨識只是其中的一種。其他的比如像第三方器材指紋(友盟、TalkingData)、賬號登陸體系(透過微信、微博、Google等賬號登陸)、營運商和網絡端(某些免費WiFi)等等。但單就器材與作業系統而言, 對於普通使用者來說,iOS確實比Android更能保護使用者私密。
最後也有個好訊息,目前制定【個人資訊保護法】已被列入十三屆全國人大常委會立法規劃,由委員長會議提請審議,法制工作委員會牽頭起草。並有可能設立專門機構對違反【保護法】的行為進行查處。