2012-12-07 50 views
3

Iam a RoR開發者,我想爲我的網站計算DAU。通過DAU我的意思是:用設計計算每日活躍用戶

無論誰來到我的網站,並登入或誰來到網站,並已經登錄的用戶DAU-總數

我在我的網站實施Devise,因爲它跟蹤current_sign_in_at。後來發現這些屬性的含義是:

current_sign_in_at - 人員登錄我網站的最新時間。 (使用這個我可以得到誰來到我的網站和登錄的用戶的數量。)

但我很想念誰來到網站並已登錄的人的數量。

我發現實現它的一種方式是在延遲作業中觸發一個函數,該函數會在調用根操作和我的網站主頁加載時更新時間戳。但是由於我的網站每分鐘大約有1000 - 2000次點擊,我猜這個功能會成爲瓶頸。

任何人都可以請建議我最好的方式來實現它。

很多謝謝。

回答

0

可能的解決方案:

  • 使用像谷歌分析(自定義變量),KISSmetrics(訪客身份)或Mixpanel(distinct_id),並將它們發送用戶ID的服務,你可以找到每天的活躍用戶。

  • 您可以執行類似於您所提到的操作,每次獲取請求時都會將用戶的上次活動時間存儲在數據庫中,如果您每分鐘獲得1000-2000次點擊,則可能需要將其存儲在在內存存儲像redis代替。如果用戶將通過不同的路徑訪問您的網站,而不僅僅是根網址,您可以在應用程序控制器中創建一個after_filter,它使用用戶的當前時間更新redis存儲。

  • 如果您對日後的日常活躍用戶更有興趣,那麼值得爲其他數據庫中的用戶創建日誌。再次,我會在application_controller中建議一個before或after_filter,它將作業排隊以存儲時間,user_id,以及其他您可能感興趣的數據。我使用與ActiveRecord MySQL數據庫分開的mongo db來執行此操作。