An Enormous List of Referral Tactics

I ran growth at Dropbox where I tested dozens of optimizations on the referral program. I now make YesGraph, which uses social graph analysis to help companies grow — so I constantly talk to companies about optimizing invite flows.

This post puts together a big list of things you should consider for your referral program. If you like it, check out YesGraph and also our class on driving growth.

#1 Set Expectations

Adding a referral program can be easy, but optimization can be a lot of work. So set expectations.


One problem here is growth experts that wag on about k-factor and other metrics that imply everything is going to blow up.

Most apps I’ve seen that pop spectacularly with virality are actually sacrificing product quality and end up coming back down to earth fast. These is even a name for it: the dreaded shark fin graph.

The good news is that there are a lot of tools that can help reduce the cost of achieving high performance. That’s why YesGraph is here.

In our growth advice, we focus a lot on triage. You should take any bit of advice as a suggestion to include in your triaged growth roadmap and be wary of any posts saying “do these 32 things to grow”. That said, read on to see the rest of our 32 tactics.  ?

#2 Measure Happiness First

Before adding a way to tell their friends about your product, measure if they people like your product.

There is even a survey you can run that matches this well. The NPS survey asks “How likely are you to recommend this product to a friend? Why?”. That is literally what a referral program is asking users to do. Another way to measure is with behavior, namely retention. If people are retained, they like your product. We wrote more about this in our post: “3 Things You Must Do Before Building a Referral Program”

#3 Establish Basic Metrics

Your main performance measurement is growth. But you also need to measure your funnel.

The reason is to know exactly where you should focus your optimization efforts. This measurement and optimization theme is found throughout this post.

I like to look at these three:

  • The percentage of users inviting
  • The number of invites sent
  • The signups per invite

Read more in this post: “The Top 3 Actionable Metrics for Any Viral Flow”

The basics are important because they tell you where to focus your optimization. It might be that conversion to signup is low for invitees. It might be that people don’t even know you have a referral program.

#4 Make a Sharable Link

The first step to implement a referral program is to record the inviter when an invitee signs up.

Here are some example links from a few programs:


This is obviously really easy to implement. It’s just a url with some tracking. There are different ways to do it, and we’ll get to more of the tracking details later in this post.

#5 Reflect Invite Status

Users of referral programs want to know whether an invitee signed up. You’re tracking it anyway, so show them.

This kind of reflection of status also helps motivate more invitations. It reduces load on your support team because so many questions will be about status and rewards. All it needs to be is a list of invitees and signups and what state they are in. Here are my Wealthfront invites.

reflect status

#6 Add a Symmetric Bonus

Symmetric rewards help lower the social cost of sending a message to someone.

I think people misunderstand what is going on here. Sure, getting a discount to a service is wonderful. Your users will probably love it. But for people that have never used your product, it might be hard to understand the value of the bonus.

The real reason an invitee signs up is because they got invited. That was the whole point. The bonus is marginal.

It’s the sender that is more interesting. They probably want the reward more, and making it symmetric means they feel like they are giving a gift. I’d like to see this rigorously tested to really know, and it probably varies from product to product.

#7 Avoid Money

Dropbox’s referral bonus of extra space is a wonderful virtual currency that avoids cents.

Just look at the math on Dropbox’s pricing. 2GB is Free. 0.5GB for a referral bonus. Paid is $10/mo at 1000GB. Compared to paying for a year, that 0.5GB is worth less than $5.

This is a cultural issue, but $5 doesn’t seem as much as 500MB. Plus you can invites lots of people and get 16GB, which seems enormous compared to 2GB.

The reason the GB and MB work is because they aren’t $$. This kind of virtual currency helps insulate users from counting pennies.

One thing going on here is market vs social norms. If you ask a lawyer to do pro bono work for a good cause, they might say yes. If you ask to pay them $10/hr instead of their normal $300/hr rate, they are more likely to refuse. Social norms help anchor us in interpersonal relationships. Once you bring in money, market norms start to take over.

If you’re asking users to invite friends, this matters. A virtual currency can be irrationally valued, like Dropbox space. And avoiding dollars and cents helps people avoid thinking they are shilling their friends for spare change.

Airbnb is a little different. Their average purchase is very high, in the hundreds of dollars. Users buy multiple times, so Airbnb is making $1000s. So their referral program is at a higher value, $75 for hosts and $25 for guests. That’s enough to start to be motivating. Uber’s driver referral program is even higher.

#8 Avoid Initial State Downer

Always consider your products initialization state. For referral programs, the mistake is a big fat ZERO.

The copytext often literally says “you’ve earned $0” as a headline. For an initialization state, talk about what could be there. For Dropbox’s referral program, you’re the rocketship on the way to the 16GB moon.

bonus space

You don’t need a cute drawing though. Just change your copy text to be optimistic.

#9 Track By Channel


You should track performance of referrals by the channel where the invite links are shared.

I see the mistake of not tracking all the time. It’s obvious because there is no tracking data in the link itself. The pattern will just be

Operationally, you know where to focus your optimization by looking at what is working and what isn’t.

The good news is that YesGraph is working on making this far easier for the web, building a one-line flow to add all these channels. Read more here.

#10 Channel: Global Link

global link

Call out the actual link to share because it gives users control of where they share it.

Often referral programs will hide the invite link, but that forces users to share on the channels you’ve created. Giving the user control means those with initiative will use the channel that is best for them, be it Facebook or Craigslist Missed Connections.

One detail here: make copy and paste easy. This will require a bit of flash to work. That flash is going to be a headache and eventual security vulnerability, but do it anyway.

#11 Channel: Social Sharing

Static social sharing links are the incredibly easy to add.

social sharing

You can optimize each of these channels individually, and you should track how those platforms evolve. You can look at http referrer traffic to your landing pages to see if people are using a channel you don’t directly support. You should definitely test the copy of the actual message sent (like the tweet you use by default).

#12 Channel: Direct Email

Make it easy to share a referral invite by typing in an email directly.

direct email

These will be the highest converting invites of any channel because the filter to remember a friend’s email is incredibly high. You’ll want to focus a lot more on email once you look at the numbers here.

A common mistake here is making the input too rigid. You want to allow someone to copy and paste some blob of contacts. Just accept any input and parse out any valid emails. Users are lazy, and you should make it easy for them.

#13 Channel: Address Book + Suggest Invites

The most successful channel for every invite flow is the bulk contact importer.

The reason is that selecting friends from a list is far easier than remembering emails. So users select a lot more contacts.

Some apps have “select all”, but I think this ends up tricking users to send more invites than they expect. You’ll get marked as spam and your higher converting email channels will suffer.

The solution is to use YesGraph. Check out this example from Paribus, an early YesGraph user. YesGraph filters and recommends the most relevant contacts, and Paribus by default selects the top recommendations. Because YesGraph increases signal to noise, Paribus can dramatically increase their referral program performance.

paribusThis is all true on mobile as well, but the contacts come from the mobile address book. YesGraph’s iOS SDK make building this feature much easier. Mobile brings other issues too, like how you should send SMS messages.

YesGraph iOS SDK 100

#14 Channel: Local Messaging Services

On mobile, a user might have a niche messaging app that are ideal for that user.

local messaging

Take advantage of this by testing inclusion of those channels. This might mean including a link just for that app. On the web, this manifests itself with the long tail of email providers to import contacts.

#15 Put Inviter’s Face on Landing Page

Customize landing pages with the inviter’s face and name because people just love faces.

It must be innate, because the stats here are just crazy. You should always seek to optimize your onboarding, but referral programs have the edge because the inviter is a big part of the experience.

The example below is from Airbnb. That handsome mug converts like crazy. ?

airbnb landing

#16 Mobile Custom Landing Pages

Custom mobile landing pages are less common but just as important as on the web.

The mobile onboarding experience can be a big of a mess:

  • Get a link
  • Click to a web page
  • Enter your phone number
  • Get an SMS
  • Go to the app store
  • Open up the app
  • Fill out a fat form

Anything you can do to make the pull of the app stronger or the experience smoother is a must to improve conversion rates. The specific flow that works best depends on your app.

For example, you might want web registration and then promotion of your app via email or phone number. Maybe you want to forward all web traffic to the app store and hope your landing page is enough to convert. Traffic on mobile vs on the web is probably different too.

But to get mobile pages to be customize by referral links, you need to use deep linking. This allows for a custom experience in the gap between clicking a link, installing from the app store, and opening the app. There are plenty of tools to help here, like Branch Metrics and Yozio.

We have something in the works at YesGraph for this, but it isn’t quite ready yet. In short, we can show a hell of a lot more of those clickable faces. Register to get updates on this here.


#17 Pre-fill Registration Forms

If you already have information about the invitee, make the registration experience easier by pre-filling the right fields.

dropbox pre-fill

Apps don’t do this enough, and it isn’t clear why. You see this a lot with Facebook connect, where the user hands over a bunch of information and the app asks for it again.

A general conversion rate optimization tactic is to require less from the user to complete the conversion. It applies to lots of parts of your site, and to your referral registration page too.

#18 Measure with Comparable Metrics

To understand channel performance, break down the stats to have a common denominator.

Let’s take two examples: direct email vs Facebook posts. Here is each funnel and metric.


  • participation: users sending email invites / users visiting referral page
  • broadcast: # invites sent / users sending email invites
  • conversion: # registrations per invite / # invites sent


  • participation: users clicking on Facebook / users visiting referral page
  • broadcast: # visits to Facebook referral links / users clicking on Facebook
  • conversion: # registrations from Facebook / # visits to Facebook referral links

What if you took the product of either three. Then the units are the same:

  • # new users / # referrers

This is a viral coefficient. That’s awesome because you can now explain which channel is performing better. It could be that performance per participant is higher but that the share of users participating in a channel is smaller.

This is awesome data for experiments — maybe making the performant channel more prominent can increase overall performance. Or maybe it’ll cannibalize other channels. Test it and see!™

#19 Consider Editable Messages

Allowing users to edit invite messages might increase conversion to signup but might also decrease conversion to send.

Here is an example from Wealthfront. That app is a good example because people are so skeptical of financial services. So in their case they want to build more trust and get higher quality invites.

wealthfront message

One issue here is how you allow for editing. Don’t include the actual invite link in the message. You’re allowing users to customize the message on top of your invite link.

This is actually pretty painful to implement. Rather than just keeping a list of invitees, you need to store the message too. And you now might have a spam vector, so maybe you want to filter the content. What a pain.

For mobile, this is actually incredibly common. The reason is that so many mobile apps just push users to send via native compose flows, like SMS. Here is an exampleI found yesterday from Peach. Note the lack of tracking on the invite link. Tsk Tsk, Peach. ??

peach invite

#20 Test Positioning

How you talk to your users about your referral program matters quite a bit.

Dropbox focuses on “Get Extra Space Free”. Airbnb talks about “the gift of travel”.

Some positioning include:

  • Give a Widget get a Widget
  • Get extra Widget free
  • Give the gift of Widgets
  • Go anywhere, stay for less!
  • Refer friends, get $X off your next Widget
  • Get credit

You can test what works best for your audience. If you’re more focused on brand identity (like Airbnb is), you could just mirror that ideal experience. For example, Slack says you should “be less busy”, so a referral program could focus on giving people more time.

#21 Track Placement

You should understand which marketing channels for your referral program drive the most usage.

This post has focused on which channel works when someone gets to the referral page, but how do users get to that page? How do they learn about the program.

You can go so far as to modify the invite link to track the placement. That way you can answer questions like “which promotion leads to the most successful referrals”?

I’ve seen this implemented as params on the link. Something like this:


#22 Placement: In your Header

Link to your referral program at the top of your home page.

This is very low cost. If shown to users that haven’t signed up, it can be really good priming. It might motivate signup and then also serve as a first touch before the user is ready to invite.

But generally only a small subset of users are going to be actively clicking on that link, so the total performance might be less than you expect. That’s true for all these placements actually. This is one reason why people have unreasonable expectations for referral programs. For some reason they assume a “if you build it, then will come” mentality. Nope, you need to earn it.

#23 Placement: in the product flow (Best)

The best place to promote your referral program is right in the product flow.

For example, if there is a social graph component to your app, giving some bonus to send invites would mean all users would participate.

This varies across apps and might come as a cost. For example, whenever there is a purchase, mentioning a way to get a discount on the thank-you post-purchase page could work. But there are often a lot of competing desires within your company for what belongs in that page.

One of the best examples I’ve seen is from Roll, another YesGraph customer. Roll is like Tinder for your photos, where you swipe up to share and down to not. Then you see a feed of photos from others where you swipe up to like and down to skip. Within that feed, they suggest specific contacts to invite: swipe up to invite, swipe down to skip. It works incredibly well as an integrated product experience.

roll embedded invite 200

#24 Placement: Literally In the Trough (Bad)

I see a lot of apps copy Uber’s rider referral program without considering that Uber is supply constrained.

They push hard to get more drivers. The demand side, the riders, was only recently optimized. The left-hand-nav trough of sorrow is not the best place to put your best growth channels. So don’t copy Uber. No one will see it and use it.

uber placement

More recently, Uber has been putting prominent promotional modals right when you open the app. Even without seeing the numbers, this is obviously more effective.

uber new placement

#25 Placement: Email Reminders & Invitation Status

Email users about the referral program repeatedly and include their past invitation status.

It’s important to think about user lifecycle here. It isn’t like someone signs up, sends invites, and then quits. For apps where users are more engaged (as opposed to transactional like ecommerce), the opportunity is to get users to share many times over months and years. So reminders help drive the repeat usage you want to improve performance.

Here is an example from Wealthfront. They manage money a bit like a bank, so their users are definitely engaged for the long term.

wealthfront email reminder

#26 Placement: Even more emails

If a notification email has a weak action, consider including a promotion of your referral program.

Here is an example from Dropbox, where adding “PS send more referrals” to lots of emails ended up driving a 13% increase in already-superb participation. This kind of promotion can come in lots of places.

dropbox ps

#27 Watch Effects upon Unit Economics

If you sell some physical good, watch out on the dynamics of unit cost and referrals.

Let’s say something costs $6 but you sell it for $8. Then you have a referral program that gives away one for free to the recipient. That means the recipient would need to use the product 3 more times before making back the $6 lost on the first purchase. It’s worse for symmetric bonuses, where the inviter also gets some credit.

It gets interesting when you look at how some of these VC funded companies are run. Sometimes things that cost $8 are sold for $6 to get an established user base. By that math, the less a new user buys, the less lost.

But these businesses aren’t crazy! Often they are heavy on logistics, and density of customers actually affect the unit economics. Costs like drivers, cars, distribution centers and bulk supply all change by volume. So by growing in a specific region, the unit economics can change from losing money to making money.

We wrote more about this in our post “When to Layer Virality”.

One product initiative at YesGraph that is exciting here is the location directed invite. What if a service would bias their invitation flow towards a new city that could turn on. It could be part of a city launch playbook and would affect time till the city is making money. If you’re interested in this, email us at

#28 Fraud: Chill Out To start

If you’re giving something away, people might try to defraud you.


You might think you’re immune, but you’re not. For example, Dropbox just gives free space — it’s not like you can cash that out for some hard disks.

Fraudsters literally sell the ability to saturate your account with referrals. You pay them (instead of Dropbox) and share your Dropbox referral code, and then you get referral bonuses from their fake signups.

This can be a big deal, but for new programs, my best advice is to just chill out. It’s premature optimization to build a lot of infrastructure around fighting abusers before you know the channel even matters. This matches how security work is done anyway: you constantly need to adapt to the new attack patterns.

If you’re really worried about this, optimize your program on a subset of all your users and see if the numbers work at all. Make sure to normalize performance based on the size of the roll out. You won’t grow as fast, but you can stay in control. I think this is a bad idea, but go for it if you’re very concerned about fraud.

#29 Fraud: Increase Reward Costs

One of the easiest ways to fight fraud is increasing the threshold for granting a referral bonus.

For Dropbox, only users that installed a desktop client and sync-ed a file were counted. Some ingenious fraudsters found a way to mass produce desktop environments on AWS, so a lot more controls were put in place since that basic start.

But the pattern is a good one to copy. In Dropbox’s case, the activation of a signup was required, not just the signup. This is great for your app because you’re biasing towards getting better users. You can even involve your inviters to the game. If there is just one more thing the invitee needs to do, tell the inviter to tell their friend to do it.

#30 Fraud: Watch Cannibalization

Would your referral signups have signed up anyway?

That turns out to be a hard question to answer. In some cases it might be that a friend is with a user, and before the friend signs up, the user asks to use the referral program. Imagine two people waiting for a cab, and one tells the other to get the Uber app.

Measuring how often this happens is hard because it involves in person meetings and communication outside of your app.

One rigorous way to do it is to not send the actual invites to a test group. The percentage of people that still signed up could approximate your cannibalization rate. In my experience, it is a small concern, and not one to even bother measuring like this.

Even if it were cannibalized, you should consider relative acquisition costs. Not the cost per user but the cost compared to other acquisition channels.

One common error people make is including a prominent “coupon code” field on a checkout form. The first thing that I do when I see that field is google it to find a code, increasing cannibalization. Instead, just ensure that the links shared include the code, and make the coupon code field a hidden part of the form.

#31 Marketplace Dynamics: Supply → Demand → Supply

Marketplaces where the demand and supply side can be the same people are great for referrals.

Think of services like Kickstarter or Airbnb. On Airbnb, a user can be a guest, have a great experience, then decide to be a host. If someone invites a new user to be a guest, they can eventually help both sides of the platform.

Airbnb has baked this into the program by having referral bonuses change for guest vs host. But the flow isn’t different, it’s literally the same web page.

Other apps like Uber are more one-sided without as much transfer in their marketplace from demand to supply, and so their bonuses are very lopsided and their flows totally separate.

At the very least, you should measure this effect to see how many invitees eventually cross over.

The good news from an engineering perspective is that the mechanism to have one user send an invite to another is shared regardless of whether the flows are unified. These features can be re-used to great effect, especially when you triage by cost/benefit. This is why we’re excited for YesGraph’s SDK on iOS, Javascript, and soon Android. By making the mechanism easier, more apps can have great flows for more features.

#32 Track others

The ideas in this post came from following a bunch of great companies and running experiments myself. You can do the same.

Look at how competitors and apps you love ask users to bring in new users. My camera roll on my phone is full of screenshots from the apps I try.

You should take these tactics for what they are, suggestions and shortcuts. Always ask what would be good for *your* users and *your* market.

We’re here to help. Subscribe to get updated posts on our blog here. 

If you got this far, and want even more, we’re launching a class about growth too!