We changed the Google Play title of a small Android app (a reverse chord finder for guitar) in four languages at once: Danish, Italian, Russian and Swedish. Two days later we had to decide: keep the new titles or roll them back.
The tempting reading was "the app now shows up in all four countries, it worked". That reading was wrong, or at least it answered a different question. This post shows the raw numbers from that verdict (measured 3 November 2026) plus a second one on short descriptions (measured 4 November 2026), and the method we now use so that a rank change is not mistaken for demand.
The change
New titles, one per locale, all built as <local generic term>: Chord Finder:
| Country | Locale | New title |
|---|---|---|
| DK | da | Guitar Akkorder: Chord Finder |
| IT | it | Accordi Chitarra: Chord Finder |
| RU | ru | Аккорды на гитаре Chord Finder |
| SE | sv | Gitarr Ackord: Chord Finder |
The idea: keep the brand-ish part ("Chord Finder"), add the generic phrase people type in their language.
Three things that are NOT the same measurement
Before reading any number, separate three questions:
- Brand rank: when someone types a name close to ours ("Reverse Chord Finder"), are we in the results, and where? This mostly measures indexing and title matching. It says little about demand: nobody types a name they have never seen.
- Generic rank: when someone types the phrase they actually need ("accordi chitarra", "gitarr ackord"), where are we? This is the one that can bring new users.
- Installs: did more people install? This is the only one that pays, and it is the noisiest.
A title change can move (1) a lot, (2) not at all, and (3) by an amount you cannot read in two days. That is exactly what happened.
The J+2 numbers (3 November 2026)
Measured on the public Play search, one request per query and country, top 30 results (Sweden returned only 9 results on the exact title query, Denmark 50).
Exact new title as a query: absent in 4 of 4 countries.
Generic query (the local phrase alone):
| Country | Query | Our rank (top 30) | Top result |
|---|---|---|---|
| DK | guitar akkorder | absent | com.ultimateguitar.tabs |
| IT | accordi chitarra | absent | com.ovelin.guitartuna |
| RU | аккорды на гитаре | absent | com.amdm.amdm |
| SE | gitarr ackord | absent | com.ultimateguitar.tabs |
Brand query "Reverse Chord Finder":
| Country | Rank before the change | Rank at J+2 |
|---|---|---|
| DK | absent | 7 |
| IT | absent | 7 |
| RU | absent | 6 |
| SE | absent | 8 |
So: 0 of 4 generic wins, 4 of 4 brand wins. The verdict was "keep the titles" (they did no harm and fixed brand findability in four countries where we were invisible even on our own name), but the honest summary is: this change made us findable, it did not make us discoverable. The generic phrases are held by large, established apps (Ultimate Guitar, GuitarTuna, Chordify). A title alone does not move a small app past them.
A second verdict, same method (4 November 2026)
We also rewrote the short description in five locales to carry the generic term. At J+2, generic queries: 0 of 10 in the top 30 (ES, RO, FR, DE, BR, two phrases each). Brand query:
| Country | Brand rank before | Brand rank at J+2 | Decision |
|---|---|---|---|
| ES | 9 | 15 | rolled back |
| DE | 9 | 13 | rolled back |
| FR | not in this snapshot | 12 | kept |
| RO | not in this snapshot | 5 | kept |
| BR | not in this snapshot | 3 | kept |
Two locales lost brand rank with zero generic gain, so they were restored to the previous text. Without the separation above, an average "brand rank across 5 countries" would have hidden that two of them got worse.
Why installs were not part of the verdict
We deliberately did not call the change on installs:
- The same week, a new app version with a different paywall went out (3 November). Any install or revenue movement in those four countries mixes both changes.
- Per-country daily installs for a small app are tiny. Two days of tiny numbers cannot separate a real effect from noise.
- Play Console install reports lag. A J+2 verdict on installs reads data that is not complete yet.
So the J+2 verdict uses ranks only, and installs get their own check at J+14 with a written threshold. If you only have one change running, you can be bolder. If you have two, say so in the verdict.
The method, reproducible
- Write the verdict rule before publishing. Ours: keep if the generic rank enters the top 30 in at least one country, or if the brand rank improves without any generic loss. Roll back a locale if the brand rank drops by 3+ positions with no generic gain.
-
Snapshot "before" for three query types per locale: exact new title, generic phrase(s), brand name. Store raw JSON:
{country, locale, query, rank, n_results, top3}.n_resultsmatters: "absent" from 9 results is not "absent" from 50. - Publish, then check that the store serves the new text before starting the clock. A title saved in the console is not a title in search.
- Measure at J+2 with the same script, same countries, same depth. Compare per locale, never as an average.
- Report the three axes separately: brand, generic, installs. A row with "brand up, generic absent" is a findability fix, not a growth result.
- Installs at J+14, with any other change of the period listed next to the number.
A minimal record per query looks like this:
{"c": "IT", "l": "it", "q": "accordi chitarra", "rang": null, "n": 30,
"top3": ["com.ovelin.guitartuna", "net.chordify.chordify", "com.myproj.chordchartgenerator"],
"etat": "ABSENT"}
Keeping top3 turned out to be useful: it tells you whether a generic query is even winnable (three apps with huge review counts at the top usually means no).
What we would do differently
Spend the title on a query the app can actually win (long-tail, with weak incumbents) rather than on the head term of each language. In Korean, the same app ranks 1st on a narrow "reverse chord search" phrase. That is where a title earns installs.
Disclosure: I work on the app above and on ZAX, which sells store listing rewrites. The linked page is our longer case study with dated ranks for other apps, same method.
Top comments (0)