Жёлтый Веб: Автоматизация и Партнёрский Маркетинг
14.3K subscribers
845 photos
48 videos
67 files
876 links
Номер заявления на регистрацию канала: №4781716924
Магазин топ-акков: https://yellowweb.shop
Бот экономии USDT TRC20 @lowfeetrxbot
ПОЛЕЗНЕЙШИЕ сервисы: https://yellowweb.top/links
Чат: @yellowwebchat
ЛС админа: @dvygolov
По рекламе: @babbie_valerie
Download Telegram
Если вы пишете свои собственные js-скрипты для Facebook, ковыряете их private API и т.п., то вам часто приходится работать с разными внутренними переменными и токенами.
Но каждый раз вспоминать, как в моменте получить ту или иную штуку, бывает проблематично. Поэтому специально для вас, неутомимые исследователи, я сделал шпаргалку, в которой вы найдёте, как мне кажется, всё-всё-всё, что вам может потребоваться.

P.S. А если я что-то забыл - welcome в комментарии, дополним!

#fbapi
Эй, автоматизаторы!

Вы просили - я сделал 🙃 Несколько раз писали в ЛС вопрос: как по API узнать, какое максимальное кол-во акков разрешено создавать в выбранном БМе?

Ну и вот вам скрипт, собственно, ничего сложного 🤷

P.S. Там много лишнего кода, основной запрос находится в методе getBMAdAccountCreationLimit.

Автоматизируйте на здоровье!👍

P.P.S. рекомендую использовать этот запрос для автоматического создания акков в БМе. Типа: как только видим, что кол-во доступных акков больше, чем реальное - создаём новые.

Это удобно, потому что мало ли, что-то забанится, и возможность создавать акки в БМе пропадёт...

#fbapi
Все вы наверняка в курсе, что у любой фп, с которой крутится реклама, можно в Account Quality подать заявку, что фп не занимается коммерческой деятельностью.

При успешном прохождении (скрин 1) этой проверки у пользователей не будут спрашивать фидбек по нашей рекламе, и, соответственно, на фп не будут накладываться ограничения при низкой Feedback Score.

Я отсниффал POST-запрос, который как оказалось, показывает массу интересного (скрин 2):
1. Тот самый флаг - eCommerce мы или нет
2. IsYoungPage, ёпта! Предполагаю, что у тех страниц, у которых тут false результаты будут лучше, ну или они будут крепче
3. Кол-во раз, которое можно подать тикет на то, что мы не eCommerce
4. Для обычных продающих фп тут будет тот самый Feedback Score

IsBeingBannd и IsBeingPenalized тоже вполне полезно👍

Короче, граждане автоматизаторы, используйте в своих инструментах!

P.S. В частности IsYoungPage вполне неплохо смотрелась бы в панельке тов. L3nin-а 🙃

#фп #fp #fbapi
Инфа для ковырятелей Private API Facebook👇

Если вы когда-то пытались написать скрипт, требующий в процессе исполнения ввода пароля (например, удаление телефона или полное удаление аккаунта), то наверняка при прослушке трафика видели, что пароль в такие запросы передаётся в зашифрованном виде (скрин 1).

Возникает резонный вопрос, а как бы так получить этот "зашифрованный вид" из обычного пароля? Показываю!

Для начала нужно отсниффать ключ шифрования и его id (скрин 2). Они обычно находятся в предыдущем запросе к Private API.

Имея их на руках, воспользуемся функциями самого FB и получим пароль в нужном виде:

await require('FBBrowserPasswordEncryption').encryptPassword("key_id","public_key","пароль",Math.floor(Date.now() / 1e3).toString());

Меняем в этой строке key_id, public_key и пароль на ваши значения и получаем зашифрованный пароль, который можно скормить фб в нужном вам запросе! 🙃

Изи! (ну почти)

UPD: а зачастую, вместо этого самого зашифрованного пароля можно слать... НЕ зашифрованный! 🙃

#fbapi
Да, а если вы пишите не просто какие-то маленькие js-скрипты-закладки, а что-то серверное, типа автозалива, то найдите в js-исходниках фб эту функцию encryptPassword и воспроизведите её у себя на C#, PHP, Python и т.п.

Подробности по ней можете глянуть вот в этой статье: https://hackmd.io/@Ostrym/facebook-client-side-encryption

#fbapi
Про FB и персональные данные👇

А все уже видели этот прекрасный интерфейс Accounts Center (см скрин)? Он хорош тем, что там сразу же можно увидеть всю инфу по акку: почта-телефон-день рождения 👍

А ещё он хорош тем, что теперь всю эту инфу можно выдернуть всего одним запросом к Private API🙃 Написал для вас скрипт, который показывает, как это сделать.

UPD: тут был длинный рофл про индусов, но оказалось, что главный индус - это Данила-программист, который не шарит в Javascript🤷

#fbapi
Нашёл внутри js-исходников AdsManager удобный способ обращаться из своих скриптов к официальному API Facebook! 👇

Вот, например, как выглядит получение имени РК по его id:

await require("AdsGraphAPI").get('15.0').adaccount('11111').get({
fields: ["name"]
});

Очень удобно 👍

Вы можете нарыть себе кучу примеров использования в Developer Tools на вкладке Sources, поискав по всем файлам строку AdsGraphAPI"). Есть всё что нужно🔥

Писать кастомные скрипты стало проще🙃

P.S. Про Private API расскажу в следующем посте.

#fbapi
Давайте теперь рассмотрим работу с Private API фб 👇

Немного базы:
- все запросы нужно отправлять на адрес facebook.com/api/graphql
- практически всегда это POST-запросы
- в теле запроса есть несколько обязательных параметров:

1. doc_id - это уникальный идентификатор запроса, от него, собственно, зависит , что именно будет делать ваш запрос
2. variables - набор переменных для запроса в формате JSON
3. токен fb_dtsg - это примерно как обычный токен EAAB для Public API, получить его можно вот так require("DTSGInitData").token

Ну так вот, чтобы не собирать всю эту муть воедино ручками, умные дяди и тёти из фэбэ сделали для нас себя удобный класс AsyncRequest. Показываю, как пользоваться на примере запроса для получения персональных данных из поста выше:

let fbVariables = JSON.stringify({"device_id":"","flow":"FB_WEB_SETTINGS","interface":"FB_WEB","node_identifier":"personal_info"});
let fbDocId = '9146498392086837';
await new AsyncRequest().setURI('/api/graphql').setMethod("POST").setData({doc_id:fbDocId,variables:fbVariables}).send();

Вы заметили? Никаких fb_dtsg мы не указываем, всё встроено в AsyncRequest, а если посмотреть трафик на вкладке Network, то мы увидим, что в запросе есть вообще все параметры, которые обычно шлёт сам фб (см. скрин).

Короче: это МАКСИМАЛЬНО БЕСПАЛЕВНЫЙ вариант для работы ваших скриптов или браузерных расширений и точка! 👍

#fbapi
Если вам надо чекнуть по API, когда был создан тот или иной аккаунт (например, чтобы примерно понять, как давно был зареган проданный вам "авторег с отлёжкой в 2 месяца"), можно заюзать следующий запрос для лички:

https://graph.facebook.com/v16.0/act_ACCOUNTID?fields=created_time&access_token=TOKEN

Получим дату, как на скрине. Конечно, метод не особо точный, потому что РК обычно создаются не в первый день реги акка.

P.S. Для того, чтобы попробовать сделать наше предположение точнее, мы можем получим дату загрузки первой фотки профиля - обычно, это ава - или (что будет самым точным способом) распарсить информацию из настроек аккаунта, но об этом как-нибудь в следующий раз...

#fbapi
ВНЕЗАПНО, у фэбэ есть свой API для проверки правильности введённых номеров телефона👇

Выбираем стандартный двухбуквенный код страны, вводим номер и видим результат. Если номер по мнению Meta реальный, то вы получите по нему инфу (скрин 1), если же нет, то запрос вернёт пустое значение (скрин 2).

В качестве токена изначально используется токен БМа, но вы запросто можете поменять его на обычный EAAB от AdsManager-а. При этом вы, например, спокойно можете использовать этот токен от тестовых аккаунтов.

Где и как это применить - придумаете сами, а сам запрос выглядит вот так:

https://graph.facebook.com/v16.0/phone_number?access_token=<TOKEN>&fields=category%2Cdisplay_number%2Cregion_code%2Cregion_codes%2Curi&locale=en_US&method=get&number=%2B1302-200-7504&region=US

P.S. Если убрать параметр region=US, то фб будет сам определять страну номера🙃

#fbapi
Если вы размышляете над тем: почему ваши аккаунты фэбэ ограничивают в спенде до 25$/дейли (скрин №1), то обычно всё дело в отклонённых объявлениях. По моим тестам - достаточно 2-3 отклонённых объяв.

Как я это определил?

Помимо того, что FB чёрным по белому пишет об этом на скрине №1, можно найти информацию о причинах в результатах запроса к Private API - см. скрин №2.

P.S. Параметры запроса, если что, следующие:
variables: {"id":"айдивашегоакка","startTime":null}
doc_id: 6233091253412362
Как пользоваться Private API - писал на канале.

P.P.S. Для снятия плашки продолжаем лить траф на этом акке от недели и более - и мейби вам повезёт 🙃

#fbapi
Простой способ для проверки, что ваш AccessToken жив👇

Всем скриптописателям и создателям софтов по FB важно регулярно проверять, что токен для доступа к API фэбэ не "протух". Потому что есть неиллюзорная возможность получить чекпоинт на акке, если вы будете долбиться в API с дохлым токеном от Ads Manager-а!

Не буду тут разводить дискуссию о том, что своя собственная прила со всеми нужными правами доступа и своим токеном В РАЗЫ лучше для работы в долгую, чем токен от адээс-ки. Надеюсь, это и так понятно.

Так вот, насчёт проверки. Делают её обычно на отъебись: шлют любой запрос, и, если в результате получается ошибка, - значит пора снова лезть в Ads Manager и доставать обнову.

Мы с вами так делать больше НИКОГДА не будем. А будем использовать специальный API-вызов:

https://graph.facebook.com/oauth/access_token_info?access_token=<ВАШ_ТОКЕН>

Результат можете увидеть на скринах 1 и 2. В первом случае - токен кончился, несите новый! Во втором - ол гут, зелёный свет. Начинаем делать что-то полезное.

Таким нехитрым способом мы:
- снижаем кол-во чеков и разлогинов;
- упрощаем написание обработки ошибок в наших софтах.

Пользуемся, гайз!🙃
#fbapi
У каждой фп нового типа в Facebook есть целых 2 идентификатора. Всё дело в том, что эти фп - это одновременно и страница, и профиль.

И если мы делаем запросы к Public API фэбэ, то обычно мы используем Page Id (цифра 1 на скрине). Например: можно получить все посты фпшки, как рекламные так и обычные.

А вот для работы с Private API зачастую требуется именно Profile Id (цифра 2 на скрине). Там этот идентификатор выступает обычно в качестве параметра actor_id, т.е. от лица кого идёт тот или иной запрос.

Как получить Profile Id зная только Page Id?

Используйте следующий запрос:
https://graph.facebook.com/v18.0/<PageId>?fields=additional_profile_id&access_token=<PageAccessToken>

А вот как наоборот по айди профиля получить айди фп я не в курсе 🤷‍♂️

Такое вот занимательное программирование🙃

#fbapi
Продолжаю проводить ревизию сделанного за 5 лет в медийке👇

Сегодня полностью актуализировал статью по накрутке комментов фэбэ по API!

Проверил все запросы, написал допом как оставлять комментарии на комментарии....

P.S. Посмотрим, может когда-нибудь и "Бородатого комментатора" оживлю🙃 Можем сделать краудфандинг, кстати, под такой проект, кому-то интересно?

#fbapi #comments
Жёлтый Веб: Автоматизация и Партнёрский Маркетинг
Продолжаю проводить ревизию сделанного за 5 лет в медийке👇 Сегодня полностью актуализировал статью по накрутке комментов фэбэ по API! Проверил все запросы, написал допом как оставлять комментарии на комментарии.... P.S. Посмотрим, может когда-нибудь и…
В ЛС и чате канала возник вопрос: а как по API оставить коммент от имени фп?

Да точно также, как и указано в статье, только нужно использовать токен не от Ads Manager, а токен фан пейджа.

Как его получить?

Вот запрос:
https://graph.facebook.com/v19.0/me/accounts?fields=id,name,access_token&access_token=TOKEN

Меняете в нём слово TOKEN на обычный от Ads Manager и прям в браузере запускаете этот запрос в новой вкладке, например. Он вам покажет все фп и их токены - см. скрин.

Изи!🙃

P.S. Учтите, что в фб есть лимит (примерно 7-8 комментов) Если у вас куча фэпэ висит на одном акке, то после упирания в этот лимит, вы сможете публиковать комменты только через 24 часа! Для обхода лимита вешайте ваши фп сразу на 3-4 акка.

#fbapi
FB, наконец, сделал довольно очевидную и разумную вещь:

Теперь, если в вашем софте/скрипте используется версия API, которая уже неактуальна - FB автоматически проапгрейдит вызов до текущей версии API. Понятное дело, что только для тех вызовов, которые не поменялись.

Т.е. если ваш софт использует довольно базовые методы - можно забить хуй и не обновлять API на новую версию вручную.

Спасибо, Марк 🤝

#fbapi
Приветствую тебя, читатель!

Меня зовут Выголов Даниил, и я не буду долго ходить вокруг да около, рассказывая о себе или о проекте "Жёлтый Веб" - см. все подробности по ссылке. Скажу только, что моя основная задача на этом канале = дать по максимуму пользы и поковыряться в техничке арбитража, разбавив всё это здоровой дозой треша, угара и рок-н-ролла🤪

1️⃣Начнём с главного: с 2019 года накопилась куча полезных материалов, как своих, так и сторонних. Я рассортировал их по категориям и собрал воедино вот тут. Уверен, даже опытному специалисту там найдётся, что почитать📖

2️⃣Я довольно неплохой разработчик с 15+ годами стажа, поэтому пилил и пилю всякие бесплатные полезные в арбитраже скрипты. Проекты среднего размера: настольные утилиты и веб-сервисы лежат вот тут. Самый известный мой софт- бесплатный сервис клоакинга YellowCloaker. Обо всём софте и скриптах можно почитать на канале, используй поиск, бро!

3️⃣Также у меня👇
- собран набор ссылок на полезные сервисы и инструменты для арбитражников на все случаи жизни;
- есть свой магазин ТОПовых расходников: акки фб, прокси, платные скрипты;

4️⃣Кроме этого канала у проекта "Жёлтый веб" есть уютный тг-чат без спама и хейта, веб-сайт с авторскими статьями и YouTube-канал - подписывайся, читай и смотри👀

Изначально проект работал по модели donation-ware. Со временем поток донатов иссяк, и я перевёл всё на коммерческие рельсы, но без ущерба для читателей. Реклама выходит 2-3 раза в неделю и через некоторое время удаляется (все условия по рекламе тут). Поэтому можешь смело листать вверх, ничто не будет отвлекать от годного контента!

Посты на канале обычно размечены хештегами. Если хочешь почитать по теме ещё - тыкаешь на хештег и получаешь искомое. Например: #fp, #fbapi и т.д. И повторю ещё раз: пользуйся поиском!

5️⃣Помимо "Жёлтого Веба" я также занят и в других проектах:
- агентство Crazy Profits, где мы командой льём трафик и пишем про это в ТГ-канале;
- партнёрка Crazy Profits с офферами по нутре и гэмблингу и одними из лучших ставок на рынке;
- проект Traffic Diver, где мы с партнёрами снимаем видеоконтент по заливу трафика без прикрас, as is. В основном это нутра и свипы.

6️⃣В свободное от праведных трудов время я могу платно проконсультировать по тех. части и не только, пиши✍️

Кажется, ничего не забыл🙃

P.S. Хочешь спросить меня о чём-то лично?
Добро пожаловать!

P.P.S. Разработкой софта на заказ НЕ ЗАНИМАЮСЬ и никаких услуг НЕ ПРЕДОСТАВЛЯЮ🤷
Please open Telegram to view this post
VIEW IN TELEGRAM
Пара вариантов, как с точки зрения антифрода FB можно отследить автоматизацию, сделанную на запросах👇

1️⃣Самый простой способ: вшиваем в html-страницу какой-нибудь скрипт через <script src="lalala.js">

Проверяем, что если запросили страницу, то и скрипт обязательно запросили тоже. Не запросили скрипт? Это автоматизация!

2️⃣Вариант чуть сложнее: такой же скрипт, как в пункте 1, и при исполнении этого скрипта мы регулярно вызываем какое-нибудь своё внутреннее API, скажем раз в минуту.

Если мы видим, что юзер запрашивает всякие разные html-страницы, а API не вызывается - это автоматизация!

Не могу утверждать на 100%, но весьма похоже, что у FB за такой механизм отвечает API-запрос под именем Shaman Warden (Шаман надзиратель или стражник) - вот он, на скрине.

3️⃣Ну и логичным завершением этого метода будет не просто мониторить вызовы внутреннего API, но и проверять, а что же пришло в качестве параметра вызываемого метода.

Например: на клиенте генерим по определённому алгоритму какие-нибудь числа, привязанные к текущей дате. А на сервере проверяем, нужное ли число пришло. Приходит мусор? Это автоматизация!

4️⃣Все же знают, что нынче токен от Ads Manager-а имеет свойство меняться внезапно и регулярно.

Так вот - ещё один способ отследить автоматизацию и выкинуть акк на чек - это увидеть, что кто-то настойчиво ломится к API с дохлым токеном.

ВЫВОДЫ
Если нужны именно запросы и вас трахает антифрод - эмулируем по максимуму действия браузера, смотрим весь нужный флоу, замечаем, какие методы и эндпоинты вызываются.

Если не справляетесь - к чёрту запросы, возьмите Playwright/Puppeteer/Selenium.

Happy Hacking!🙃

#fbapi #antifraud
Как там, оказывается, всё просто в этом Hamster Kombat 🙃

Непременно смотреть всем тем, кто меня спрашивает в личке: а как сниффать траф, вытаскивать нужные методы API и изменять что-то в работе с Ads Manager?

Всё практически один в один, только с обфусцированным кодом, всеми возможными CSP/CORS ограничениями и бла-бла-бла... 😢

#fbapi
Please open Telegram to view this post
VIEW IN TELEGRAM
Наконец-то поправил съехавшее форматирование у статьи про токены Facebook у себя на сайте, welcome! 👋

В целом - ничего экстраординарного, основная мысль проста: если вы делаете какую-то автоматизацию для фэбэ и работаете с аккаунтами вдолгую, то использовать обычные токены от Ads Manager - это гемор.

UPD: в комментах открыли глаза на то, что регать акк девелопера можно и без получения СМС, при помощи добавления карты!☝️

#fbapi