I ship a desktop finance app for Mac and Windows. Same website, same download page, same button. One build gets notarized by Apple; the other gets signed with an OV certificate from Certum. Both are, by every technical measure, correctly signed. Both display a verified publisher name at the security gate.
Last week I added a beacon that fires once on first app launch, and started diffing it against download-page hits. I expected the two platforms to differ. I did not expect this:
- Mac: about 6 of 10 downloads became a first launch.
- Windows: about 2 of 15 did.
Same week. Same product. Roughly a 4x gap, and the only variable that changed is which OS gate the user walked through.
I want to be careful about what that number is and isn’t, because the whole point of writing it down is that most discussion of SmartScreen is vibes. So here is the measurement, the correction I had to make to it, and the thing it implies that I think a lot of people are getting wrong.
The measurement
There are two counters. One increments on the download page. The other increments the first time the app process starts on a machine it hasn’t started on before, keyed by an install ID minted at first launch — before any license activation, which is the entire reason it can see this population at all. If you key install identity to a license, you can only measure people who already bought. The people I need to see are the ones who downloaded and vanished.
The gap between those two counters is the leak: downloads that never became a running process. Something between the download completing and the app starting ate them.
The correction that mattered
My first read said Windows was at 40%. That was wrong, and wrong in the flattering direction, because I was in my own data.
Every time I test a build, I get a fresh install identity — new machine, new VM, freshly wiped box, doesn’t matter, the beacon sees a new person. Over four days my ten distinct “installs” included seven of me. I do more of my testing on Windows than on Mac, so my own noise was propping up the Windows number specifically.
I de-phantomed by hand using three signals, in descending order of confidence. Cross-platform timestamp pairing was the strongest: two installs eight minutes apart on different platforms is one person cycling builds, not two strangers. Then, license rows that report a platform, cross-referenced against the four license keys I know are mine. Then workflow shape — I test the DMG before I complete a release, so a test install always reports the new version number. Two Mac installs reporting the previous version two days ahead of that release therefore couldn’t be me, which is how they got ruled real.
That process cut Windows from 40% to about 13%. It cut Mac too, just less. If you are measuring your own funnel and you have not removed yourself from it, your number is wrong by roughly the amount you’d most like it to be wrong by.
Why the gap exists: the default action differs
The mechanism isn’t that Windows warns and macOS doesn’t. Both warn. The difference is where each OS puts the button that continues.
On macOS, a notarized app downloaded from the internet gets a dialog that says so and asks if you’re sure. Open is right there in the dialog, as the default. The gate is a speed bump: read one sentence, click the obvious button.
On Windows, an app without accumulated SmartScreen reputation gets “Windows protected your PC.” The visible button is Don’t run. The button that continues is behind a More info link that does not look like a link to a button — it looks like an explanation. A user who wants to proceed has to first disbelieve the dialog, then go looking.
That’s the whole thing. One dialog’s default is proceed; the other’s default is abandon, and continuing requires an act of deliberate defiance against a screen that just used the word “protected.” My ~4x is what that costs.
(Worth noting the macOS side has been tightening: Sequoia removed the Control-click override for unsigned apps, so this comparison is specifically notarized-vs-signed, not lazy-vs-lazy. I’m paying for both gates. Only one of them lets people through.)
The advice that no longer works
The standard answer to “how do I get past SmartScreen” has been: buy an EV certificate, they grant instant reputation. Skip the wait, pay the premium.
That advice is dead, and if you’re about to spend on it, stop. Microsoft’s own documentation now states it flatly: “EV certificates no longer bypass SmartScreen... this behavior no longer exists”, and paying a premium for EV solely to avoid warnings is no longer justified. EV now goes through the same organic reputation-building as OV. The change went in during 2024 but didn’t become widely visible until a CA intermediate migration in March 2026 lit up warnings on apps that had been fine the day before — which is when a lot of people discovered the guarantee they thought they’d bought wasn’t there.
What actually clears it, per Microsoft: download volume, over time. Their estimate is several weeks and hundreds of clean installs from a wide audience. And reputation attaches partly to the file hash — so every new release resets some of what you built.
Read that loop carefully. Reputation requires installs. Installs require getting past the thing that requires reputation. For an app shipping frequent releases at low volume, that loop may simply never close. This is not a hazing ritual you graduate from; for a small enough publisher it’s a floor.
The real exits are narrow: ship through the Microsoft Store, whose certificate carries reputation for you, or accept the tax. Signing correctly is table stakes — it gets your name displayed instead of “Unknown publisher,” which is worth doing — but it is not a fix.
The number that actually changed my decisions
I was about to evaluate ad spend. Here’s what this does to that math.
Ads buy downloads. They don’t buy installs. If ~7 of 8 Windows downloads never become a first launch, then every Windows cost-per-click needs to be multiplied by roughly seven to get true cost per install — and by more than that to get cost per activation. A campaign that looks like a $2 CPC is a $14 install. Run the same budget at Mac’s conversion and it’s under $4.
Any channel analysis that stops at the download is measuring the wrong event. Mine did, until last week. If you’re buying traffic for a Windows desktop app and your dashboard’s terminal metric is downloads, you are almost certainly overstating your Windows efficiency by close to an order of magnitude, and you’ll never see it, because the users who quit at the SmartScreen dialog generate no error, no support ticket, and no signal of any kind. They are invisible by construction. The only way to see them is to count the event on the other side of the gate and subtract.
What this isn’t
n is small: 15 Windows downloads and 10 Mac in the window. This is a direction, not a rate. Publishing it as “13%” implies three digits of precision I don’t have.
The populations may differ. Mac users buying a finance utility from an independent developer might skew more technical, more willing to push through a warning. I can’t rule that out — although if anything I’d expect a technical user to be more comfortable clicking through SmartScreen, which would cut against the finding rather than explain it.
And the two counters measure slightly different things. A download page hit isn’t a completed download; a beacon needs the app to actually start. Some of the leak is abandoned downloads and failed installs, not the dialog.
What survives all of that is the comparison. Both platforms are subject to the same counting quirks. Only one of them is subject to a dialog whose default action is “don’t.” The 4x is the residual.
If you want to measure your own
Three things, none of which take long:
Count first launch separately from download, and key it on an identity minted at first launch rather than at activation — otherwise your instrument is blind to exactly the population you’re trying to see.
Remove yourself. Every build you test is a phantom install, and your testing is almost certainly platform-skewed, so it doesn’t just add noise — it adds directional noise.
Segment by platform before you conclude anything about your funnel. My blended number was 60%, which is a fine-looking number that describes nobody. It’s two completely different products wearing one metric.
If you’ve measured this on your own app, I’d like to see it — especially anyone with enough volume to turn my direction into a rate.
Sources
- Microsoft Defender SmartScreen application reputation — Microsoft Learn
- PSA: EV certs do not grant immediate reputation anymore — ToDesktop
- EV-signed application showing SmartScreen warnings — DigiCert
- Sequoia removes Gatekeeper contextual menu override — Michael Tsai
- macOS Sequoia removes the Control-click Gatekeeper bypass — iDownloadBlog