Как веб-сайты узнают, что они не являются домашней страницей по умолчанию или поисковой системой?


89

Насколько мне известно, нет общедоступного API для домашней страницы / поисковой системы браузера по умолчанию. Итак, как Google узнает, что это нужно отображать? Это происходит только тогда, когда Google не является домашней страницей / поисковой системой по умолчанию в моем браузере.

Всплывающее окно на странице Google: «Попадите в Google быстрее.  Переключите поисковую систему по умолчанию на Google ». Всплывающее окно на странице: «Часто приходите сюда?  Сделайте Google своей домашней страницей ».

Я могу только предположить, что они выводятся из множества переменных, таких как реферер. Мне не удалось разобраться в скомпилированном Google JavaScript. Я даже не уверен, обнаружен он на стороне клиента или на стороне сервера.

Я использую Firefox 44, но я видел эти баннеры и в Chrome.



1
Я получаю их в Edge даже после того, как установил их по умолчанию. Он просто не может знать.
Артуро Торрес Санчес

Ответы:


70

Просто нет способа сделать это с помощью JavaScript, потому что «поиск / домашняя страница по умолчанию» - это предпочтение пользователя, и у вас нет доступа к нему без разрешения пользователя, потому что это может быть проблемой безопасности / конфиденциальности.

Что Google делает при каждом посещении пользователя, так это показывает рекламное объявление со значком закрытия и кнопкой перехода с инструкциями о том, как установить его в качестве домашней страницы по умолчанию. При нажатии любого из них он создает 2 файла cookie, чтобы в следующий раз он проверил ваши файлы cookie и заставил промо исчезнуть. Даже когда Google является вашей домашней страницей и вы очищаете свои файлы cookie, все равно остается баннер для продвижения Google в качестве вашей домашней страницы.

Я проверил это с помощью Firefox, не зная о Chrome.


6
Для меня это имеет смысл. Я получаю всплывающие окна, когда запускаю Firefox в приватном режиме, поэтому у него не будет доступа к OHAI GOOGLEфайлам cookie.
Codes with Hammer

Вполне возможно, что они делают что-то особенное с хромом с тех пор, как написали его.
craftworkgames

они, вероятно, не показывают это для Chrome, так как Google в любом случае является поисковой системой по умолчанию
gengkev

Доступ к информации домашней страницы может получить сам браузер, например, когда IE в прошлом предлагал домашнюю страницу.
Khaled.K

19

Я не знаю, что именно делает Google, но что бы я сделал:

  • задайте URL-адрес домашней страницы с каким-то специальным параметром и проверьте его - http://www.example.com/#!homepage (предотвращает ложноотрицательные)
  • проверить Refererполе:
    • если его НЕТ, предположим, что пользователь ввел его вручную
    • если это очень похоже для каждого посещения пользователя (и, возможно, на то, что похоже на начало сеанса просмотра - выводится через GA на каждой странице), предположим, что пользователь приходит сюда, всегда щелкая где-то
  • установить cookie, например, visitedHelpAboutHomePageкогда пользователь посещает страницу «да, покажи мне» (может предотвратить ложноотрицательные, но также может генерировать ложные срабатывания)

Обратите внимание, что «специальный параметр» действительно присутствует в сценарии «поиск, инициированный окном поиска»: есть параметр, sourceidкоторый, вероятно, означает «источник поиска».


2
Якорь #homepageне отправляется на сервер, но может быть доступен для javascript. Кроме того, я предполагаю, что на домашней странице тоже нет ссылки, не так ли?
Hagen von Eitzen

Неплохо, поэтому вы пытаетесь узнать, часто ли пользователь посещает веб-сайт, набрав его. Поскольку вы знаете, что домашняя страница открывается только в новом окне, поэтому большую часть времени пользователи вводят ее адрес, так как его нет в закладки в большинстве случаев.
Khaled.K

Хм, отличить закладку / домашнюю страницу сложно (особенно, потому что одна является частным случаем другой) ...
Писквор покинул здание

11

В моем Firefox (v42) "Часто приходите сюда?" окно появляется даже тогда, когда у меня установлен Google в качестве поисковой системы по умолчанию.

В Safari в том же месте появляется окно с надписью «Лучший способ просмотра веб-страниц: установите Google Chrome».

В Opera и Chrome у меня вообще нет окна, даже если я сменил поисковую систему по умолчанию на что-то другое, кроме Google.

Итак, я считаю, что все, что они делают, - это обнаружение браузера в JavaScript с помощью объекта UserAgent.


1
Я предполагаю, что это могло быть основано исключительно на UA, но можно было бы надеяться, что Goog не будет распространять миллионы ложноположительных рекламных баннеров в день? Я понимаю иронию в этом комментарии.
Tennyson H,

3
Быть поставщиком услуг поиска - это совсем другое, чем быть вашей домашней страницей по умолчанию.
Элин
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.