- All, Featured, Outcome-Based Marketing Blog, Performance Marketing
You’re Probably Paying for the Same Users Twice. Here’s How to Know
- Perform[cb]
Table of Contents
Your CFO asks a simple question: which channels are actually driving growth? Every channel has an answer ready. Meta says it drove 4,000 installs last month. TikTok claims 3,000. Google reports 5,000, and your affiliate partners take credit for 2,000 more. There’s just one problem. You only acquired 9,000 new users. Someone is getting paid for 5,000 users they didn’t bring you.
Double counting is one of the most common problems in mobile UA, and one of the least visible. Here’s where it comes from, and how to tell whether it’s happening in your program.
Where the Double Counting Comes From
Most scaling apps run several paid channels at once, and each one measures its own success. Overlap creeps in through a handful of predictable gaps.
Self-attributing networks grade their own homework. Platforms like Meta, Google, and TikTok report conversions from their own data, using their own rules. Your MMP deduplicates installs down to one winner, but each platform’s dashboard still claims every user it touched. Those platform numbers are often the ones that shape budget conversations.
View-through credit counts exposure as influence. A user scrolls past an ad without clicking, then installs days later through a different channel. With view-through attribution turned on, the channel that served the ad can still claim that install.
Lookback windows overlap. A user clicks one channel’s ad on Monday and another’s on Thursday, then installs on Friday. Each channel’s attribution window covers that install, so each one can count it.
Paid campaigns intercept users who were already coming. Someone who hears about your app from a friend and searches for it by name may still tap a paid result on the way to the App Store. The campaign gets the credit, and you pay for a user your brand already earned.
Retargeting gets counted as acquisition. Campaigns that re-engage lapsed or existing users can show up in reporting as new installs. That inflates acquisition numbers with people you already had.
None of these gaps is a reporting error. Each one is attribution working as designed. The problem is that no channel’s numbers account for the others.
High-Quality Users Can Still Be Users You Already Had
Many teams feel protected from overlap because they pay on deep down-funnel events. Paying on a first deposit or a subscription start does guarantee that every dollar maps to a user who took a meaningful action. That’s a powerful quality guarantee.
But quality and newness are separate questions. A first deposit from someone who would have downloaded the app anyway is a high-quality conversion that’s zero percent incremental. Incrementality measures the second question: the lift in conversions (installs, registrations, deposits, and so on) that would not have occurred without a specific channel or campaign. Strong programs measure both, because one can look excellent while the other quietly erodes.
5 Signs You’re Paying for the Same Users Twice
- Your channels claim more conversions than you actually got. Add up every channel’s reported conversions and compare the total to your deduplicated MMP count. If the channel total runs well above it, multiple channels are taking credit for the same users.
- Pausing or cutting a channel barely moves the total. If you’ve pulled back spend on a channel and overall installs held steady, a meaningful share of the users it claimed were coming anyway.
- Reported CAC keeps improving while total growth stays flat. When channels keep getting more efficient on paper but the business isn’t adding users faster, they’re likely claiming a bigger slice of the same pool.
- Quality metrics are standing in as proof. If strong down-funnel rates are the main evidence that a channel works, you’ve proven its users are valuable. You haven’t proven they’re new.
- You’ve never run a holdout. Without a group of users who saw no ads, you have no baseline to measure against. Every number in your dashboard is a claim, not a finding.
If two or more of these sound familiar, the only way to know for sure is to test for incrementality against a real control group. Here’s how to structure an incrementality test in five steps, from defining your quality signal to building a feedback loop that compounds.
Reach Users Your Mix Isn’t Already Paying For
Most double counting happens because every channel is fishing in the same pool. Adding another channel that competes for the same users only adds another claimant.
Perform[cb]‘s is built to reach users your existing channels aren’t touching. It runs alongside your current mix, with no rip-and-replace, and pays out only on approved outcomes, whether that’s a qualified install, a funded account, or an in-app purchase. You pay for users who took the action you care about, not for activity another channel may also be claiming.
Every Perform[cb] campaign also runs against a matched holdout tagged as its own source in your MMP, so you can verify how many of those users were net-new. Across verticals, Perform[cb] programs consistently measure 75-85% incrementality.
Find Out How Much of Your Spend Is Overlap
Every channel in your mix will tell you it’s working. The only way to know how much of your budget is going to users you’ve already paid for is to measure it. Connect with our team to see where overlap may be hiding in your program, and what net-new growth could look like with Perform[cb].