🔗onestore.link

独自調査

Instagram と TikTok の中で開かれたアプリのリンクに何が起きているか:74,000 件のリダイレクトを計測

誰も見ないプリロード、ストアを拒否する TikTok の WebView、ページの上に開く App Store:リダイレクトログが示していること。

公開日 · Adrien De Coster

結論

30 日間にアプリ内ブラウザから来た 74,713 件の Android アクセスのうち、9.1% は Instagram や Facebook がバックグラウンドで読み込み、約 30 秒後に誰にも見られないまま破棄したページでした。Android の TikTok 内では、Play Store が開くかどうかは TikTok が使う WebView で決まります。ある user-agent 形式は 85% のセッションでストアに到達し、他の二つの形式は同じリンク・同じ日でも 12–14% にとどまりました。iOS では Instagram と Facebook が App Store をアプリ内ブラウザの上に開くため、ページがバックグラウンドに回ることはなく、ページ側で測ったストア起動率はハンドオフが成功していても 13–56% と出ます。

ここでの数字は、スマートリンクサービスのリダイレクトログから得たものです。スマートリンクとは、スマートフォンを App Store または Google Play に送る URL のことです。SNS アプリの中でリンクが開かれるたびに、訪問者をストアへ引き渡す小さなページを返し、そのページがその後に起きたことを報告します。以下は、その報告からわかったこと、計測の方法、そして計測の限界です。

データ

期間対象件数
2026-10-12 までの 30 日間アプリ内ブラウザからの Android アクセス、セッション単位で再構成74,713
2026-09-27 → 2026-10-26アプリ内でのページ読み込み、全プラットフォーム109,253
2026-10-20 → 2026-10-26同上、ファネル表のためにセッションへ再構成30,535
2026-10-16 → 2026-10-26ページ自身が分類したプリロード1,679
2026-10-15 までの 90 日間、その後 2026-10-26 までの 30 日間Android の TikTok、WebView 形式別のセッション73 + 1,247
アプリ内でのページ読み込み、2026-10-26 までの 30 日間
アプリ内ブラウザAndroidiOS
Instagram50,16116,675
Facebook27,9119,441
TikTok3,7551,219
通常のブラウザ(単純な 302、比較用)24,18524,627

分析の前から二つのことが目立ちます。Meta のアプリは TikTok よりはるかに多くのトラフィックを送っていること。そして Android では、全アクセスの四分の三以上が Chrome ではなくアプリ内ブラウザ経由だということです。

ページはどうやって結果を報告するか

アプリ内ブラウザでリンクが開かれると、ページは三つの動作を行い、それぞれについてビーコンを送ります。

Web ページからは App Store も Play Store も見えません。以下はすべてこの三つのシグナルからの推定であり、その推定がどこで崩れるかは「限界」の節に書いています。

発見 1:Meta からの Android アクセスの約 11 件に 1 件は、誰も見ていないプリロード

十月12日までの 30 日間、ある Android セッションの群は人間の訪問ではありえない振る舞いをしていました。ページは読み込まれ、ハンドオフのタイマーは一度も動かず、29 〜 31 秒後にページが破棄される。auto も stuck もタップもない。iOS には同様のものは見られませんでした。

これは、Instagram と Facebook のアプリ内ブラウザがフィード上のリンクを先読みし、非表示のまま保持し、ユーザーがスクロールして通り過ぎると捨てる、という挙動の特徴です。ページは私たちの JavaScript を実行したのでアクセスは記録されましたが、誰もそれを見ていません。

2026-10-12 までの 30 日間
対象アクセスプリロード割合
全アクセス、全プラットフォーム139,1996,7904.9%
Android95,6486,7907.1%
Android のアプリ内74,7136,7909.1%
Android のアプリ内、最大のリンクを除く——4.9%
最も影響を受けたリンク35,3374,86413.8%

この基準を明らかに人間によるセッションと照合しました。ハンドオフの 2–3 s 後にストアが開いたセッションでは 17,606 件中 0 件、ストアボタンがタップされたセッションでは 244 件中 0 件 が該当しました。

この割合は週ごとに変動します。期間の最終週は 6.8%、その前の週は 8.8%、10.6%、10.0% でした。また、Instagram の有料キャンペーンが走っているところに集中します。期間中のプリロードの 72% は、大規模な Instagram キャンペーンを抱える一本のリンクから来ていました。

十月16日以降は、ページ自身が実行時にこれを分類しています。一度も表示されないまま少なくとも 20 s 後に破棄されたとき、exit の代わりにプリロードを報告します。それ以降に捕捉した結果は次のとおりです。

2026-10-16 → 2026-10-26
アプリ内ブラウザページ読み込みプリロード割合
Instagram、Android15,1001,1527.6%
Facebook、Android19,8304772.4%
TikTok、Android3,64810.03%
Instagram、iOS5,965450.8%
Facebook、iOS6,13440.07%

この実行時の件数は下限値です。スクリプトを一切実行せずに破棄されたプリロードはビーコンを残さず、実行時のルールは過去データの再構成より厳しくなっています。

なぜ重要か。 リダイレクトでクリックを数えているなら、Instagram Android の「クリック」のおよそ 13 回に一回は人の目に触れていません。そのチャネルのクリックからインストールへの比率は実際より悪く見え、生のリダイレクト数で作ったキャンペーンダッシュボードはリーチをほぼその分だけ過大に示します。

発見 2:TikTok は使う WebView によって Play Store を拒否する

Android の TikTok 内では、一部の訪問者がページから出られません。ハンドオフは発火するものの、TikTok が独自のダイアログ(「The action cannot be completed」=「この操作は完了できません」)を表示するのです。すべてのリンクで起きるわけではなく、何週間もリンク次第に見えていました。しかし実際はそうではありません。TikTok がその訪問者に使うアプリ内ブラウザ次第であり、それは user-agent からわかります。

形式user-agent の形
A… Chrome/151 Mobile Safari/537.36 musical_ly_46.8.3
BVersion/4.0 … musical_ly_2024509000 JsSdk/1.0 … BytedanceWebview
CVersion/4.0 … musical_ly_2024701040 AppName/musical_ly ByteLocale/…

ハンドオフが発火してページが非表示になったセッションを成功、フォールバックカードが表示されたセッションを失敗とします。率は 成功 /(成功 + 失敗)で、端末・日ごとに集計しています。

形式2026-10-15 までの 90 日間30 日間、2026-09-27 → 10-26
A23 / 26 (88%)827 / 969 (85%)
B0 / 17 (0%)34 / 245 (14%)
C5 / 30 (17%)4 / 33 (12%)

決め手になる比較は、形式の構成比が週ごとに変わるため、リンクと日を固定したものです。

同じリンク、同じ日(30 日間)
リンク形式 A形式 B
リンク 1560 / 674 (83%)32 / 192 (17%)
リンク 2257 / 285 (90%)2 / 47 (4%)

同じリンク、同じリダイレクトのコード、同じ日でも、ある WebView ではストアが開き、別の WebView ではほとんど開きません。90 日間のデータでは、カスタムドメインの有無による差はありませんでした。TikTok はこのダイアログについても、何が引き金になるのかも、どのユーザーにどの WebView が割り当てられるのかも公開していないので、user-agent による分類が手がかりのすべてです。

なぜ重要か。 URL の形式を変えても解決しません。intent:// による脱出も、普通の https://play.google.com の URL も同じように拒否されます。できるのは出口を隠さないことです。TikTok 内では、タイムアウトを待たずに「ブラウザで開く」の手順とコピーボタンをすぐに表示しましょう。

発見 3:iOS では App Store がアプリ内ブラウザの上に開く

Android ではハンドオフの後、ほとんどのセッションでページが非表示になり、通常は 1 〜 3 秒後です。iOS の Instagram と Facebook の中では、ほぼすべてのセッションでハンドオフが発火しているにもかかわらず、多くの場合そうなりません。

7 日間、2026-10-20 → 10-26。「ハンドオフ発火」より右の列は、ハンドオフが発火したセッションに対する割合。2.2 s の時点で表示されていて、その後に非表示になるセッションもあります。
アプリ内ブラウザページ読み込みハンドオフ発火非表示になった…4 s 以内2.2 s で表示中
Instagram、Android7,19077.5%90.0%75.9%47.6%
Facebook、Android13,60072.4%73.8%39.6%77.8%
TikTok、Android2,92047.1%85.2%79.5%7.6%
Instagram、iOS2,88194.6%55.9%41.7%64.2%
Facebook、iOS3,07887.0%13.1%7.9%65.6%
TikTok、iOS86693.8%50.5%23.8%75.2%

もし iOS の訪問者の三分の二が「App Store を開く」ボタン付きのフォールバックカードの前で本当に立ち往生しているなら、かなりの人がタップするはずです。ところが実際には、iOS の Instagram のページ読み込みの 0.9%、iOS の Facebook の読み込みの 0.4% しかボタンをタップしていません。また、「うまくいく」iOS のバージョンもありません。

三つのアプリすべて、7 日間
iOS メジャーバージョンハンドオフのあったセッションページが非表示になった
1612724.4%
1710633.0%
1895833.3%
263,71139.3%
271,24934.3%

データに合う説明は、iOS の Instagram と Facebook の中では、App Store がアプリ内ブラウザをバックグラウンドに送らずにその上に表示される、というものです。ページはその間ずっと「表示中」のままなので、訪問者が App Store を見ていても visibilitychange も pagehide も発火しません。

なぜ重要か。 ページが画面から消えたことでストアの起動を推定する指標は、iOS ではすべて誤りです。私たちはまさにその方法で算出した「ストア到達率」を顧客に表示していましたが、それは有料顧客 12 社中 10 社に対し、正常に動いているリンクが壊れていると伝えていました。そこで削除しました。iOS で信頼できるインストールのシグナルはストア側にあります。App Store の URL に provider token(pt)と campaign token(ct)を付けた、App Store Connect のキャンペーンレポートです。

その過程で計測した細かな事実

手法

限界

どうすべきか

  1. 読み込み時にハンドオフを開始する。 タップを待つページは、アプリ内からの訪問者の大半を失います。手動ボタンはフォールバックとして残し、ハンドオフが明らかに失敗したときだけ表示しましょう。
  2. Android では `intent://` と `S.browser_fallback_url` を使う。 WebView 内の https://play.google.com の URL は Play Store の Web サイトを開くだけで、ログインしなければ何もインストールできません。
  3. 遅いストアには時間を与える。 ハンドオフが失敗したと判断する前に少なくとも 3 s 待ち、遅れて来た exit も数えましょう。
  4. TikTok 内では出口をすぐに見せる: 「··· → ブラウザで開く」とリンクのコピーボタン。URL をどう変えても TikTok の拒否はなくなりません。
  5. Meta のプリロードをクリックとして数えない。 リダイレクトからクリックを報告するなら、Android の Instagram と Facebook からのアクセスの 2–9% は誰も見ていないページだと考えてください。
  6. インストールはストア側で計測する。 ページのイベントではなく、iOS では App Store Connect のキャンペーンリンク(pt + ct)、Android では Play Install Referrer を使いましょう。

私たちが開発している onestore.link は、この六つすべてをすべてのリンクにデフォルトで適用しており、上記のデータはそのリダイレクトログから得たものです。

よくある質問

Android の Instagram のリンククリックのうち、プリロードは何パーセント?

2026-10-12 までの 30 日間で、アプリ内ブラウザ(Instagram と Facebook)からの Android アクセスの 9.1% は、アプリがバックグラウンドで読み込み、約 30 秒後に誰にも見られないまま破棄したページでした。2026-10-16 以降、ページ自身の実行時チェックは下限値として Instagram Android で 7.6%、Facebook Android で 2.4% を捕捉しています。iOS では 1% 未満です。

TikTok のアプリ内ブラウザから Play Store が開かないのはなぜ?

Android の TikTok アプリは複数のアプリ内ブラウザを使っています。そのうちの一つ(ドット区切りの musical_ly_ バージョンがあり、user-agent に Version/4.0 がないもの)では、30 日間で 85% のセッションが Play Store に到達しました。他の二つ(Version/4.0 と JsSdk/BytedanceWebview、または AppName/musical_ly を含むもの)では、同じリンク・同じ日でも 12–14% にとどまりました。URL の形式に関係なく、TikTok 自身がハンドオフを拒否しています。

iOS で App Store が開いたことを Web ページから判断できる?

Instagram や Facebook の中ではできません。App Store はアプリ内ブラウザの上に開くため、ページが非表示になることはなく、visibilitychange も発火しません。7 日間で、iOS のハンドオフのうちページが非表示になったのは 13%(Facebook)から 56%(Instagram)にすぎず、フォールバックボタンをタップした訪問者は 1% 未満でした。信頼できるシグナルは App Store Connect のキャンペーンレポートです。

アプリ内ブラウザから Play Store が開くまでにどれくらいかかる?

Android では、成功したセッションの大半でハンドオフの 2–3 秒後にページが非表示になり、遅い端末では 8 秒後までかかります。2 秒後に表示するフォールバックは、成功しかけていた多くのセッションでストアより先に現れてしまいます。

Instagram の中でアプリストアへのリダイレクトが本当に失敗する頻度は?

再構成した 7,357 件の Instagram Android セッションでは、本当の失敗のパターン(ハンドオフが発火した後に何も起きず、訪問者がリンクを再タップする)は 1.9% でした。生のファネルデータに見える失敗の大半は、ビーコンの欠落、遅いストア、プリロードといった計測上のアーティファクトです。

カスタムドメインを使うと TikTok でのリンクの扱いは変わる?

変わりません。90 日間で、カスタムドメインのあるリンクもないリンクも同じように拒否されました。決め手は、TikTok がその訪問者に使うアプリ内ブラウザです。

さらに見る