【資料標識】iOSApp下載渠道的統計需求

範大腳腳發表於2017-11-23
我們現在有一個需求,某一個活動需要拉新所謂的拉新一般是推App下載,這個使用者通過這個活動下載了App後,我們需要做到【在資料庫中記錄這個使用者下載這個App是通過那個二維碼渠道的,從效果上說,我們期望:
① 每個活動(渠道)在資料表中有一條記錄,而一旦有經過該渠道下載的App被開啟後,該渠道的下載量會+1,算KPI的(單獨一條記錄,帶有時間戳)
② App首次開啟時,如果檢測到了渠道上報後,還應該為該App打上一個全域性的渠道標誌,後續的所有請求都應該將此引數帶上,為後續產生訂單以及流水做準備
比如之前我們為H5與Server的Ajax請求約定的是這樣的:
複製程式碼
1 var param = {
2     //公共引數
3     common: {
4         us: `渠道`,
5         version: `1.0.0`
6     },
7     other: “ // 業務引數
8 };
複製程式碼
每次請求就必定會帶上業務引數,而us就是native需要帶的渠道引數,當然native的公共引數比前端多的多,需求明確後,我們清理下iOS引導至App Store的一般流程。
這邊的一般流程是,我們一個App活動,或者我們一次推廣,一般來說都會用微信開啟這個網址,這個是前提一:
① 我們的一次下載來源於一次活動(推廣或者固定的下載地址),而微信是主要的開啟裝置
然後,我們要引導至App Store,一般來說會訪問一個H5頁面(在微信中會引導在Safari瀏覽器中開啟),然後由H5下載落地頁跳到App Store完成下載,這個是第二個前提:
② 我們每次是由一個統一的帶渠道因子的H5頁面,引導至App Store的
在上述基礎上,我們期望:有一個唯一的H5引導下載落地頁(這裡基本會拋棄微信應用寶引導下載了)
這裡初步的實現方案是:
開啟H5落地頁時候,將這次活動的渠道號以及ip+ua+時間戳傳給server端記錄,如果在一定時間內,機型和ip成功匹配,則認為這次下載來源與這次渠道號
這裡需要:
① Server端,提供一個介面,記錄當前渠道+ip+ua+時間戳+螢幕資訊(所有能記錄的都記錄),提供一個渠道匹配判斷標誌
② H5訪問落地頁的時候上報相關資訊
③ Native首次開啟的時候,呼叫native提供的判斷介面,給該次App打標誌
這裡提出了三個要素:
① H5落地頁
② server上報介面
② server檢查介面
而這種方案是不精確的,H5如果能拿到裝置號這類唯一標識的話,便能大大提高準確性,然後無論微信jsdk或者Safari都是做不到的,而網上搜尋的方案,提到了一個SFSafariViewController,似乎能達到共享cookie的作用,於是進行了一番探索。
SFSafariViewController
我們調研下來,在我們的場景下,大概是這麼一個情況:
① 我們使用Safari開啟一個頁面,並且操作cookie
② 在我們的App中,SFSafariViewController這個庫能開啟一個我們給予的Url,並且這個網頁如果和上面是一個域名cookie是共享的
這個就很有意思了,我們就完全可以這樣做了:
① 訪問H5下載落地頁訪問介面上報時,Server往cookie種入唯一標識而後引導至App Store
② App首次開啟時,以隱藏狀態開啟上報頁面,因為同域名,會將Safari的cookie帶上,這裡也會帶上IP等標識
③ Server打標籤,如果判斷有cookie或者ip匹配則返回相關渠道
④ H5檢查頁,使用Hybrid互動,告訴native給該App打上標識
 
 
let vc = SFSafariViewController(url: URL(string: “http://domain.com/landing.html”)!)
這裡方案確定,然後開始落地實施試試情況,後續在資料展示一塊以友好的方式展示出來,便是大資料的一環
參考文章:https://www.sensorsdata.cn/blog/analyze-distribution-channel-of-ios-app/
本文轉自葉小釵部落格園部落格,原文連結:http://www.cnblogs.com/yexiaochai/p/6480020.html,如需轉載請自行聯絡原作者


相關文章