web-dev-qa-db-ja.com

Webサイトは、デフォルトのホームページまたは検索プロバイダーではないことをどのように認識しますか?

私の知る限り、ブラウザのデフォルトのホームページ/検索プロバイダーの公開API公開はありません。それでは、Googleはこれをどのように表示するのでしょうか? Googleがブラウザのデフォルトのホームページ/デフォルトの検索プロバイダーではない場合にのみ発生します。

Google on-page popup: 'Get to Google faster. Switch your default search engine to Google.'Googe on-page popup: 'Come here often? Make Google your homepage.'

リファラーなどの多数の変数から推測していると推測できます。 Googleのコンパイル済みJavaScriptを掘り下げることができませんでした。クライアント側で検出されたのか、サーバー側で検出されたのかさえわかりません。

私はFirefox 44を使用していますが、これらのバナーはChromeでも見ています。

89
Tennyson H

「デフォルトの検索/ホームページ」はユーザーの好みであり、ユーザーの許可がなければアクセスできないため、JavaScriptで方法なしがあります。 セキュリティ/プライバシーの問題

Googleの機能ユーザーがアクセスするたびに、閉じるアイコンとデフォルトのホームページとして設定する方法が記載された移動ボタンが付いたプロモーション広告が表示されます。 クリック時それらのいずれかで、それは2つのCookieを作成します次回あなたのCookieをチェックしてプロモーションを非表示にします。 Googleがホームページであり、Cookieをクリアした場合でも、Googleをホームページとして宣伝するためのバナーが残っています。

Chromeを意識せずにFirefoxでこれを確認しました。

70

Googleが何をするのか正確にはわかりませんが、私は何をするでしょうか:

  • いくつかの特別なパラメーターを使用してホームページのURLを設定し、チェックします-' http://www.example.com/#!homepage (誤検知を防ぎます)
  • Refererフィールドを確認してください:
    • 存在しない場合は、ユーザーが手動で入力したと仮定します
    • ユーザーがアクセスするたびによく似ている場合(そしておそらくブラウジングセッションの開始のように見えるもの-GAそこにあるすべてのページで推測)、ユーザーが常にクリックしてここに来ていると仮定します)どこかから
  • cookieを設定します。 visitedHelpAboutHomePageユーザーが「yes、show me」ページにアクセスしたとき(誤検知を防ぐことができますが、誤検知も発生する可能性があります)

「特別なパラメーター」は「検索ボックスで開始される検索」シナリオで発生することに注意してください。おそらく、「検索のソース」を意味するパラメーターsourceidがあります。

19
Piskvor

私のFirefox(v42)では、「ここによく来ますか?」 Googleをデフォルトの検索プロバイダーとして設定している場合でも、ボックスが表示されます。

Safariでは、同じ場所に「ウェブを閲覧するより良い方法:Google Chromeを入手してください」というボックスが表示されます

In Opera and Chromeデフォルトの検索プロバイダーをGoogle以外のものに変更しても、ボックスがまったく表示されません。

したがって、彼らがしているのは、UserAgentオブジェクトを使用したJavaScriptでのブラウザー検出だけです。

11
cutmancometh