ChatGPT などの AI から App Store の DL がどれだけ来ているかは、2か所を組み合わせると数えられます。
- ChatGPT のアプリから App Store へ直接来た人:App Store Connect(ASC)の入り口別で「参照元アプリ」に ChatGPT として出ます。何もしなくても見えます。
-
ブラウザの chatgpt.com から自分のサイトを経由した人:ASC には「参照元ウェブ」としか出ないので、サイト側で参照元を覚えておき、App Store へのリンクに
ct=(キャンペーントークン)として付けます。ASC のキャンペーン別に数が出ます。
どちらも数が少ない行は Apple が隠すので、1日単位ではなく週で見るのが前提です。以下、実際に入れている仕組みと、6日分の結果です。
1. ASC の「参照元アプリ」を見る
ASC のアプリ分析で、DL(units)を入り口(source)別に週で出します。私のアプリでは参照元アプリの ChatGPT が、9/20〜10/3 で 55件、10/4〜12 で 52件、10/13〜19 で 100件でした。Claude・Gemini・Perplexity のアプリはこの時点では一度も出ていません。
注意点が1つあります。ASC のインストール数・セッション・アンインストールは、データ共有に同意した人(私の場合は約35%)の分だけです。入り口別の比較は units で行います。
2. サイト側で「最初に来た参照元」を覚える
サイトの全ページに小さなスクリプトを置いています。Cookie も localStorage も使わず、同じタブの間だけ sessionStorage に入れます。
var q = new URLSearchParams(location.search);
var refHost = document.referrer ? new URL(document.referrer).hostname.replace(/^www\./, '') : '';
var internal = /(^|\.)minulo\.app$/.test(refHost);
var tag = q.get('ref') || q.get('utm_source') || '';
// タブの中で最初に来たときの参照元だけを残す
if (!sessionStorage.getItem('m_src')) {
sessionStorage.setItem('m_src', tag || (!internal && refHost) || 'direct');
}
?ref= があればそれ、なければ参照元のドメイン(chatgpt.com など)、どちらもなければ direct です。サイト内でページを移っても、最初の参照元が残ります。これを付けて、PostHog に「開いた」と「App Store を押した」の2つのイベントを送っています。
3. App Store のリンクに ct= を付ける
var ct = (slug(src) + '_' + page).slice(0, 40);
u.searchParams.set('pt', '<プロバイダ ID>');
u.searchParams.set('ct', ct);
u.searchParams.set('mt', '8');
chatgpt_en-top のような値になります。ct は40文字までなので切っています。これで ASC のキャンペーン別に「ページを見た・入れた」が参照元ごとに出ます。
4. 6日分の結果(10/20〜10/25、サイトの PostHog)
| 参照元 | App Store を押した割合 |
|---|---|
| chatgpt.com | 69人中29人(42%) |
| google.com | 22.5% |
| direct | 8.5% |
ChatGPT から来た人は、すでに「何をするアプリか」を聞いたうえで来るので、押す割合が Google の倍近くありました。人数は小さいので、傾向として見ています。
5. 数えきれないもの
- どの記事が AI の答えに使われたかは、この仕組みでは分かりません。同じ質問を各 AI に定期的に投げて、名前や URL が出るかを別に記録しています。
- アプリ内で「どこで知ったか」を聞く質問も置いていますが、半分くらいは無回答です。ASC の入り口別と両方で確かめています。
この計測を入れているアプリ
私が1人で作っている iPhone アプリ minulo です。Instagram のリールや YouTube ショートを隠すのは無料で、DM は残ります。できないこともあって、公式アプリの中身は変えられません(隠れるのは minulo の中で開いたときだけ)。公式アプリをブロックしている間はその通知が来ません。無料のブロックは1回2時間まで、Android 版はまだありません。