Thursday, May 13, 2021

How to measure engagement?

I have a group video chat application where users can randomly pop into rooms to have a conversation. Imagine something like a video reddit

This is more of an architecture question than a code question. How do I measure usage? I want to track how long users spend in each room, which rooms are popular, get a history of every room that a user has visited to understand their user profile

The most naive thing that I can think of is to create a new table in the database called usage where I log every event such as user entering a room with timestamp, user leaving a room with timestamp that would look something like this for eg -

user room event timestamp
1 bitcoin join_room 1620632092
2 comedy join_room 1620632094
1 bitcoin leave_room 1620632292
3 politics join_room 1620632295
3 politics leave_room 1620632296
4 dogs join_room 1620632296
5 python join_room 1620632296
4 dogs leave_room 1620632296
5 python leave_room 1620632296

With this database architecture, I would have to run really complex SQL queries to understand how much time users spend in each room.

Is there a better way to do this?


No comments:

Post a Comment