ブログに戻る

モバイル指紋シミュレーション:デスクトップとのパラメータ差分

モバイル指紋シミュレーションでは、デスクトップブラウザをモバイル端末として動作させます。画面、端末モデル、センサーとタッチ、ネットワークと通信事業者、UA と App 識別子が相互に整合していることが、検査に耐える環境の前提です。

Facebook、Instagram、TikTok などで広告運用やアカウント運営を行うと、同じ操作でもモバイルとデスクトップでは挙動が異なることがあります。ページレイアウト、使える機能への入口、モバイルトラフィックに対するプラットフォーム側の扱いなどが違うためです。大量の実機を用意せずにこうした状況を検証するには、デスクトップブラウザをモバイル端末として見せる必要があります。

一言で言えば簡単ですが、実際には一式のパラメータを整える作業です。モバイル環境の信頼性は、それらの値が互いに矛盾していないかどうかで決まります。

モバイルとデスクトップはどこが違うのか

最も分かりやすいのは画面です。モバイル端末の論理解像度や viewport 幅はデスクトップと大きく異なり、同じ機種でも OS バージョンによって利用可能な viewport が変わることがあります。画面設定が合っていなければ、その後の項目を調整しても全体として不自然になります。

次の層は端末モデルとハードウェアクラスです。プラットフォームは端末モデルから性能帯を推定し、それに応じて表示するページや素材のバージョンを決めることがあります。モデル、pixel ratio、メモリ、グラフィックスの各パラメータは対応していなければなりません。ハイエンド機のモデル名にローエンド機相当のハードウェア値を組み合わせるのは、それ自体が矛盾です。

見落とされやすいのがセンサーとタッチ特性です。実機のスマートフォンにはジャイロセンサーや加速度センサーがあり、touch event には圧力、接触面積、マルチタッチなどの特徴が含まれます。デスクトップブラウザには通常これらがありません。UA だけをスマートフォン向けに変更しても、touch event を調べれば不一致が分かることがあります。ここで必要なのは数個のスイッチを有効にすることではなく、センサーの返り値と touch event の形を整合させることです。

ネットワーク種別と通信事業者も指紋の一部です。モバイル端末は通常セルラー回線を利用し、ページ側から事業者名、接続種別、場合によっては信号関連情報まで読まれることがあります。ある国の特定事業者を利用しているという設定なのに、外向き通信がデータセンター IP であれば、実機では珍しい組み合わせなので個別に確認する価値があります。

最後の層は User Agent と端末識別子です。そして多くの場合、変更されるのはここだけです。UA は端末モデル、OS バージョン、ブラウザバージョンと整合している必要があります。また、App 内の WebView 識別子と通常ブラウザの識別子は別物で、プラットフォームはそれをもとに App から開かれたのか、ブラウザから直接開かれたのかを判断できます。両者を混在させると、環境を継ぎ合わせた痕跡が見えやすくなります。

整合性をどう確認するか

パラメータ設定後は、決まった順序で一度確認するのがおすすめです。順番が重要なのは、前段の問題が後段の問題に見えることがあるためです。

まず端末 identity のグループを確認します。検査ページが読み取った OS、端末モデル、解像度、pixel ratio が設定と一致するか、さらに UA 内のモデルと OS バージョンがそれらと対応しているかを見ます。次にタイムゾーンと言語を確認します。この 2 項目はアカウントの対象市場と合っている必要があり、同時に位置情報と外向き通信の地域も同一エリアに収まっているのが自然です。これらの矛盾はよくある不整合です。その次にネットワークを確認し、外向き IP が住宅系かデータセンター系か、通信事業者情報と IP の帰属が一致しているか、WebRTC が現在の環境とまったく合わないアドレスを漏らしていないかを見ます。最後に、touch event、センサー値、フォント集合がモバイル端末らしいかという行動能力の項目を確認します。

いくつかの項目が合わない場合は、環境を何度も作り直す前に、全体と食い違っているパラメータを特定します。再構築しても、パラメータ同士の内部矛盾は解消しません。

もう一点、第三者の検査ページで異常が表示されても、必ずしも環境そのものに問題があるとは限りません。検査サイトごとにデータ収集方法は異なり、スクリプトでブラウザ特性を読むサイトもあれば、request header を見るサイトもあります。同じ環境でもサイトによって結果が違うのは珍しくありません。ブラウザ拡張機能がページから見える情報を変えることもあり、IP データベースの更新が遅ければ住宅 IP を別地域に判定することもあります。複数サイトを行き来して比較するより、更新が頻繁で評価の安定した検査サイトを一つ基準にする方が実用的です。

モバイルシミュレーションは実機の代わりにはならない

実機が必要な場面もあります。実際のセンサーデータ、カメラ、ジャイロの完全な機能が必要なテスト、端末の実在性を厳しく求め App 内で確認するリスク管理工程、実際の決済や実際の通信事業者ネットワークを伴う検証などです。また、一部の機能はネイティブクライアントにしかなく Web 版では利用できないため、こうした操作もシミュレーション環境では代替できません。

役割分担としては、Web でカバーできるモバイルシナリオはシミュレーション環境に任せ、ハードウェアや App 層の検証は実機で行うのが現実的です。両者は補完関係にあり、置き換え関係ではありません。

よくある質問

UA だけ変えれば検査を通過できるか 一般には難しいです。UA は単独で変更しやすい一方、クロスチェックもしやすい項目です。解像度、フォント、言語、タイムゾーン、タッチ能力が合わなければ、不一致は比較的簡単に分かります。

1 つのアカウントはモバイルかデスクトップのどちらかに固定すべきか 一貫させる方が適切です。同じアカウントが 2 種類の端末間を頻繁に行き来すること自体が不自然なシグナルになり得ます。環境の端末種別を、そのアカウントの普段の使い方に合わせます。

コンプライアンス上の注意点は何か 自分で運用しているアカウントと自社業務のテストにのみ使用してください。端末 identity を偽装してプラットフォームの確認を回避したり、不正行為に利用したりしないでください。

まとめ

モバイル指紋シミュレーションで扱うのは単一のパラメータではなく、端末 identity と対象市場を含む全パラメータの一貫性です。画面、モデル、センサー、ネットワーク、UA がそれぞれ妥当で、互いに矛盾していないことが重要です。モバイルとデスクトップの環境を分けて管理し、1 つのアカウントは長期的に同じ端末形態に固定し、地域と一致する独立した外向き接続を用意すると、モバイル運用の安定性を築きやすくなります。PurpleMark のような環境管理ツールでは、環境作成時に端末とシステムのパラメータ、プロキシ、開始ページをまとめて紐づけ、起動時に同じ設定を復元できるため、毎回設定し直す手間を減らせます。