iOS設(shè)備識(shí)別信息收集統(tǒng)計(jì)解決方案

獲取設(shè)備唯一標(biāo)識(shí)符

可作為設(shè)備唯一標(biāo)識(shí)的幾種方法:

  1. ** UDID(Unique Device Identifier)**。iOS5以后不可用。
  • CFUUID。獲得的這個(gè)CFUUID值系統(tǒng)并沒有存儲(chǔ)。每次調(diào)用CFUUIDCreate,系統(tǒng)都會(huì)返回一個(gè)新的唯一標(biāo)示符。
  • NSUUID。跟CFUUID一樣,這個(gè)值系統(tǒng)也不會(huì)存儲(chǔ),每次調(diào)用的時(shí)候都會(huì)獲得一個(gè)新的唯一標(biāo)示符。
  • MAC Address。iOS7以后不可用,取不到正確的值,都是相同的值。
  • OPEN UDID。生成碼-剪貼板,iOS7以后不能用,GitHub中已啟用。
  • 廣告標(biāo)示符(IDFA-identifierForIdentifier)。返回NSUUID實(shí)例,用戶還原廣告,會(huì)重置,還原系統(tǒng)會(huì)重置。審核規(guī)定,獲取IDFA而不使用廣告功能會(huì)被拒。
  • Vindor標(biāo)示符 (IDFV-identifierForVendor) 。返回NSUUID實(shí)例,相同供應(yīng)商下所有APP刪除,會(huì)變
  • 推送token+bundle_id 。依靠APNS,需要網(wǎng)
    關(guān)于這幾種標(biāo)識(shí)符的介紹可以看這篇文章,也可以看《The Developer’s Guide to Unique Identifiers》 (中文翻譯)

下圖是總結(jié)的幾種標(biāo)識(shí)符的情況。

獲取設(shè)備標(biāo)識(shí)符.png

唯一標(biāo)識(shí)符獲取策略

直接使用NSUUID,獲取方法:

NSString *uuid = [[NSUUID UUID] UUIDString];

使用蘋果提供的Vindor標(biāo)示符,獲取方法

    NSString *IDFVString = [[[UIDevice currentDevice] identifierForVendor] UUIDString];

如果用戶卸載了同一個(gè)vendor對應(yīng)的所有程序,然后在重新安裝同一個(gè)vendor提供的程序,此時(shí)identifierForVendor會(huì)被重置。

因此,為了使唯一標(biāo)識(shí)符保存更持久,將IDFV(或UUID)存儲(chǔ)到鑰匙串中,下次使用先從鑰匙串取。

關(guān)于鑰匙串的使用,可以看《iOS安全-鑰匙串服務(wù)(iOS Keychain Services Tasks)》

新設(shè)備識(shí)別

關(guān)于新設(shè)備識(shí)別,分為兩種,APP新設(shè)備和賬戶新設(shè)備:

  1. APP新設(shè)備,即第一次安裝當(dāng)前APP。識(shí)別方法:鑰匙串中存儲(chǔ)UUID,啟動(dòng)時(shí)先檢查鑰匙串,如果取不到存儲(chǔ)的UUID,即視為新設(shè)備,生成UUID,存儲(chǔ)到鑰匙串中。后臺(tái)記錄啟動(dòng)的UUID,可用來統(tǒng)計(jì)下載轉(zhuǎn)化率等數(shù)據(jù)。
    UUID生成記錄流程如下圖所示:
UUID存儲(chǔ)使用流程.png
  • 賬戶新設(shè)備,跟用戶賬戶關(guān)聯(lián)。即當(dāng)前賬戶第一次在這個(gè)設(shè)備上登錄,視為用戶的新設(shè)備。后臺(tái)記錄用戶登錄設(shè)備信息,可用做登錄的二次驗(yàn)證。
    設(shè)備鎖登錄流程如下圖所示:
設(shè)備鎖登錄流程.png

后臺(tái)記錄

后臺(tái)記錄APP相關(guān)信息,用作安全管理和統(tǒng)計(jì)。
下圖列出部分常用統(tǒng)計(jì)信息,

后臺(tái)統(tǒng)計(jì)信息.png

下圖是之前關(guān)于數(shù)據(jù)統(tǒng)計(jì)分析的整理:

App數(shù)據(jù)分析體系.png

統(tǒng)計(jì)策略

關(guān)于統(tǒng)計(jì)策略,參考第三方統(tǒng)計(jì),列出幾點(diǎn)。

上報(bào)策略

  • 統(tǒng)計(jì)數(shù)據(jù)啟動(dòng)發(fā)送。(DEBUG時(shí),實(shí)時(shí)發(fā)送)
  • 默認(rèn)開始crash收集。
  • log收集,log加密,發(fā)送間隔。

頁面計(jì)時(shí)

頁面進(jìn)入時(shí),開始計(jì)時(shí),退出頁面記錄時(shí)長。

事件統(tǒng)計(jì)

后臺(tái)設(shè)置事件ID,前端根據(jù)ID統(tǒng)計(jì)上報(bào)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容