Čárka, která nafoukla každou evropskou cenu 100krát
Analyzátor ceny, který odstranil čárky, přečetl německou cenu 9,99 € jako 999. Nic nespadlo, nic nevypadalo špatně a model příjmů tiše hlásil čísla stokrát větší.
Ceny jsou jediným vstupem, kde chyba v řádu vypadá na grafu zcela uvěřitelně. Předplatná aplikace za $6,499 ročně je absurdní, pokud se zastavíte a zamyslíte, a zcela nenápadná, pokud jen prolétáváte dashboard.
Co kód dělal
Parser před porovnáváním číslic odstraňoval oddělovače tisíců, což je správné pro angličtinu a špatné pro většinu Evropy. Německý obchod tiskne 9,99 €, čárka je desetinný oddělovač a její odstranění vytvoří 999.
Protože model příjmů čte cenový žebříček z toho obchodu, který je právě na obrazovce, otevření sledované aplikace na německé záložce mu podstrčilo kotevní cenu 6,499 místo 44.36. Nadhodnocení 147×, bez chyby, bez varování a bez viditelného příznaku.
Oprava a proč byla detekce jazykového prostředí špatnou odpovědí
Zjevná oprava je podívat se na obchod a použít jeho konvenci. Neudělali jsme to, protože parser dostává i řetězce, u nichž si nemůže být jistý původem, a vyhledávání, které tiše spadne na angličtinu, by chybu znovu vytvořilo v hůře nalezitelné podobě.
Místo toho se desetinný oddělovač určuje podle pozice. Pokud se objeví tečka i čárka, je desetinným oddělovačem ten nejpravější: 1.234,56 i 1,234.56 se oba parsují správně, aniž by se vědělo, ze které země pocházejí. Pokud se objeví jen jeden, je oddělovačem tisíců, když za ním následují přesně tři číslice, a jinak desetinným oddělovačem.
Stejná chyba s jinou příponou
Pak Indonésie. Apple tiskne 829,000 rupií jako "Rp 829ribu", kde ribu znamená indonésky tisíc. Doslova je to 829 rupií, asi pět amerických centů, což by proti americké ceně $69.99 bylo publikováno jako nejdramatičtější zjištění lokalizace na obrazovce.
Slova pro řády jsou nyní zpracována. Ale ta tabulka nikdy nemůže být úplná, protože kterýkoli obchod může vytisknout slovo, které na této straně ještě nikdo neviděl, takže existuje i spodní hranice: cena, která po přepočtu klesne pod 2% základního trhu, je zadržena jako nespolehlivá, místo aby byla publikována. Nejlevnější skutečný trh, který měříme, Turecko, je na 5%, takže tato pojistka zachytí chyby v řádu, aniž by zpochybňovala skutečné ceny.
Související
- 90 % nejlepších aplikací nikdy netestuje svou ikonu: co zjistila benchmarková studie 1 000 aplikací
- Nikdo vám nemůže prodat objem vyhledávání v App Store
- Ceny Sensor Tower v roce 2026: kolik to skutečně stojí
- Potto se stal virálním na TikToku. Zde je, co s tím udělal App Store
Blog · Případové studie · Free ASO tools · Produkty · Soukromí a podmínky · AsoTheory