Hi everyone,
I’m working on adding Amplitude to a single mobile application serving multiple countries. Inside the app, users are shown a country selector panel (e.g., Egypt, Turkey, UAE, etc.), which determines the localized experience they will receive — each country has its own UX flow and logic.
The client wants to track users from Egypt and Turkey only.
We considered using separate Amplitude projects for Egypt and Turkey as a way to isolate data between markets — but this is just one approach we’re evaluating, and we’re open to other suggestions if there are cleaner or more scalable alternatives.
The challenge:
- The country selection occurs after the app is launched.
- Some users never explicitly select a country, meaning we can’t rely on an event like
country_selected
alone. - We want to ensure clean separation of data by country without losing early-session activity.
Our questions:
- Is it recommended (or supported) to dynamically switch Amplitude projects at runtime based on user-selected country within the same app install?
- What is the best approach to initializing Amplitude when the country is not yet known at app launch?
- Would this flow be valid:
- Initialize Amplitude with a default project for early session behavior.
- When the user selects Egypt or Turkey, re-initialize Amplitude with the corresponding project API key.
- In cases where the user never selects a country, how should we handle routing? Should we fallback to a default project, or consider a unified project with a country-based user property?
Goal:
We want to maintain data isolation between Egypt and Turkey (via separate projects if possible), but also want to preserve session context and early behavior tracking before a country is selected.
If there are other, more robust ways to structure this, whether that’s using a single project with strong property segmentation, or managing ingestion differently, we’d love to hear your guidance.
Thanks in advance.