Vlix Vlix

← Digital Marketing

How Reddit Ads Really Work (and Why They Are a Different Game to Meta)

A little while ago I wrote up how Meta decides which ad you see, and the moment it clicked I could not stop pulling the same thread on other platforms. Reddit was the one I was most curious about, partly because everyone kept telling me it was a completely different animal, and partly because I kept snagging on one very concrete question. A single subreddit is full of people from everywhere: a cheap click from one country sitting right next to an expensive one from another, all reading the same thread at the same time. So how on earth does Reddit decide which of them sees my ad? This is what I found, written the way I wish someone had explained it to me, again using our own apps as the running example (the small apps I build: Repeat Recorder, Paint Vlix and Camera to Clipboard).

The short version: Reddit runs almost the same auction as Meta (a second-price auction ranked on your bid times how likely you are to get the result), so the auction itself is not the interesting part. What is different is everything around it: far fewer advertisers fighting over each slot, a community that will actively downvote an ad that feels fake, and targeting that is about where you are reading rather than who you are. And the key to your whole question: you never buy a subreddit, you buy individual people, one impression at a time, and every filter you set (country included) has to pass before your ad is allowed to appear.

Same auction, completely different world

Let me get the machinery out of the way first, because if you have read the Meta piece you already understand it. Reddit does not publish its auction formula the way an academic paper would, but from what people have reconstructed, it works just like Meta's core: it is a second-price auction, and it ranks each ad by roughly your bid multiplied by how likely Reddit thinks this particular person is to do the thing you are paying for.

your bid × predicted chance of the result = the value of this impression

Highest value wins, and the winner pays just above what it took to beat the runner-up, not their full maximum. This is the same reason a smaller bid can still win: a well-matched, high click-rate ad can outrank a bigger bid that is a poor fit. If you improve your click-through rate, your effective cost per click falls, because cost per thousand impressions (CPM) divided by your click rate is what you actually pay per click. Double the click rate, roughly halve the cost. None of that is new if you know Meta.

So the auction is not where Reddit is strange. Reddit is strange in what surrounds the auction, and that is the part worth your attention.

You do not buy a subreddit. You buy people.

This is the single idea that unlocked the whole thing for me, and it is the direct answer to the cheap-country question.

The r/movies subreddit page, showing 33 million members and the community sidebar
A subreddit like r/movies looks like a room you could rent: 33 million members, a banner, a sidebar. But you are never handed the room. You are handed individual people who engage with it, one impression at a time, and only the ones who also pass your other filters.

When you set up a Reddit campaign it feels like you are buying a community. You pick r/languagelearning, or r/macapps, and it looks like you have rented a billboard inside that room. You have not. Reddit decides every impression for one individual person, and your targeting is a stack of filters that all have to pass at the same time. Country and device and community and age, not or. A person is only eligible to see your ad if they clear every filter you set.

Location is one of those filters, and Reddit checks it per impression from the person's IP address, not from anything they typed in their profile. So here is the payoff:

If you target the United States only, the readers of that same subreddit who are browsing from India or Indonesia are simply not shown your ad. They fail the country filter, no matter which community they are in.

That is it. The cheap clicks and the expensive clicks are sitting in the same thread, but they are never in the same auction unless you let them be. On Meta, the machine learning quietly learns to stop spending on low-value people for you. On Reddit you do the same job by hand, by stacking a geography filter on top of the community. The context (the subreddit) does not force you to pay for its cheapest readers, because geography is a separate gate that you control. Geo can go country, then region or state, then metro area (city-level mostly in the United States), so you can be quite precise about which slice of a global community you are willing to pay for.

Three ways to pick who you reach (and a surprise about subreddits)

Reddit gives you three main audience levers, and they are worth telling apart because they behave very differently.

Community targeting

You name specific subreddits. Here is the surprise that Reddit itself had to publicly clarify: targeting r/example does not mean your ad only shows inside r/example, and it does not mean subscribers. It means people who engage with that community, followed around the rest of Reddit, their home feed, other subreddits, wherever they go. The community is used to identify a kind of person, and then your other filters (like country) trim that group down. This is the most precise, highest-intent lever Reddit has, and hand-picking a few tightly relevant communities tends to beat everything else. A small, focused subreddit (a thousand to twenty thousand members) will often out-perform a giant one, because intent beats size.

Interest targeting

Reddit sorts people into broad interest buckets (Technology, Finance, Language Learning) that it infers from the communities they spend time in. Wider reach, cheaper, but much lower intent. Most people who get good returns skip these in favour of naming the actual subreddits, because the buckets blur the one real edge Reddit has.

Keyword targeting

You target words. Either words someone searches on Reddit, or words in the conversation they are currently reading. This is Reddit's standout: its own launch numbers claimed a big lift in click-through and a large drop in cost per result versus community or interest targeting, especially when the ad sits right next to a matching conversation. It is the closest Reddit gets to catching someone at the exact moment of intent.

Precision, roughly, runs keyword (search) first, then community, then interest last.

What a Reddit ad actually looks like

Before we go deeper, it helps to see what you are actually buying. A Reddit ad is just a post with the word Promoted under the account name, sitting in the feed between organic posts, and it comes in three main shapes. The shape you choose matters more here than on most platforms, because of how much the community can tell when something does not belong.

The native text post. This is the shape that leans hardest into Reddit's culture. It reads like a real post someone would have written, and only the little Promoted label gives it away.

A promoted text post from MYOB written as an 'Am I the asshole' story about a partner who would not manage his finances
A promoted post from MYOB written as an “AITA” story, the kind of confessional format Reddit is full of. It sells accounting software without ever looking like a brochure. This is native creative doing its job.

The image post. The familiar shape from every other platform: a headline, a designed image, a clear call to action. It works, but it announces itself as an ad, so it leans on the strength of the creative rather than on blending in.

A promoted image ad from Figma showing Figma Make building a mini mining game from a typed prompt, with a Learn More button
A polished image ad from Figma. Nothing wrong with it, but it reads unmistakably as an ad, so it has to win on the strength of the demo and the brand rather than on feeling like part of the feed.

The video post. A short autoplaying video, billed on views. Good for a story you cannot tell in a still image, and it sits in the same feed as everything else.

A promoted video ad from DonateLife telling the story of a girl who received a heart transplant at 13
A promoted video from DonateLife. Video carries a first-person story in a way text cannot, and on Reddit you are billed per view rather than per click.

Keep these three in mind, because the next idea decides which of them actually wins you cheap attention, and which one quietly costs you money.

Contextual, not behavioural: the real difference from Meta

This is the deepest difference, and once you see it, every tactic that follows makes sense.

Meta is behavioural. It targets who you are and what you have done, built from an enormous history of your activity, and it leans on that to find the right person almost anywhere. Reddit is contextual. It targets what you are reading right now, the community and the conversation in front of you. Your identity matters far less than the topic you are currently sitting inside.

There is a plain reason Reddit works this way rather than copying Meta: its prediction model is thinner. Meta has years of purchase and conversion data on billions of people. Reddit is smaller, sees fewer conversion events, and simply does not have that depth of signal. So it cannot reliably do Meta's trick of "give me a broad audience and I will find your buyer." Instead, the context does the segmentation. A person reading r/JapaneseLanguage has told you something a behavioural model would have to guess.

The practical consequence flips Meta's advice on its head:

On Meta you go broad and trust the algorithm. On Reddit you go narrow and supply the intent yourself.

If we wanted to promote Repeat Recorder, on Meta we would hand over a wide audience and a clean conversion signal and let it hunt. On Reddit we would instead pick the handful of communities where people are literally working on their speaking voice, gate them to the countries where the app earns its keep, and write something that reads like it belongs in that thread. The work moves from the machine back to you, and that is not a flaw, it is just the trade for cheaper, more contextual inventory.

Cheaper to reach, harder to convert

Reddit's headline appeal is that it is cheap, and that part is true. Because far fewer advertisers compete for any given slot, its CPM tends to run well below Meta's, often something like half. Niche communities are cheaper still, because barely anyone is bidding there. You are buying genuinely uncontested attention, which is the core structural edge and the reason to be there at all.

But here is the trap, and it is the most important sentence in this whole piece. A cheap impression is not the same as a cheap customer. Reddit's conversion prediction is weaker than Meta's, so the low CPM can quietly hand you an expensive cost per acquisition. A six dollar CPM that converts at half the rate of a twelve dollar CPM has bought you exactly nothing.

There is a second twist that catches people out. On Reddit, most conversions do not come from a click. Reddit has said the large majority of people who convert after seeing an ad never actually clicked it, and they tend to buy days later. So if you judge Reddit purely on last-click cost, the way you might judge a Google search ad, you will underprice what it is really doing and switch it off just as it starts working. Give it a view-through window and a little patience.

The way you beat the trap is the theme of this whole article: you feed Reddit the intent it cannot infer, through tight community and keyword targeting, the geography gate, and retargeting your own visitors. Do that and the thin signal stops mattering, because you did the finding, not the algorithm.

The vote is a price signal

This one genuinely has no equivalent on Meta, and it is my favourite part. On Meta an ad is a sealed unit: people can hide it or report it, but they cannot publicly grade it. On Reddit an ad is a real post, sitting in a real feed, and the community can upvote it or downvote it exactly like anything else. That little score under the post is not decoration. It is the crowd pricing your ad in public.

A promoted post from Livid with 405 upvotes and 130 comments, written as a founder story about a company acquisition
A promoted post sitting at 405 upvotes and 130 comments. Those are real community votes on an ad, written as a plain founder story rather than a brochure. A score like this is about the best thing that can happen to you on Reddit, and the reasons why are the whole point of this section.

So which do you actually want, upvotes or downvotes? Upvotes, overwhelmingly, and it is worth being precise about why, because it is not simply that upvotes feel nice. They lower what you pay, through two separate mechanisms that stack on top of each other.

1. Votes are engagement, and engagement is the thing the auction prices

Remember the ranking rule: your bid multiplied by how likely Reddit thinks people are to engage. Upvotes and comments are engagement. An ad that people are upvoting and arguing about in the comments is, by definition, an ad people are interacting with, and that pushes Reddit's predicted engagement rate for it upward. A higher predicted rate means your bid converts into a higher value per impression, so you win more auctions, and you win them at a lower clearing price. Downvotes, hides and "this is spam" reports do the exact reverse: they tell Reddit the ad is unwelcome, the predicted rate falls, and the same result now costs you more, or your delivery quietly dries up because you keep losing the auctions you used to win.

2. A visible score changes the behaviour of the next person

This is the part unique to a public feed. When the next person reaches your ad, they can see the score and the comment count before they decide whether to stop. An ad sitting at plus four hundred with a busy thread does not read as an ad at all, it reads as something the community endorsed, so more people stop, read and click. That lift in click-through feeds straight back into the predicted engagement rate from the first mechanism, and pushes your cost down again. A visible pile of downvotes does the opposite: it is a public sign that the room rejected you, and it suppresses the very clicks that would have made you cheaper.

Put together, the two mechanisms make votes a real price lever, not a vanity metric:

If you had to watch a single number on a Reddit ad, watch whether the community is voting it up or down.

One honest caveat, because I would rather you held the mechanism than a myth. Reddit does not publish whether the raw vote number is fed straight into the auction as its own input. What is clear is that engagement and relevance drive both the ranking and the price, and that Reddit penalises the negative signals (hides, reports, downvotes) a rejected ad collects. So treat "votes move your price" as the model that explains what advertisers actually observe, working through engagement and social proof, rather than a published dial you can read off. The practical advice comes out identical either way: earn the upvotes, avoid the downvotes.

This is exactly why the shapes mattered. Look back at that MYOB post: it wins because it reads like a confession someone would have posted anyway, so there is nothing for the community to reject and plenty for them to upvote. The Figma image ad is perfectly good work, but it announces itself as an ad, so it has to earn its way past that with a slick product demo rather than earning the upvotes that would have made it cheap. Neither is wrong, but on Reddit the native one is the one that can win the crowd.

The instinct people have is to overcorrect into deliberately ugly, low-effort posts. That is not it either. The winning axis is authentic and native, not sloppy. Write in the second person, sound like a human who actually uses the thing, and let it look like it belongs in the feed rather than interrupting it. When we talk about Repeat Recorder on a platform like this, the version that admits a real, small, specific problem will always beat the version that lists features.

So how do you actually win?

You already know the auction is the same as Meta, so do not go looking for your edge there. The edges that are real on Reddit, and not available on Meta, are these.

1. Pick the communities yourself

Name the actual subreddits rather than leaning on the broad interest buckets. Choose a few tightly relevant ones, favour focused communities over enormous ones, and exclude the communities that are a bad fit so you stop paying to reach them. This is Reddit's one true advantage, so use it directly.

2. Gate by geography

This is the answer to the question that started this whole article. Set the countries (and, where it helps, the regions or metros) you actually want, and every low-value reader of that same subreddit falls away. Judge each market against its own revenue, the way you would on any platform, and never compare a cheap country's cost against an expensive one's.

3. Write like a person, not a brand

Native, second-person, honest creative earns the engagement that lowers your cost, and dodges the downvote penalty that raises it. Refresh it often, because a community that has seen your ad a few times stops reacting to it.

4. Earn the upvotes, and act on the votes

This follows straight from the section above: upvotes make an ad cheaper, downvotes make it dearer, so treat the vote count as a target you are aiming for, not just a side effect. Show up in the comments and answer people like a human rather than a brand account, because a live thread pulls in more engagement and more upvotes. Then read the votes as the cheapest live feedback you will ever get: scale the ads the community is voting up, and kill the ones it is voting down quickly, before the downvotes drag their delivery and their price the wrong way. On Reddit the crowd is grading your ad in real time, so let its verdict decide where your budget goes.

5. Feed it your own conversions

Install the Reddit pixel (and the server-side conversions feed if you can) and report real conversion events back, so the model has something to optimise toward beyond clicks. Reddit's signal is thin, and this is how you thicken it. For a product like Paint Vlix, clean conversion tracking is pricing work, not admin.

6. Retarget your own visitors

Retargeting simply means showing an ad to someone who has already been to your site or app but did not buy or install yet, to bring them back. Almost nobody acts the first time they see you, so these people are usually the cheapest and warmest audience you have: they already know who you are, so you are nudging a decision rather than starting one from scratch.

Here is how it works in plain terms. You paste a small piece of tracking code called the Reddit pixel into your website. From then on, whenever someone visits, the pixel quietly notes it, and Reddit lets you build an audience out of those past visitors and show your ad only to them. So if someone opened the Repeat Recorder page but never downloaded it, a gentle reminder a few days later reaches a person who is already interested, instead of paying full price for a cold stranger who has never heard of you. You can also do the reverse and exclude people (your existing customers, or visitors who bounced off in one second) so you stop paying to reach anyone who will never convert. The one catch is size: the audience has to reach a minimum number of people before Reddit will run it, so build this once you have enough site traffic to feed it.

The one-paragraph summary

Reddit's auction is basically Meta's: a second-price auction that ranks your bid by how likely you are to get the result, so better creative lowers your cost the same way it does everywhere. The differences all live around the auction. You never buy a subreddit, you buy individual people one impression at a time, and every filter (country included, checked from their IP) has to pass first, which is exactly why a US-only campaign never pays for the cheap-country readers sitting in the same thread. Reddit targets what you are reading rather than who you are, because its prediction model is too thin to find your buyer on its own, so you supply the intent by hand through communities, keywords and geography. It is cheaper to reach people than Meta but worse at finding the ones who convert, so the whole craft is to feed it the intent it cannot infer, write something a real Redditor would not downvote, and measure it with enough patience to count the people who convert without ever clicking. Do that, and Reddit's cheap, uncontested attention stops being a trap and starts being an advantage.

Snoo, the Reddit mascot