Google Chrome の User-Agent文字列が削除予定です
![user-agent-delete.jpg](https://d3inqn3ek85etk.cloudfront.net/resource/12/user-agent-delete.jpg)
2020年にGoogle Chromeにおいて、User-Agent文字列を段階的に削除する事を発表しました。
この変更によって、User-Agent文字列から正確なブラウザの情報を取得できなくなってしまう可能性がありあます。
ウェブ開発者の方々であれば既にご存じの方も多く、対応を進めている方もいるかと思います。
※ User-Agentについてはこちらの記事をどうぞ
User-Agentの削除計画の進捗
さて、User-Agentの削除計画に関してですが、現時点でどこの段階まで進んでいるのでしょうか。
下記が発表されている計画です。
ロールアウト計画(Proposed Rollout Plan)
削除準備(Reduction Preparation)
フェーズ 1: M92 より、navigator.userAgent、navigator.appVersion、navigator.platform
へのアクセスに関する警告を DevTools に表示します。
フェーズ 2: Originトライアルを開始し、サイトが最終形まで削減した
UA 文字列でテストやフィードバックできる期間を、少なくとも 6 か月間継続します。
(Chrome 95~Chrome 100)
削除(Reduction Rollout)
フェーズ 3: 移行にさらに時間を要するサイトなどのために、逆オリジン トライアルを開始して、少なくとも 6 か月間継続します。
(Chrome 100)
フェーズ 4: Chrome の MINOR.BUILD.PATCH バージョン番号を削減します( "0.0.0" )。
これがロールアウトされると、デスクトップとモバイル OS で、逆オリジン トライアルをオプトインしていないすべてのページの読み込みに、削減版の UA 文字列が適用されます。
(Chrome 101)
フェーズ 5: 削減版のデスクトップ UA 文字列と関連する JS API(navigator.userAgent、navigator.appVersion、navigator.platform)のロールアウトを開始します。
これがロールアウトされると、デスクトップ OS で、逆オリジン トライアルをオプトインしていないすべてのページの読み込みに、削減版の UA 文字列が適用されます。
(Chrome 107)
フェーズ 6: 削減版の Android モバイル(とタブレット)の UA 文字列と関連する JS API のロールアウトを開始します。
これがロールアウトされると、Android で、逆オリジン トライアルをオプトインしていないすべてのページの読み込みに、削減版の UA 文字列が適用されます。
(Chrome 110)
削除完了(Reduction Completion)
フェーズ7: reverse Origin Trialが終了し、すべてのページロードが縮小されたUA文字列と関連するJS APIを受け取るようになりました。
(Chrome 113)
参考: https://www.chromium.org/updates/ua-reduction/ https://developers-jp.googleblog.com/2021/06/chrome-user-agent.html
フェーズ 1は既に完了済み、現在はフェーズ 2が進行中です。
さらに、つい先日(2022/03/01)、Chrome バージョン99が発表されたので、フェーズ 2も完了目前となります。
フェーズ 2が完了すると、いよいよ削除(フェーズ 3 ~ フェーズ 6)が進んでいくことになります。
代替方法
ChromeのUser-Agent文字列削除ですが、削除後の代替方法も案内されています。
その方法が、UA-CH(User-Agent Client Hints API)を使用する方法です。
このUA-CHですが、User-Agentと同様にHTTPリクエストヘッダー、JavaScriptで利用可能となっています。
HTTPリクエストヘッダー
HTTPリクエストヘッダーのUA-CHですが、キャプチャの「sec-ch-ua」、「sec-ch-ua-mobile」、「sec-ch-ua-platform」がそれに該当します。
![HTTPリクエストヘッダー](https://d3inqn3ek85etk.cloudfront.net/resource/12/キャプチャ_ヘッダー.png)
各ヘッダーからは下記情報が取得できます
ヘッダー名 | 説明 |
---|---|
sec-ch-ua | ブラウザ情報(バージョン) |
sec-ch-ua-mobile | モバイル判定 「?0」の場合はPC、「?1」の場合はモバイル |
sec-ch-ua-platform | OS名 |
デフォルトでは、「sec-ch-ua」、「sec-ch-ua-mobile」、「sec-ch-ua-platform」の3つの情報しか取得できません。
この他の情報を取得したい場合は、リクエストを受けるサーバ側で、レスポンスヘッダーの「Accept-CH」に追加で取得したい情報を渡してあげる必要があります。
レスポンスヘッダーに追加で取得したい情報を渡す必要があるため、1本目のリクエストではデフォルトの「sec-ch-ua」、「sec-ch-ua-mobile」、「sec-ch-ua-platform」しか取得できず
追加情報が取得できるのは2本目以降のリクエストとなるのでご注意ください。
よくある処理として「モバイル/PCで表示を切り替える」などの単純な処理であれば、
デフォルトで取得可能な「sec-ch-ua-mobile」を使用すれば実現可能でしょう。
JavaScript
JavaScriptでUA-CHを使用する場合は「navigator.userAgentData」を使用します。
![JavaScript](https://d3inqn3ek85etk.cloudfront.net/resource/12/キャプチャ_JS.png)
navigator.userAgentData からは下記情報が取得できます。
JavaScript API | 説明 |
---|---|
navigator.userAgentData.brands | ブラウザ情報(バージョン) |
navigator.userAgentData.mobile | モバイル判定 「false」の場合はPC、「true」の場合はモバイル |
navigator.userAgentData.platform | OS名 |
JavaScriptの「navigator」についてですが、User-Agentを取得する場合は「navigator.userAgent」を、
ブラウザバージョンでは「navigator.appVersion」、OS名では「navigator.platform」を使用していたかと思います。
これら「navigator.userAgent」、「navigator.appVersion」、「navigator.platform」の3つは今後使えなくなってしまうので
JavaScriptでこれらを使用している場合は早めに「navigator.userAgentData」への切り替えをおすすめします。
※ 「navigator.userAgent」、「navigator.appVersion」、「navigator.platform」はChrome バージョン101で使用できなくなる予定です。
ロールアウト計画のフェーズ 1の段階で開発者ツール上で警告を表示しているので、気になる方は開発者ツールでご確認ください。
![警告](https://d3inqn3ek85etk.cloudfront.net/resource/12/キャプチャ_フェーズ1_警告.png)
UA-CHの対応状況
代替方法のUA-CHですが、ブラウザによって対応状況が異なっています。
現在、HTTPリクエストヘッダー、JavaScriptのUA-CHに対応しているのはChromeとEdge(chromium版)、Operaとなっています。
FireFoxやMac標準のSafariではUA-CHには対応していません。
UA-CHに対応していないFireFoxやSafariでUA-CHの情報を上記の方法で取得しようとした場合、値が取得できなかったり、エラーとなってしまったりと
意図しない挙動になる可能性もあるのでUA-CHに対応する場合は、未対応ブラウザも考慮し従来の取得方法とUA-CH対応の両方に対応することをおすすめします。
![FireFox_UserAgentDataエラー](https://d3inqn3ek85etk.cloudfront.net/resource/12/キャプチャ_FireFox_UserAgentDataエラー.png)
ロールアウト計画もフェーズ3以降(Chromeバージョン100以降)はバージョンアップ毎に状況が変化していきそうです。
UA-CHもまだまだ策定中ではあるので、今後の状況をこまめにチェックしていくことも必要になってきそうです。
ホームページでお困りならAMSにお任せください。
- 制作会社の選び方がわからない。
- どの制作会社も費用が高額で手が付けられない。
- 今のホームページが簡単に更新できなくて困っている。
などホームページでお困りではありませんか?
弊社AMSでは効果のある高品質なホームページを格安で制作いたします。
まずは料金やプラン内容、制作実績などを下記の画像をクリックしてご覧ください。