高流量網站中有效追踪 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 表不會存儲敏感用戶信息的基礎上。我們僅存儲匿名標識符(正常用戶 ID 的哈希值)和活動日期,嚴格遵循所有相關數據保護規定。
我們強烈建議其他數字服務行業採用這種以隱私為導向的方法。無論用戶數據的規模或數量如何,隱私始終應該被置於首位。
最終,即使是高流量的 Web 應用程序,數據追踪也不必變得複雜。像我們這樣穩定而有效的策略可以使追踪重要的用戶參與指標變得像吃蛋糕一樣簡單。
我們希望分享我們的經驗可以啟發其他數字平台,並提供如何開發創新的有效數據追踪解決方案的想法。