Efficiënt het bijhouden van DAU en MAU op drukbezochte sites
Het bijhouden van DAU en MAU op drukbezochte sites is een uitdagende taak. Dit artikel beschrijft hoe we dit probleem bij Logto hebben opgelost.
Het valt niet te ontkennen dat Logto als identiteitsprovider dagelijks een berg gebruikersgegevens verwerkt. Een van de kritieke statistieken die we niet over het hoofd kunnen zien, is 'Daily Active Users' (DAU) - het geeft ons een idee van hoe betrokken onze gebruikers zijn. Maar als het gaat om het bijhouden van DAU's en Monthly Active Users (MAU), kan het rommelig worden. Het beheren van enorme hoeveelheden data zonder de gebruikerservaring te beïnvloeden is niet eenvoudig, maar het is iets wat we hebben geleerd efficiënt aan te pakken.
In dit artikel gaan we de gelegenheid nemen om je door DAU-gerelateerde concepten te leiden, uit te leggen hoe DAU, MAU en een maandelijkse betrokkenheidsratio berekend kunnen worden.
DAU, MAU en Maandelijkse Betrokkenheidsratio
Dagelijkse actieve gebruikers (DAU)
DAU's zijn unieke gebruikers die op een bepaalde dag interactie hebben met je platform. Deze interacties kunnen van alles zijn - van alleen inloggen, iets posten of leuk vinden, of een andere specifieke actie die activiteit aangeeft. Het bijhouden van DAU's laat ons de gebruikersbetrokkenheid dagelijks meten en geeft ons een idee van de omvang van onze actieve gebruikersbasis.
Maandelijkse actieve gebruikers (MAU)
MAU daarentegen is een indicator van unieke gebruikers die ten minste één keer in een maand met je platform in interactie komen. Net als DAU's kunnen actieve gebruikers variëren van iemand die gewoon heeft ingelogd tot iemand die op een bepaalde manier met het platform heeft gecommuniceerd.
Maandelijkse betrokkenheidsratio
Als het gaat om te begrijpen hoe vaak gebruikers in een maand met ons platform in interactie komen, vinden we enorme waarde in een bepaalde maatstaf - de Maandelijkse Betrokkenheidsratio (MER). Dit is niet zomaar een getal voor ons, maar een essentieel element dat onze prijsstrategie sterk beïnvloedt.
MER onthult de frequentie van een gebruikersinteractie door het aantal unieke dagen te bepalen waarop een gebruiker inlogt of interactie heeft met ons platform binnen een maand. Dit inzicht is niet alleen nuttig; het is een onderscheidende factor voor ons. In tegenstelling tot de typische benadering die alleen kijkt of een gebruiker binnen een maand heeft bezocht, gaan wij dieper, we proberen te begrijpen 'hoe vaak'. Deze 'hoe vaak' stelt ons in staat de diepte van een gebruikersinteractie met ons platform te meten en biedt ons tastbare maatstaven om meer waarde aan onze gebruikers te leveren.
In Logto is MER een significante factor van gebruiksgebaseerde prijsstelling. Door onze prijsstelling aan MER te verankeren, zorgen we ervoor dat onze kosten overeenkomen met het niveau van gebruikersbetrokkenheid; je zou kunnen zeggen dat we eerlijkheid hebben omgezet in een meetbare maatstaf. Terwijl anderen misschien een gebruiker die maar één keer heeft ingelogd net zo tellen als een dagelijkse gebruiker, maken wij onderscheid, prijsstellend op basis van het daadwerkelijke gebruik en de geboden waarde. Hiermee verzekeren we een transparantere, eerlijkere en uiteindelijk een opvallende benadering van prijsstelling.
Uit gebruikerslogs
Normaal gesproken worden DAU en MAU direct berekend uit gebruikerslogs. Maar naarmate deze logs zich ophopen, wordt het proces inefficiënt en ontstaan er uitdagingen zoals data scaling en log retention. Niet te vergeten, het voor altijd bewaren van gebruikerslogs is niet praktisch vanwege privacy- en veiligheidsvoorschriften.
Een andere benadering: een DAU-tabel creëren
Daarom kwamen we met het concept van een DAU-tabel. Deze tabel bevat voornamelijk twee kolommen - user_id
en date
. De date
kan worden ingesteld op het begin van een dag.
We hebben twee manieren om deze tabel bij te werken. De eerste is een dagelijkse geautomatiseerde taak die de gebruikerslogs van de vorige dag doorneemt. De tweede triggert een update wanneer er gebruikersactiviteit plaatsvindt.
Telkens als we een unieke user_id
tegenkomen, voegen we een nieuwe vermelding toe aan de DAU-tabel, die de user_id
en de date
bevat. Dit wordt gedaan met behulp van een SQL "upsert"-operatie die een unieke sleutel van user_id
en date
vereist.
Als resultaat wordt het bijhouden van DAU en MAU gewoon een kwestie van het tellen van rijen in de tabel. En de maandelijkse betrokkenheidsratio kan worden berekend door group by
en count
te combineren.
Resultaten en voordelen
De DAU-tabel, die in wezen een verkorte versie van gebruikerslogs is, heeft ons DAU- en MAU-berekeningsproces drastisch vereenvoudigd. Niet alleen heeft het het bijhouden van gebruikersbetrokkenheid veel gemakkelijker gemaakt, maar het heeft ook de belasting op ons systeem aanzienlijk verminderd.
Conclusie
In onze zoektocht naar het optimaliseren van DAU- en MAU-berekeningen hebben we altijd de nadruk gelegd op gebruikersprivacy en wettelijke naleving. We hebben onze strategie gebouwd rond het verzekeren dat de DAU-tabel geen gevoelige gebruikersinformatie zou opslaan. In plaats daarvan slaan we gewoon anonieme identifiers (de gehashte waarde van de normale user_id ) en activiteitendata op, strikt in overeenstemming met alle relevante databeschermingsregulaties.
We zouden deze privacygerichte benadering ten zeerste aanbevelen aan anderen in de digitale dienstensector. Ongeacht de schaal of hoeveelheid gebruikersdata zou privacy altijd de hoogste prioriteit moeten krijgen.
Uiteindelijk hoeft datatracking niet ingewikkeld te zijn, zelfs niet voor webapplicaties met veel verkeer. Een stabiele en efficiënte strategie zoals de onze kan het bijhouden van essentiële gebruikersbetrokkenheidstatistieken een fluitje van een cent maken.
We hopen dat het delen van onze ervaring andere digitale platforms kan inspireren en ideeën kan bieden over hoe innovatieve oplossingen voor effectieve en efficiënte datatracking ontwikkeld kunnen worden.