すべての記事

届かなくなった認証SMS:SHAFTフィルタリングが成人向けクラシファイド広告サイトで実際に何を遮断しているのか

14 分で読めます

届かないコード、そして誰も理由を説明しない

訪問者が登録し、電話番号を入力し、ログインを許可する六桁のコードを待つ。良い日なら三秒で届く。悪い日には全く届かず、プロダクトの中には理由を示すものが何もない。登録フォームにはエラーが表示されない。通信事業者は配信失敗の通知を送らない。メッセージは相手側に単純に存在せず、唯一見える症状はわずかに高い離脱率で、それは他の十数の原因のせいにもできてしまう。

この沈黙は障害よりも悪い。障害なら修理できるからだ。通信事業者側のコンテンツフィルターが、あなたのトラフィックはブロック対象のカテゴリに属すると静かに判断した場合、サーバーを再起動したりAPIキーを更新したりしても解決しない。解決できるのは何がそれを引き起こしたかを理解した場合だけであり、大半の運営者はそこまで到達しない。拒否理由は彼らが決して開かない開発者向けコンソールの中にあり、事業を経営する人向けではなく、プログラムを書く人向けの言葉で書かれているからだ。

この背後にある仕組みは噂ではない。略語があり、トラフィックを中継する企業が公開しているエラーコードの一群があり、事業そのものの名称に含まれる言葉、成人向け、と直接結びついている。米国の通信事業者は商用SMSを少数のコンテンツカテゴリと照合してフィルタリングしており、そのカテゴリの一つが性および成人向けコンテンツである。エスコートのクラシファイド広告ディレクトリは、実際のメッセージ本文が何であろうと、定義上そこに含まれる。

これはこのブログの他の場所で扱っている障害とは異なる。メールの配信性が崩れるのは、スパムフィルターが送信者の評判とフォーマットに基づいてメッセージを評価するためであり、注意深い送信者はより良い認証と段階的なウォームアップで回復できる。成人向けコンテンツに対するSMSフィルタリングは異なる働き方をする。時間とともに回復する評判スコアではなく、通信事業者のシステムが登録時に一度だけ確認するカテゴリの一致であり、多くの場合、再提出さえ許されない。

SHAFTフィルター:通信事業者が実際に何を標識しているのか、その言葉で

ブロック対象カテゴリに対する業界の略語はSHAFTである。性(sex)、憎悪(hate)、アルコール(alcohol)、銃器(firearms)、たばこ(tobacco)。これは通信事業者がマーケティング用に作った用語ではなく、申請が失敗したときにメッセージングプラットフォームが返す拒否コードの中に直接現れる。エラーコード30953に関するTwilio自身のドキュメントは、あるキャンペーンがCTIAのSHAFTガイドラインに違反する性的または成人向けコンテンツを含むために拒否されたと明確に述べており、拒否そのものより重要な詳細を付け加えている。そのカテゴリの拒否は再提出の対象にならないということだ。異議申立ての書式はなく、それを解決する修正された文言もなく、通常の登録経路を通じた二度目の試みもない。

同じパターンはフリーダイヤル番号側にも現れる。多くの運営者は標準の市内局番登録より官僚的でないように見えるため、まさにそこに手を伸ばす。エラーコード30441は、審査担当者が実際のウェブサイト、同意フロー、あるいは申請とともに提出されたサンプルメッセージを見て、その利用ケースが「性に関連するように見える」と判断したために拒否されたフリーダイヤル番号の確認に対応する。拒否は個々のメッセージが何を言っているかだけに限定されない。その番号が代表するために登録されたウェブサイトを見るのであり、クラシファイド広告ディレクトリにとってそれは事業全体そのものである。

これが決済プロセッサーによるアカウント閉鎖と異なるのは、審査の対話が完全に存在しないことだ。決済プロセッサーは事前通知期間、理由コード、そして時には話し合いに応じるコンプライアンス担当者とともに加盟店を閉鎖する。通信事業者の自動コンテンツフィルターは開発者向けダッシュボードに拒否コードを返し、それだけで先に進む。通信事業者側の誰も、あなたの事業がサービスに値しないと判断しているわけではない。何年も前に別の理由で書かれた規則が自動的にそれを行っており、対象のメッセージが無害な六桁のログインコードであることを知らず、気にもしない。

カテゴリの一致は、個々のメッセージ内の言葉だけではなく、登録されたブランドと利用ケースのレベルで発生する。キャンペーンは事業名、メッセージの目的の説明、そしてしばしばウェブサイトへのリンクとともに登録される。この三つのうちどれか一つでも成人向けコンテンツとして読まれれば、実際のSMS本文が数字と「コード」という言葉だけであっても、フィルターはキャンペーン全体を拒否できる。これは運営者が最も見落としがちな詳細である。メッセージ本文を無害化しても、その背後にある登録は無害化されない。

「Verifyに切り替えればいい」だけでは完全な解決にならない理由

運営者が問題を理解した後の標準的な助言は、完全な商用メッセージングキャンペーンの登録を試みるのをやめ、代わりにTwilioのVerify APIや他社の同等品といった認証専用のプロダクトを使うことである。この助言はある程度まで正しい。一度限りのコードだけのために作られたプロダクトは、SHAFTフィルターを作動させる完全なブランドとキャンペーンの登録プロセスから明確に除外されており、Twilio自身のオンボーディング資料も、OTPコードのみを送信する事業がそのプロダクトを使う場合にはブランドもキャンペーンも登録する必要がないことを確認している。

その除外には条件が付いており、それは同業者同士で繰り返される助言にはあまり出てこない。適用対象は提供元自身の共有・プール化された番号を通じた送信に限られ、事業が自ら登録し所有する電話番号を通じて認証コードを流す場合には適用されない。同じOTPトラフィックを自社登録の番号に向ければ、SHAFTカテゴリを含む通常の登録規則が再び適用される。この回避策は実在するが、特定の配信経路に結びついたものであり、たまたま六桁のコードを含んでいるあらゆるメッセージに対する一般的な除外ではない。

この除外を受け入れることにもコストがある。通信事業者は登録され審査されたキャンペーンに配信優先度と高いスループットを与える。それはまさに、その背後の事業が確認済みであるからだ。未登録に近いトラフィックを運ぶ共有・プール化された番号は、その優先順位で下位に置かれ、配信の遅延がわずかだが確実に増え、プロモーションキャンペーンや機能公開後の新規登録の急増といった高負荷の時期には時折スロットリングが発生する形で現れる。小規模なディレクトリであれば、これはほとんど問題にならない。だがプロモーションを行っていたり、新規広告主の季節的な急増を経験しているディレクトリにとっては、「二秒で配信される」と「二十秒で配信される」の差が、完了した登録と放棄された登録の差になる。

メッセージが通過するかどうかを決めるフィルターは、送信経路の先にある、事業が直接管理することが少ない信号も見ている。メッセージの実際の内容が承認済みの利用ケースにどれだけ一致しているか、送信元番号の評判がどのように変化しているか。ここでのサポートメッセージ一件、あそこでのプロモーションキャンペーン一件が、クリーンなOTP配信のために用意された同じ経路を通じて送られると、性的な意味合いを持つ言葉が一つも現れなくても、その信号を動かしてしまう可能性がある。認証チャネルを事業が送信する他のあらゆる種類のメッセージから完全に分離しておくことは、あれば良いというものではない。それがこの除外を機能させ続ける唯一の方法である。

登録の回避はもはや機能しない

こうしたフィルタリングが厳格化する前、一般的な回避策は単に登録しないことだった。市内局番を購入し、メッセージを送信し、一部がフィルタリングされることを受け入れ、その損失を事業コストとして扱う。その回避策はもう存在しない。米国の未登録10DLCメッセージング停止に関するTwilio自身の変更履歴は、2023年半ばにかけて段階的に厳格化していったフィルタリング体制を記述しており、その年の8月末以降、未登録の米国宛トラフィック全体の完全な遮断となり、エラーコード30034として送信者に返されるようになった。これは追加料金付きのより厳しいフィルタリングではない。これは届かないトラフィックであり、それだけであり、買い戻せる料金は存在しない。

この区別が重要なのは、一度登録し、フラグを立てられ、静かに登録状況を追わなくなった事業も、より緩やかだった以前の体制にはいないからだ。信頼スコアが下がったキャンペーンは、コンテンツの不一致、オプトアウト苦情の急増、あるいは単なる不活動が原因であっても、未登録トラフィックと同じ扱いへと滑り落ちていく。スループットの低下、フィルタリングの強化、そして何かが変わったという明確な通知は一切ない。ブロックは通信事業者側の基盤の上で発生し、事業が自らのログを見ている場所からは何段階も隔たっているからだ。

これはこのブログがすでにホスティング、CDN、ドメインの基盤について描いたのと同じ形のリスクである。プロダクトから何層も隔たった提供元は、自らのスケジュールで、自らのポリシー上の理由で、その一部を止めることができ、最初の兆候は以前は機能していたものが存在しないことだ。SMSフィルタリングとの違いは、この「スイッチ」が一社の決定ではないことだ。これは米国の主要な通信事業者すべてが共同で執行する規則であり、間にどのメッセージングプラットフォームがあろうと一律に適用される。つまりプロバイダーを切り替えても、ホスティングの切り替えが一社のポリシーを回避できることがあるようには、これを回避できない。

カテゴリの一致を避けるために、登録時に成人向けクラシファイド広告ディレクトリを別のものに見せかける正当な方法は存在しない。そうすれば、そのキャンペーン種別が提出できる唯一の申請で永久拒否となるリスクを負うことになり、虚偽表示に結びついた拒否は、そもそも登録しなかったよりも悪い結果になる。それは正当な経路までも閉じてしまうからだ。どれほど不便であっても、誠実な経路だけが二度目の試みをテーブルの上に残す。

電話番号が信頼できなくなる前に構築すべきもの

最初の具体的な一歩は、電話番号を保証された基盤として扱うのをやめ、最初のサポートチケットが「コードが来ない」という内容で発生する前に、登録とログインのフローに第二のチャネルを組み込むことだ。認証アプリのコード、メールで送られるマジックリンク、登録時に生成されるバックアップコードは、いずれも通信事業者のフィルターを完全に迂回する。というのも、これらは電話網が走査しているメッセージカテゴリに一切依存しないからだ。これらの選択肢はいずれも、そのために構築されたフロー以外では機能しないため、今のうちに少なくとも一つを構築しておくコストは、フィルターが登録の目に見える一部を食い始めた後で追いかけるよりもはるかに低い。

第二の一歩はチャネルを完全に分離することだ。ワンタイムコードを送信する番号やプロダクトが、プロモーションSMS、再エンゲージメントの促し、支払いリマインダーを同時に送るべきではない。一つの送信経路にメッセージの種類を混在させることは、まさにフィルターが監視している評判信号を損なうパターンであり、事業が本当に必要としている唯一のチャネル、ログインコードを、他の選択肢のあるマーケティングチャネルを守るために危険に晒すことになる。

第三の一歩は誠実に登録し、その結果を最終的なものとして扱うことだ。SHAFTカテゴリの拒否は通常再提出できないため、登録は正確な事業説明とともに一度だけ行うべきであり、事前にVerify方式の除外が持つスループットと優先度のトレードオフを事業が受け入れられるか、それとも完全な登録が必要でありその拒否にも備えているかを決めておくべきだ。当て推量と期待は、唯一重要な試みを無駄にする。

第四の一歩は、利用者からの苦情を待つのではなく、配信データを直接監視することだ。主要なメッセージングプラットフォームはいずれもメッセージごとの配信レシートとエラーコードを公開している。30034のようなコードの割合が上昇すること、あるいは認証チャネルに限って配信率が下がることは、何かが変わったことを示す最も早く得られる信号であり、それは月次レポートで完了登録数の低下として現れるよりもずっと前に到着する。その数字を毎月確認する運営者は、フィルタリングの変化を数週間で捉える。コンバージョンだけを確認する運営者は、実際の事業に損害が出た後、四半期経ってからそれに気づく。

これらのどれも電話番号を使い物にならなくするわけではない。それを実際の姿に戻すだけだ。事業が、成人向けクラシファイド広告ディレクトリを念頭に置いて構築していない通信事業者から借りているチャネルであり、説明なしにノーと言う権利を保持している存在。真のフォールバックと、それが運ぶものの明確な分離とともにそれを扱うことこそが、フィルターがあなたの事業こそまさに止めるために書かれた対象だと判断する日に、ログインフローを機能させ続けるものである。

DEMOを試す

エスコート情報サイトのシステム、すぐ使える