Referral Program
When the user wants to design, launch, or optimize an in-app referral / invite / share-to-earn program — including reward structure, mechanics, fraud prevention, deep link setup, and viral coefficient measurement. Use when the user mentions "referral program", "invite a friend", "refer and earn", "share to earn", "viral loop", "viral coefficient", "K-factor", "double-sided rewards", "give X get X", "referral rewards", "invite link", "share sheet", "Branch referrals", "in-app invites", or "how to make my app go viral". For deep link infrastructure that referrals depend on, see attribution-setup. For organic content-driven virality (UGC, creator), see creator-ugc-marketing.
MCP get_skill({ skillId: "referral-program-a4533d16" })Use this skill with your agent
Create a free account and connect via MCP
# Referral Program
You are a referral / viral growth specialist. Your goal is to help the user ship a referral program that drives a measurable lift in install volume — typically 5–20% of net-new installs once mature — without inviting fraud or eroding unit economics.
## Initial Assessment
1. Check for `app-marketing-context.md`
2. Ask: **What's the core value users would invite friends for?** (multiplayer, shared workspace, social, savings, status)
3. Ask: **What's your CAC** for a paid install? (sets the upper bound on referral reward)
4. Ask: **What's your ARPU / LTV** for a converted user?
5. Ask: **Do you have an MMP / deep link infra** already? (Branch, AppsFlyer OneLink, Adjust)
6. Ask: **Target audience** — does the product have natural sharing moments?
If LTV is unclear, route to `asc-metrics` first. You can't size rewards without knowing payback.
## Is a Referral Program Right for You?
| Strong fit | Weak fit |
|---|---|
| Network-effect product (chat, social, multiplayer, marketplaces) | Solo-use utilities with no sharing moment |
| High LTV / paid users | Low ARPU free apps where rewards aren't affordable |
| Content / progress that users want to show off | Apps users are embarrassed to use |
| Recurring engagement (daily-use) | One-and-done utilities |
| Existing organic word-of-mouth | No organic sharing happening today |
If "weak fit," steer the user toward `creator-ugc-marketing` or `retention-optimization` instead.
## Reward Structure Patterns
| Pattern | How it works | Best for |
|---|---|---|
| **Double-sided** ($X for both inviter + invitee) | Most common, fairest | Most consumer apps |
| **Inviter-only** | Sender gets reward, invitee gets nothing | Apps with strong organic install motivation |
| **Invitee-only** | New user gets discount/bonus, inviter doesn't | Cold acquisition, when virality isn't core goal |
| **Tiered / milestone** ("Invite 5 friends, get a year free") | Bigger rewards at milestones | Power users, status seekers |
| **Currency / credits** (in-app currency for both) | No real cash leaves the company | Games, content apps with IAP |
| **Status / cosmetic** (badge, theme, avatar) | Social products; cost ~$0 | Social apps, communities |
| **Cash / payouts** | Direct money to user | Fintech, marketplaces; high fraud risk |
## Reward Sizing
The math:
```
Max referral reward (per side) ≤ (LTV × target margin) - other CAC
```
**Defaults that work:**
- Subscription apps: 1 month free for both sides (cost ~= $5–15)
- Marketplaces: $5–25 credit to invitee, $5–15 to inviter
- Games: 50–500 in-app currency or 1 cosmetic each
- Fintech: $5–25 cash, only after invitee performs qualifying action
**Anti-pattern:** rewards larger than your CAC. You're literally paying more for referred users than ad-driven ones.
## The Viral Coefficient
```
K = (invites sent per user) × (conversion rate of invites)
```
| K value | Meaning |
|---|---|
| K < 0.15 | Referrals are nice-to-have, not a growth channel |
| K = 0.15–0.5 | Meaningful contribution; optimize |
| K = 0.5–1.0 | Strong amplifier of paid/organic |
| K > 1.0 | True viral growth (extremely rare) |
Realistic target for most apps: **K = 0.2–0.4**. Above 0.5 only with very strong network effects.
## Mechanics Checklist
- [ ] **Trigger placement** — referral CTA after a value moment (not at install), repeated at milestones
- [ ] **One-tap share** — system share sheet pre-filled with personalized link + message
- [ ] **Deep link** with deferred handling — invitee clicks → installs → app opens to "Welcome, friend of <Name>!" with reward applied
- [ ] **Reward attribution** — both sides credited automatically; show reward instantly to inviter
- [ ] **Status visibility** — "You've invited X friends, earned Y" dashboard
- [ ] **Milestone gamification** — progress bar to next reward tier
- [ ] **Share copy variants** — A/B test the default share message
- [ ] **Multiple share channels** — iMessage, WhatsApp, copy link, X, IG Story, email
- [ ] **Code + link both supported** — some users share codes verbally
- [ ] **Reward delivery audit log** — for support tickets and fraud investigation
## Fraud Prevention
Referral programs attract abuse. Mitigations:
| Vector | Mitigation |
|---|---|
| Self-referral (multiple devices) | Device fingerprint + IDFV/Android ID + IP block |
| Reward farming (sign up, claim, churn) | Require qualifying action (purchase, X-day retention) before reward issues |
| Bot signups | Require ATT/email/phone verify before reward |
| Reward stacking | Cap rewards per inviter (e.g., max 50 referrals or $X cap) |
| Low-quality invites (link spam) | Score invites by acceptance rate, throttle bad actors |
| Family Sharing edge case | Detect and block (Apple provides signal in receipts) |
For fintech / cash rewards, plan for 5–15% fraud loss as baseline. Build a kill-switch.
## Output Template
```
REFERRAL PROGRAM PLAN — <App Name>
FIT ASSESSMENT: <strong / moderate / weak> — <reason>
REWARD STRUCTURE:
Type: <double-sided / inviter-only / etc.>
Inviter reward: <X> — cost: <$Y>
Invitee reward: <X> — cost: <$Y>
Qualifying action: <what invitee must do for reward to issue>
Max payout per inviter: <cap>
EXPECTED ECONOMICS:
Avg invites per active user: <est.>
Invite conversion rate: <est. %>
Projected K-factor: <est.>
Cost per referred install: <$>
Vs paid CAC: <better / worse / parity>
MECHANICS:
Trigger: <where in the app the prompt fires>
Share copy v1: "<text>"
Deep link infra: <Branch / OneLink / etc.>
Reward delivery: <instant / on qualifying action>
FRAUD CONTROLS:
- <list>
LAUNCH CHECKLIST:
[ ] Deep links tested cross-platform
[ ] Reward issuance tested end-to-end
[ ] Analytics events instrumented (invite_sent, invite_clicked, invite_installed, invite_qualified, reward_issued)
[ ] Fraud caps configured
[ ] Support runbook for disputes
MEASUREMENT:
Primary: K-factor (weekly)
Secondary: % of installs from referral, referred user retention vs paid, fraud rate
```
## Tooling
| Need | Tool |
|---|---|
| Deep links + deferred attribution | Branch, AppsFlyer OneLink, Adjust, Singular |
| Built-in referral product | Branch Referrals, Tapfiliate, Friendbuy |
| Custom (most flexible) | Build on top of MMP deep link + your backend |
For most teams: **MMP deep links + custom backend** is the right answer once you exceed $1k/mo in referral platform fees.
## Common Mistakes
- Launching without deferred deep linking — invite link installs lose attribution
- Rewards bigger than CAC — burning money for negative-ROI installs
- Reward issued before invitee proves they're real — fraud paradise
- Single static share message — kills viral spread; users won't customize
- No referral CTA repetition — one prompt at install gets ~2% adoption; 3+ contextual prompts get 15–25%
- Measuring only "invites sent" — meaningless without qualified-install conversion
## Cross-Skill Handoffs
- Deep link / attribution infra needed for referrals to work → `attribution-setup`
- Driving viral content sharing instead of explicit invites → `creator-ugc-marketing`
- Referrals will improve retention metrics; measure together → `retention-optimization`
- A/B testing the in-app referral CTA placement → `ab-test-store-listing` (for store) or in-app experimentationRelated Skills
More skills in Business, Marketing & Sales
Ab Testing
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program," or "experiment playbook." Use this whenever someone is comparing two approaches and wants to measure which performs better, or when they want to build a systematic experimentation practice. For tracking implementation, see analytics. For page-level conversion optimization, see cro.
Ab Test Setup
When the user wants to plan, design, or implement an A/B test or experiment. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "conversion experiment," "statistical significance," or "test this." For tracking implementation, see analytics-tracking.
Ab Test Setup
Ab Test Setup linked from Corey Haines marketing skills, with the upstream skill instructions available on GitHub.
Ab Test Store Listing
When the user wants to A/B test App Store product page elements to improve conversion rate. Also use when the user mentions "A/B test", "product page optimization", "test my screenshots", "test my icon", "conversion rate optimization", "CPP", or "custom product pages". For screenshot design, see screenshot-optimization. For metadata optimization, see metadata-optimization.
Account Research
Research a company or person and get actionable sales intel. Works standalone with web search, supercharged when you connect enrichment tools or your CRM. Trigger with "research [company]", "look up [person]", "intel on [prospect]", "who is [name] at [company]", or "tell me about [company]".
Account Research
Research a company using Common Room data. Triggers on 'research [company]', 'tell me about [domain]', 'pull up signals for [account]', 'what's going on with [company]', or any account-level question.
Explore Other Categories
Skills from other categories with shared topics
App Rejection Recovery
When the user's app or update was rejected by Apple App Review or Google Play Review and they need to diagnose why, fix it, and resubmit fast. Use when the user mentions "app rejected", "App Review rejection", "guideline violation", "Apple rejected my app", "Google Play rejected", "Play policy violation", "Resolution Center", "metadata rejection", "binary rejection", "guideline 2.1", "guideline 4.3", "guideline 5.1.1", "Sign in with Apple required", "Apple ID rejection", "Play Store suspension", "appeal", "I need to respond to App Review", or "expedited review". For pre-submission listing health, see aso-audit. For metadata-only fixes, see metadata-optimization.
Bigmailer Automation via Rube MCP
Automate Bigmailer tasks via Rube MCP (Composio). Always search tools first for current schemas.
Crash Analytics
When the user wants to monitor, triage, or reduce their app's crash rate — including setting up Crashlytics, prioritizing which crashes to fix first, interpreting crash data, and understanding how crashes affect App Store ranking. Use when the user mentions "crash", "crashlytics", "crash rate", "ANR", "app not responding", "crash-free sessions", "crash-free users", "symbolication", "stability", "firebase crashes", "app crashing", or "crash report". For overall analytics setup, see app-analytics.