Hightouch Events provides a range of SDKs across web, mobile, and server-side languages. This step covers the technical implementation of switching from your current event tracking SDK (such as Segment's or Rudderstack's) to Hightouch Events.
Hightouch Events is backward compatible with common tracking APIs like those of Segment and Rudderstack, making the initial code changes straightforward. We'll cover examples below for a couple of languages.
To facilitate a side-by-side comparison and ensure a seamless transition, we
recommend implementing a wrapper function that sends events to both your
current platform and Hightouch. You'll see this in practice in the Javascript
example below.
During this step of the migration, you'll update your instances of event method calls to also call the same Hightouch SDK method.
The example below shows an implementation of a wrapper function that calls the track method of a prior tool and Hightouch Events. Both track calls take the same parameters, and include a migrationId property that enables validation of data during the migration process.
Create similar wrapper functions for other common event types based on their parameters and type signatures. For example, for a identify method in the Browser SDK,
If your codebase historically directly calls Segment's (or another provider's) library to trigger events, use your preferred method for making bulk code changes across your repository or repositories, whether it's using grep / find and sed, find and replace across a workspace in your editor, or other tools to replace track, identify, group, page, and screen calls with the wrapper functions.
Make sure that you don't just update the analytics code with the wrapper function(s), but also update library imports across files that call the new wrapper function.
If you've already implemented wrapper functions and have modified them using the preceding migration examples, you should be all set.
Hightouch Events’ Browser, iOS, and Android SDKs automatically collects a range of information. Read the docs for the full list of fields.
Hightouch Events also automatically migrates anonymous IDs that were previously assigned by Segment or Rudderstack. If a user had an anonymous ID assigned via one of those providers, we'll continue to use the same anonymous ID in Hightouch Events so that user sessions are not interrupted or fragmented by the migration.
Depending on the number of your event sources, your event volume, and whether any power critical downstream services, you can consider implementing a gradual rollout strategy. This can help build the migration team's confidence in Hightouch Events and make the migration process more manageable by constraining event volume and sources in the first migration efforts.
Start using Hightouch Events with a small percentage of your user base or a specific segment. Some organizations migrate a portion of traffic to start with, while others migrate sources related to a particular platform (such as mobile apps) before migrating additional platforms.
Monitor for any issues or discrepancies.
Gradually increase the percentage of users or sources on the new system.
By following these steps, you'll have successfully implemented the Hightouch SDK alongside your existing event tracking system. This dual-tracking approach allows for thorough validation and comparison in the next phases of the migration process.
Event streaming
destinations differ in process. Since streaming events bypass the warehouse
and go straight to their destinations, to avoid sending large volumes of
duplicate events to your streaming destinations you won't want to have events
streaming from your old tool and Hightouch Events at the same time. Instead
you'll set up and turn on your Hightouch streaming destination and turn off
your prior tool's streaming destination at the same time.
In the next section, we'll explore how to define data contracts to ensure robust data governance throughout your migration and beyond.
Ready to get started?
Jump right in or a book a demo. Your first destination is always free.