ジッダでは2026年9月23日から10月6日まで第27回アラビアン・ガルフカップが開催されます。二つのグループに分かれた八つの代表チームが、キング・アブドゥッラー・スポーツシティ・スタジアムとプリンス・アブドゥッラー・アル・ファイサル・スタジアムで試合を行います。これはスポーツのニュースであり、ほとんどの人にとってはそこで話が終わります。

しかし、その中には、ジッダとその周辺にあるすべてのレストラン、ホテル、店舗、運輸会社、クリニックに関わる業務上の物語があります。丸二週間にわたり、あなたのレジの前に立つ顧客の顔ぶれが変わるのです。出場チームはイラク、オマーン、クウェート、アラブ首長国連邦、カタール、バーレーン、イエメンから来ており、それぞれが携帯番号が 964、968、965、971、974、973、967 で始まるサポーターを連れてきます。あなたのシステムが前提として作られた国番号以外の、七つの国番号です。

サウジの多くのシステムの根底にある暗黙の前提

王国の国家番号計画では、国内の携帯番号は 05 で始まり、十桁で構成されます。これは明確な規制上の事実であり、問題はそこではありません。問題は、この事実が硬直した入力チェックのルールとしてコードに移し替えられたことです。つまり、「ゼロ・ゴで始まる十桁」に一致しない入力をすべて拒否する入力欄です。

このルールは正しく見えます。一年を通じて顧客の 99% には問題なく機能するからです。ところが今回のような二週間がやって来ると、このルールは守りではなくなり、鍵のかかった扉に変わります。この違いは重要です。守りとは誤った入力をはじくことですが、このルールがはじいているのは、あなたに代金を支払おうとしている本物の顧客なのです。

さらに悪いことに、このパターンは電話番号欄だけにあるわけではありません。開発者が顧客をサウジ在住者だと想定したあらゆる場所で繰り返されています。

  • 携帯番号欄。05 で始まること、あるいは十桁の固定長に縛られた入力チェックは、湾岸諸国の番号がサーバーに届く前にそれを拒否します。
  • 認証コード。たとえ入力欄が番号を受け付けても、メッセージ配信事業者側であなたのアカウントの国際配信が有効になっていないかもしれません。その場合、顧客は番号を入力し、決して届かないメッセージを待ち続けることになります。
  • 支払いページ。Mada のみに設定された決済ゲートウェイです。来訪者が持っているのは湾岸諸国の銀行が発行した国際ブランドのカードで、本人には理由の分からない決済拒否が表示されます。
  • 身分証の入力欄。一または二で始まる、十桁の国民IDまたは在留許可番号の入力が必須になっています。来訪者が持っているのはパスポートですが、フォームには三つ目の選択肢がありません。
  • 住所。サウジの都市だけを並べた選択式のリストと、国内形式の必須の郵便番号です。しかもそれが、注文は店舗受け取りなので住所などまったく必要のないフォームの中にあります。
  • 言語。予約や支払いといった重要な導線がアラビア語のみのインターフェースになっています。湾岸諸国の来訪者はアラビア語を読めますが、遠征してくるサポーターやその同行者の一部は読めません。

なぜこれがどれもレポートに現れないのか

本当の危険はここにあります。あなたのフォームが来訪者の番号を拒否しても、測定できることは何も起きません。ダッシュボードに失敗した注文はなく、ログにエラーもなく、サポートへの問い合わせもありません。顧客は二度試し、タブを閉じ、番号を受け付けてくれた競合のほうへ行ってしまいます。あなたはその結果を、繁忙期の一週間にしては期待より少し低い売上として目にし、何か別の理由で説明してしまいます。

システムは成功については非常に細かく記録しますが、始まる前に失敗したことについては沈黙します。完了した注文には最初のクリックから請求書までの完全な記録が残りますが、ブラウザ上の入力チェックで止められた来訪者は、記録を残すためのサーバーにすら到達していません。だからこそ、ここで最初に直すべきはフォームではなく計測です。入力チェックの失敗を独立したイベントとして記録し、項目名と拒否の理由を残しつつ、入力内容そのものは保存しないようにしてください。それを一週間続ければ、どの項目が顧客を締め出しているのかが正確に分かります。これは、アーキテクチャの中で見えていない単一障害点の記事で取り上げたのと同じ種類の可視性です。

9月23日までに本当に直せること

五日間ではシステムを作り直すことはできませんが、上に挙げた六つの障壁を取り除くには十分すぎるほどです。そのほとんどが開発ではなく設定の問題だからです。以下は効果の大きい順に並べています。

  • 携帯番号欄を国際形式に対応させる。サウジアラビアを初期値とする国番号セレクターを設け、番号はプラス記号で始まる一つの標準的な国際形式で保存します。これは一つの層だけの変更で、七か国に限らず、すべての国の問題を解決します。
  • 大会前に、実在する湾岸諸国の番号への認証コード配信をテストする。有効になっているはずだと思い込まないでください。出場国の実際の番号にコードを送り、数秒以内に届くことを確認します。テストは数分で終わり、放っておけば二週間分の損失につながる不具合を明らかにしてくれます。
  • 国際カードとモバイルウォレットを有効にする。決済事業者に、自社のプランで理論上利用できるブランドではなく、自社のアカウントで実際に有効になっているブランドはどれかを確認してください。ウォレットの選択肢がなければ追加しましょう。一度も使ったことのないサイトにカード番号を入力したくない来訪者にとって、それが最も速い手段だからです。
  • 身分証の入力欄を任意にするか、パスポートという選択肢を加える。法令上の理由でその入力欄があるなら、その旨を横に記載し、パスポートの形式を受け付けるようにします。単なる慣習で置いているだけなら、今週中に削除してください。
  • 住所を選択式のリストから解放する。都市は自由記述の入力欄にし、郵便番号は任意にします。配送を伴わない注文では特にそうです。
  • 重要な導線だけを翻訳する。メニューや商品一覧、予約の手順、支払いページ、道順のページです。火曜日までにサイト全体を翻訳する必要はありません。必要なのは、来訪者が購入できることです。

修正のすぐ後に来るのが処理能力の問題です。このピークは一日を通して分散するのではなく、各試合の前後にある二つの短い時間帯に集中します。これは給料日、日付がすでに分かっているピークの記事で説明したパターンとよく似た動きをしますが、一つ違いがあります。この人の波は、地理的にも、同じ方向へ、同じ時間に移動するのです。

この二週間で収集することになるデータ

王国外からの来訪者があなたのシステムに登録するということは、国内顧客のデータとまったく同じように、個人データ保護法(PDPL)の対象となる個人データが生じるということです。実践上のポイントは単純です。使わない項目は収集しないこと。急ごしらえのフォームに追加した余分な項目は一つひとつが、大会終了後も何か月にもわたってあなたに付きまとう義務になります。

プライバシーページには、何を、なぜ収集し、どれくらいの期間保存するのかを、コピーした法律の定型文ではなく、来訪者が理解できる言葉で記載してください。二週間に一度だけ登録する人は十段落もの文章を読みませんが、テーブルを予約するのに国民ID番号を求められれば、きっと気づきます。

Origami の視点

既存システムを見直す際、私たちはこのパターンによく出会います。三年前、当時は正しかった状況のために書かれた入力チェックのルールが、その後誰も見直すことのない恒久的な決定としてコードに残っているのです。誤りは、開発者が間違えたことではありません。その前提が見直し可能な場所にどこにも書き残されなかったために、設定ではなく構造の一部になってしまったことです。

だからこそ私たちは、システムを構築する際に入力チェックのルールをコードから切り離して設定として扱い、今日の顧客が全員国内の人であっても、携帯番号は常に国際形式で保存しています。構築時のコストはほぼゼロです。一方、二年後、バーレーンからの来訪者を迎えるダンマームの支店を開くとき、あるいはあなたの街に大会がやって来るときのコストは、一時間の設定作業と、週単位で見積もる改修プロジェクトとの差になります。私たちはサービスの範囲で構築するすべてのものに同じ原則を適用しています。今日成り立っている前提は、コードの一行の条件としてではなく、設定として書く、という原則です。

10月6日の後に残るもの

大会は十月六日に終わります。しかし、あなたが直した部分は終わりません。王国では大規模なイベントが絶え間なく開催されており、シーズンイベントや会議、大会は、今や例外ではなくカレンダーの恒常的な一部です。今日、王国外からの来訪者を受け入れられるシステムは、次のイベントでも追加の作業なしに彼らを受け入れられます。

今週、実行できる最小の一歩から始めてください。自社のサイトやアプリを開き、実在する湾岸諸国の携帯番号とサウジ以外のカードを使って、購入を最後まで完了できるか試してみるのです。うまくいけば、準備は整っています。特定の入力欄で止まってしまったなら、二週間分の売上がどこから逃げていくはずだったのかを、たった今見つけたことになります。

出典