高流量網站中有效地追蹤每日活躍用戶(DAU)和每月活躍用戶(MAU)
在高流量的網站中追蹤每日活躍用戶(DAU)和每月活躍用戶(MAU)是一項具有挑戰性的任務。本文描述了我們在 Logto 如何解決這個問題。
不可否認,作為一個身份提供者,Logto 每天處理大量的用戶數據。我們無法忽視的一個關鍵指標就是「每日活躍用戶」(DAU)——這讓我們能夠了解用戶的參與度。但當涉及到追蹤 DAU 和每月活躍用戶(MAU)時,事情可能變得混亂。管理大量數據而不影響用戶體驗並不容易,但這是我們已經學習到有效解決的方法。
在這篇文章中,我們將藉此機會向你介紹有關 DAU 的概念,解釋 DAU、MAU 以及每月參與率的計算方法。
每日活躍用戶(DAU)、每月活躍用戶(MAU)和每月參與率
每日活躍用戶(DAU)
DAU 是指在某一天與你的平台互動的獨特用戶。這些互動可以是任何事情——從登入、發帖或者點贊,或者任何意味著活動的具體行動。追蹤 DAU 讓我們可以每天測量用戶的參與度,並了解活躍用戶基數的大小。
每月活躍用戶(MAU)
另一方面,MAU 是指至少在一個月內與你的平台有互動的獨特用戶。就像 DAU 一樣,活躍用戶範圍從僅僅是登入過的用戶到以某種方式與平台進行互動的用戶。
每月參與率
當我們試圖了解用戶在一個月內與我們的平台互動的頻率時,我們發現一個特定的指標——每月參與率(MER)具 有巨大的價值。這不僅僅是一個數字,對我們來說,它是一個重要的元素,極大地影響了我們的定價策略。
MER 揭示了用戶通過精確指出用戶在一個月內登入或與我們平台互動的獨特天數來參與的頻率。這個洞察不僅有用,對我們來說,它是一個關鍵的區別特點。不同於典型的方法僅關注用戶是否在一個月內拜訪過,我們深入挖掘,試圖了解「多頻繁」。這個「多頻繁」讓我們可以衡量用戶與我們平台的互動深度,並為用戶提供可衡量的價值。
在 Logto,MER 是基於使用的定價的一個重要因素。通過將我們的定價與 MER 錨定,我們確保了我們的收費與用戶的參與水平一致;你可以說,我們將公平轉化為一個可衡量的指標。當其他人可能把一個僅登入一次的用戶與每天使用的用戶視作一樣,我們區分開來,基於實際使用和提供的價值進行定價。通過這個方法,我們確保了一種更透明、公平,最終是一個更出色的定價方法。
來自用戶日誌
通常,DAU 和 MAU 是直接從用戶日誌中計算的。但隨著這些日誌堆積如山,過程變得低效,並面臨數據擴展和日誌保留等挑戰。更不必說,由於隱私和安全規範,永久保留用戶日誌記錄是不切實際的。
另一種方法:創建 DAU 表
這就是為什麼我們出現了 DAU 表的概念。這個表主要包括兩列——user_id
和 date
。date
可以設置為一天的開始。
我們有兩種方法來保持這個表的更新。第一個是每天自動篩選前一天的用戶日誌。第二個是在每次有用戶活動時觸發更新。
每當我們遇到一個獨特的 user_id
,我們就會在 DAU 表中新增一個記錄,其中包含 user_id
和 date
。這是通過使用一個需要唯一鍵 user_id
和 date
的 SQL "upsert" 操作來完成的。
結果,追蹤 DAU 和 MAU 只是計算表中的行數。而每月參與率的計算可以通過結合 group by
和 count
來完成。
結果和好處
DAU 表,本質上是一個用戶日誌的精簡版本,大大簡化了我們的 DAU 和 MAU 計算過程。不僅使得用戶參與度的追蹤變得更加容易,還顯著減少了系統的負擔。
結論
在我們優化 DAU 和 MAU 計算的過程中,我們一直非常重視用戶隱私和法律合規。我們的策略是基於確保 DAU 表不存儲敏感用戶信息。相反,我們只存儲匿名標識符(正常 user_id 的哈希值)和活動日期,嚴格遵循所有相關數據保護法規。
我們強烈推薦這種注重隱私的方法給其他數字服務行業中的同行。無論用戶數據的規模或量如何,隱私始終應該擁有最高優先級。
最終,即使是對於高流量的網絡應用程式,數據追蹤也不必十分複雜。一個穩定且高效的策略如我們的,能讓追蹤重要的用戶參與指標變得簡單易行。
我們希望分享我們的經驗能啟發其他數字平台,並提 供如何開發創新解決方案以有效和高效地追蹤數據的想法。