Метка: Google AdSense аккаунт

  • Как построить свой бизнес с Google adSense и получать от $5.000 ежемесячно

    Как построить свой бизнес с Google adSense и получать от $5.000 ежемесячно

    Речь идет о сервисе контекстной рекламы Google AdSense, — это партнерская программа от всемирно известной поисковой системы Google, в который может зарабатывать ощутимые суммы любой человек, имеющий тематический web сайт или канал на YouTube.

    Однако, многие начав этот бизнес очень скоро понимают, что особенно далеко на всём этом не уедёшь, получая дополнительные $100 — $150 в месяц как бонус к окладу на своём основном месте работы на дядю.

    Но есть и другие, кто зарабатывает внушительные суммы в этом бизнесе, но они свои секреты обычно не раскрывают на всевозможных форумах типа searchengines.guru или тематических группках ВКонтакте, посвещенных продукту adSense.

    Так как же все таки сломать стереотипы и начать зарабатывать в adSense хотя бы $2.000 в месяц? Как оказалось ответ лежит на поверхности и он довольно простой. Обычно, людям серьёзно работающим с adSense всегда требуются свежие учетки для новых проектов.

    У меня тоже когда-то был свой сайт в интернете с рекламой adSense, за которую я получал $50 — $70 в месяц, но в один прекрасный день я получил письмо от Google о том, что он закрыл мою учетку и сотрудничество со мной ему больше не интересно. Я начал думать, а что же делать дальше, благо опыта работы с adSense на тот момент у меня уже было предостаточно.

    И я начал регистрировать учетные записи adSense на продажу, благо Правилами программы это не запрещено, а что уж там будет делать покупатель с купленой учёткой потом мне по большому счету наплевать.

    Однко, чтобы хорошо заработать на продаже учеток adSense, их нужно регистрировать по 100 — 200 штук в месяц. И вот в процессе регистрации всплывают всевозможные сюрпиризы от Google. Иногда бывает так, что Google даже не рассмотрев заявку присылает сообщение о недействительной активности и блокирует учетную запись.

    Как ни странно, оказалось что коррелятор событий Google или как его ещё иногда называют Google AI сопоставляет события безопасности, происходящие с учетными записями и выявляет аномалии. Так, в расчет принимаются время и место входа в учетную запись, Браузер и Операционная система, даже NetBIOS имя вашего компьютера Google запоминает при входе, Серийный номер — эсли это планшет или мобильное устройство под управлением iOS или Android.

    Гугол не любит, когда множество учеток регистрирует один человек, вот не любит и всё тут, хотя ни где в Правилах Гугол об этом не написано. И что же со всем этим спрашивается делать?

    Как оказалось, ситуацию эту решить можно довольно просто. Для того, чтобы изобразить различные устройства существуют всевозможные дополнения для Firefox, делающие это, я выбрал Useagent Switcher.

    Он позволяет не только менять тип и версию браузера на лету, но и название и версию операционной системы.

    Но для успешной работы с Google adSense этого оказалось недостаточно, потому как в стандартной конфигурации OS Windows задействована куча ненужных сетевых протоколов, позволяющих Гугол отследить имя машины. Как ни странно, и тут решение нашлось довольно просто. Достаточно было отключить ненужные сетевые компоненты в свойствах сетевого адаптера, как сразу перестала передаваться лишняя для Гугол в этом случае информация.

    Как бы основная проблема решена, осталось решить вопрос со сменой IP адреса. Да, для регистрации учеток можно пользоваться VPN службами или прокси, однко Гугол все эти сервися отслеживает и расценивает как потенциальную угрозу, поэтому при регистрации через такие сервисы у вас обязательно попросят подтвердить регистрацию при помощи получения СМС на номер телефона. Накладно? — да.

    Для этих целей лучше иметь две дополнительные СИМ карты и домашний проводной интернет. Как правило провайдеры используют технологию множественного NAT при предоставлении услуг абонентам, IP адрес они один выдают белый сразу нескольком абонентам, вернее многим, они постоянно меняются, поэтому Гугол тут однозначно запутается. Достаточно хотя бы через раз регистрировать учетки через подключения от разных провайдеров. Можно работать и через одного, но тогда хотя бы модем нужно передергивать при смене учеток, чтобы получить подключение заведомо через новый IP адрес.

    В этом случае не надо тратиться на покупку лишних СИМ карт, достаточно будет указания резервного адреса для восстановления аккаунта в случае потери доступа к нему.

    Примерно так я теперь работаю с гуго, чего и вам желаю. Самое интересное, что после введения всех этих ограничений в отношении одной страны и усложнение процедуры верификации учётной записи Google AdSense цена на новую учётку может достигать $1.000, при таких суммах сделки лучше совершать при личной встрече во избежанине всевозможных недоразумений при получении денег за проданый товар.

  • Как получить статус Premium в Google AdSense

    Как получить статус Premium в Google AdSense

    Чтобы получить Premium Google AdSense account, необходимо соответствовать следующим критериям:
    • У вас должен быть активный AdSense account с хорошими показателями производительности. Это означает, что у вас должно быть достаточное количество трафика и доходов от рекламы.
    • Ваш контент должен быть качественным и оригинальным. Google хочет убедиться, что Premium AdSense account получают только те издатели, которые создают ценный контент для пользователей.
    • Ваш сайт должен соответствовать политике AdSense. Это означает, что ваш сайт должен быть безопасным и не нарушать правила AdSense.
    Если вы соответствуете этим критериям, вы можете подать заявку на получение Premium AdSense account. Для этого перейдите в свой AdSense account и нажмите «Профиль». Затем нажмите «Запросить Premium AdSense account».
    Google рассмотрит вашу заявку и сообщит вам о своем решении в течение нескольких недель. Вот несколько советов, которые помогут вам повысить свои шансы на получение Premium AdSense account:
    • Убедитесь, что ваш контент соответствует интересам вашей целевой аудитории. Это поможет вам привлечь больше трафика и повысить доходы от рекламы.
    • Используйте эффективные стратегии оптимизации для поисковых систем (SEO). Это поможет вам повысить рейтинг вашего сайта в поисковых системах и привлечь больше трафика.
    • Создайте качественный контент, который будет интересен вашим читателям. Это поможет вам повысить уровень вовлеченности и повысить доходы от рекламы.
    Если вы будете следовать этим советам, вы повысите свои шансы на получение Premium AdSense account и сможете получать больше денег от рекламы. Вот некоторые дополнительные преимущества Premium AdSense account:
    • Доступ к эксклюзивным функциям и ресурсам. Premium AdSense account получают доступ к эксклюзивным функциям и ресурсам, которые могут помочь им улучшить свои доходы от рекламы.
    • Более высокий уровень поддержки. Premium AdSense account получают более высокий уровень поддержки от Google.
    • Возможность участвовать в специальных программах и конкурсах. Premium AdSense account имеют возможность участвовать в специальных программах и конкурсах, которые могут помочь им заработать больше денег.

    Ранее требования для получения статуса Premium были куда стрже. Так, если у Вас было установлено браузерное расширение для предварительного просмотра объявлений Google AdSense (тестер Google AdSense или Preview Tool), можно было открыть её на любом сайте. Свехру была надпись, гласящая что-то вроде: “Если страницы вашего сайта просматривают более 20 млн. раз в месяц, панель управления Google позволит настраивать Ваши объявления на определенный контент вашего сайта”. Выразились они конечно расплывчато и неопределенно, но подразумевалось, что имея 20 млн. просмотров объявлений в месяц Вы переходите в разряд премиум пользователей Google AdSense.

    конверт с пин кодом Google AdSense для подтверждения адреса

    Настраиваемые рекламные блоки в Google adSense

    Наверняка вы встречались в сети с блоками с рекламой от Google, отличными по формату и стилю от обычных блоков, которые вы размещаете на своих сайтах. Примеры можно посмотреть, например, на сайте CNN или, не бегая за бугор, на форуме searchengines при поиске через форму по сайту.

    Оказывается, что блоки можно настраивать не только по размеру, но также имеются слещующие возможности по настройке рекламы от Google:

    Изменять шрифт (размер, цвет) рекламных блоков;
    Варьировать количество объявлений в блоках;
    Выбирать позицию – горизонтальную или вертикальную;
    Указывать ключевые слова, более подходящие для данного блока на определенной странице;
    А также многое другое…

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

    Premium adSense account

    При наличии на Вашем сайте более 20 млн. просмотров страниц в месяц или более 5 млн. поисковых запросов через поисковую форму Google, Вы автоматически становитесь ранее  пользователем премиум аккаунта Google adSense. Премиум учётная запись adSense обеспечит Вам такие возможности, как:

    Панель управления;
    Дополнительные опции монетизации;
    Настраиваемые параметры дохода;
    Гибкие форматы рекламных блоков;
    Продвинутое и более сильное фильтрование;
    Помощь в оптимизации сайта;
    Улучшенные форма технической поддержки;
    Форма бизнес поддержки;
    Монетизация поисковой выдачи;

    Хотите иметь серъезный бизнес с Google? Работайте, создавайте стартапы, улучшайте свои ресурсы и тогда adSense может стать одним из главных источников вашего дохода.

    Что делать, если в ближайшее время собрать 20 млн показов объявлений не получается

    Если у вас нет в настоящий момент 20 млн показов объявлений на всех ваших сайтах, но преимущества Premium adSense получить очень хочется, можно договориться с другими партнёрами Google adSense, которые также хотят получить желанные преимущества Премиум учётной записи и сработать с ними вскладчину. Так, добавив все сайты на одну учётную запись несколько паблишеров вполне даже могут дотянуть до 20 млн вызовов объявлений в месяц и получить заветные преимущества Premium Google adSense.

  • Google протестирует работу Topics API на пользователях AdSense

    Google протестирует работу Topics API на пользователях AdSense

    Владельцы учётных записей Google AdSense смогут протестировать Topics API в браузере Chrome с 1 июля этого года. Новая технология позволит показывать рекламу на основе интересов пользователя без необходимости отслеживания cookie-файлов.
    В Google отмечают, что этот тест должен подтвердить корректную работу технологии, поэтому никакого влияния на доход или производительность сайтов не ожидается. Но рекламодатели, которые предпочитают не участвовать в первоначальном тестировании, смогут от него отказаться, используя настройки Chrome.
    Как работает Topics API от Google
    Отметим, Google представил замену FLoC – Topics API в январе. Согласно Google, с помощью Topics браузер будет определять ряд тем, таких как «Фитнес» или «Путешествия», которые представляют основные интересы пользователя на текущую неделю, исходя из его браузерной активности.
    Когда пользователь посетит участвующий в проекте сайт, Topics выберет три темы – одну для каждой из последних трех недель, чтобы поделиться ими с сайтом и его рекламными партнерами. Темы хранятся в течение трех недель. Выбор темы осуществляется на устройстве, без вовлечения внешних серверов, включая собственные серверы Google.
    Инициатива стартует с примерно 300 тем, которые представляют собой пересечение Content Taxonomy v2.0 от IAB, а также собственного обзора таксономии рекламы от Google. Ожидается, что со временем Topics будет охватывать больше тем.
    Чтобы определить подходящую тему, Google не парсит текст внутри статей на сайте, а смотрит на его домен или поддомен и привязывает определенную тему к этому сайту. Если сайт не участвует в Topics API, то он не получает такой привязки.
    Ознакомиться с технической документацией  Topics API можно здесь.
    Окончательная итерация настроек, а также другие технические аспекты работы Topics будут определены на основе тестирования и отзывов.
  • Дорожная карта продукта Google AdSense на ближайшие 15 лет

    Дорожная карта продукта Google AdSense на ближайшие 15 лет

    Google ads

    В этом году Google AdSense исполнилось 15 лет. В связи с этим компания поделилась своими планами по развитию сервиса на следующие пятнадцать лет.

    Основные направления работы:

    • Более умное определение размера, улучшенные места размещения и новые форматы, работающие на основе технологии машинного обучения
    Google adSense
    Разработчики Google adSense активно работают над определением наилучших способов повышения интереса пользователей к рекламе, включая то, когда и какой тип объявления показывать, при этом следя за тем, чтобы реклама дополняла существующий контент и положительно влияла на опыт посетителей сайта.

    • Новые функции для экономии времени на монетизацию контента
    DoubleClick

    Команда Google adSense также активно работает над рядом новых функций, которые позволят издателям получать больше информации об эффективности рекламы – чтобы они понимали, когда пора действовать и вносить изменения.
    Помимо этого, в adSense появится возможность сравнивать свои показатели с показателями других ресурсов в отрасли и улучшенная навигация.
    Все эти изменения призваны сэкономить издателям время, чтобы они могли сосредоточиться на самых важных задачах, таких как создание качественного контента.
    • Соблюдение стандартов качественной рекламы
    ClickFraud
    Команда Google AdSense заинтересована в рекламе, которая работает для каждого и удовлетворяет потребности всех участников экосистемы – издателей, рекламодателей и потребителей.
    В связи с этим AdSense продолжит работу над соблюдением важных отраслевых стандартов, касающихся качества рекламы. Задача Google adSense – добиться того, что издатели, создающие вовлекающий контент, вознаграждались, а рекламодатели могли безопасно инвестировать свои средства.
    Напомню, что 27 сентября Google исполнилось 20 лет. Накануне юбилея компания представила ряд новых функций и возможностей в поиске, а также очертила направления будущего развития поисковой системы.
    Google AdSense празднует свой день рождения в июне. Вот ещё некоторые возможные направления развития продукта Google AdSense в ближайшие 15 лет:
    • Расширение возможностей таргетинга рекламы. Google будет продолжать инвестировать в технологии машинного обучения и искусственного интеллекта, чтобы улучшить таргетинг рекламы на основе интересов и поведения пользователей. Это поможет издателям показывать более релевантную рекламу своим читателям, что приведет к повышению доходов.
    • Развитие новых форматов рекламы. Google будет экспериментировать с новыми форматами рекламы, такими как интерактивные объявления, видеообъявления и объявления на основе искусственного интеллекта. Это поможет издателям привлечь внимание пользователей и повысить эффективность рекламы.
    • Улучшение управления доходами. Google будет работать над тем, чтобы облегчить издателям управление своими доходами от рекламы. Это может включать в себя такие функции, как более прозрачные отчеты о доходах, более гибкие инструменты управления ставками и более простые способы вывода средств.
    • Расширение возможностей для издателей. Google будет работать над тем, чтобы дать издателям больше возможностей для монетизации своего контента. Это может включать в себя такие функции, как доступ к новым рекламным форматам, инструменты для создания собственного контента и программы поддержки издателей.
    Вот некоторые конкретные примеры того, как Google может реализовать эти направления развития:
    • Google может использовать искусственный интеллект для отслеживания поведения пользователей на сайте и показывать им рекламу, которая соответствует их интересам. Например, если пользователь просматривает статью о путешествиях, Google может показать ему рекламу отеля или авиакомпании.
    • Google может разработать новые форматы рекламы, которые будут более интерактивными и привлекательными для пользователей. Например, Google может создать рекламу, которая позволяет пользователям взаимодействовать с ней, например, отвечать на вопросы или играть в игры.
    • Google может предоставить издателям более подробные отчеты о доходах, чтобы они могли лучше понять, как их контент приносит деньги. Эти отчеты могут включать информацию о том, сколько денег приносит каждый тип рекламы, с каких источников поступает трафик и как пользователи взаимодействуют с рекламой.
    • Google может создать программу поддержки издателей, которая поможет им улучшить свой контент и монетизировать его. Эта программа может включать в себя обучение, консультации и доступ к ресурсам.
    Конечно, это лишь некоторые из возможных направлений развития продукта Google AdSense в ближайшие 15 лет. В конечном итоге, Google будет принимать решения о развитии продукта на основе данных и потребностей своих клиентов.

  • Как Google выявляет трафик ботов в сети

    Как Google выявляет трафик ботов в сети

    Меня всегда немного напрягает, как навязчиво Google AdSense подсовывает мне рекламу в зависимости от моих старых запросов в поисковике. Вроде бы и времени с момента поиска прошло достаточно много, да и куки и кеш браузера чистились не раз, а реклама оставалась. Как же они продолжали отслеживать меня? Оказывается, способов для этого предостаточно.

    Небольшое предисловие

    Идентификация, отслеживание пользователя или попросту веб-трекинг подразумевает под собой расчет и установку уникального идентификатора для каждого браузера, посещающего определенный сайт. Вообще, изначально это не задумывалось каким-то вселенским злом и, как и все, имеет обратную сторону, то есть призвано приносить пользу. Например, позволить владельцам сайта отличить обычных пользователей от ботов или же предоставить возможность хранить предпочтения пользователей и применять их при последующем визите. Но в то же самое время данная возможность очень пришлась по душе рекламной индустрии. Как ты прекрасно знаешь, куки (cookies) — один из самых популярных способов идентификации пользователей. И активно применяться в рекламной индустрии они начали аж с середины девяностых годов.

    С тех пор многое изменилось, технологии ушли далеко вперед, и в настоящее время отслеживание пользователей одними только печеньками не ограничивается. На самом деле идентифицировать ботов и пользователей можно разными способами. Самый очевидный вариант — установить какие-либо идентификаторы, наподобие куков. Следующий вариант — воспользоваться данными об используемым пользователем ПК, которые можно почерпнуть из HTTP-заголовков отправляемых запросов: адрес, тип используемой ОС, время и тому подобное. Ну и напоследок можно отличить пользователя по его поведению и привычкам (движения курсора, любимые разделы сайта и прочее).

    Явные идентификаторы

    Данный подход довольно очевиден, все, что требуется, — сохранить на стороне пользователя какой-то долгоживущий идентификатор, который можно запрашивать при последующем посещении ресурса. Современные браузеры предоставляют достаточно способов выполнить это прозрачно для пользователя. Прежде всего это старые добрые куки. Затем особенности некоторых плагинов, близкие по функционалу к кукам, например Local Shared Objects во флеше или Isolated Storage в силверлайте. HTML5 также включает в себя несколько механизмов хранения на стороне клиента, в том числе localStorage, File и IndexedDB API. Кроме этих мест, уникальные маркеры можно также хранить в кешированных ресурсах локальной машины или метаданных кеша (Last-Modified, ETag). Помимо этого, можно идентифицировать пользователя по отпечаткам, полученным из Origin Bound сертификатов, сгенерированных браузером для SSL-соединений, по данным, содержащимся в SDCH-словарях, и метаданным этих словарей. Одним словом — возможностей полно.

    Cookies

    Когда дело касается хранения какого-то небольшого объема данных на стороне клиента, куки — это первое, что обычно приходит на ум. Веб-сервер устанавливает уникальный идентификатор для нового пользователя, сохраняя его в куках, и при всех последующих запросах клиент будет отправлять его серверу. И хотя все популярные браузеры уже давно снабжены удобным интерфейсом по управлению куками, а в Сети полно сторонних утилит для управления ими и их блокировки, куки все равно продолжают активно использоваться для трекинга пользователей. Дело в том, что мало кто просматривает и чистит их (вспомни, когда ты занимался этим последний раз). Пожалуй, основная причина этого — все боятся случайно удалить нужную «печеньку», которая, например, может использоваться для авторизации. И хотя некоторые браузеры позволяют ограничивать установку сторонних куков, проблема не исчезает, так как очень часто браузеры считают «родными» куки, полученные через HTTP-редиректы или другие способы во время загрузки контента страницы. В отличие от большинства механизмов, о которых мы поговорим далее, использование куков прозрачно для конечного пользователя. Для того чтобы «пометить» юзера, необязательно даже хранить уникальный идентификатор в отдельной куке — он может собираться из значений нескольких куков или храниться в метаданных, таких как Expiration Time. Поэтому на данном этапе довольно непросто разобраться, используется ли конкретная кука для трекинга или нет.

    Local Shared Objects

    Для хранения данных на стороне клиента в Adobe Flash используется механизм LSO. Он является аналогом cookies в HTTP, но в отличие от последних может хранить не только короткие фрагменты текстовых данных, что, в свою очередь, усложняет анализ и проверку таких объектов. До версии 10.3 поведение флеш-куков настраивалось отдельно от настроек браузера: нужно было посетить менеджер настроек Flash, расположенный на сайте macromedia.com (кстати, он доступен и сейчас по следующей ссылке). Сегодня это можно выполнить непосредственно из контрольной панели. К тому же большинство современных браузеров обеспечивают достаточно плотную интеграцию с флеш-плеером: так, при удалении куков и других данных сайтов будут также удалены и LSO. С другой стороны, взаимодействие браузеров с плеером еще не настолько тесное, поэтому настройка в браузере политики для сторонних куков не всегда затронет флеш-куки (на сайте Adobe можно посмотреть, как вручную их отключить).

    Удаление данных из localStorage в Opera

    Изолированное хранилище Silverlight

    Программная платформа Silverlight имеет довольно много общего с Adobe Flash. Так, аналогом флешевого Local Shared Objects служит механизм под названием Isolated Storage. Правда, в отличие от флеша настройки приватности тут никак не завязаны с браузером, поэтому даже в случае полной очистки куков и кеша браузера данные, сохраненные в Isolated Storage, все равно останутся. Но еще интересней, что хранилище оказывается общим для всех окон браузера (кроме открытых в режиме «Инкогнито») и всех профилей, установленных на одной машине. Как и в LSO, с технической точки зрения здесь нет каких-либо препятствий для хранения идентификаторов сессии. Тем не менее, учитывая, что достучаться до этого механизма через настройки браузера пока нельзя, он не получил такого широкого распространения в качестве хранилища для уникальных идентификаторов.

    Вот так выглядит изолированное хранилище Silverlight

    HTML5 и хранение данных на клиенте

    HTML5 представляет набор механизмов для хранения структурированных данных на клиенте. К ним относятся localStorage, File API и IndexedDB. Несмотря на различия, все они предназначены для обеспечения постоянного хранения произвольных порций бинарных данных, привязанных к конкретному ресурсу. Плюс, в отличие от HTTP- и Flash-куков, здесь нет каких-либо значительных ограничений на размер хранимых данных. В современных браузерах HTML5-хранилище располагается наряду с другими данными сайта. Однако как управлять хранилищем через настройки браузера — догадаться очень трудно. К примеру, чтобы удалить данные из localStorage в Firefox, пользователю придется выбрать offline website data или site preferences и задать временной промежуток равным everything. Еще одна неординарная фишка, присущая только IE, — данные существуют только на время жизни табов, открытых в момент их сохранения. Плюс ко всему вышеперечисленные механизмы не особо-то стараются следовать ограничениям, применимым к HTTP-кукам. Например, можно писать в localStorage и читать из него через кросс-доменные фреймы даже при отключенных сторонних куках.
    Настройка локального хранилища Flash Player

    Кешированные объекты

    Все хотят, чтобы браузер работал шустро и без тормозов. Поэтому ему приходится складывать в локальный кеш ресурсы посещаемых сайтов (чтобы не запрашивать их при последующем визите). И хотя данный механизм явно не предназначался для использования в качестве хранилища с произвольным доступом, его можно в таковой превратить. Например, сервер может вернуть пользователю JavaScript-документ с уникальным идентификатором внутри его тела и установить в заголовках Expires / max-age= далекое будущее. Таким образом скрипт, а с ним и уникальный идентификатор пропишется в кеше браузера. После чего к нему можно будет обратиться с любой страницы в Сети, просто запросив загрузку скрипта с известного URL’а. Конечно, браузер будет периодически спрашивать с помощью заголовка If-Modified-Since, не появилась ли новая версия скрипта. Но если сервер будет возвращать код 304 (Not modified), то закешированная копия будет использоваться вечно. Чем еще интересен кеш? Здесь нет концепции «сторонних» объектов, как, например, в случае с HTTP-куками. В то же время отключение кеширования может серьезно отразиться на производительности. А автоматическое определение хитрых ресурсов, хранящих в себе какие-то идентификаторы/метки, затруднено в связи с большим объемом и сложностью JavaScript-документов, встречающихся в Сети. Конечно, все браузеры позволяют юзеру вручную чистить кеш. Но как показывает практика (даже собственный пример), производится это не так часто, если производится вообще.

    ETag и Last-Modified

    Для того чтобы кеширование работало правильно, серверу необходимо каким-то образом информировать браузер о том, что доступна более новая версия документа. Стандарт HTTP/1.1 предлагает два способа для решения этой задачи. Первый основан на дате последнего изменения документа, а второй — на абстрактном идентификаторе, известном как ETag. В случае с ETag сервер изначально возвращает так называемый version tag в заголовке ответа вместе с самим документом. При последующих запросах к заданному URL клиент сообщает серверу через заголовок If-None-Match это значение, ассоциированное с его локальной копией. Если версия, указанная в этом заголовке, актуальная, то сервер отвечает HTTP-кодом 304 (Not Modified), и клиент может спокойно использовать кешированную версию. В противном случае сервер присылает новую версию документа с новым ETag. Такой подход чем-то напоминает HTTP-куки — сервер сохраняет произвольное значение на клиенте только для того, чтобы потом его считать. Другой способ, связанный с использованием заголовка Last-Modified, позволяет хранить по крайней мере 32 бита данных в строке даты, которая затем отправляется клиентом серверу в заголовке If-Modified-Since. Что интересно, большинство браузеров даже не требуют, чтобы эта строка представляла собой дату в правильном формате. Как и в случае идентификации пользователя через кешированные объекты, на ETag и Last-Modified никак не влияет удаление куков и данных сайта, избавиться от них можно только очисткой кеша.
    Google возвращает клиенту ETag

    HTML5 AppCache

    Application Cache позволяет задавать, какая часть сайта должна быть сохранена на диске и быть доступна, даже если пользователь находится офлайн. Управляется все с помощью манифестов, которые задают правила для хранения и извлечения элементов кеша. Подобно традиционному механизму кеширования, AppCache тоже позволяет хранить уникальные, зависящие от пользователя данные — как внутри самого манифеста, так и внутри ресурсов, которые сохраняются на неопределенный срок (в отличие от обычного кеша, ресурсы из которого удаляются по истечении какого-то времени). AppCache занимает промежуточное значение между механизмами хранения данных в HTML5 и обычным кешем браузера. В некоторых браузерах он очищается при удалении куков и данных сайта, в других только при удалении истории просмотра и всех кешированных документов.

    SDCH-словари

    SDCH — это разработанный Google алгоритм компрессии, который основывается на использовании предоставляемых сервером словарей и позволяет достичь более высокого уровня сжатия, чем Gzip или deflate. Дело в том, что в обычной жизни веб-сервер отдает слишком много повторяющейся информации — хидеры/футеры страниц, встроенный JavaScript/CSS и так далее. В данном подходе клиент получает с сервера файл словаря, содержащий строки, которые могут появиться в последующих ответах (те же хидеры/футеры/JS/CSS). После чего сервер может просто ссылаться на эти элементы внутри словаря, а клиент будет самостоятельно на их основе собирать страницу. Как ты понимаешь, эти словари можно с легкостью использовать и для хранения уникальных идентификаторов, которые можно поместить как в ID словарей, возвращаемые клиентом серверу в заголовке Avail-Dictionary, так и непосредственно в сам контент. И потом использовать подобно как и в случае с обычным кешем браузера.

    Прочие механизмы хранения

    Но это еще не все варианты. При помощи JavaScript и его товарищей по цеху можно сохранять и запрашивать уникальный идентификатор таким образом, что он останется в живых даже после удаления всей истории просмотров и данных сайтов. Как один из вариантов, можно использовать для хранения window.name или sessionStorage. Даже если пользователь подчистит все куки и данные сайта, но не закроет вкладку, в которой был открыт отслеживающий сайт, то при последующем заходе идентифицирующий токен будет получен сервером и пользователь будет снова привязан к уже собранным о нем данным. Такое же поведение наблюдается и у JS, любой открытый JavaScript-контекст сохраняет состояние, даже если пользователь удалит данные сайта. При этом такой JavaScript может не только принадлежать отображаемому сайту, но и прятаться в iframe’ах, веб-воркерах и так далее. Например, загруженная в iframe реклама вовсе не обратит внимания на удаление истории просмотров и данных сайта и продолжит использовать идентификатор, сохраненный в локальной переменной в JS.

    Протоколы

    Помимо механизмов, связанных с кешированием, использованием JS и разных плагинов, в современных браузерах есть еще несколько сетевых фич, позволяющих хранить и извлекать уникальные идентификаторы.
    • Origin Bound Certificates (aka ChannelID) — персистентные самоподписанные сертификаты, идентифицирующие клиента HTTPS-серверу. Для каждого нового домена создается отдельный сертификат, который используется для соединений, инициируемых в дальнейшем. Сайты могут использовать OBC для трекинга пользователей, не предпринимая при этом каких-либо действий, которые будут заметны клиенту. В качестве уникального идентификатора можно взять криптографический хеш сертификата, предоставляемый клиентом как часть легитимного SSL-рукопожатия.
    • Подобным образом и в TLS тоже есть два механизма — session identifiers и session tickets, которые позволяют клиентам возобновлять прерванные HTTPS-соединения без выполнения полного рукопожатия. Достигается это за счет использования закешированных данных. Два этих механизма в течение небольшого промежутка времени позволяют серверам идентифицировать запросы, исходящие от одного клиента.
    • Практически все современные браузеры реализуют свой собственный внутренний DNS-кеш, чтобы ускорить процесс разрешения имен (и в некоторых случаях снизить риск DNS rebinding атак). Такой кеш запросто можно использовать для хранения небольших объемов информации. Например, если обладать 16 доступными IP-адресами, около 8–9 закешированных имен будет достаточно, чтобы идентифицировать каждый компьютер в Сети. Однако такой подход ограничен размером внутреннего DNS-кеша браузеров и может потенциально привести к конфликтам в разрешении имен с DNS провайдера.

    Характеристики машины

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

    «Отпечатки» браузера

    Наиболее простой подход к трекингу — это построение идентификаторов путем объединения набора параметров, доступных в среде браузера, каждый из которых по отдельности не представляет никакого интереса, но совместно они образуют уникальное для каждой машины значение:
    • User-Agent. Выдает версию браузера, версию ОС и некоторые из установленных аддонов. В случаях, когда User-Agent отсутствует или хочется проверить его «правдивость», можно определить версию браузера проверкой на наличие определенных фич, реализованных или измененных между релизами.
    • Ход часов. Если система не синхронизирует свои часы со сторонним сервером времени, то рано или поздно они начнут отставать или спешить, что породит уникальную разницу между реальным и системным временем, которую можно измерить с точностью до микросекунды с помощью JavaScript’а. На самом деле даже при синхронизации с NTP-сервером все равно будут небольшие отклонения, которые также можно будет измерить.
    • Информация о CPU и GPU. Можно получить как напрямую (через GL_RENDERER), так и через бенчмарки и тесты, реализованные с помощью JavaScript.
    • Разрешение монитора и размер окна браузера (включая параметры второго монитора в случае мультимониторной системы).
    • Список установленных в системе шрифтов, полученных, например, с помощью getComputedStyle API.
    • Список всех установленных плагинов, ActiveX-контролов, Browser Helper Object’ов, включая их версии. Можно получить перебором navigator.plugins[] (некоторые плагины выдают свое присутствие в HTTP-заголовках).
    • Информация об установленных расширениях и другом ПО. Такие расширения, как блокировщики рекламы, вносят определенные изменения в просматриваемые страницы, по которым можно определить, что это за расширение, и его настройки.

    Сетевые «отпечатки»

    Еще ряд признаков кроется в архитектуре локальной сети и настройке сетевых протоколов. Такие знаки будут характерны для всех браузеров, установленных на клиентской машине, и их нельзя просто скрыть с помощью настроек приватности или каких-то security-утилит. Они включают в себя:
    • Внешний IP-адрес. Для IPv6-адресов данный вектор особенно интересен, так как последние октеты в некоторых случаях могут получаться из MAC-адреса устройства и потому сохраняться даже при подключении к разным сетям.
    • Номера портов для исходящих TCP/IP-соединений (обычно выбираются последовательно для большинства ОС).
    • Локальный IP-адрес для пользователей, находящихся за NAT’ом или HTTP-прокси. Вкупе с внешним айпишником позволяет уникально идентифицировать большинство клиентов.
    • Информация об используемых клиентом прокси-серверах, полученная из HTTP-заголовка (X-Forwarded-For). В сочетании с реальным адресом клиента, полученным через несколько возможных способов обхода прокси, также позволяет идентифицировать пользователя.

    Поведенческий анализ и привычки

    Еще один вариант — взглянуть в сторону характеристик, которые привязаны не к ПК, а скорее к конечному пользователю, такие как региональные настройки и поведение. Такой способ опять же позволит идентифицировать клиентов между различными сессиями браузера, профилями и в случае приватного просмотра. Делать выводы можно на основании следующих данных, которые всегда доступны для изучения:
    • Предпочитаемый язык, дефолтная кодировка и часовой пояс (все это живет в HTTP-заголовках и доступно из JavaScript).
    • Данные в кеше клиента и его история просмотра. Элементы кеша можно обнаружить при помощи атак по времени — отслеживающий может обнаружить долгоживущие элементы кеша, относящиеся к популярным ресурсам, просто измерив время из загрузки (и отменив переход, если время превышает ожидаемое время загрузки из локального кеша). Также можно извлекать URL’ы, хранящиеся в истории просмотра браузера, хотя такая атака в современных браузерах потребует небольшого взаимодействия с пользователем.
    • Жесты мышью, частота и продолжительность нажатия клавиш, данные с акселерометра — все эти параметры уникальны для каждого пользователя.
    • Любые изменения стандартных шрифтов сайта и их размеров, уровень zoom’а, использование специальных возможностей, таких как цвет текста, размер.
    • Состояние определенных фич браузера, настраиваемых клиентом: блокировка сторонних куков, DNS prefetching, блокировка всплывающих окон, настройки безопасности Flash и так далее (по иронии, пользователи, меняющие дефолтные настройки, в действительности делают свой браузер значительно более легким для идентификации).
    И это лишь очевидные варианты, которые лежат на поверхности. Если копнуть глубже — можно придумать еще.

    Подытожим

    Как видишь, на практике существует большое число различных способов для трекинга пользователя. Какие-то из них являются плодом ошибок в реализации или упущений и теоретически могут быть исправлены. Другие практически невозможно искоренить без полного изменения принципов работы компьютерных сетей, веб-приложений, браузеров. Каким-то техникам можно противодействовать — чистить кеш, куки и прочие места, где могут храниться уникальные идентификаторы. Другие работают абсолютно незаметно для пользователя, и защититься от них вряд ли получится. Поэтому самое главное — путешествуя по Сети даже в приватном режиме просмотра, помнить, что твои перемещения все равно могут отследить.