iOS7时代我们用什么来追踪和识别用户?
要識別用戶,首先就是要選擇一個標識符,通過這個標識符來識別這個用戶的設備(而不是用戶),這個標識符要能夠保證一個設備上返回的值是一樣的,并且在其他設備上不會出現相同的值。
在iOS7之前,曾經有過很多方法來識別用戶的設備,從最原始的設備udid、mac地址,到被各廣告統計平臺廣泛使用的開源方案OpenUDID。
但隨著AppStore開始拒絕接受使用udid的應用,到mac地址在iOS7上所有設備上都返回相同的值,再到iOS7上對剪貼板的限制,導致OpenUDID無法被不同應用共享相同的值,注定了上面提到的這些id們不得不退出歷史的舞臺。
隨著iOS7快速占據了半壁江山,設備id的控制權終于徹底回到了Apple手中,同時也讓用戶能夠把控自己的隱私,充分表明了是蘋果對用戶隱私保護的決心。
好了,其實就一個問題:iOS7時代我們用什么來追蹤和識別用戶?
?
先給結論
- idfa: 適用于對外:例如廣告推廣,換量等跨應用的用戶追蹤等
- idfv: 適用于對內:例如分析用戶在應用內的行為等
PS:塵埃落定,跟著Apple走,大家不用再猶豫了。
?
再給解釋
idfa
- 全名:advertisingIdentifier
-
代碼:
#import <AdSupport/AdSupport.h>NSString *adId = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString]; -
來源:iOS6.0及以后
- 說明:直譯就是廣告id, 在同一個設備上的所有App都會取到相同的值,是蘋果專門給各廣告提供商用來追蹤用戶而設的,用戶可以在?設置|隱私|廣告追蹤?里重置此id的值,或限制此id的使用,故此id有可能會取不到值,但好在Apple默認是允許追蹤的,而且一般用戶都不知道有這么個設置,所以基本上用來監測推廣效果,是戳戳有余了。
- 注意:由于idfa會出現取不到的情況,故絕不可以作為業務分析的主id,來識別用戶。
idfv
- 全名:identifierForVendor
-
代碼:
NSString *idfv = [[[UIDevice currentDevice] identifierForVendor] UUIDString]; -
來源:iOS6.0及以后
- 說明:顧名思義,是給Vendor標識用戶用的,每個設備在所屬同一個Vender的應用里,都有相同的值。其中的Vender是指應用提供商,但準確點說,是通過BundleID的DNS反轉的前兩部分進行匹配,如果相同就是同一個Vender,例如對于com.somecompany.appone,com.somecompany.apptwo 這兩個BundleID來說,就屬于同一個Vender,共享同一個idfv的值。和idfa不同的是,idfv的值是一定能取到的,所以非常適合于作為內部用戶行為分析的主id,來標識用戶,替代OpenUDID。
- 注意:如果用戶將屬于此Vender的所有App卸載,則idfv的值會被重置,即再重裝此Vender的App,idfv的值和之前不同。
?
歷史上的英雄們
UDID
設備唯一標識符(Unique Device Identifier)之前被各種國內外統計平臺,應用開發商廣泛使用,后Apple從2013年05月01日起拒絕接受使用UDID的應用后,立斃!
Mac地址
每一個網卡都有一個唯一的標識,即Mac地址,顯然用來標識一個手機是綽綽有余的了,也有一些開源的方案也用到了它,國內UMTrack等也用它作為過主id,隨著iOS7返回同樣的值后,不得不退隱江湖。
OpenUDID
在Apple拒絕UDID后,OpenUDID作為獨立于Apple的開源方案,被廣大的開發者所接受,各大統計廣告平臺都從UDID等方案切換到OpenUDID的方案(看來大家都不想完全被Apple束縛啊),但不幸的事,同樣由于iOS7對剪貼板的限制,導致同一個設備上應用間,無法再共享一個OpenUDID,即OpenUDID作為設備唯一標識的能力被大大削弱。也可以看到隨著iOS7的來臨,各廣告平臺都迅速更新自己的SDK,來切換到蘋果的idfa的方案上來。
其他
CFUUID、NSUUID等自己生成,自己存儲管理的就不細說啦。
DeviceToken
這是推送用的令牌,用戶如果沒開推送,或者拒絕了,這個就沒有了!
轉載于:https://www.cnblogs.com/BigPolarBear/p/3359526.html
總結
以上是生活随笔為你收集整理的iOS7时代我们用什么来追踪和识别用户?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: perl插入文本
- 下一篇: ffmpeg h264+ts +udp传