A developer created LiveStack GA, an Android app that aggregates real-time active user data from all your Google Analytics 4 (GA4) properties onto a single screen, solving the tedious problem of tracking data across multiple tabs.
Hello WondTech readers! Are you tired of jumping between countless tabs just to check the real-time active users across your different Google Analytics 4 (GA4) projects? You're not alone! One developer, frustrated with this tedious process, decided to take matters into their own hands and build a solution: LiveStack GA. This innovative Android app aggregates your real-time active user stats from all your selected GA4 properties onto a single, constantly updating screen.
What does this mean for you? If you manage multiple websites or apps and rely on GA4, LiveStack GA could be a real lifesaver. Instead of opening five tabs, clicking through dropdowns, and waiting for properties to load, you can now see everything at a glance. This saves you time and effort, making your data tracking much simpler and more efficient.
The developer leveraged modern technologies to build this solution. The frontend was built using Flutter (Dart), which allowed for rapid tweaks thanks to its «hot-reload» feature. Authentication was handled by Firebase Auth and Google Sign-In, and the data itself comes from the Google Analytics Data API. The core logic is straightforward: authenticate the user requesting read-only analytics access, fetch their account summaries, and then continuously poll for the activeUsers metric for the selected properties.
However, building the app was only half the battle. The truly challenging part was getting it published on the Google Play Store. Since the app requests a sensitive OAuth scope (analytics.readonly), it required a strict verification process. The real issue wasn't the API approval itself, but the Play Store App Review. The app was repeatedly rejected for a 'Sign in failed' error. Even though the developer tested it locally on physical devices and emulators, and it worked flawlessly, the problem stemmed from Google's own account security. When reviewers attempted to sign in from unfamiliar IP addresses or unrecognized emulators, Google's security flagged it as a suspicious attempt, requiring additional verification (like an OTP) that the reviewers couldn't provide. This story highlights the unexpected hurdles developers face even after creating great solutions.
What does this mean for you? If you manage multiple websites or apps and rely on GA4, LiveStack GA could be a real lifesaver. Instead of opening five tabs, clicking through dropdowns, and waiting for properties to load, you can now see everything at a glance. This saves you time and effort, making your data tracking much simpler and more efficient.
The developer leveraged modern technologies to build this solution. The frontend was built using Flutter (Dart), which allowed for rapid tweaks thanks to its «hot-reload» feature. Authentication was handled by Firebase Auth and Google Sign-In, and the data itself comes from the Google Analytics Data API. The core logic is straightforward: authenticate the user requesting read-only analytics access, fetch their account summaries, and then continuously poll for the activeUsers metric for the selected properties.
However, building the app was only half the battle. The truly challenging part was getting it published on the Google Play Store. Since the app requests a sensitive OAuth scope (analytics.readonly), it required a strict verification process. The real issue wasn't the API approval itself, but the Play Store App Review. The app was repeatedly rejected for a 'Sign in failed' error. Even though the developer tested it locally on physical devices and emulators, and it worked flawlessly, the problem stemmed from Google's own account security. When reviewers attempted to sign in from unfamiliar IP addresses or unrecognized emulators, Google's security flagged it as a suspicious attempt, requiring additional verification (like an OTP) that the reviewers couldn't provide. This story highlights the unexpected hurdles developers face even after creating great solutions.