當前位置:
首頁 > 最新 > 技術解讀:極光推送的設備唯一性標識 RegistrationID

技術解讀:極光推送的設備唯一性標識 RegistrationID

【科技訊】6月5日消息,對於 App 雲平台系統,如何唯一地識別移動設備是非常重要的。否則每次用戶在設備上卸載掉應用再重新安裝,後端系統只能把這個用戶當作一個全新的用戶了。使用極光推送的開發者常常有這樣一個問題:極光推送是如何來做設備的唯一性識別的。

Android 設備本身的任何標識都是無法直接用作設備唯一標識的。iOS是系統強力限制被唯一識別的,目前唯一可以部分滿足條件是 IDFA,但需要你的 App 本身的確嵌入了廣告。本文將解析極光推送如何儘可能地來唯一識別設備。

極光推送對安裝在設備上的 App 使用 RegistrationID 作為標識。極光推送要『儘可能』確保設備的唯一性,就是要使得 RegistrationID 儘可能唯一。

RegistrationID 的定義

關於 RegistrationID 極光官方文檔有如下的定義:

集成了 JPush SDK 的應用程序在第一次 App 啟動後,成功註冊到 JPush 伺服器時,JPush 伺服器會給客戶端返回唯一的該設備的標識 – RegistrationID。JPush SDK 會以廣播的形式發送 RegistrationID 到應用程序。

有了這個標識,App 編程可以把這個 RegistrationID 保存到自己的應用伺服器上,然後就可以根據 RegistrationID 來向設備推送消息或者通知。

RegistrationID 變化可能性

如果 App 不卸載,是直接覆蓋安裝,Android, iOS 上 RegistrationID 的值都不會變化。

如果 App 是卸載之後再次安裝:

Android 上 RegistrationID 基本不會變;

iOS 上如果啟用了 IDFA 變化可能性不大,如果未啟用 IDFA 則每次安裝 RegistrationID 都會變;

RegistrationID 生成規則解析

Android 平台

Android 上因為國內存在大量山寨設備的原因,正常的 IMEI, Mac Address, AndroidID 這些可以考慮用作唯一標識的值,都是不可以用的,因為這些值在一批設備中可能都是同一個值。

極光的基本思路是:

1. 生成一個 DeviceID 保存到 Settings, External Storage。依賴本地存儲,應用被卸載後重新安裝這些存儲里的 DeviceID 還在的話,就是同一個設備。這一條理論上解決 90% 的不變性問題。

2. DeviceID 之外增加補充規則:綜合根據 IMEI, MAC Address, AndroidID 這幾個值來判斷,是否可能是老設備。

具體的邏輯細節,也是根據實際運行情況,以及收集到的反饋不斷調整的,大多數邏輯可在伺服器端調整。

iOS平台

鑒於 iOS 系統設計上限制設備唯一標識,所以極光一直使用 Device Token 作為標識,也因為極光推送本身就是需要 Device Token 這個值才可能運作的。

iOS 9 版本之後,每次卸載後重裝都會導致 Device Token 變化,所以對於極光後台來說,都只能被識別為新用戶。

極光 SDK 新版本增加了 IDFA 選項,在集成初始化 SDK 時可選把 IDFA 這個值設置進來,這樣極光後台就優先根據 IDFA 值來識別用戶,從有一定的可能性應用被卸載後重裝還能識別回老設備。

IDFA 是廣告標識符,是 iOS 專門為廣告跟蹤唯一地識別用戶而設計的。在 iOS 設備上,設備 -> 隱私 -> 廣告這個頁面,有一個設置項:限制廣告跟蹤。默認是未選中狀態的,即是關閉狀態,是不限制的。用戶可以選中,從而限制廣告跟蹤。設置項之外還有一個按鈕:還原廣告標識符…。如果用戶點擊了這個按鈕,則 IDFA 值會變化。

默認的情況下,沒有限制廣告跟蹤,可以取到 IDFA 這個值。並且用戶未點擊『還原廣告標識』時,這個值是不會變的。這樣就達到了唯一地標識設備、跟蹤到用戶的目標。

但是,但是,請一定留意,IDFA 並不是一定可以啟用的,是需要你的 App 的確有廣告功能才可以用的,否則 Apple 在上架審核時有可能發現從而拒絕上架。

關於蘋果 App 上架對 IDFA 的要求,可參考這裡的說明:The Advertising Identifier (IDFA)

高級使用建議

因為 RegistrationID 是 JPush SDK 註冊完成之後才得到的,所以調用 SDK API 來獲取 RegistrationID 的值時需要稍注意,不是總能夠立即得到。

比如 iOS 上建議在監聽到 kJPFNetworkDidLoginNotification 這個通知後的代碼里,來獲取 RegistrationID 的值。

關鍵詞

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 科技訊 的精彩文章:

極光大數據:從綜合電商app榜單看618大戰各方實力
商湯演算法一騎絕塵 打造公安人臉識別智能核心
蔡依林等大咖演唱會、萬人龍蝦宴——6.12龍蝦節,有象視頻將全程直播
Libratone小鳥音響亮相CES Asia 2017,ZIPP純黑版初登場
商湯科技徐立:技術突破與場景應用驅動AI發展相互促進

TAG:科技訊 |

您可能感興趣

Android Q獨享?谷歌Google Play商店測試推送安卓系統更新
Adobe緊急推送Lightroom Classic CC更新 修復海量BUG
聯想Moto Z3 Play推送Android P系統
Essential Phone安卓P測試版推送
安卓之父Essential Phone開始推送Android 9 Pie
谷歌如約推送Wear OS更新:內置GoogleAssistant
索尼為Xperia XA1/Plus和Ultra部署Android Oreo推送
Django Channels實時推送
三星在阿聯酋為Galaxy Note9非測試版用戶推送Android Pie更新
蘋果推送iOS:iPhone 8 Plus獨享
Kindle Paperwhite系列推送固件更新
推送新Google Lens濾鏡模式 UI的細微調整
springboot websocket後台主動推送消息
Twitter為出版商推送廣告,欲挑戰Facebook、Google成為程序化廣告巨頭
三星正在努力將Android Pie推送給更多Galaxy
Facebook正式向全球推送群組共賞視頻功能Watch Party
鎚子堅果Pro 2S推送Smartisan OS新版
完成度接近正式版,Google 推送 Android P Beta 3
堅果3推送Smartisan OS 新增精選應用
Google暫停推送Android Q Beta 5版本