DEV Community

Cover image for I wasted 6 weeks on Google Play's closed testing. Here's what finally worked.
Chakshu Software Creation
Chakshu Software Creation

Posted on

I wasted 6 weeks on Google Play's closed testing. Here's what finally worked.

I need to vent. And maybe save someone else from the same nightmare.

The backstory

I'm a solo Android dev. I've been working on my app for about 4 months — evenings, weekends, the usual indie grind. I finally got to the point where I was ready to publish on the Play Store.

Then I hit the closed testing wall.

If you haven't dealt with this yet — Google now requires you to run a 14-day closed test with at least 20 testers who are actually engaged. Not just opted in. Not just installed once. Google tracks whether your testers are genuinely using your app over those 14 days.

Sounds reasonable, right? It is. Until you try to find 20 people who will reliably open your app every day for two weeks.

Round 1: Friends & family

I asked everyone I know. Got about 12 people to opt in. Most of them installed the app on Day 1. A few opened it again on Day 2. By Day 5, maybe 3 people were still using it.

The rest? Life happened. They forgot. They got busy. One person told me "yeah I opened it" — their phone had auto-uninstalled it because of storage.

Day 14. I submitted for production access. Rejected.

"Your testers did not show sufficient engagement..."

Cool. Two weeks wasted.

Round 2: Reddit & Discord

I went to r/AndroidDev, various Discord servers, those "I'll test yours if you test mine" threads. Got 25 people to sign up this time.

The problem? Most of them did exactly what I feared — installed once to bump their own numbers, then removed the app. I was in an illusion that people were testing. They weren't.

Day 15. Submitted again. Rejected again.

Same message. Testers not engaged.

Another two weeks gone. At this point I've spent over a month just trying to get past closed testing. Haven't written a single line of new code.

The actual problem

Here's the thing that drove me crazy — I had zero visibility. I couldn't tell:

  • Who actually opened the app today?
  • Who installed it once and forgot?
  • Is anyone even using it on Day 7, 8, 9?
  • How long are sessions lasting? 2 seconds or 2 minutes?

I was flying blind. You submit testers, pray for 14 days, and find out the result. That's it. No dashboard, no analytics, no feedback loop.

I could've replaced inactive testers on Day 3 if I'd known they weren't opening the app. Instead I waited until Day 15 to find out I failed.

What I ended up using

While doom-scrolling GitHub one night (as you do), I stumbled on this thing called TestPulse. It's basically a small SDK you drop into your app during the testing phase that tracks tester engagement — sessions, screen visits, duration, which testers are active, which ones ghosted.

It has a web dashboard where you can see all of this in real time.

I was skeptical. But at this point I was desperate. Adding it was stupidly simple:

When testers open the app for the first time, a little dialog asks for their name so you can identify them. After that, the SDK silently tracks sessions, screens, and duration. Data gets batched locally and synced to the backend every 60 seconds.

Round 3: The one that worked

I built a new APK with TestPulse included, uploaded it to closed testing, and recruited testers again — this time from a mix of friends and online communities.

The difference? I could actually see what was happening.

  • Day 1: 22 testers installed. 20 opened it. Good start.
  • Day 2: 18 testers active. The dashboard showed 2 people hadn't opened it since Day 1.
  • Day 3: Those 2 still inactive. I messaged them on WhatsApp — one had phone issues, one had just forgotten. Both opened it that day.
  • Day 5: 3 testers had dropped to < 30 second sessions. I could see they were just opening and closing the app. I reached out and asked them to actually try the features.
  • Day 7: I could see the engagement graph trending in the right direction. The dashboard gave me an "engagement score" which was at 78/100 — labeled "Good."
  • Day 10: One tester went inactive. I recruited a replacement immediately instead of waiting until Day 15 to find out.

Day 14. Submitted for production access.

Approved.

I literally teared up. Not because the app was approved, but because this nightmare was finally over.

What I wish I'd known earlier

The real issue was never about finding 20 testers. It was about knowing which testers are actually engaged so you can take action.

A few things I learned:

  1. Most people won't test your app for 14 straight days. It's not malicious — they just forget. Life happens.

  2. You need visibility, not more testers. 15 engaged testers beat 30 ghost testers every time.

  3. Google checks DAU (Daily Active Users), session length, and screen navigation. A tester who opens your app for 2 seconds and closes it doesn't count as "engaged."

  4. Replace inactive testers EARLY. If someone hasn't opened the app by Day 3, they're not coming back. You need to know this on Day 3, not Day 15.

  5. The tester exchange communities (Reddit, Discord) are hit or miss. Some people genuinely help. Many just install once to get you to reciprocate, then uninstall. Without tracking, you can't tell the difference.

For Flutter devs

If you're wondering — yes, it works with Flutter too. Flutter apps are regular Android apps under the hood. You add the dependency in android/app/build.gradle.kts (NOT settings.gradle.kts — that doesn't work for Flutter) and the API key in the Android manifest. The SDK auto-tracks sessions. For per-screen tracking you'd need to call logScreen() manually since Flutter uses a single Activity, but honestly session tracking alone was enough for me to pass.

The removal

After I got production access, I just removed the gradle dependency and the manifest meta-data tag. Two lines deleted, build the release APK, done. No leftover code, no cleanup needed.

You could also use debugImplementation instead of implementation so it's automatically excluded from release builds. I wish I'd done that from the start.

Would I recommend it?

I'm not going to tell you this is the only way or the best way. I'm just telling you what worked for me after failing twice and wasting 6 weeks.

If you're about to start closed testing — or worse, if you've already been rejected — just having visibility into who's actually testing changes everything. I went from blind hope to informed action, and that made the difference.

The repo is here if you want to check it out. The dashboard is free to use.

Good luck with your closed testing. You're going to need it. But hopefully not as much luck as I needed. 😅


Has anyone else dealt with this Google Play closed testing rejection loop? How did you handle it? Would love to hear other approaches in the comments.

Top comments (0)