A few of you asked me under my last post what happens to a campaign after the 14 days are up. I answered with something vague about "you can restart the round". The truth is that I had never really looked, because until two weeks ago nobody was paying me for a campaign, so nothing depended on the answer.
Then a developer paid me. For anyone who missed the earlier posts: PeerPlay is an app where Android developers test each other's apps so they can meet Google's rule of 12 testers for 14 days. The free tier is reciprocal, you test mine and I test yours. On top of that I built a paid tier I call VIP. The developer pays $24.99 for 15 tester slots or $34.99 for 20. The testers in that tier are people I approved by hand, on a physical device, and they earn $0.05 for every day they open the app for 30 seconds plus a $0.30 bonus at the end, so about a dollar per tester per campaign. I send the money through PayPal myself once someone reaches $5.
My first customer already had a free app on the platform with real testers on it, so I first had to build an upgrade that keeps those testers. That part went fine. The part that did not go fine was me opening the code to answer the question from the comments. What happens at day 14? Nothing. There was no timer for the developer. There was no end date. Each tester had their own 14-day round, and when a tester finished, their app just said "waiting for the developer to restart". The developer got a notification saying "restart it to keep testing going". That restart button paid the tester another round of about a dollar, and the customer had paid nothing for it. With 15 testers that is roughly $15 of my money every time someone pressed one button.
While I was there I found a second one. The $0.30 bonus was paid from the tester's phone on calendar day 14 of their round, not for the number of days they had actually tested. Someone who skipped thirteen days and opened the app on the last one would have collected it. I also fixed an older bug where a repair routine overwrote a tester's total earnings with one app's number and could have erased what they had earned somewhere else. I mention these because I want to be straight about how young this money code is.
What I ended up with is simple to describe. A VIP campaign has one calendar for everyone, starting the day I approve it, and it lasts 14 days. Every tester sees their own day count starting the day they joined, and the days before that are grey, not red, so a late joiner does not look like someone who skipped. But pay follows the campaign calendar. Someone who joins on day 13 is not paid for 14 days, and I do not want them to be. The bonus now needs at least 12 qualified days out of the first 14 and at least one of the last two days. I like that one rule because it handles late joiners without a special case: nobody who joins after day 3 can reach 12. The bonus is paid once, by the server, and the phone no longer pays it at all.
The 12 testers rule creates a problem I had not thought about. Google's clock starts when the twelfth tester opts in, so if the last one joins four days late, the developer's real finish line is four days after mine. That is where a paid extension comes from. For $2.99 on the 15-slot package or $3.99 on the 20-slot one, the developer buys two more days, and the testers earn $0.05 for each of them, with no extra bonus. For me two days costs at most about $1.50 or $2.00 in tester payouts, so it stays profitable. A banner shows up in the developer's stats 48 hours before the end and stays 48 hours after, and after that the app becomes an ordinary free campaign again so nothing is left hanging.
One thing I am not fully comfortable about is that the extension is applied by the developer's own app after the store confirms the purchase, the same way my Boost works. I accepted that for now because the worst case is a few cents of tester pay, and I can see every extension in my admin panel.
For people who sell anything with a fixed term: do you let customers extend in small paid steps like this, or do you push them to renew the whole thing? And where did you find the price for the small step?
Top comments (0)