自分のウェブサイトを別の国から見る方法
目次

要点: サイトは通常、IPアドレスから訪問者の国を判断し、ブラウザの言語、タイムゾーン、Cookie、サインイン中のアカウントに応じて表示内容を調整します。自分のウェブサイトを別の国から見るには、そのすべてを市場に合わせる必要があります。つまり、アドレスにはその国のプロキシを使い、市場の言語とタイムゾーンを設定し、ご自身のCookieを一切持たない別のChromeプロファイルを用意します。
自分のウェブサイトを別の国から見るには、リクエストが現地の訪問者と同じ形で届く必要があります。その国のアドレスから、その市場のブラウザ言語とタイムゾーンで、ご自身の訪問が残したCookieを持たずに届くことです。アドレスはプロキシが受け持ち、残りはブラウザの設定です。このガイドは自分のサイトを確認するためのもので、当社のリージョン別テストのページで説明している作業にあたります。Chromeでの設定方法、確認のたびに書き留めること、そしてVPNでも同じように済むのはどんな場合かを扱います。
サイトは何をもとに訪問者の国を判断しますか?
通常はIPアドレスで、ほかのシグナルと組み合わせることがよくあります。シグナルは五つあり、それぞれ出どころが異なります。
- IPアドレス。 サーバー、またはその前段にあるCDNが、位置情報データベースでアドレスを照会します。たとえばCloudflareは、訪問者の国を2文字のコードとして
CF-IPCountryヘッダーでオリジンに渡せます(Cloudflareのヘッダーリファレンス)。 - ブラウザの言語。 Chromeは設定の優先言語から組み立てた
Accept-Languageヘッダーを送り、ページのスクリプトは同じリストをnavigator.languagesから読み取ります(MDN)。 - タイムゾーン。 スクリプトは
Intl.DateTimeFormatAPIを通じて、resolvedOptions()のtimeZoneフィールドから、Europe/Berlinのような名前でコンピューターのタイムゾーンを読み取れます(MDN)。 - 正確な位置。 Geolocation APIは、訪問者が許可したあとでしか座標を報告しません(MDN)。そのため、ほとんどのサイトはそれを得られません。
- サイトがすでに知っていること。 前回選んだ地域や通貨を保存したCookie、またはサインイン中のアカウントに登録された国が、アドレスより優先されることがあります。
表「どのシグナルがどこから来るか、テストではどう設定するか」では、各シグナルとそれを制御するChromeの設定を対応させています。
なぜプロキシだけでは足りないのですか?
シグナルどうしが食い違うことがあり、サイトがその食い違いをどう扱うかも、テストすべき内容の一部だからです。Chromeをドイツのアドレス経由にしても、言語リストを英語(米国)のままにしておくと、言語をAccept-Languageから、価格をアドレスから決めるサイトは、ユーロの価格を英語で表示します。ドイツ語のブラウザを使うドイツの実際の訪問者が、そのページを目にすることはありません。普段のCookieを残したままだと、サイトは国の判定ロジックを飛ばして、先月選んだ地域を表示するかもしれません。
そのため、最初の確認の前にすべてのシグナルを市場に合わせ、以降の確認でもそのままにしておいてください。
市場ごとに一つのChromeプロファイルを設定するには?
市場ごとに別のChromeプロファイルを作り、それぞれに専用のプロキシを設定します。プロファイルは独自の履歴、パスワード、設定を保持し(Chromeヘルプ)、独自のCookieも保持します(Chromiumのユーザーデータディレクトリに関する説明)。ドイツ用プロファイルのCookieがフランス用に入ることはなく、どちらも普段のブラウジングには触れません。
- プロファイルを作成する。 右上のプロフィール画像を選び、Add Chrome profile(Chromeプロファイルを追加)を選んで、「Test DE」のように市場の名前を付けます。Googleアカウントにはサインインしないでおき、メインのプロファイルから何も同期されないようにします。
- そのプロファイルにプロキシ拡張機能をインストールする。 拡張機能は、インストールされたプロファイルのプロキシを設定します(chrome.proxy API)。そこに市場のプロキシを追加してください。当社の無料のProxyJam Connectorも、そうした拡張機能の一つです。
- テスト対象のドメインだけをプロキシ経由にする。 サイトのドメインとそのサブドメインにルールを追加し、フォールバックはDirect(直接接続)のままにします。Chrome自体の通信とほかのすべてのサイトはご自身の接続のままで、プロキシが運ぶのはテストだけになります。ルールがどのようにPACスクリプトになるのか、そしてHTTPSではなぜルールがパスではなくホスト名にしか一致しないのかは、Chromeで特定のサイトだけにプロキシを使う方法で説明しています。
- ページが呼び出すホストを追加する。 DevToolsを開いてページを再読み込みし、NetworkパネルのDomain列を確認します(非表示になっている場合は、列見出しを右クリックすると表示できます)。価格は別のホストのAPIから来ることが多く、同意バナーはどのバージョンを表示するかをベンダーのサーバーに問い合わせることがあります。ルールから漏れたホストにはご自身のアドレスが見え、ページは二つの市場が混ざった状態になります。一つずつ追加してください。
- 言語を設定する。 設定の「言語」で、「優先言語」に市場の言語を追加し、先頭に移します(Chromeヘルプ)。
Accept-Languageが送るのはこの順番です。 - タイムゾーンを設定する。 Chromeはタイムゾーンをオペレーティングシステムから取り、独自の設定を持っていません。テストではDevToolsで指定できます。DevToolsの設定のLocationsで、市場のTimezone IDとLocaleを持つロケーションを追加し、Sensorsパネルでそれを選びます(DevToolsのドキュメント)。この上書きはDevToolsを開いているタブにだけ適用されるので、ページを読み込む前にDevToolsを開いてください。システムのタイムゾーンを変えても機能しますが、コンピューター上のすべてのプログラムに一度に及びます。
- プロファイルを確認する。 少しの間proxyjam.comをルールに加え、What Is My IPを開きます。プロキシのアドレスが、市場の国に位置する形で表示されるはずです。確認が済んだら、確認用のページをルールから外してください。
プロキシにユーザー名とパスワードが必要で、Chromeがそれを何度も求めてくる場合は、プロキシのサインイン要求でその理由と対処法を説明しています。
地域別の確認では何を記録すべきですか?
二回の確認を一行ずつ比べられるように、毎回同じ項目を記録します。リスト「毎回同じ項目を書き留める」は出発点となる項目一式です。リダイレクトチェーン、価格と通貨、在庫、同意バナー、言語、そしてプロファイルが使っていたアドレス。
リダイレクトチェーンについては、NetworkパネルでPreserve logをオンにしてください。リダイレクト前のリクエストがリストに残ります(DevToolsのNetworkリファレンス)。ターミナルからは、curlに-Iと-Lを付けると各ホップのヘッダーを表示し、-xでプロキシ経由でリクエストを送り、-Hで言語のヘッダーを追加します(curlのマニュアル)。プロキシのアドレスは、ドキュメント用に予約された範囲(RFC 5737)から取っています。ご自身のものに置き換えてください。
curl -sIL -x http://203.0.113.10:8080 -H "Accept-Language: de-DE,de;q=0.9" https://example.com/
ステータス行のあとにlocation:ヘッダーが続くものが、それぞれ一つのホップです。このような単純なリクエストで分かるのは、リダイレクト、ヘッダー、そしてHTMLに書き込まれた価格です。-IはHEADリクエストを送るので、HEADとGETに異なる応答を返すサーバーでは、チェーンが違って見えることがあります。通常のリクエストのヘッダーを表示するには、-Iを外して-o /dev/null -D -を付けてください。curlはスクリプトを実行しないため、同意バナーや、ページの読み込み後に埋められる価格の確認には、ブラウザのプロファイルが必要です。
確認1回につき1行、市場1つにつき1シートで記録してください。二回の確認の差を調べる価値があるのは、アドレス、言語、タイムゾーンが両方の回で同じだった場合だけです。どれかが変わっていたなら、比べているのは二つの異なる設定です。
リダイレクトチェーンはQAの枠を超えて重要です。Googleによれば、そのクローラーの既定のアドレスは米国にあるように見え、Accept-Languageヘッダーを送りません(Google Search Central)。そのため、自動判定でしかたどり着けない市場別のバージョンは、Googleにクロールもインデックスもされない可能性があります。専用のURLを持つバージョンなら、それを避けられます。
繰り返しのテストで、静的アドレスがローテーションのものより優れているのはなぜですか?
比較では、一度に一つのことだけが変わる必要があります。ローテーションプールはリクエストごと、またはセッションごとに別のアドレスを割り当て、アドレスごとに位置情報の記録も所属ネットワークも異なります。月曜日から木曜日の間に価格が動いたとき、変わったのがサイトなのかアドレスなのかを見分けられません。静的アドレスなら観測点が固定されるので、比較の変数から外れます。一つのアドレスを保持する場合とプールから取り出す場合の違いは、ISPプロキシとレジデンシャルプロキシの比較で詳しく比べています。
静的アドレスでも動くことはあります。位置情報データベースは更新され、アドレスが別の国として記録されることもあります。そのため、What Is My IPでの確認は、最初の回も含めて毎回の確認の前に行います。一つの市場で多数の異なるアドレスを同時に必要とする場合は、ローテーションプールのほうが適した道具です。
VPNで十分なのはどんな場合で、そうでないのはどんな場合ですか?
一度だけ見るならVPNで十分です。ドイツのトップページが読み込まれるか、バナーが表示されるか、といった確認です。手早く、すでにインストールしている人も多いでしょう。
確認を繰り返す必要がある場合、VPNには三つの点で足りないところがあります。
- VPNアプリは通常、端末のすべての通信を運ぶので、すべてのプログラムとタブがまとめてテスト対象の国に置かれ、二つの市場を並べることができません。
- その出口アドレスは多数の利用者で共有されており、IPデータでは既知の分類になっています。商用データベースには、匿名VPN事業者に登録されたアドレスを示す項目があります(MaxMindのドキュメント)。それを読むサイトはVPNの訪問者を別扱いすることがあり、その場合、確認で記録されるのはその扱いです。
- 出口アドレスは接続のたびに変わることがあり、ローテーションプールと同じ問題が戻ってきます。
ProxyJamはどこで役立ちますか?
ProxyJamは静的レジデンシャル(ISP)プロキシを販売しています。お客様が選んだ国にあり、インターネット事業者に登録され、お支払いいただいた期間中ずっとお客様のものであり続けるアドレスです。この作業では、市場ごとにアドレスが一つということになります。対象国はプロキシの所在地のページに掲載しており、現在は77か国です。IP単位・期間単位の価格は料金ページにあります。アドレスが購入した国の外として判定されるようになった場合は、利用規約の第2.5条で定める月間の上限の範囲内で、無料交換の対象になります。
この製品は国単位で販売しているため、二つの都市の違いを示すことはできません。また、自分のサイトを確認するためのものです。サイトがお客様の国に提供していないコンテンツにアクセスするためにアドレスを使うことは、当社の適正利用ポリシーの第5条で禁止されています。カタログはISPプロキシのページにあり、そもそもISPプロキシとは何かはISPプロキシとはで説明しています。
