「別の国から航空券を予約すれば安くなる」というのは、インターネット上で最も繰り返される旅行アドバイスの一つだ。しかし、公正なテストは見かけよりも難しいため、これがきちんと検証されることは滅多にない。価格は分単位で変動し、通貨は国によって変わり、サイトは検索ページとチェックアウトで異なる表示をすることもある。
そこで我々は実際にテストを行った。2026年9月24日、レジデンシャルIPアドレスを通じて、6か国から同じ航空会社の運賃と同じホテルの掲載情報を読み込み、出口の国以外は何も変えなかった。この記事では、我々が実際に確認したこと、公開されている研究が示していること、そして同じくらい重要な、我々が到達できなかった価格の部分について報告する。
主な要点
- 航空運賃は出口国によって変化しなかった。 Ryanairの公開運賃データへの72件のリクエストと、実際の予約ページへの6回の読み込みすべてにおいて、どの国からも同じフライトに対して同じ価格が表示された。
- 通貨は我々ではなく、出発空港に従った。 ダブリン発はどの国からもユーロで、ロンドン発はどの国からもポンドで価格表示された。
- Booking.comの公開されている「〜から」価格も変化しなかった。 パリのホテル10軒は、6か国すべて、2回のラウンドともに同一の価格を示した。表示通貨はIPではなくブラウザの言語に従っていた。
- 最も変動しやすいと思われるホテル価格には到達できなかった。 Booking.comはホテルが選択した国からの訪問者のみに見えるCountry Ratesを提供できる仕組みを持つ。我々の自動化ブラウザは、日付指定の検索結果に到達できなかった。
- これは公開されている研究の大半と一致する。 航空会社サイトを対象とした研究では、位置情報に基づく体系的な価格設定はほとんど見られない一方、ホテル予約プラットフォームを対象とした研究では、実在するが限定的な差異が見つかっている。
テスト方法
原則はシンプルだった。リクエストの発信元に見える国以外はすべて一定に保つことである。
| 設定項目 | 値 |
|---|---|
| テスト実施日 | 2026年9月24日、主な実行は11:29から12:03 UTCの間 |
| 出口国 | アメリカ合衆国、イギリス、ドイツ、フランス、インド、ブラジル |
| ネットワーク | Shifterレジデンシャルゲートウェイ、セッションごとに国を選択 |
| 出口確認 | すべての主な実行において、旅行ページを読み込む前にセッションの位置情報を確認し、すべて要求した国と一致していた |
| 航空会社 | Ryanair: 2026年11月10日の3路線の公開運賃データ、および実際のダブリンからロンドン・スタンステッド間のフライト選択ページ |
| ホテル | Booking.com: 英国英語表示によるパリの都市ページ公開情報、各掲載ホテルの「Price from」の数値を読み取り |
| 繰り返し | 2ラウンド、国の順番はシャッフル、リクエストは数秒間隔 |
| 動作 | ログアウト状態、公開ページのみ、予約なし、少数のリクエストをゆっくりとしたペースで |
出口は一般的な家庭用回線だった。例えばアメリカ合衆国ではセッションはComcastとCharterに、イギリスではBTに、ドイツではDeutsche Telekomに接続した。各国内では、スティッキーセッションによってページとその読み込み内容がすべて単一のIPアドレスに保たれ、サイトからはローテーションする集団ではなく一貫した一人の訪問者として見えるようになっていた。
比較そのものは、異なる国から送信された同一のリクエストである。
import json
import urllib.request
URL = ("https://www.ryanair.com/api/farfnd/v4/oneWayFares?departureAirportIataCode=DUB"
"&arrivalAirportIataCode=STN&outboundDepartureDateFrom=2026-11-10"
"&outboundDepartureDateTo=2026-11-10¤cy=EUR")
def price_from(country, username, password):
proxy = f"http://{username}-country-{country}:{password}@p.shifter.io:443"
opener = urllib.request.build_opener(urllib.request.ProxyHandler({"https": proxy}))
with opener.open(URL, timeout=45) as r:
fare = json.loads(r.read())["fares"][0]["outbound"]["price"]
return fare["value"], fare["currencyCode"]
for country in ["us", "gb", "de", "fr", "in", "br"]:
print(country, price_from(country, "customer-USERNAME", "PASSWORD"))
判明したこと: 航空会社
Ryanairは公開データエンドポイントを通じて最低運賃を公開しており、これによりクリーンな比較が可能となる。我々は各国から2026年11月10日の3路線について、一度は通貨をユーロに固定し、もう一度は固定せずに、2ラウンドにわたってリクエストを送信した。
| 路線 | 6か国すべてから見られた価格 | 通貨 |
|---|---|---|
| ダブリンからロンドン・スタンステッド | €19.99 | EUR |
| ダブリンからバルセロナ | €40.99 | EUR |
| ミラノ・ベルガモからロンドン・スタンステッド | €14.99 | EUR |
| ロンドン・スタンステッドからダブリン、通貨未指定 | £17.99 | GBP |
72件のリクエストはすべて成功し、国による変動は一切見られなかった。通貨を指定しなかった場合、それは我々がどの国にいるように見えても、出発空港に従った。ダブリンとベルガモ発はユーロ、ロンドン発はポンドである。
データエンドポイントだけがすべてではないため、我々は各国からフルブラウザでRyanairの実際のフライト選択ページも読み込んだ。11月10日前後の日付の運賃表示、およびその日の各フライトの運賃は、6か国すべてで同一だった。パイロット実行中に1件、イギリスからの読み込みが接続リセットで失敗したが、再試行では正常に読み込まれた。それ以外のエラーは見られなかった。
フローの次のステップの背後にあるRyanairの予約エンドポイントは、どの国からの直接リクエストも同様に拒否したため、チェックアウトは測定できなかった。特定の支払い方法に対して支払い時に追加される手数料は、このテストの対象外である。
判明したこと: ホテル
Booking.comは差異が見られると予想していた場所であり、その理由はBooking.com自身が文書化している。そのパートナー向けページでは、ホテルがCountry Ratesを提供できると説明されており、これは「対象とする国と一致するIPアドレスから当社のプラットフォームを利用しているゲストにのみ表示される」割引である。つまり、位置情報に基づくホテル価格設定は設計上存在するのだ。
我々はそこに到達できなかった。どの国からも、我々の自動化ブラウザは日付指定検索からBooking.comの一般的なパリのページにリダイレクトされ、検索ボックスの日付ピッカーが反応しなかった。Country Rateが表示される唯一の場所である日付指定結果には到達できなかった。この種の静かな機能低下は、厳重に保護されたサイトへの自動化アクセスでよく見られるものであり、サイレント失敗率の良い例である。ページは正常に読み込まれたが、それは人間が見るであろうページではなかった。
パリのページが実際に表示していたのは、掲載されている10軒のホテルそれぞれの「Price from」の数値だった。6か国、2ラウンド、合計12回の読み込みにわたり、リストは同一だった。同じホテルが、同じ順序で、同じ価格で表示され、最も安いもので£192.72、最も高いもので£468.82だった。
通貨表示にはそれ自体の物語があった。すべての読み込みでポンドが表示されたのは、ブラウザが英国英語に設定されていたためである。同じページでブラウザの言語を米国英語に切り替えると、米ドルが表示された。表示通貨はIPアドレスではなく言語設定に従っていた。これは価格差を位置情報のせいにする前に知っておく価値がある。異なる通貨は異なる価格ではない。
公開されている研究が示すこと
我々の結果は1日、6か国、2サイトによるものだ。より広範な研究は、古いものではあるが規模が大きく、同じ方向を示している。
| 研究 | 測定対象 | 結果 |
|---|---|---|
| Vissers他、HotPETs 2014 | ニューヨークとルーヴェンから、25の航空会社ウェブサイトを3週間にわたって調査 | 体系的な価格差別は見られなかった: 「ほぼすべての航空会社が両方の場所で同様の価格を示している」。一つのサイトの高値は国内税で説明された |
| Steer Davies Gleave (欧州委員会向け)、2012年 | 100の航空会社および旅行代理店ウェブサイト | 74%が居住地によって価格を変えていなかった。変動がある場合は通常サービス料や支払い手数料によるもので「典型的には5〜15ユーロ」 |
| 欧州委員会レビュー、2020年 | 2019年のミステリーショッピング | 航空会社ウェブサイトの31.9%が国境を越えた買い物客に異なる価格を示し、2015年より11.6ポイント低下 |
| Hupperich他、CODASPY 2018 | 複数の国からのリクエストによるホテル予約プラットフォーム | 一部のプラットフォームで位置情報に基づく価格調整が確認されたが、「価格の変動は限定的な範囲内にとどまるようだ」。あるプラットフォームはすべての国を同様に扱っていた |
| Which?、2023年1月 | 異なる国から予約する消費者テスト | 「異なる国で予約しても航空券価格はあまり変わらない」 |
このパターンは一貫している。航空運賃は訪問者の位置情報に応じてはめったに変動せず、国境を越えた差異が現れる場合、それは手数料、支払い方法、税金、通貨に起因する傾向がある。ホテルプラットフォームは異なり、ホテル自体が国別に割引を対象化できるため、実在するが控えめな変動として現れる。
これが意味すること
旅行者にとって、一般的なアドバイスは聞こえるほど強力ではない。航空会社側では、異なる国から予約しても運賃が変わる可能性は低く、異なる通貨や支払い方法はむしろ節約分より多くのコストがかかることがある。ホテルについては、Country Rateは他のどの国と同様に、あなた自身の国に対しても存在しうる。Which?はまた、他国を通じた予約が法的にグレーゾーンになりうると注意を促している。
旅行およびeコマースのチームにとって、教訓は測定設計に関するものだ。市場間の価格を比較する場合、位置情報について結論を出す前に、通貨、言語、税金、手数料を制御し、各読み込みが実際の訪問者が見るであろうページを返したかを確認すべきである。国と都市のターゲティングからスティッキーセッションに至るまでの収集側の作業については、フライトとホテル価格のスクレイピングおよび旅行運賃データ向けレジデンシャルプロキシで取り上げている。
報道機関にとって、正直な見出しは「価格はあなたの居場所次第だ」よりも狭いものになる。位置情報に基づく価格設定は旅行業界に存在し、最も顕著なのは国別に対象化されたホテル割引だ。我々が到達できた航空会社とホテルの価格全体を通して、我々はそれを一切確認しなかった。
このテストの限界
単一のテストは、それが対象としなかったことを明示すべきである。
- 1つの航空会社と1つのホテルプラットフォームを、1日、6か国で調査した。
- 日付指定のホテル検索結果は対象外であり、したがってCountry Rates(位置情報に基づくホテル価格の最も可能性の高い出所)も対象外である。
- チェックアウト時の合計金額は対象外であり、したがって支払い手数料、予約時に適用される税金、会員限定価格も対象外である。
- 一部のプラットフォームが個別に設定しているモバイルアプリ価格は対象外である。
これらはそれぞれ追跡調査の価値がある。我々が言えるのは、それ以外のすべてを一定に保った状態で、我々が到達できた価格データは、我々がどの国にいるように見えても変化しなかったということだ。
情報源と参考文献
- Booking.com for partners、Country Rates。
- Vissers、Nikiforakis、Bielova、Joosen、Crying Wolf? On the Price Discrimination of Online Airline Tickets、HotPETs 2014。
- Steer Davies Gleave (欧州委員会向け)、Price transparency provisions in Regulation 1008/2008、2012年1月。
- 欧州委員会、Short-term review of the Geo-blocking Regulation, staff working document、2020年11月30日。
- Hupperich、Tatang、Wilkop、Holz、An Empirical Study on Price Differentiation Based on System Fingerprints、ACM CODASPY 2018。
- Which?、Can a VPN get you cheaper flights, hotels and holidays?、2023年1月9日。
- Shifter、Residential Proxies geo-targetingおよびsessionsドキュメント。