I Measured What SmartScreen Costs an Indie Developer. It's About 4x.
I ship a desktop finance app for Mac and Windows. Same website, same<br>download page, same button. One build gets notarized by Apple; the other gets signed with<br>an OV certificate from Certum. Both are, by every technical measure, correctly signed. Both<br>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<br>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<br>OS gate the user walked through.
I want to be careful about what that number is and isn’t, because the whole point of<br>writing it down is that most discussion of SmartScreen is vibes. So here is the measurement,<br>the correction I had to make to it, and the thing it implies that I think a lot of people<br>are getting wrong.
The measurement
There are two counters. One increments on the download page. The other increments the<br>first time the app process starts on a machine it hasn’t started on before, keyed by an<br>install ID minted at first launch — before any license activation, which is the entire<br>reason it can see this population at all. If you key install identity to a license, you can<br>only measure people who already bought. The people I need to see are the ones who downloaded<br>and vanished.
The gap between those two counters is the leak: downloads that never became a running<br>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<br>direction, because I was in my own data.
Every time I test a build, I get a fresh install identity — new machine, new VM,<br>freshly wiped box, doesn’t matter, the beacon sees a new person. Over four days my ten<br>distinct “installs” included seven of me. I do more of my testing on Windows than<br>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.<br>Cross-platform timestamp pairing was the strongest: two installs eight minutes apart on<br>different platforms is one person cycling builds, not two strangers. Then, license rows that<br>report a platform, cross-referenced against the four license keys I know are mine. Then<br>workflow shape — I test the DMG before I complete a release, so a test install<br>always reports the new version number. Two Mac installs reporting the previous<br>version two days ahead of that release therefore couldn’t be me, which is how they got<br>ruled real.
That process cut Windows from 40% to about 13%. It cut Mac too, just less. If you are<br>measuring your own funnel and you have not removed yourself from it, your number is wrong by<br>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<br>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<br>if you’re sure. Open is right there in the dialog, as the default. The<br>gate is a speed bump: read one sentence, click the obvious button.
On Windows, an app without accumulated SmartScreen reputation gets “Windows protected<br>your PC.” The visible button is Don’t run . The button that<br>continues is behind a More info link that does not look like a link to a<br>button — it looks like an explanation. A user who wants to proceed has to first<br>disbelieve the dialog, then go looking.
That’s the whole thing. One dialog’s default is proceed; the<br>other’s default is abandon, and continuing requires an act of deliberate<br>defiance against a screen that just used the word “protected.” My ~4x is what<br>that costs.
(Worth noting the macOS side has been tightening:<br>Sequoia<br>removed the Control-click override for unsigned apps, so this comparison is<br>specifically notarized-vs-signed, not lazy-vs-lazy. I’m paying for both gates. Only one<br>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<br>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<br>documentation now states it flatly:<br>“EV<br>certificates no longer bypass SmartScreen... this behavior no longer exists”, and<br>paying a premium for EV solely to avoid warnings is no longer justified. EV now goes through<br>the same organic reputation-building as OV. The change<br>went<br>in during 2024 but didn’t become widely visible until a CA...