AffTimes.com

Автоматизация Facebook: 1000 аккаунтов на 1 проксе без банов — доклад Кирилла Nortox с MAC 2021

Автоматизация Facebook: 1000 аккаунтов на 1 проксе без банов — доклад Кирилла Nortox с MAC 2021
автор
AffTimes
На чтение
6 мин
просмотров
66
опубликовано
10 октября, 2021

Сооснователь и разработчик сервиса FBTOOL.pro Кирилл Nortox рассказал, как работает API Facebook и почему не нужно бояться автоматизировать работу с ФБ.

⚡️ Телеграм-канал Afftimes — подпишись и первым получай всю годноту! ⚡️

Как работает API Facebook

API Фейсбука един для всех приложений и сайтов, однако способы взаимодействия с ним различаются:

  • Graph.facebook.com — базовый путь обращения к API. Чтобы ФБ мог сопоставлять, с какого аккаунта идет обращение, требуется токен.
  • Facebook.com/api/graphql — очень близок к первому способу, однако тут не нужен токен, используются cookie. Фишка метода в том, что в некоторых запросах нам удается сымитировать и подсунуть туда токен, что открывает новые возможности.
  • Прослойка между пользователем и API. Те запросы, которые ФБ прячет от глаз разработчиков.
Автоматизация Facebook: 1000 аккаунтов на 1 проксе без банов — доклад Кирилла Nortox с MAC 2021

Нас интересуют те методы автоматизации, в которых используется токен — ключ доступа, несущий в себе различную информацию:

Автоматизация Facebook: 1000 аккаунтов на 1 проксе без банов — доклад Кирилла Nortox с MAC 2021

Получить токен можно двумя способами:

  • Создать собственное приложение в Facebook. В основном используется в бурже сервисами для белых рекламодателей.
  • Использовать токен внутреннего приложения Facebook. В случае с FBTOOL мы «выдергиваем» его из исходного кода страницы Ads Manager.

У каждого способа есть свои плюсы и минусы.

Главный плюс в приложении разработчика — безопасность и официальность. Не важно, с какого IP и User Agent будут идти запросы на API. Это самый настоящий и официальный способ взаимодействия с Facebook. Однако как разработчику вам придется постоянно обосновывать Фейсбуку необходимость каждой новой функции. Привязка карты и создание ФП через такой способ не работает.

Если бы мы для FBTOOL пошли по пути прилы разработчика, то в случае авторизации в приложении 10-15 аккаунтов, которые в будущем бы получили бан, то вся прила также бы получила полную блокировку. Нам это не подходит.

Автоматизация Facebook: 1000 аккаунтов на 1 проксе без банов — доклад Кирилла Nortox с MAC 2021

С токеном из Ads Manager ситуация другая. Сколько бы аккаунтов вы не авторизировали, связать их между собой по этому токену не получится. Однако достать токен на автомате сложнее из-за необходимости авторизации с трастового IP.

Автоматизация Facebook: 1000 аккаунтов на 1 проксе без банов — доклад Кирилла Nortox с MAC 2021

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

Автоматизация Facebook: 1000 аккаунтов на 1 проксе без банов — доклад Кирилла Nortox с MAC 2021

Многие думают, что запросы через API — палево. Это не так, поскольку этот токен и создан для того, чтобы наладить взаимодействие между пользователем и Фейсбуком.

Выглядит это так: браузер авторизовывается по логину и паролю, либо по куки; Facebook дает нам токен, в котором есть все необходимые данные (одобрив тем самым аккаунт). Благодаря этому браузер «общается» с API, а мы просто вклиниваемся и «выдергиваем» токен.

Автоматизация Facebook: 1000 аккаунтов на 1 проксе без банов — доклад Кирилла Nortox с MAC 2021

Что видит Facebook в этот момент? Сам токен, который выдал; юзерагент браузера и IP (его мы регулируем через прокси). Информацию о железе по API Фейсбук получить не может, поскольку для этого он должен выдать JS-код, который выполнится вашим же браузером, а затем отправить ФБ. Мы можем посмотреть исходный код ответа от API и увидеть, что там передаются только данные, без каких-либо скриптов.

Автоматизация Facebook: 1000 аккаунтов на 1 проксе без банов — доклад Кирилла Nortox с MAC 2021
Автоматизация Facebook: 1000 аккаунтов на 1 проксе без банов — доклад Кирилла Nortox с MAC 2021

Что по банам? В начале работы сервиса мы загрузили огромное число разных проксей. Аккаунты, которые добавляли пользователи, распределялись по ним равномерно, при этом у нас генерировались юзерагенты, чтобы пользователям было проще взаимодействовать с сервисом — указать токен и всё.

Спустя время аккаунты некоторых пользователей стали вылетать на разлогин, селфи и чекпоинты. Мы стали разбираться, почему при равных условиях у одних всё окей, а других проблемы. Гипотезы в основном сходились к тому, что проблема в прокси.

Автоматизация Facebook: 1000 аккаунтов на 1 проксе без банов — доклад Кирилла Nortox с MAC 2021

В итоге мы поняли, что в API другие законы по отношению к IP, чем при работе с браузером. Там мы привыкли, что должна быть полная стерильность — аккаунты не должны пересекаться по IP. В случае с API, если у ФБ нет вопросов к аккаунту, он выживет на любой прокси, либо же умрёт на всех, кроме «родной» прокси.

Автоматизация Facebook: 1000 аккаунтов на 1 проксе без банов — доклад Кирилла Nortox с MAC 2021

Пообщавшись с клиентами, у которых аккаунты выкашивались пачками, нашлось несколько причин банов:

Автоматизация Facebook: 1000 аккаунтов на 1 проксе без банов — доклад Кирилла Nortox с MAC 2021

Какие прокси для API использовать?

В лучшем случае использовать те, с которых был взят токен. Многие спрашивают: если на одной мобильной проксе в браузере могут быть десятки аккаунтов, и перед входом я просто меняю IP перед входом на каждый аккаунт, сервис же свяжет все эти аккаунты по одному IP? Это не так — Facebook не умеет по API связывать несколько аккаунтов по IP.

Мы проводили много тестов: добавили в FBTOOL кучу мобильных проксей, рассчитывая на дополнительный траст. В итоге в ситуациях, когда у провайдера были проблемы, и происходили смены IP, далеко не все аккаунты их переживали. Получается, что если бы мы делали каждый раз ребут перед запросом к аккаунту (вместо того, чтобы работать с одного IP), то каждый ребут мог бы быть последним.

Если у вас нет возможности соблюсти соответствие в IP того, откуда взялся токен и того, с которого вы работаете по API, то советую просто брать самые стабильные (по соединению) прокси.

Касательно мобильных прокси: они не всегда являются панацеей от всех проблем и бед.

Многие думают, что автоматическая смена IP = имитация реального пользователя, передвигающегося по городу. Однако у реального человека IP меняется от вышки к вышке, а не в пределах одной вышки. Facebook это понимает + не так много людей заливает рекламу с мобильного интернета.

Автоматизация Facebook: 1000 аккаунтов на 1 проксе без банов — доклад Кирилла Nortox с MAC 2021

Полный доклад по ссылке.

автор
AffTimes

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *