← field notes

How app stores decide what you see

app-stores app-discovery paid-placement platform-power

Search an app store for the exact name of an app already sitting on your phone. There is a fair chance the first thing on the page is a different app, from a different company, that paid to be standing there when you typed that name.

That single result tells you most of what an app store is. It has the furniture of a catalogue: categories, a search box, a chart of what is popular. It runs like a broadcaster, deciding a schedule and selling advertising against that schedule to the people on it.

I run mobile proxy lines on carrier SIMs in Singapore and a rack of Android phones people rent by the hour. A lot of what those get pointed at is app stores: rank checking from a real Singapore address, because the chart is a different chart in every country, and installing builds on real handsets to see a listing the way a local sees it. I have never shipped an app anyone has heard of and never worked inside either of the two companies involved. The rest comes from developer documentation, the antitrust filings and court records where much of it was said under oath, and years of watching from a room full of phones.

The organic signal is a rate

The strongest input to free placement is install velocity. Installs per unit time, over a short window, measured against your own baseline and against everything else in the category that week.

Lifetime totals count for much less than developers expect. An app carrying a million downloads and a flat month sits below an app with nine thousand downloads that all landed last Tuesday.

The logic is unsentimental. A store is guessing what people want this week, and a download from two years ago is evidence about a build that no longer exists, in a market that has since moved on.

Everything about app launches bends around that window. Attention gets hoarded and released in one go, because the burst gets read and the long tail mostly does not. And a burst that cannot be earned can be purchased, which is the entire commercial engine behind mobile install fraud as an industry.

Retention is the part that resists money

The second input is what the app does to the phone it arrived on. Is it still installed a day later, a week later. Was it opened more than once. An uninstall inside the first day is among the heaviest negatives in the whole system.

Read that as a shop protecting its own product rather than as care for the user. A shop that keeps recommending things people delete stops being trusted as a place to find anything, and that trust is the actual inventory.

The effect is a cost asymmetry. A spike of installs costs money and nothing else. Two weeks of a real person opening an app on real hardware at irregular hours, in a pattern that survives inspection, costs more than almost any placement is worth. That is where manufactured traffic dies, when it dies.

Ratings are a rolling window

Scores are weighted hard toward the recent end. A 4.6 accumulated over three years decays. A bad fortnight following a bad update outweighs a good year, because the question being answered is whether the app is any good now.

That weighting explains the rating prompt. The card asking you to score the app does not appear randomly. It fires on a success event, immediately after you completed whatever you opened the app to do, because a prompt shown to someone who just succeeded is a different instrument to a prompt shown to anybody.

Review manipulation is its own machine and deserves its own piece. The point here is narrower. Even with every rating honest, the weighting turns a developer’s score into a readout of the last few weeks. It works as an alarm. It does not work as a reputation.

The keyword field is a matching problem

The text fields, title and subtitle and keywords and the opening of the description, carry an entire optimisation trade. They are the smallest of the four levers.

What the text settles is which queries you are eligible to appear in. That is the whole job. Where you land inside a query you already qualify for is decided by rate, retention and score.

So text is decisive on a search nobody is competing for and close to a tiebreak on a search with real demand behind it. The industry grew around it for reasons unrelated to its size: it is the only lever a developer controls outright, and the only one you can bill a monthly retainer against.

Above the organic results, an auction

All of that describes an ordering whose top the store then sells.

Paid placement sits above the free results on the same query. The first slot or two go to whoever bid highest for that word at the moment you typed it. The mechanics are the real time auction that runs display advertising, in a smaller room. You bid on keywords, including a competitor’s brand name.

Which produces the defensive spend. A developer bids on their own name so that nobody else takes the slot above their own listing. That money buys nothing new. The person searching had already decided. It exists to prevent a loss that only became possible when the slot went up for sale.

So the top of a store search is inventory. The position where a recommendation would sit holds a purchase, labelled in grey type sized to be legal rather than noticed.

The till points the incentives sideways

The store is the distribution channel and also the payment processor. Historically thirty percent of everything paid inside an app, with reduced tiers for smaller developers and for subscriptions past their first year.

Taking a percentage of what changes hands inside your app makes the store’s revenue a function of your prices and your billing rail. User satisfaction with either does not enter the calculation.

Then look at which rules have been fought over for a decade. A cheaper price on the developer’s own website. A sentence inside the app mentioning that the cheaper price exists. A link to it. Every one of those moves money off the rail, and every one has been litigated, legislated against, partially conceded and quietly narrowed again in more than one jurisdiction.

When a developer calls a rule anticompetitive and the store says the same rule protects users, both descriptions can be accurate. The clause does both jobs at once. That is what makes it durable.

Removal, and the clock the appeal runs on

Review at this volume cannot be people reading things, so the bulk is automated, with humans held in reserve for appeals and hard cases. Rules are written broadly, because narrow rules get routed around within a week, which makes enforcement a judgement taken at a rate leaving little room for judging.

The categories that catch developers are rarely the obvious ones. How a subscription gets cancelled. What a permission prompt says before it asks. Whether user made content inside the app counts as the developer’s responsibility. Interpretations shift, and a build that passed nine reviews fails the tenth with no relevant code having changed.

Appeals exist. The asymmetry is that the clock keeps running while the appeal sits in a queue. A business offline for eleven days has taken its punishment whatever the eventual ruling says. What gives that weight is the lack of anywhere else to go: losing one store costs half a market, and losing both means the product has stopped existing.

I had the wrong power in mind

For years I thought the commission was the fight. Thirty percent has the enormous advantage of being a number. You can print it, legislate against it, order it changed.

Discovery is the larger power and it draws almost no attention, because there is no figure to point at. Nobody can identify the moment they were not shown. A commission is a cost, and costs get priced into products. Being unfindable is an absence, with nothing to appeal, because no decision was ever taken.

I gave a customer a month of bad advice on exactly this. He arrived certain he had been penalised, and we worked the listing over twice. No penalty existed anywhere. A competitor had begun bidding on his app’s name, and some share of the people searching for him were meeting somebody else’s product first. We improved a page that fewer people were reaching.

What I cannot give you is the weighting. No store publishes it, the public guidance is vague on purpose, and outside experiments are underpowered by construction: one app, one market, no control group.

What would move it

The demand usually made is a smaller cut. Fifteen percent instead of thirty, or a carve out for whoever is loudest this year. That aims at the visible number and leaves the structure standing. A store taking fifteen percent still decides who gets found and who gets to exist.

Duller interventions would do more. A real alternative route onto the device, so that removal from a store stops meaning removal from the market. An obligation to state which specific rule fired, and when, in writing, to the person it fired on.

The thing worth holding onto is how much sits in one place. One company decides whether people can find you, takes a percentage of what you charge them, and holds the authority to end your product through a policy decision made by someone you will never speak to. In most industries those would be three companies, one of them regulated as infrastructure.

The arrangement holds because of arithmetic. There are two of them. A shop you can walk out of is a shop, and a shop whose only alternative runs the same rules is closer to a jurisdiction. You do not leave a jurisdiction by being annoyed with it.

More on the machinery running underneath the ordinary internet at The Hidden Internet.

Get new guides and videos first — join the Telegram channel.

watch
The Hidden Internet on YouTube

Every field note starts as a short documentary. Watch the systems in this piece explained on screen.

subscribe →
read on
More field notes

The rest of the series on how the modern internet detects, tracks, and sorts the traffic that reaches it.

browse the archive →