極光推送的設(shè)備唯一性標(biāo)識(shí)RegistrationID

對(duì)于 App 云平臺(tái)系統(tǒng)耐齐,如何唯一地識(shí)別移動(dòng)設(shè)備是非常重要的。否則滞项,每次用戶在設(shè)備上卸載掉應(yīng)用再重新安裝狈惫,后端系統(tǒng)只能把這個(gè)用戶當(dāng)作一個(gè)全新的用戶了睛蛛。

Android 上識(shí)別設(shè)備的唯一性,因?yàn)檫@個(gè)圈太亂胧谈,所以設(shè)備本身的任何標(biāo)識(shí)都是無(wú)法直接用作設(shè)備唯一標(biāo)識(shí)的忆肾。iOS 是系統(tǒng)強(qiáng)力限制被唯一識(shí)別的,目前唯一可以部分滿足條件是 IDFA菱肖,但需要你的 App 本身的確嵌入了廣告客冈。

很多開發(fā)者使用極光推送時(shí),都有這個(gè)疑問(wèn):極光推送是如何來(lái)做設(shè)備的唯一性識(shí)別的稳强。本文解析極光推送如何盡可能地來(lái)識(shí)別設(shè)備唯一场仲。

極光推送對(duì)安裝在設(shè)備上的 App 使用 RegistrationID 作為標(biāo)識(shí)和悦。極光推送要『盡可能』確保設(shè)備的唯一性,就是要使得 RegistrationID 盡可能唯一渠缕。

RegistrationID 的定義

關(guān)于 RegistrationID 極光官方文檔有如下的定義:

集成了 JPush SDK 的應(yīng)用程序在第一次 App 啟動(dòng)后鸽素,成功注冊(cè)到 JPush 服務(wù)器時(shí),JPush 服務(wù)器會(huì)給客戶端返回唯一的該設(shè)備的標(biāo)識(shí) - RegistrationID亦鳞。JPush SDK 會(huì)以廣播的形式發(fā)送 RegistrationID 到應(yīng)用程序馍忽。

有了這個(gè)標(biāo)識(shí),App 編程可以把這個(gè) RegistrationID 保存到自己的應(yīng)用服務(wù)器上蚜迅,然后就可以根據(jù) RegistrationID 來(lái)向設(shè)備推送消息或者通知舵匾。

RegistrationID 變化可能性

如果 App 不卸載俊抵,是直接覆蓋安裝谁不,Android, iOS 上 RegistrationID 的值都不會(huì)變化。

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

  • Android 上 RegistrationID 基本不會(huì)變徽诲;
  • iOS 上如果啟用了 IDFA 變化可能性不大刹帕,如果未啟用 IDFA 則每次安裝 RegistrationID 都會(huì)變;

RegistrationID 生成規(guī)則解析

Android 平臺(tái)

Android 上因?yàn)閲?guó)內(nèi)存在大量山寨設(shè)備的原因谎替,正常的 IMEI, Mac Address, AndroidID 這些可以考慮用作唯一標(biāo)識(shí)的值偷溺,都是不可以用的,因?yàn)檫@些值在一批設(shè)備中可能都是同一個(gè)值钱贯。

極光的基本思路是:

  1. 生成一個(gè) DeviceID 保存到 Settings, External Storage挫掏。依賴本地存儲(chǔ),應(yīng)用被卸載后重新安裝這些存儲(chǔ)里的 DeviceID 還在的話秩命,就是同一個(gè)設(shè)備尉共。這一條理論上解決 90% 的不變性問(wèn)題。
  2. DeviceID 之外增加補(bǔ)充規(guī)則:綜合根據(jù) IMEI, MAC Address, AndroidID 這幾個(gè)值來(lái)判斷弃锐,是否可能是老設(shè)備袄友。

具體的邏輯細(xì)節(jié),也是根據(jù)實(shí)際運(yùn)行情況霹菊,以及收集到的反饋不斷調(diào)整的剧蚣,大多數(shù)邏輯可在服務(wù)器端調(diào)整。

iOS平臺(tái)

鑒于 iOS 系統(tǒng)設(shè)計(jì)上限制設(shè)備唯一標(biāo)識(shí)旋廷,所以極光一直使用 Device Token 作為標(biāo)識(shí)鸠按,也因?yàn)闃O光推送本身就是需要 Device Token 這個(gè)值才可能運(yùn)作的。

iOS 9 版本之后饶碘,每次卸載后重裝都會(huì)導(dǎo)致 Device Token 變化待诅,所以對(duì)于極光后臺(tái)來(lái)說(shuō),都只能被識(shí)別為新用戶熊镣。

極光 SDK 新版本增加了 IDFA 選項(xiàng)卑雁,在集成初始化 SDK 時(shí)可選把 IDFA 這個(gè)值設(shè)置進(jìn)來(lái)募书,這樣極光后臺(tái)就優(yōu)先根據(jù) IDFA 值來(lái)識(shí)別用戶,從有一定的可能性應(yīng)用被卸載后重裝還能識(shí)別回老設(shè)備测蹲。

IDFA 是廣告標(biāo)識(shí)符莹捡,是 iOS 專門為廣告跟蹤唯一地識(shí)別用戶而設(shè)計(jì)的。在 iOS 設(shè)備上扣甲,設(shè)備 -> 隱私 -> 廣告這個(gè)頁(yè)面篮赢,有一個(gè)設(shè)置項(xiàng):限制廣告跟蹤。默認(rèn)是未選中狀態(tài)的琉挖,即是關(guān)閉狀態(tài)启泣,是不限制的。用戶可以選中示辈,從而限制廣告跟蹤寥茫。設(shè)置項(xiàng)之外還有一個(gè)按鈕:還原廣告標(biāo)識(shí)符...。如果用戶點(diǎn)擊了這個(gè)按鈕矾麻,則 IDFA 值會(huì)變化纱耻。

默認(rèn)的情況下,沒(méi)有限制廣告跟蹤险耀,可以取到 IDFA 這個(gè)值弄喘。并且用戶未點(diǎn)擊『還原廣告標(biāo)識(shí)』時(shí),這個(gè)值是不會(huì)變的甩牺。這樣就達(dá)到了唯一地標(biāo)識(shí)設(shè)備蘑志、跟蹤到用戶的目標(biāo)。

但是贬派,但是急但,請(qǐng)一定留意,IDFA 并不是一定可以啟用的赠群,是需要你的 App 的確有廣告功能才可以用的羊始,否則 Apple 在上架審核時(shí)有可能發(fā)現(xiàn)從而拒絕上架。

關(guān)于蘋果 App 上架對(duì) IDFA 的要求查描,可參考這里的說(shuō)明:The Advertising Identifier (IDFA)

高級(jí)使用建議

因?yàn)?RegistrationID 是 JPush SDK 注冊(cè)完成之后才得到的突委,所以調(diào)用 SDK API 來(lái)獲取 RegistrationID 的值時(shí)需要稍注意,不是總能夠立即得到冬三。

比如 iOS 上建議在監(jiān)聽(tīng)到 kJPFNetworkDidLoginNotification 這個(gè)通知后的代碼里匀油,來(lái)獲取 RegistrationID 的值。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末勾笆,一起剝皮案震驚了整個(gè)濱河市敌蚜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌窝爪,老刑警劉巖弛车,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件齐媒,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡纷跛,警方通過(guò)查閱死者的電腦和手機(jī)喻括,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)贫奠,“玉大人唬血,你說(shuō)我怎么就攤上這事』秸福” “怎么了拷恨?”我有些...
    開封第一講書人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)谢肾。 經(jīng)常有香客問(wèn)我腕侄,道長(zhǎng),這世上最難降的妖魔是什么勒叠? 我笑而不...
    開封第一講書人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任兜挨,我火速辦了婚禮膏孟,結(jié)果婚禮上眯分,老公的妹妹穿的比我還像新娘。我一直安慰自己柒桑,他們只是感情好弊决,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著魁淳,像睡著了一般飘诗。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上界逛,一...
    開封第一講書人閱讀 51,541評(píng)論 1 305
  • 那天昆稿,我揣著相機(jī)與錄音,去河邊找鬼息拜。 笑死溉潭,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的少欺。 我是一名探鬼主播喳瓣,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼赞别!你這毒婦竟也來(lái)了畏陕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤仿滔,失蹤者是張志新(化名)和其女友劉穎惠毁,沒(méi)想到半個(gè)月后犹芹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鞠绰,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年羽莺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片洞豁。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡盐固,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出丈挟,到底是詐尸還是另有隱情刁卜,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布曙咽,位于F島的核電站蛔趴,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏例朱。R本人自食惡果不足惜孝情,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望洒嗤。 院中可真熱鬧箫荡,春花似錦、人聲如沸渔隶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)间唉。三九已至绞灼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間呈野,已是汗流浹背低矮。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留被冒,地道東北人军掂。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像姆打,于是被迫代替她去往敵國(guó)和親良姆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

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