Welcome to part five (of six) in the Getting Started with Amplitude series: Cross-platform instrumentation vs separate platform instrumentation. If you haven't read through the preceding steps yet, please do so before continuing:
- Introduction & getting started
- Instrumentation pre-work: Things to consider before deciding what data to send
- Identifying your users: Requirements for properly tracking your product's unique users
- Event data: How to identify the events or user actions you should track
- User properties and event properties: The attributes you should send to upscale your analytics
- Cross-platform instrumentation vs. separate platform instrumentation: The differences between them, and when you should choose one over the other
- Dive into Amplitude and Snowflake, and explore powerful resources: Use Snowflake with Amplitude to answer key questions via SQL
Amplitude customers often ask if the same API Key should be used for the iOS and Android versions of the same app, or if web and mobile data should be tied together. The answer depends on the kind of apps you have and the kind of analyses you want to do.
In some cases, the app will behave differently on each individual platform—Android, iOS, and web—so your top priority should be to analyze how each one performs on its own. In others, understanding a user's behavior irrespective of the platform is the top priority: you know your users can come from any platform, and you're more interested in a user's actions than the platform they were on when they took those actions.
To help you decide whether you should combine data from various platforms into a single Amplitude project or separate them, let's explore the pros and cons of each option.
When should you do a cross-platform instrumentation?
There are four situations when it makes sense to do a cross-platform instrumentation:
- You expect frequent user crossover between platforms.
- You want to analyze user behavior across platforms as a key focus for your company. (You'll need to collect user IDs for this.)
- You have experience using the same API key in another analytics product.
- You've read and understood the advantages of using the same API keys (found below).
There are two primary advantages to this approach: You can see totals across all platforms in a single unified view; and you can create funnels or retention charts that analyze user behavior across platforms.
When should you do a separate platform instrumentation?
There are two situations where it makes sense to do a separate platform instrumentation:
- Your app acts as a standalone on each platform, and user crossover analysis is not important.
- Your goal is to understand how users are engaging within each platform.
There are several advantages to a separate platform instrumentation approach:
- Platform differences: Even if your app has the same primary functions on iOS and Android, there are slight differences when it comes to how certain actions are tracked (e.g. asking for permissions) that you may want to separate. Any slight differences in the apps themselves (e.g. showing different landing/tutorial screens) will be best managed if separated as well.
- Different update cycles: Instrumentation changes happen all the time, and it's rare for app updates to be released on the same day. This means data and possibly new events from a new version on a certain platform could get mixed in with data and old events on the old version, which would pollute the dashboard and take focus away from the important metrics.
- Difficulty finding errors: Having events from multiple platforms on the same dashboard makes it more difficult to spot errors and bugs in instrumentation and make the necessary fixes.
- Web and mobile are VERY different: The experiences on web and mobile differ, and the kinds of events you will probably want to track will be very different as well.
Always separate production from test data
We recommend creating two API keys for each production project you have. One key should be used for testing and integration, while the other should be used for production data. Keeping testing and production data separate will ensure your metrics accurately reflect how people are using your product. This process should be completed on the test project before pushing to production.
Send data to Amplitude: Resources
For more specific information on how to send data to Amplitude:
- Amplitude SDKs: Find our list of SDKs here.
- Amplitude HTTP API: Use our HTTP API to send server-side event data.
- Segment.io: See Segment / Amplitude Integration for more information.
- mParticle: See mParticle / Amplitude Integration for more information.
When you're ready, continue to the next article in the series—Step 6: Dive into Amplitude, SQL, and Explore Powerful Resources.