PostHog / posthog

🦔 PostHog provides open-source product analytics, session recording, feature flagging and A/B testing that you can self-host.
https://posthog.com
Other
21.16k stars 1.25k forks source link

Mobile App Dashboard Template #19341

Closed pauldambra closed 7 months ago

pauldambra commented 9 months ago

We want to add a mobile app dashboard template

What should go on it?

(cc @marandaneto @andyvan-ph)

marandaneto commented 9 months ago

There are a bunch of dashboard templates that would make sense. Eg

Those are just ideas, some of them are important, and some of them are not so much.

pauldambra commented 9 months ago

Quick first run in the manoel testing project https://us.posthog.com/dashboard/120138

marandaneto commented 9 months ago

Quick first run in the manoel testing project us.posthog.com/dashboard/120138

Nice, I've fixed a few of them to not depend only on the $screen events but rather all events.

A few notes:

App build adoption is pretty much the same as the App version Adoption, I guess we can kill it in favor of App version Adoption only since its the human-readable version.

Most common devices I'd not use the $os_name and $os_version here otherwise its too fragmented, I'd rather have another dashboard template for OS version breakdown.

User stickiness is actually a calculation on top of the MAU/DAU, See here.

Application Opened's Session duration average depends on the Application opened event, but since we have $session_id now, should it be for all events instead?

pauldambra commented 9 months ago

App build adoption is pretty much the same as the App version Adoption, I guess we can kill it in favor of App version Adoption only since its the human-readable version.

👍

Most common devices I'd not use the $os_name and $os_version here otherwise its too fragmented, I'd rather have another dashboard template for OS version breakdown.

👍

User stickiness is actually a calculation on top of the MAU/DAU, See [here (https://support.google.com/analytics/answer/12993725?hl=en).

👁️

Application Opened's Session duration average depends on the Application opened event, but since we have $session_id now, should it be for all events instead?

So, it takes all sessions with an application openend event in them. Then for each session finds the duration between the first and last event in that session. Then averages those values (or applies whatever calculation you put). Could be all events

pauldambra commented 9 months ago

User stickiness is actually a calculation on top of the MAU/DAU, See [here (https://support.google.com/analytics/answer/12993725?hl=en).

OK, so we group per insight not per series, which means I can't put DAU and MAU on the same chart and then get a ratio.

But, the built in stickiness chart gives a similar reading by showing how many days out of the last X days a user did an action. So for screen events.

Screenshot 2023-12-18 at 17 27 34

So, in this test project we had

Which is close enough for rock & roll in comparison 🙈

marandaneto commented 9 months ago

User stickiness is a calculation on top of the MAU/DAU, See [here (https://support.google.com/analytics/answer/12993725?hl=en).

OK, so we group per insight not per series, which means I can't put DAU and MAU on the same chart and then get a ratio.

But, the built-in stickiness chart gives a similar reading by showing how many days out of the last X days a user did an action. So for screen events.

Screenshot 2023-12-18 at 17 27 34

So, in this test project we had

  • 4 users who did a screen event only on any 1 day of the last 8
  • 1 user who did a screen event on any 2 days of the last 8
  • and 1 user who did a screen event on any 3 days of the last 8

Which is close enough for rock & roll in comparison 🙈

Yep, I still wouldn't use it only for $screen events, the stickiness ratio is actually to tell if the users are using the app or not (engagement), $screen is just a feature, so it should be for all events, the same for MAU/DAU.

If users wanna calculate the stickiness ratio of a specific feature/event, they can use this one as a template and modify the events, but it should not be one of our "default" templates.

Although the current one already gives you some insight, the User stickiness is a standard metric for Mobile apps and people understand it well, diverging from that is something I'd not like to do, the goal is to make PH more mobile friendly, and having Mobile dashboard templates that people already understand would be ideal unless of course it's not possible somehow.

pauldambra commented 9 months ago

User stickiness is a calculation on top of the MAU/DAU, See [here (https://support.google.com/analytics/answer/12993725?hl=en).

I wonder if it's something @robbie-c or @PostHog/team-product-analytics have thought about adding...

robbie-c commented 9 months ago

Hey, so I haven't thought about this specifically, but DAU divided by MAU, or DAU divided by WAU are pretty standard depending on the usage patterns users would expect with the app (maybe even WAU/MAU if it's an app that would only be used weekly, like idk a weekly shopping app or something).

I do have lots of thoughts about what should be on the mobile dashboard, before PostHog I was a founder of a B2C mobile app startup so I can share what was on our dashboards. It was a freemium app so that'll skew some of my thoughts. Some of these would be impossible to include without e.g. billing data from Stripe/Revenuecat/etc but I'll add them anyway in case we refer back to this issue after data warehouse. In our case these were split across multiple tools.

Ideally these would have breakdowns, the important ones are:

Mobile apps can often get a lot of downloads that just open the app and leave immediately, especially if your ad campaigns are badly set up, so it's good to filter most of the graphs to only users who have done a particular event, e.g. logged in, viewed a certain screen, generally something quite early so as not to exclude real users. The one exception is the conversion funnel, where you do want to start at app open.

P.S. I've definitely missed some things 😅

pauldambra commented 9 months ago

OK, so for our test project we now have this screenshotted dashboard... I don't think the other things can be done without some proper effort. But that ties in with our Q1 goals assuming we get goal 1 and 2 under control

export-mobile-app-analytics

pauldambra commented 9 months ago

interesting lifecycle worked in the browser but not in the export 🙈

pauldambra commented 9 months ago

Ah @marandaneto I realised the drawback with "All events" here... if you have also web events then you don't want "all events" you want "all mobile events"??

pauldambra commented 9 months ago

So I guess "All events where device type is mobile"

marandaneto commented 9 months ago

So I guess "All events where device type is mobile"

Yep, but some SDKs need fixing eg https://github.com/PostHog/posthog-js-lite/issues/135

marandaneto commented 9 months ago

Ah @marandaneto I realised the drawback with "All events" here... if you have also web events then you don't want "all events" you want "all mobile events"??

If it's common that people mix up different SDKs under the very same project, yeah, we'd need to filter per $device_type or something like that eg $lib.

marandaneto commented 7 months ago

https://posthog.com/changelog/2024/mobile-analytics-template-added