開発者向け
iPad で App Store ではなくパソコン向けページが表示されるのはなぜ?
iPadOS 13 以降、iPad の Safari は自分を Mac だと名乗ります。端末別リダイレクトが iPad を見逃す理由と、見分ける方法を解説します。
結論
iPadOS 13 以降、iPad の Safari はデスクトップ版の Web サイトを要求し、Mac のユーザーエージェント(「Macintosh; Intel Mac OS X 10_15_7」)を送るため、「iPad」を探すリダイレクトはそれをパソコンとして扱います。サーバーでは両者を区別できません。ブラウザでは、navigator.maxTouchPoints が 1 より大きい Mac のユーザーエージェントは iPad です。OneStoreLink(onestore.link)はそうした iPad をパソコン向けページへ送り、そこの App Store ボタンからワンタップでストアへ進めます。
最終確認日:2026-11-03
iPhone を App Store へ、Android スマートフォンを Google Play へ送るリンクを作り、試したどのスマートフォンでも動いたのに、iPad の人がパソコン向けページに着地してしまう。あなたのコードは間違っていません。iPad は意図的に自分の正体を偽っています。Apple が iPad でパソコンと同じ完全な Web サイトを見られるようにしたかったからです。このガイドでは、iPad が何を送っているのか、なぜサーバーでは見抜けないのか、ブラウザでどう判定するのか、そしてストアへのリダイレクトは iPad をどう扱うべきかを説明します。
課題
- iPadOS 13 以降、iPad の Safari は標準でデスクトップ版の Web サイトを要求し、Mac の Safari と同じユーザーエージェントを送ります。
- ユーザーエージェントに対する /iPad|iPhone/ のような判定は一致しないため、iPad はパソコンとして扱われます。
- サーバー側には他に判断材料がありません。デスクトップモードの iPad のリクエストは Mac のリクエストと同じに見えます。
- パソコン向けの分岐がストアボタンのない Web ページを表示するだけなら、iPad のユーザーはインストールできるアプリのあと一歩手前で行き詰まります。
onestore.link なら
- ブラウザでは、タッチポイントが 2 つ以上ある「Macintosh」のユーザーエージェントを iPad として扱います。Mac では navigator.maxTouchPoints は 0 です。
- サーバーでは、パソコン向けの分岐を無害にします。両方のストアボタンがあるページにし、ボタンのないページには決してしません。
- onestore.link はサーバーで判定します。通常のブラウザでは、iPhone と iPad のユーザーエージェントは App Store へ、Android は Google Play へ直接送られ、それ以外のすべて(デスクトップモードの iPad を含む)には両方のストアボタンと QR コードのあるページが表示されます。
- そのページの App Store ボタンは iPad 本体で App Store を開くので、訪問者はワンタップでインストールに進めます。
手順
SDK も再ビルドも不要。URL があるだけです。
- 1
ブラウザで iPad を見分ける
リダイレクトを JavaScript で実行しているなら、ユーザーエージェントの判定にタッチの判定を加えます。Mac が 2 つ以上のタッチポイントを報告することはありませんが、iPad は報告します。
// iPadOS 13+: iPad の Safari は Mac のユーザーエージェントを報告する const ua = navigator.userAgent; const isIOS = /iPad|iPhone|iPod/.test(ua) || (/Macintosh/.test(ua) && navigator.maxTouchPoints > 1); const isAndroid = /Android/i.test(ua); - 2
パソコン向けの分岐に両方のストアボタンを置く
サーバー側のリダイレクトではこの判定を実行できないため、「パソコン」向けに返すページは一部の iPad にも表示されます。そこに App Store ボタンと Google Play ボタンを置き、本物のパソコン向けに QR コードも加えましょう。
- 3
または振り分けを onestore.link に任せる
2 つのストア URL で onestore.link を作成します。スマートフォンはサーバーでリダイレクトされ、それ以外のすべての訪問者(デスクトップモードの iPad を含む)には両方のボタンと QR コードのあるページが表示されます。保守するコードはありません。
よくある質問
iPad はなぜ Mac のユーザーエージェントを送るのですか?
iPadOS 13 以降、iPad の Safari は標準で Web サイトのデスクトップ版を要求し、それを受け取るために macOS の Safari を名乗ります。ユーザーはサイトをモバイル版に戻せますが、ほとんどの人はそうしません。
デスクトップ版サイトを要求する iPad をサーバーで検出できますか?
確実にはできません。ユーザーエージェントは Mac と同じで、タッチスクリーンを示すリクエストヘッダーもありません。検出にはページ内の JavaScript が必要ですが、単純な 302 リダイレクトはそれを実行しません。
navigator.maxTouchPoints だけで十分ですか?
ユーザーエージェントと組み合わせて使います。navigator.maxTouchPoints が 1 より大きい「Macintosh」のユーザーエージェントは iPad です。単独で使うと、タッチスクリーン付きの Windows ノートパソコンにも一致してしまいます。
onestore.link を使うと iPad のユーザーには何が表示されますか?
Safari の標準のデスクトップモードでは、パソコン向けページが表示されます。アプリ名とアイコン、App Store ボタン、Google Play ボタン、QR コードです。App Store をタップすると iPad で App Store が開きます。ブラウザが iPad のユーザーエージェントを送る iPad は、App Store へ直接リダイレクトされます。
試してみませんか?
ずっと無料、パスワード不要。リンクは1分ほどで完成します。
無料リンクを作るツールを比較中ですか? onestore.link vs onelink to →