Skip to content

Commit 5360936

Browse files
authored
Mobile SR inaccuracies on .startRecording and Marissa support FAQs (#1895)
* Marissa changes for support faqs * Correcting inaccurate info on .startRecording on mobile * Merging two plan tables into one * Adding more context on growth plan * Adding more info on CDP compatibility for mobile SR * Wording on overage rates * Update session-replay-web.mdx * Update session-replay-android.mdx * Update session-replay-ios.mdx * Update session-replay-android.mdx
1 parent 9f2f5af commit 5360936

File tree

5 files changed

+81
-39
lines changed

5 files changed

+81
-39
lines changed

pages/docs/session-replay.mdx

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,26 +8,17 @@ While analyzing customer journeys using Mixpanel's analytics, you can identify *
88

99
## Plan Availability
1010

11-
Session Replay is available for customers on Free, Growth, and Enterprise plans:
11+
Session Replay is available for customers on Free, Growth, and Enterprise plans. Customers must be on the latest Mixpanel plans to access free replays.
1212

13-
| Plan | Replay Allowance |
14-
|------------|--------------------------------------------------------------------------|
15-
| Free | 10k free Replays per month |
16-
| Growth | 20k free Replays per month |
17-
| Enterprise | 20k free Replays per month ([additional Replays available as an add-on](https://mixpanel.com/pricing/))|
18-
19-
Customers must be on the latest Mixpanel plans to access free replays.
20-
21-
- For customers on an existing **Free** plan:
22-
- Switch your plan to the latest Free plan, which includes 1M monthly events and 10k session replays. You can make this switch directly from the [pricing page](https://mixpanel.com/pricing/).
23-
- For customers on an existing **Growth** plan:
24-
- You're on the latest plan if you purchased or edited your plan after April 2024. If you are not sure if your organization is using the latest plan, you confirm on the pricing page - if you see "Make the Switch" on the Growth plan, then you are on an older version.
25-
- You can make the switch to our latest plan directly from the [pricing page](https://mixpanel.com/pricing/).
26-
- Enterprise customers should contact their Account Manager to determine their plan status.
13+
| Plan | Replay Allowance | How to Access |
14+
|------------|-------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------|
15+
| Free | 10k free Replays per month | Switch to the latest Free plan (includes 1M monthly events + 10k replays) via the [pricing page](https://mixpanel.com/pricing/). |
16+
| Growth | 20k free Replays per month | You're on the latest plan if you purchased or edited your plan after April 2024. If you are not sure if your organization is using the latest plan, you confirm on our [pricing page](https://mixpanel.com/pricing/) - if you see "Make the Switch" on the Growth plan, then you are on an older version. |
17+
| Enterprise | 20k free Replays per month | Contact your Account Manager to determine your plan status. |
2718

2819
## Implementation
2920

30-
Session Replay is supported on three platforms: Web, iOS, and Android. You can use Session Replay with CDPs (e.g., Segment and mParticle) through the Web platform.
21+
Session Replay is supported on three platforms: Web, iOS, and Android. You can use Session Replay with CDPs (e.g., Segment and mParticle) on both Web and Mobile.
3122

3223
See our developer guides on implementing Session Replay for these platforms below:
3324

@@ -94,7 +85,7 @@ The Replay Feed on the left of the player also allows you to:
9485
## FAQ
9586

9687
#### What happens when I reach my Session Replay limit?
97-
Customers who have purchased the Session Replay add-on will be billed for replays ingested beyond the purchased amount at the ala carte rate. Customers using Session Replay without purchasing the add-on (e.g., those using complimentary replays included with the Free, Growth, or Enterprise plans) will be unable to view replays once they reach the data allowance, unless they upgrade. We will send email notifications to [organization Owners and Billing Admins](/docs/orgs-and-projects/roles-and-permissions#organization-roles) as your projects approaches the data allowance of your subscription plan.
88+
Customers who have purchased the Session Replay add-on will be billed for replays ingested beyond the purchased amount at your per-unit rate. Customers using Session Replay without purchasing the add-on (e.g., those using complimentary replays included with the Free, Growth, or Enterprise plans) will be unable to view replays once they reach the data allowance, unless they upgrade. We will send email notifications to [organization Owners and Billing Admins](/docs/orgs-and-projects/roles-and-permissions#organization-roles) as your projects approaches the data allowance of your subscription plan.
9889

9990
Mixpanel reserves the right to stop ingesting replays once a customer collects replays beyond their purchased/allocated amount. To minimize disruption to your team, we recommend monitoring your data usage in the organization settings and working with your Account Manager (if applicable) to ensure you have the right plan for your needs.
10091

@@ -122,7 +113,19 @@ You will not see the "View Replays" button if your organization is on an older p
122113

123114
#### Can I use Session Replay with a CDP?
124115

125-
You can use Session Replay with CDPs (e.g., Segment and mParticle) for the web platform. Your app must include the Mixpanel Javascript SDK, with Session Replay enabled. Learn more in the developer guide [here](/docs/session-replay/implement-session-replay/session-replay-web#session-replay-with-a-cdp).
116+
You can use Session Replay with CDPs (e.g., Segment and mParticle) on both web and mobile.
117+
118+
| Platform | Guidance |
119+
| --- | --- |
120+
| Web | Your app must include the Mixpanel Javascript SDK, with Session Replay enabled. Learn more in the developer guide [here](/docs/session-replay/implement-session-replay/session-replay-web#session-replay-with-a-cdp). |
121+
| iOS | Works with CDPs, but you must install the Mixpanel Session Replay SDK in your app. Read more in our [iOS implementation guide](/docs/session-replay/implement-session-replay/session-replay-ios). |
122+
| Android | Works with CDPs, but you must install the Mixpanel Session Replay SDK in your app. Read more in our [Android implementation guide](/docs/session-replay/implement-session-replay/session-replay-android). |
123+
124+
### How does Session Replay work differently on web versus mobile?
125+
126+
Session Replay works differently on web versus mobile in Mixpanel:
127+
- **Web**: Captures DOM changes to reconstruct user interactions, tracking elements, clicks, and navigation. This provides an event-based replay of user activity.
128+
- **Mobile**: Captures actual screen pixels since native apps don't use a DOM. This visual approach records all on-screen activity as it appears to users, including scrolls, carousels, and auto-scrolling elements.
126129

127130
#### How can I estimate how many Replays I will generate?
128131

pages/docs/session-replay/heatmaps.mdx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import { Callout } from 'nextra/components'
22

3-
# Heatmaps (Beta)
3+
# Heatmaps for Web (Beta)
44

55
<Callout type="info">
6-
Heatmaps are currently in private, closed beta. For early access, please contact your Account Manager.
6+
Heatmaps for Web are currently in private, closed beta. For early access, please contact your Account Manager.
77
</Callout>
88

99
## Overview
@@ -37,10 +37,12 @@ Heatmaps only capture data during sessions with recorded replays. If a page has
3737

3838
### Implementation
3939

40-
Ensure you have Session Replay set up(see [developer guide on implementing Session Replay](/docs/session-replay/implement-session-replay/session-replay-web)), with the `record_heatmap_data` set to `true`.
40+
Ensure you have Session Replay set up using our Javascript SDK (see [developer guide on implementing Session Replay](/docs/session-replay/implement-session-replay/session-replay-web)), with the `record_heatmap_data` set to `true`.
4141

4242
Clicks recorded using `record_heatmap_data` will only capture clicks while an a session recording is in progress. These clicks are sent as `$mp_click` and will not be counted against your plan data allowance.
4343

44+
Currently, heatmaps are not available on our Mobile Session Replay SDKs.
45+
4446
**Example Usage**
4547

4648
```javascript Javascript

pages/docs/session-replay/implement-session-replay/session-replay-android.mdx

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { Callout } from 'nextra/components'
33
# Implement Session Replay (Android)
44

55
<Callout type="info">
6-
Android Session Replay is currently in invite-only Private Alpha. Please reach out to your Account Manager for any questions about Session Replay or Android Alpha access.
6+
Android Session Replay is currently in invite-only Private Alpha. Please reach out to your Account Manager or our Support team for any questions about Session Replay or Android Alpha access.
77
</Callout>
88

99
<Callout type="warning">
@@ -94,6 +94,8 @@ To enable Session Replay and set your sampling rate, create a `SessionReplayConf
9494

9595
Start with a low sampling rate, then adjust according to your specific analytics needs.
9696

97+
Recording only starts if the sampling check passes and you explicitly call startRecording(). Recording does not start automatically.
98+
9799
**Example Usage**
98100

99101
```kotlin
@@ -105,13 +107,15 @@ MPSessionReplayConfig(
105107

106108
### Manual Capture
107109

108-
To programatically start and stop replay capture, use the `.startRecording()` and `.stopRecording()` methods. This is optional, and can be used primarily to programmatically start and stop recording, or exclude something specific from recording.
110+
To programatically start and stop replay capture, use the `.startRecording()` and `.stopRecording()` methods.
109111

110112
#### Start Capturing Replay Data
111113

112-
Call `.startRecording()` to force recording to begin, regardless of the `recordSessionsPercent` init option. The recording automatically stops when the app goes to the background. Therefore, if you want to continuously record the replays, you will need to restart the replay once the app becomes active again.
114+
Replay recording does not start automatically — you must explicitly call `.startRecording()` after the random sampling check passes. Note: this is planned to change in upcoming releases, as we move towards recording beginning automatically if the sampling check passes.
115+
116+
Recording automatically stops when the app goes into the background, so you’ll need to call `.startRecording()` again when the app becomes active to begin capturing replays again.
113117

114-
This will have no effect if replay data collection is already in progress.
118+
.startRecording() will have no effect if replay data collection is already in progress.
115119

116120
**Example Usage**
117121

@@ -122,7 +126,7 @@ MPSessionReplay.getInstance()?.startRecording()
122126

123127
#### Stop Capturing Replay Data
124128

125-
Call `.stopRecording()` to stop any active replay data collection. The SDK automatically stops recording when the app goes to the background.
129+
Call `.stopRecording()` to stop any active replay data collection. The SDK automatically stops recording when the app goes to the background. Therefore, you will need to restart replay capture once the app becomes active again.
126130

127131
This will have no effect if there is no replay data collection in progress.
128132

@@ -133,13 +137,13 @@ This will have no effect if there is no replay data collection in progress.
133137
MPSessionReplay.getInstance()?.stopRecording()
134138
```
135139

136-
#### Example Scenarios
140+
#### Example Use Cases for Manual Capture
137141

138142
| Scenario | Guidance |
139143
| --- | --- |
140144
| We have a sensitive screen we don't want to capture | When user is about to access the sensitive screen, call `.stopRecording()`. To resume recording once they leave this screen, you can resume recording with `.startRecording()` |
141-
| We only want to record certain types of users (e.g. Free plan users only) | Using your application code, determine if current user meets the criteria of users you wish to capture. If they do, then call `.startRecording()` to force recording on |
142-
| We only want to users utilizing certain features | When user is about to access the feature you wish to capture replays for, call `.startRecording()` to force recording on |
145+
| We only want to record certain types of users (e.g. Free plan users only) | Using your application code, determine if current user meets the criteria of users you wish to capture. If they do, then call `.startRecording()` to begin recording |
146+
| We only want to users utilizing certain features | When user is about to access the feature you wish to capture replays for, call `.startRecording()` to begin recording |
143147

144148
### Additional Configuration Options
145149

@@ -194,7 +198,7 @@ Server-Side Stitching allows you to easily watch Replays for events that were no
194198

195199
It works by inferring the Replay that an event belong using the Distinct ID and time property attached to the event. This is especially useful if you have events coming in from multiple sources.
196200

197-
For example, let's say a user with Distinct ID ABC has a Replay recorded from 1-2pm. Two hours later, an event was sent from your warehouse with a timestamp of 1:35pm with Distinct ID ABC. Server-side Stitching will infer that the event should belong in the same Replay.
201+
For example, let's say a user with Distinct ID "ABC" has a Replay recorded from 1-2pm. Two hours later, an event was sent from your warehouse with a timestamp of 1:35pm with Distinct ID "ABC". Server-Side Stitching will infer that the event should belong in the same Replay.
198202

199203
To ensure Server-Side Stitching works, call [`identify()`](/docs/tracking-methods/sdks/android#identify) from the client-side using our SDK with the user's `$user_id`. This guarantees that events generated from both the client-side and server-side share the same Distinct ID. Learn more about [identifying users](/docs/tracking-methods/id-management).
200204

@@ -315,3 +319,16 @@ Yes, standard XML-based apps are fully supported while Jetpack Compose apps have
315319
#### Does it support Java based app?
316320

317321
Yes, Java and Kotlin are fully interoperable.
322+
323+
#### Does Mobile Session Replay work with my CDP?
324+
Yes — but only if the Mixpanel Session Replay SDK is installed client-side.
325+
326+
Mobile Session Replay is compatible with CDPs like Segment and mParticle, but you must integrate the Mixpanel Session Replay SDK directly in your mobile app. Without it, replays won’t be captured.
327+
328+
Key Considerations:
329+
- If you’re using Segment server-side, session replays will not be recorded, since the SDK isn’t running in the app.
330+
- For Segment’s client-side Analytics-Swift SDK, you can use Segment’s Plugin Architecture to enrich events with the $mp_replay_id property, ensuring they’re linked to their replays.
331+
- The Mixpanel Session Replay SDK is separate from the standard Mixpanel tracking SDK. You do not need the regular SDK, but the Replay SDK must be configured with a distinct_id and project token.
332+
- Events can be linked to replays either by:
333+
- Manually attaching the current replay ID to each event
334+
- Using server-side stitching after the fact

0 commit comments

Comments
 (0)