How I Built a Referral Program to Find Android Testers
Short answer PeerPlay's referral program pays $2 once the referred developer registers their own app, gets five separate testers with at least three active days each, and puts in three testing days themselves. Payouts are reviewed by hand at first, because an earlier bug had already left wallet balances writable straight from a developer's own device. My referral program paid out exactly zero…
PeerPlay, an Android app developer, created a referral program to attract testers for their applications. The program offers $2 to the referrer once the referred developer registers their own app, gets five testers who actively test the app for at least three days each, and contributes three testing days themselves. The program initially faced issues, with payouts amounting to zero dollars for several months.
The main problem was that the invite button pointed to the wrong web address without any parameters to identify the referrer. Despite this, PeerPlay built a second invite button, but it also linked to a different domain and lacked a referral parameter. The team realized the issue only after noticing that developer balances could be written directly from a device, leading to inconsistencies in payouts.
To avoid this, PeerPlay fixed the link and built the payout mechanism. The payout requires the referred developer to register their app, get five testers to use it for three days each, and contribute three testing days themselves. Only then is the $2 reward created and reviewed manually for the referrer's first three payouts. After three successful approvals, payouts start auto-approving.
The program uses Android's Install Referrer API to track referrals, as deep links only work if the app is already installed, missing new users. There is also a monthly payout cap that is not visible to anyone, and a risk score system to flag potential fraud, such as shared devices or reused payout details.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.