Rollout Strategy
Best practices for rolling out Reaper to your users
Rollout Strategy
When adding Reaper to your application, Emerge recommends following a phased rollout approach to ensure a smooth integration.
Phase 1: Internal Testing
Start by adding Reaper to an internal build. You can follow the setup instructions for iOS or Android.
Once added and a build is uploaded to Emerge, check the Reaper versions page to ensure reports are successfully being received.
Phase 2: Alpha/Beta Testing
Once internal testing is successful, Emerge recommends rolling out to a smaller test track, like an Alpha or Beta channel, to ensure Reaper is working as expected.
- Add Reaper to your beta/internal track builds
- Let run for a few days to ensure stability and that reports are successfully being received.
Phase 3: Production Rollout
After successful beta testing, Reaper can be rolled out to a full production release.
Experiment-Based Rollout
Reaper is well tested and has been in production with some of the largest apps in the world. Nonetheless, rolling out as part of an experiment can help de-risk the SDK's rollout.
If preferred, Reaper can be rolled out as part of an experiment:
- Create an experiment with Reaper enabled for the treatment group
- [Android only] Ensure you are manually initializing Reaper. See the disable automatic initialization instructions on how to manually initialize Reaper.
- [Android only] For the control group, call
Reaper.fuseOff()
to ensure any reaper data is flushed during app usage. For the treatment group, callReaper.init()
. - Monitor both groups for any differences in stability/performance
- Gradually increase experiment exposure
Platform-Specific Considerations
iOS
- Reaper is a simple SDK integration with minimal overhead. Unlike Android, there is no code changes required for Reaper to work.
- Monitor network requests to
api.emergetools.com/report
to validate data flow
Android
- Reaper instruments your code with breadcrumb logging. Because of this, it's not possible to have an experiment group with Reaper fully excluded from the app, as the logging is present at a bytecode level.
- When
Reaper.fuseOff()
is called, any reports are flushed from the system and all future logs will no-op. - A Reaper report is sent to Emerge when the app is backgrounded on a user's device. This report can be monitored using the Logcat.
Updated 7 days ago