Chrome のシークレットモード, Safari のプライベートブラウズなどは判定できないということをご紹介します。
まず、前提知識として、各ブラウザ側の対応としてシークレットモード、プライベートブラウズをサイト側が判定できないように対策した流れが2019年にありました。
Googleは、「Chrome」のシークレットモードを使ってウェブサイトを訪問した人を、ウェブサイト側が検知するのに利用できる手法を排除することを決めた。
9月下旬にユーザーへの配信が始まったAppleのブラウザ、Safariの最新バージョンでは、プライベートブラウズモードをオンにしているユーザーがサイトを訪問しても、サイト側ではそれが検出できないようになっている。引用元: Safari 新プライベートモード、メーター制課金を無効化に:頭悩ますパブリッシャーたち | DIGIDAY[日本版]
各ブラウザが対応して、現在は参考にならないけど 「昔はこうやってシークレットモード, プライベートブラウズを判定していたのか ??」 ということが分かる記事の一覧を掲載しておきます。
各ブラウザが対策しているので JavaScript ではシークレットモード、プライベートブラウズは判定できないという認識でいましょう。
以上、JavaScript でシークレットモード、プライベートブラウズを判定したい、現場からお送りしました。