iOS 攜帶參數(shù)安裝

需求描述

市場(chǎng)部要求收集區(qū)分來(lái)自不同安裝渠道的注冊(cè)量,包括官網(wǎng)跳轉(zhuǎn)脖咐,宣傳頁(yè)瓜浸,和直接App Store 下載等多個(gè)渠道。

需求分析

要實(shí)現(xiàn)這個(gè)需求秋冰,就要知道用戶是從哪個(gè)渠道跳轉(zhuǎn)到 App Store 并且下載安裝完成并注冊(cè)成功仲义。這樣我們需要在下載前對(duì)當(dāng)前用戶做一個(gè)標(biāo)記,用戶經(jīng)過(guò)一系列操作后在注冊(cè)的時(shí)候再對(duì)比這個(gè)標(biāo)記來(lái)確定這個(gè)注冊(cè)的來(lái)源。

需求實(shí)現(xiàn)

接下來(lái)主要從以下幾個(gè)不同思路來(lái)嘗試實(shí)現(xiàn):

1. 蘋果對(duì)開(kāi)發(fā)者提供的 App Store Connect 來(lái)源分析

登陸開(kāi)發(fā)者 Connect 中心 --- App 分析 --- 來(lái)源分析埃撵,即可獲取下載來(lái)源赵颅,主要統(tǒng)計(jì)包含:

  • “App Store 瀏覽”,“App Store 搜索”暂刘,“App 引薦來(lái)源”饺谬,“網(wǎng)頁(yè)引薦來(lái)源”四大塊的概覽,數(shù)量谣拣,比例以及趨勢(shì)商蕴。點(diǎn)擊可單獨(dú)查看具體來(lái)源以及更詳細(xì)數(shù)據(jù),比如“App 引薦來(lái)源”有微信芝发,釘釘以及由其他 app 直接跳轉(zhuǎn)來(lái)的數(shù)據(jù)绪商,可以說(shuō)很具體和殷實(shí)了。
  • “營(yíng)銷活動(dòng)”: 通過(guò)設(shè)置營(yíng)銷活動(dòng)的鏈接辅鲸,當(dāng)用戶點(diǎn)擊帶有該鏈接的廣告時(shí)格郁,他們將被帶到該 App 的 App Store 頁(yè)面。會(huì)被針對(duì)性收集和統(tǒng)計(jì)独悴,相當(dāng)于自定義的來(lái)源統(tǒng)計(jì)例书。
    以上都無(wú)需額外操作,開(kāi)發(fā)者中心為你提供了這些統(tǒng)計(jì)和數(shù)據(jù)刻炒。但是决采,此數(shù)據(jù)只可用來(lái)做下載統(tǒng)計(jì),至于之后打開(kāi) app 以及 app 內(nèi)部的操作則完全統(tǒng)計(jì)不到了坟奥。


    connect.png
2.SFSafariViewController 共享 safari cookie

我們一般是通過(guò) Safari 來(lái)跳轉(zhuǎn)到 App Store 下載應(yīng)用树瞭,那么我們可以讓營(yíng)銷鏈接設(shè)置cookie 并強(qiáng)制通過(guò) Safari 來(lái)跳轉(zhuǎn)到 App Store,然后在打開(kāi) app 后通過(guò)共享 cookie 來(lái)獲取營(yíng)銷鏈接配置的參數(shù)爱谁。
關(guān)于獲取 safari cookie 的方案晒喷, 因?yàn)樯澈芯壒实谌?app 無(wú)法直接獲取 safari cookie, 所以需要通過(guò) SFSafariViewController 這個(gè)內(nèi)置類來(lái)聯(lián)通我們的 app 與 safari 間接關(guān)系獲取 cookie访敌。

實(shí)現(xiàn)思路:(因?yàn)橐恍┓椒ǖ淖鲝U與新增凉敲,現(xiàn)測(cè)試并篩選后說(shuō)明最新方案
在用戶打開(kāi) app 時(shí)調(diào)用 SFAuthenticationSession 方法訪問(wèn) 指定 url 會(huì)話,當(dāng)前會(huì)話獲取 cookie 并存儲(chǔ)在 location.href 中寺旺,以 url 形式在 completionHandler 回調(diào)中返回爷抓。

On completion, the service will send a callback URL with > an authentication token, and this URL will be passed to the app by SFAuthenticationCompletionHandler.
The callback URL usually has a custom URL scheme. For the app to receive the callback URL, it needs to either register the custom URL scheme in its Info.plist, or set the scheme to callbackURLScheme argument in the initializer.

public init(url URL: URL, callbackURLScheme: String?, completionHandler: @escaping SFAuthenticationSession.CompletionHandler) 

方法限制:

  1. SFAuthenticationSession方法 iOS 11 +

  2. SFAuthenticationSession 方法需要用戶授權(quán)提醒框允許獲取 cookie 用作登陸

    alert.png

  3. 需要present SFSafariViewController(解決方案:彈出獲取cookie后立即dismiss退出并銷毀)


    auth.png

方案2總結(jié):
由于蘋果對(duì)于數(shù)據(jù)的謹(jǐn)慎(彈框授權(quán))以及審核問(wèn)題,pass 掉了很多取巧優(yōu)化的方案(比如彈出 controller 是 alpha 設(shè)置為0 等等)阻塑,故無(wú)法很好做到用戶無(wú)感獲取 cookie 的流程蓝撇。
但是,如果你要實(shí)現(xiàn)的是用戶授權(quán)自動(dòng)登錄功能叮姑,則這不失為一個(gè)好的方案唉地。方案沒(méi)有好壞据悔,取決于你要實(shí)現(xiàn)的功能。

3. 配合服務(wù)器數(shù)據(jù)對(duì)比獲取參數(shù)

經(jīng)過(guò)前面兩個(gè)方案啟發(fā)耘沼,想必大家也有個(gè)很多的注意极颓,那么這里再說(shuō)一個(gè)稍微麻煩點(diǎn),但是更適配我們要實(shí)現(xiàn)注冊(cè)統(tǒng)計(jì)需求的方案群嗤,也是我最終采取的方案菠隆。

既然蘋果可以統(tǒng)計(jì)下載的數(shù)據(jù),那么讓我們?cè)谄渖显僮鲞M(jìn)一步嘗試狂秘。

我們可以在點(diǎn)擊營(yíng)銷鏈接跳轉(zhuǎn) App Store 的時(shí)候做一些事情骇径,比如,獲取當(dāng)前用戶 IP者春,設(shè)備信息破衔,聯(lián)網(wǎng)信息以及可以用來(lái)唯一標(biāo)識(shí)當(dāng)前用戶的信息存儲(chǔ)在服務(wù)端等待匹配使用。等待用戶下載成功并在打開(kāi) app 的時(shí)候钱烟,首次獲取必要信息與服務(wù)端的存儲(chǔ)做對(duì)比晰筛,對(duì)比成功則標(biāo)記為同一個(gè)用戶,刪除存儲(chǔ)拴袭,并返回所需參數(shù)(或者無(wú)需返回參數(shù)读第,直接在服務(wù)端綁定渠道)

如果覺(jué)得麻煩,以上思路已經(jīng)有一些成熟的第三方工具:

open install (同類型 share install)

大致實(shí)現(xiàn)為: 配置好帶參數(shù)的 url拥刻, 用戶點(diǎn)擊 url 時(shí)怜瞒, 跳轉(zhuǎn)到中間頁(yè)(js app頁(yè))獲取用戶設(shè)備信息并跳轉(zhuǎn)到 app 或者 appstore, 下載后再根據(jù)設(shè)備從服務(wù)端對(duì)比獲取之前的參數(shù)般哼。(需要和服務(wù)端核對(duì))

open install.png

method.png

優(yōu)點(diǎn):

  • 集成簡(jiǎn)單易用
  • 和我的需求很匹配

缺點(diǎn):一個(gè)字吴汪,這個(gè)功能屬于收費(fèi)功能, 8000 每年,更多見(jiàn) open install

神策

神策也實(shí)現(xiàn)了類似的稱為渠道追蹤的功能逝她,并且有簡(jiǎn)單的說(shuō)明:

對(duì)于 iOS 來(lái)說(shuō)浇坐,由于 iOS10 的限制,App 通用渠道推廣目前只能是模糊匹配黔宛,主要是基于 IP、Date擒贸、User Agent 構(gòu)建的模糊匹配臀晃,匹配成功率在75%左右。

track installation.png

優(yōu)缺點(diǎn)和上面類似介劫,因?yàn)楸緛?lái)我們應(yīng)用本來(lái)就用到神策統(tǒng)計(jì)徽惋,所以無(wú)需再次導(dǎo)入庫(kù),最終選擇了神策座韵。

方案3總結(jié):

  • 較好的匹配了注冊(cè)傳參的需求
  • 有較多實(shí)現(xiàn)好的第三方庫(kù)提供參考或直接使用
  • 匹配率并不能達(dá)到 100% 完全匹配
  • 一些復(fù)雜操作可能導(dǎo)致中間環(huán)節(jié)出錯(cuò)
  • 不依賴第三方自己實(shí)現(xiàn)的話需要服務(wù)端做技術(shù)支持(能不求人盡量不求人???♂?)

以上险绘,因?yàn)橐恍┫拗铺呔瑳](méi)有完美無(wú)缺的方案,但是宦棺,只要針對(duì)不同的需求瓣距,采取合適的方案,就能收獲你想要的結(jié)果

謝謝閱讀(?▽?)

參考

SafariAutoLoginTest https://github.com/mackuba/SafariAutoLoginTest
open install https://www.openinstall.io/track.html
神策 https://manual.sensorsdata.cn/sa/latest/guide_channel_app-1573516.html
iOS 渠道下載統(tǒng)計(jì)方案 http://www.reibang.com/p/cbd6b5ad5655

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末代咸,一起剝皮案震驚了整個(gè)濱河市蹈丸,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌呐芥,老刑警劉巖逻杖,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異思瘟,居然都是意外死亡荸百,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門滨攻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)管搪,“玉大人,你說(shuō)我怎么就攤上這事铡买「常” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵奇钞,是天一觀的道長(zhǎng)澡为。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么展运? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任崎苗,我火速辦了婚禮,結(jié)果婚禮上拒啰,老公的妹妹穿的比我還像新娘。我一直安慰自己完慧,他們只是感情好谋旦,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著屈尼,像睡著了一般册着。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上脾歧,一...
    開(kāi)封第一講書(shū)人閱讀 51,631評(píng)論 1 305
  • 那天甲捏,我揣著相機(jī)與錄音,去河邊找鬼鞭执。 笑死司顿,一個(gè)胖子當(dāng)著我的面吹牛芒粹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播大溜,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼化漆,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了猎提?” 一聲冷哼從身側(cè)響起获三,我...
    開(kāi)封第一講書(shū)人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎锨苏,沒(méi)想到半個(gè)月后疙教,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡伞租,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年贞谓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片葵诈。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡裸弦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出作喘,到底是詐尸還是另有隱情理疙,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布泞坦,位于F島的核電站窖贤,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏贰锁。R本人自食惡果不足惜赃梧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望豌熄。 院中可真熱鬧授嘀,春花似錦、人聲如沸锣险。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)囱持。三九已至夯接,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間纷妆,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工晴弃, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留掩幢,地道東北人逊拍。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像际邻,于是被迫代替她去往敵國(guó)和親芯丧。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

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

  • 產(chǎn)品需求 由于雙十一期間要開(kāi)展多渠道推廣世曾,市場(chǎng)運(yùn)營(yíng)部要求缨恒,對(duì)每個(gè)渠道下用戶的安裝來(lái)源做詳細(xì)判斷,獲取每個(gè)用戶的安裝...
    haya_an閱讀 6,986評(píng)論 0 2
  • 如何讓用戶更順滑的完成“由外而內(nèi)”的“激活過(guò)程”iOS11前后的Cookie共享和深度鏈接:SFSafariVie...
    XTShow閱讀 6,458評(píng)論 16 13
  • Deep Link背景知識(shí) Web鏈接不知道app的存在轮听,當(dāng)在手機(jī)上打開(kāi)一個(gè)Jet.com這樣一個(gè)網(wǎng)頁(yè)鏈接骗露,你會(huì)進(jìn)...
    tom555cat閱讀 2,130評(píng)論 0 0
  • 1.包學(xué)習(xí)這個(gè)項(xiàng)目是哪方面的,你負(fù)責(zé)哪些模塊? 這方面?zhèn)€人覺(jué)得分兩方面.假如你是管理層的,可以說(shuō)下你是如何解決團(tuán)隊(duì)...
    leejobs閱讀 1,176評(píng)論 0 4
  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時(shí)...
    歐辰_OSR閱讀 29,392評(píng)論 8 265