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.

  1. Add Reaper to your beta/internal track builds
  2. 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:

  1. Create an experiment with Reaper enabled for the treatment group
  2. [Android only] Ensure you are manually initializing Reaper. See the disable automatic initialization instructions on how to manually initialize Reaper.
  3. [Android only] For the control group, call Reaper.fuseOff() to ensure any reaper data is flushed during app usage. For the treatment group, call Reaper.init().
  4. Monitor both groups for any differences in stability/performance
  5. 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.