PostHog / posthog

πŸ¦” PostHog provides open-source web & product analytics, session recording, feature flagging and A/B testing that you can self-host. Get started - free.
https://posthog.com
Other
21.85k stars 1.3k forks source link

iOS Session Recordings #12344

Closed joethreepwood closed 4 months ago

joethreepwood commented 2 years ago

The Session Recording team is currently considering improving PostHog by adding the ability to capture session recordings from mobile devices running iOS. This is part of work documented on their megaissue.

There are many recording tools out there for web, and different tools for mobile -- but few for both. If we could unlock mobile session recordings, even with reduced functionality, it could be huge - especially for self-hosted customers who have few options in this space. Additionally, this would make PostHog more competitive with other session recording tools, such as HotJar.

πŸ—‚ Considered Goals

Please note we are considering React Native and Android recordings as separate issues.

These goals are being considered by the Session Recording Team and we'd love to hear user feedback, as well as ideas for stretch goals or implementation. Please add to this issue!

If you like this idea, please leave a πŸ‘ or ❀️ reaction on this post to vote for it -- your votes and feedback help us prioritize what to work on next!

Hoss3770 commented 2 years ago

a very very good idea

adampiskorski commented 1 year ago

+1 to flutter

joethreepwood commented 1 year ago

I have updated the initial post to reflect that this issue refers to iOS mobile recordings.

We now have separate issues for Android Mobile Recordings and React Native.

jamesefhawkins commented 1 year ago

mini update - we've got a very rough prototype working locally. not ready to share access yet, but progress is being made!

https://user-images.githubusercontent.com/47497682/213481313-dc1c70df-e89c-4a0d-b450-73455e74e64e.mov

https://user-images.githubusercontent.com/47497682/213481467-9a3ca5cd-091f-47c7-bcd5-bba460e19dbc.mov

dbenn8 commented 1 year ago

Would LOVE to see Flutter support (for at least iOS devices) baked into this if there's a path to include it.

MrSnoozles commented 1 year ago

Too excited for this, but I didn't read any more updates lately. Is this still being worked on?

GGGH3 commented 1 year ago

@benjackwhite @joethreepwood Are there updates to this? The prototype looked very promising. It doesn't have to be perfect either. Being able to see where users are struggling on mobile apps would be huge.

marandaneto commented 1 year ago

We're working on Session Replay for Mobile, the goal is to playback sessions to diagnose UI issues, improve support, and get context for nuanced user behavior.

We're interested in understanding how useful it is, the expectations you may have, etc, for example:

We'd like to understand a little bit better so we are sure that we are building a feature that people would love to use.

Any feedback is appreciated, let me know if you'd be willing to trade a bit of your time for being a preview user as soon as it's out.

Thanks.

goodones-mac commented 11 months ago

For our app, 3 things are necessary:

  1. Masking specific views: Image views specifically, of the user's personal images. Images take up a lot of bandwidth, and we don't want to consume that bandwidth or see the user's photos. It would be easy for us to mark these views as views to censor in our code. When we tried it with logrocket and instabug, it didn't work that great :| . Logrocket uses accessibility identifiers that you pass in via configuration.
  2. SwiftUI + UIKit support: our app is almost %100 SwiftUI. Datadog's RUM session recording has no SwiftUI support.
  3. Does not significantly degrade performance: When we tried LogRocket ~8 months ago, it had significant perf problems to the point where we had to abandon it.

Not necessary:

  1. Text redaction beyond maybe password fields: All text in our app is static labels and is not user generated content or specifically private. Login info is already uploaded as part of general user info.

Usage Cases:

  1. UXR studies to see how new things are used, would probably integrate with feature flags and surveys
  2. Debugging tool for engineers

Your Questionnaire:

  1. Is high fidelity important? would be okay if it was a representation of the UI instead of screenshots? Maybe? We would have to see how it looks in practice.
  2. Is masking text (due to PII) a must-have feature? Masking images in our case
  3. How would you define a session (the start and end of the recording)? would you expect that to be done automatically or manually via an API eg PostHog.startRecording and stopRecording? Either or. I think anything that lets you have control over the process would be best vs. something that is always automatic. We already define our own 'sessions' via a session_id
  4. Would you like to sample recordings or do you prefer to have it all? (think about data usage, storage, slow internet). Sample rate is easy to do when you have manual control over starting and stopping.
  5. What's an acceptable performance impact while the recording is running? It can't materially effect usage of the app, which it did in our logrocket case.
  6. Is network inspection useful? (HTTP status code, request, and response payload). Yes, as another kind of log that is attached to the session, but it isn't that mandatory. A general logging product (separate from analytics, like datadog's logging product) is a natural thing to add to posthog in general IMO.
taydr commented 8 months ago

hello! we're excited to use posthog, but need session recording for SwiftUI, so we're stuck with LogRocket. are there any updates on when we can expect this feature?

marandaneto commented 8 months ago

hello! we're excited to use posthog, but need session recording for SwiftUI, so we're stuck with LogRocket. are there any updates on when we can expect this feature?

Sorry late reply, missed this notification, we're currently working on it, and we aim to have a preview by the end of the month. Still unsure about SwiftUI, our approach is a wireframe and it's not working well with SwiftUI, maybe we pivot to screenshots but the performance impact is much higher, will update you as soon as we know more.

laillatoyumi commented 7 months ago

Hi folks, how is it going? I'm currently deciding between UXcam (nice but expensive!) and Posthog. Would love an update on the progress here, even happy to be a beta user :)

NickPuljic commented 7 months ago

Also would love an update!

marandaneto commented 7 months ago

There's an alpha version out at https://github.com/PostHog/posthog-ios/blob/main/USAGE.md#ios-session-recording Expect rough edges since it is the very first alpha, we're currently fixing a few issues on the Android session recording and will get back to it to get iOS out of alpha as well.

marandaneto commented 4 months ago

iOS Session replay is in beta as well https://posthog.com/docs/session-replay/mobile

dbenn8 commented 4 months ago

Do either support Flutter?

On Thu, Apr 11, 2024, 2:35 AM Manoel Aranda Neto @.***> wrote:

There's an alpha version out at https://github.com/PostHog/posthog-ios/blob/main/USAGE.md#ios-session-recording Expect rough edges since it is the very first alpha, we're currently fixing a few issues on the Android session recording and will get back to it to get iOS out of alpha as well.

β€” Reply to this email directly, view it on GitHub https://github.com/PostHog/posthog/issues/12344#issuecomment-2049013524, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACCKEEYPWZQXRVCF53GLNXDY4YVKBAVCNFSM6AAAAAARJEQFSCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANBZGAYTGNJSGQ . You are receiving this because you commented.Message ID: @.***>

marandaneto commented 4 months ago

Do either support Flutter? … On Thu, Apr 11, 2024, 2:35 AM Manoel Aranda Neto @.> wrote: There's an alpha version out at https://github.com/PostHog/posthog-ios/blob/main/USAGE.md#ios-session-recording Expect rough edges since it is the very first alpha, we're currently fixing a few issues on the Android session recording and will get back to it to get iOS out of alpha as well. β€” Reply to this email directly, view it on GitHub <#12344 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACCKEEYPWZQXRVCF53GLNXDY4YVKBAVCNFSM6AAAAAARJEQFSCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANBZGAYTGNJSGQ . You are receiving this because you commented.Message ID: @.>

No, for Flutter follow this issue. Flutter has its rendering engine so it's different and it has to be done from scratch apparently.

marandaneto commented 1 week ago

For reporting issues, just raise a new issue using the bug report template, please share all the context you have including error/stack trace, logs, your SDK config, OS version, etc.