Bodilab AIブログ / 開発ノート

App Storeで実際に検索されている語を無料で調べる方法

開発ノート · 2026年8月15日
結論

Appleはオーガニックの検索語を公開しない。App Store Connectのアナリティクスにも、2024年から提供されているAnalytics Reports APIにも、検索語の列は存在しない。実際の語が見られるのはApple Ads AdvancedのSearch Termsレポートだけで、これは出稿しないと開かない。代わりに使えるのがApp Storeの検索サジェストで、返る順序が検索ボリュームの代理指標になる。この方法で実需要90語を集め、自分のアプリの順位まで調べた。結果は90語すべて圏外だった。コードと生データを全部出す。

この記事に書いてあること
  • Appleの3つの経路(App Analytics / Analytics Reports API / Apple Ads)がそれぞれなぜ使えないか、実際に叩いた結果つき。
  • 検索サジェスト(MZSearchHints)から実需要語を取るコード。ストアフロント指定が無いと空が返るという地雷つき。
  • 自分のアプリが何位に出るかを iTunes Search API で調べるコードと、その限界
  • 実際に出た日本語の需要90語と、全語で圏外だったという結果。
  • キーワード欄を推測でなく実データで埋め直した差分。

App Store Connectを開くと「App Storeの検索」から何人来たかは分かる。だが何と打たれたのかは分からない。うちのアプリは30日間で検索由来のインプレッションが788回あったのに、その788回がどんな語だったのか、公式には一切見えない。調べた結果と、代わりに使った方法を残す。

Appleの公式な経路は、3つとも塞がっている

① App Store Connect のアナリティクス

アナリティクス → 獲得 → ソースで、流入元が4つに分かれる。

App Storeの検索 / App Storeの閲覧 / 参照元Web / 参照元アプリ

それぞれに表示回数・プロダクトページ閲覧・初回ダウンロードが出るので、検索経由で何人来たかまでは分かる。検索語は出ない。

② Analytics Reports API(2024年〜)

詳細レポートをまとめて取れるAPIがある。期待して叩いたが、まず権限で弾かれた。

GET /v1/apps/{id}/analyticsReportRequests
403 FORBIDDEN_ERROR
"The API key in use does not allow this request"

権限の広いキーを作れば通る。ただしその前に、そもそも検索語の列があるのかを確認した。App Store Discovery and Engagement レポートの列はこうなっている。

App Apple Identifier / App Name / Counts / Date / Device /
Engagement Type / Event / Page Title / Page Type /
Platform Version / Source Info / Source Type / Territory / Unique Counts

検索語の列は無い。Source Type に「App Store search」という値はあるが、検索経由だったという事実までで、打たれた語は含まれない。Source Info は参照元アプリ/Webを指すもので、キーワードではない。

つまり権限を取り直してもこの質問には答えられない。ここで時間を使わないほうがいい。

③ Apple Ads Advanced

実際の検索語が見られる唯一の場所が、Apple Ads Advanced の Search Terms レポートだ。ただし出稿しないと開かない。「検索マッチ」型のキャンペーンを回すと、Appleが関連すると判断した語で自動的に露出させ、その語を報告してくれる。広告効果以上に「Appleが自分のアプリをどう理解しているか」が読めるので価値は高い。ただし有料であり、得られるのは広告経由の検索語で、オーガニックの検索語そのものではない。

なおアカウント作成だけなら無料で、出稿しなくてもSearch Popularity(1〜100)は見られる。語ごとの人気度が分かるので、キーワード選定の答え合わせには使える。

無料で使えるもの:App Storeの検索サジェスト

検索欄に文字を打つと候補が出る。あれはAPIで取れる。そして並び順がおおむね検索の多い順なので、Appleが数値を出さない検索ボリュームの代理指標になる。

https://search.itunes.apple.com/WebObjects/MZSearchHints.woa/wa/hints
  ?term=<語>&clientApplication=Software

ヘッダ: X-Apple-Store-Front: 143462-1,29   ← 日本

このヘッダが最大の地雷だ。付けないと、200は返るのにhintsが空配列になる。クエリにcountry=JPを付けても効かない。日本のストアフロントIDは143462。応答はXML plistなので、Pythonならplistlibで読める。

import plistlib, urllib.parse, urllib.request

def hints(term):
    url = ('https://search.itunes.apple.com/WebObjects/'
           'MZSearchHints.woa/wa/hints?' + urllib.parse.urlencode(
               {'term': term, 'clientApplication': 'Software'}))
    req = urllib.request.Request(url, headers={
        'User-Agent': 'iTunes/12.12 (Macintosh; OS X 14.0)',
        'X-Apple-Store-Front': '143462-1,29'})
    with urllib.request.urlopen(req, timeout=20) as r:
        d = plistlib.loads(r.read())
    return [h['term'] for h in d.get('hints', []) if h.get('term')]

実際に出た需要

体組成まわりの種12語から、検索語90件が集まった。人気順にそのまま出す(2026年8月13日取得)。

「体脂肪」から「体型」から
1体脂肪率 測定アプリ体型加工
2体重 体脂肪率管理体型管理
3体脂肪率体型
4体脂肪管理体型記録
5体脂肪体型加工無料
6体脂肪 記録体型加工アプリ
7体脂肪計算体型 写真
8体脂肪率計算体型測定
9体脂肪率 記録体型補正
10体重 体脂肪体型分析ai

順位は日によって入れ替わる。同じコードを2日後(8月15日)に再実行したところ、「体脂肪」では3位だった体脂肪率が5位に下がり体脂肪 記録が3位に上がった。「体型」では体型記録が4位から2位に上がっている。1回の取得を固定の真実として扱わないこと。順位の細かい差ではなく、上位に居続ける語の集合を見るのが正しい使い方だと思う。

ここで一つ、狙う棚を間違えかけていたことが分かった。「体型」で最も打たれているのは「体型加工」——体を細く見せる写真加工アプリを探している人だ。うちの製品とは真逆の需要になる。「体型記録」は4番手で、想定より筋が悪い棚だった。

一方「体脂肪」の棚は上位10語すべてが自分の土俵だった。ここが本丸だと分かった。

自分のアプリは何位に出るのか

各語で iTunes Search API を叩き、自分の bundleId が何番目に出るかを数えた。

https://itunes.apple.com/search
  ?term=<語>&country=jp&media=software&limit=50

この並びは App Store 本体のランキングとは別物だ。順位の1つ2つの差に意味は無く、「上位に出るか出ないか」の粗い判定にしか使えない。使う前に、自分のブランド名で検索してアプリが返ってくることを確認しておくといい。インデックスされていること自体の担保になる。

結果

検索語 90 件中、自分のアプリが出るのは 0 件
(各語おおむね45件目まで確認)

「bodilab」(ブランド名)  → 1位

ブランド名では1位に出る。インデックスはされている。ランキングで負けているだけだ。App Store Connect側では検索由来のインプレッションが788回あるので、おそらく45位より下か、もっと長い裾野の語で露出している。

なぜ全語で圏外だったのか

理由ははっきりしている。

指標実測
公開日2026年7月12日(約1ヶ月)
評価数0
初回ダウンロード(30日)11

評価0件はランキングで致命的だ。そして0件だった理由は単純で、レビュー依頼を一度も実装していなかった。ライブラリすら入っていなかった。誰にも訊いていないのだから0なのは当然だった。

この状態でキーワードをどう並べ替えても、競合語で上位には出ない。調べる前は「キーワードが悪いのでは」と思っていたが、順序が違った。

それでもキーワードは直した

効くのは後になるとしても、根拠の無い語が枠を占めているのは無駄なので、90語と突き合わせて入れ替えた。キーワード欄は100文字しかない。

操作根拠
追加測定 / 管理 / 体重 / 計算「体脂肪率 測定アプリ」が1位、「体脂肪管理」4位、「体型管理」2位、「体重 体脂肪率管理」2位
削除DEXA / GLP1 / フィジーク / 腹筋90件のどこにも現れなかった

とくに管理は、以前「記録で代替できる」と判断して自分で削っていた語だった。データに反していた。推測で足し引きしていたことが、突き合わせて初めて分かった。

なお、アプリ名やサブタイトルに既にある語をキーワード欄に入れるのは二重取りで枠の無駄になる。突き合わせるときは名称側も一緒に見たほうがいい。

この方法の限界

次にやること

  1. レビュー依頼を実装する。実装済みで、次のバージョンに入る。満足の合図が出た人にだけ訊く設計にした。Appleは年3回までしかレビューシートを出さず、超過分は黙って無視されるので、枠を無駄撃ちすると本当に欲しい機会を失う。
  2. 一覧での見え方を直す。検索結果に788回出てページ閲覧は37回(4.7%)だった。一覧で見えるのはアイコン・アプリ名・スクリーンショット1〜3枚目だけなので、そこを先に直した。
  3. この調査を定期的に回す。需要語は動く。同じ手順で測り直せるようにスクリプトにしてある。

作っているアプリ

Bodilab AI は、毎週おなじ条件で撮った1枚から体脂肪率・除脂肪量・12部位を推定し、前回と並べて何が変わったかを示すアプリです。

App Store で入手(無料)

体組成はAIによる推定であり、医療診断ではありません。

よくある質問

App Storeでどんな語で検索されたかは分かりますか?

オーガニックの検索語を知る公式の方法はありません。App Store Connectのアナリティクスは流入元を4種類に分けるところまで、Analytics Reports APIにも検索語の列は無く、実際の語が見られるのは Apple Ads Advanced の Search Terms レポートだけです(出稿が必要)。

App Storeの検索サジェストはAPIで取得できますか?

できます。MZSearchHints に termclientApplication=Software を渡します。ただし X-Apple-Store-Front ヘッダでストアフロント(日本は143462)を指定しないと空配列が返ります。country=JP をクエリに付けても効きません。

自分のアプリが何位に出るかを無料で調べられますか?

iTunes Search API で粗く調べられます。ただし App Store 本体のランキングとは別物なので、「上位に出るか出ないか」の判定にだけ使ってください。

検索順位が上がらない一番の原因は何ですか?

公開直後は評価数0が大きく効きます。うちは11ダウンロード・評価0件で、実需要90語すべて圏外でした。キーワードの並べ替えでは解決しません。

キーワードは何を根拠に選べばいいですか?

サジェストに実際に現れる語を根拠にするのが、無料でできる方法としては最も確実です。突き合わせると、入れるべき語と外すべき語がはっきりします。

本記事のAPIの挙動と数値は、2026年8月時点で筆者が実際に取得した結果です。Appleの仕様は予告なく変わることがあります。非公開APIを利用する方法を含むため、業務で使う場合は各自の判断でお願いします。体組成の推定値は医療診断ではありません。