15 октября 3 1494

Общая схема мобильной разработки — реверсим связки конкурентов

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

Что делать?

Проснувшись 1го января в своем небольшом, но уютном шале в Альпах, вы решаете подзаработать деньжат на новый майбах (старый пришлось отдать за долги). Вам нужно что-то новое: вы устали от арбитража с бегуна на озон. Хочется чего-то современного, модного.

Выбор падает на мобильные приложения. Предположу, что про вертикали, офферы, и так далее - вы уже погуглили. Теперь нюансы, которые нигде не собирают в один список - краткий чеклист.

Чеклист:

Уникализация приложения: в серой разработке нужно много приложений, поэтому проще (дешевле) взять готовое и переделать, чем изобретать с нуля. Где взять - купить у владельцев приложений, или на биржах типа СodeCanyon

  • Рескин (reskin) - сделать уникальный внешний вид, звук и т.д. То что видят\слышат люди. “Сменить кожу” - рескин.
  • Рерайт (rewrite) - сделать уникальный код. То есть взяли код, в соседнем окошке с нуля написали его же, но своими словами. По аналогии как в копирайтинге. В итоге получили такое же приложение, но с уникальным кодом. Рерайт может быть глубоким, а может быть поверхностным. Поверхностный это обычно просто замена имен функций\переменных, перемешивание описательных блоков внутри файлов и т.д.
  • Обфускация - совсем простое базовое “шифрование” с целью сделать код нечитаемым. К этому плохо относятся боты-модераторы. Но это помогает скрывать алгоритмы клоакинга, а так же всякие серые вещи*
  • Уникализация - работа с файловой структурой приложения (объединение, удаление, добавление файлов и папок и т.д.).
  • Платформа - то есть юнити, реакт и т.д. (про это будет ниже большой блок инфы) - от платформы сильно зависит, пройдет ли ваша серая прила модерацию. Например, по слухам, юнити легко залетают, в то время как у других платформ шансы ниже.

Прохождение модерации: основная боль вебмастеров, работаюших с серыми нишами.

  • Webview 70/30% - классическое правило, применявшееся что в chrome store, что теперь в google play (да и когда-то в SEO: соотношение уник\не уник контента). Должно быть 70% контента внутри приложения (то есть 70% должно работать без инета) и до 30% можно чтобы подгружалось из интернета. Звучит как суеверие, знаю.
  • Белое->серое приложение - можно сначала пройти модерацию с полностью белым приложением, вообще без монетизационного кода.  Сделать немножко инсталлов, и потом заливать уже серую версию с рекламой.
  • Аккаунты - либо новорег (25$ google play, $100 itunes) и высокий риск не пройти модерацию, т.к. к новорегам более пристальное внимание. Либо покупаем уже крутой прокачанный аккаунт (цена зависит), заливаем на него приложение (возможно даже перезаливаем то, которое там уже есть, т.е. купили акк вместе с приложением) - шансы пройти модерацию гораздо выше.
  • Трастовый аккаунт - его покупка часто сопряжена с покупкой прокси\вдс\ноутбука\квартиры из которых этот аккаунт создавался и приложение заливалось, так как траст есть траст. Купить можно у селлеров, а можно самому попробовать связаться по контактам, указанным владельцами в сторе.

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

Всё остальное: другие важные моменты.

  • Счетчик, тдс - тут всё как обычно.
  • Диплинки, отложенный диплинк (deferred deep link) - подход, используемый для учета конверсий трафика в инсталляции. В классическом веб-браузерном арбитраже всё понятно - залили трафик на лендинг, каждое заполнение формы заявки учитывается как конверсия. А в моб.приложениях юзер может приложение установить, но не запускать. Может установить, и сразу удалить. Может вообще на середине установки телефон перезагрузить. Вот чтобы всё это учесть, делается “отложенный диплинк”, то есть ссылка с utm-меткой с “номером клика” перехода с рекламной сетки. Таким образом, после реального запуска приложения, срабатывает “отложенный диплинк” (приложение открывает ссылку у себя где-то в фоне, юзер не видит) и ваш счётчик конверсий узнает по какому из кликов произошла полноценная конверсия в инсталляцию и запуск. Сумбурно написал? Теперь представьте, что там еще и контры между фейсбуком и гуглом (два крупных источника трафа для приложений) и под каждую рекламную сетку приходится пилить свой модуль*
  • Всякие разные SDK - что-то типа модуля, устанавливаемого в готовое приложение. Например, facebook sdk - официальный модуль фейсбука, нужен для учета статы с РК в фб и прочих полезностей. Набор SDK которые вам нужны зависит от вертикали, оффера и т.д. Бывает что владелец оффера предлагает своё SDK - например, какую-нибудь навязчивую полноэкранную рекламу* 
  • Клоакинг - вопреки устоявшемуся мнению, клоакинг это не только средство обмана модераторов. Это в том числе инструмент сокрытия коммерческой инфы от конкурентов. В мобе в 99% процентов случаев решение по контенту принимается на бэкенде (то есть клоакинга в самом приложении нету). Работает это так: в приложении делается обоснованная необходимость загрузить контент из интернета. Например, делаем раздел “Terms of Service”, текст которого подгружается с нашего сервера, ради актуальности текста - вот и обоснование. При этом при подгрузке бэкенд узнает IP юзера (+ все остальное, что вы сообщите бэку) и может проверить по своим базам, хороший это юзер, годный, или нет. А затем приложение может посмотреть, например, каждую 19ю букву загруженного текста, из них сгенерировать целевой URL с оффером и открыть его юзеру.

 

Где деньги

Воодушевившись мануалами из интернета, вы купили готовые исходники игры “крестики-нолики”, заказали редизайн, обвешали всё баннерами онлайн-магазина LEGO, который на самом деле клоака под онлайн-казино. И даже прошли модерацию, налили инсталлов. Вот только ROI не радует. Что делать? Конечно же идти в разнообразные ad spy и смотреть, куда льют много. 

Вы быстро нашли клевые объявления, с которых сливают на гуглплей, и даже обнаружили пару эксклюзивных частных приложений. Вы даже установили такое приложение. Но внутри увидели обычную рекламу и чешете репу в недоумении “не может же быть, чтобы авторы отбивали вложения на обычном контексте”. Шучу. Конечно же вы попробовали разные vpn, прокси, убедились что клоаку так легко не пробить. Что делать дальше? Реверсить приложение. То есть вскрывать, смотреть исходники, копировать\повторять то, что вы считаете самым важным. Об этом ниже. Но сначала небольшое лирическое отступление.

Лирическое отступление

...меня назначили главой отдела мобильной разработки 5 лет назад - помню стоял липкий бангкокский январь. Я созвонился со своим заместителем, Алексом, по видео-связи. Он выглядел чертовски усталым, и явно давно курил одну за одной.

-Напарник, андроид, айос, ide, компилятор - всё буду называть словом “платформа”, чтобы не вынести тебе мозг раньше времени. - начал говорить Алекс - Короче говоря есть там СДК популярные - фейсбук, фаербейс, аппсфлаер.. Бэкенды - тдски, фаербейс\апслфаер, клоаки, вобщем,  самописы пхп в основном и так далее, в целом - всё как мы привыкли, департамент справится - он тараторил как умалишенный - Ты с ноутбука? Я сейчас расшарю тебе свой экран!

Увидев его экран я едва ли не выронил смартфон из рук:

-Алекс, что это такое? Ты в порядке?

-Это полная схема мобильной разработки, которая есть у кого-либо в интернете прямо сейчас. Я собрал все платформы, весь сопутствующий софт, все взаимосвязи - оно всё связано! - у нас есть полная карта, слышишь меня?? Вот ссылка на хайрез-файл, 15 мегабайт, чтобы ты мог, ээ, изучить на досуге карту.

-Теперь нам надо набрать парней! По каждому элементу надо найти специалиста! И тогда мы сможем захватить весь мир мобильной разработки и реверса. Для новичков я составил секцию “дополнительно” внизу, там перечислены самые базовые вещи для обучения реверсивной “пехоты”.

-Алекс, даже не знаю, как благодарить тебя, сынок. Родина тебя не забудет!

Через несколько месяцев Алекс погиб на службе, обучая новичка. Новичок уронил на него SDK фейсбука, пытаясь запихать андроид версию в айос приложение. Была это случайность или злой умысел - история умалчивает.

 

Сейчас будем реверсить приложение

В общих чертах опишу, как происходит реверс. Это могла бы быть бесконечная портянка текста, которая была бы неинтересна не-разработчикам. Умышленно сокращаю. За основу была взята ниша “reverse phone lookup”, т.к. по слухам в ней сплошные мислид-дорвеи, взял этих ребят.

1) Берём первое попавшееся приложение из их стока. Качаем АПК\ИПА. Например через сайт APK Combo или используя расширение APK Downloader.

2) Закидываем APK сюда для декомпиляции - APK Decompilers или Decompilers online. Получаем обратно архив с результатами. Сервис экономит время, т.к. автоматизирует всю вот эту работу.

3) Открываем результаты в софте, в данном случае android studio (еще много всего по теме есть, типа jadx - что юзать зависит от того, на чем было сделано приложение). Хотя вообще можно просто смотреть и без софта - тут по сути набор текстовых файлов и папок.

4) Смотрим код, ищем интересное. Найти можно много всего, и доменчики и айпишники и клоакинг и т.д. и т.п. 

По “http” и “request” ищем использования java классов для работы с интернетом (начинаются исследования, надо хорошо знать какие классы или библиотеки используются в данном варианте и искать их).

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

5) Снифаем. Запускаем приложение на телефоне либо эмуляторе, юзаем локальный снифер либо направляем трафик через “свою” прокси, на которой установлен снифер. Анализируем результаты.

6) Делаем выводы, принимаем решения, строить нам свою империю по поиску данных о телефонных номерах, или нет.

Где нанимать исполнителей

Итак, разобрались вы что к чему, сделали первые попытки самостоятельно, теперь готовы нанимать людей. Рассказываю. Огромная проблема рынка - отсутствие десятилетий активного спроса на услуги моб.кодеров. В связи с этим полный букет: вечно пропадающие посреди проекта школьники, цыгане по $100\час, успешные компании “мы не будем с этим работать, т.к. юнити для лохов, ничего не понимающих в ассемблере и нью-эйдже”, крупные компании делающие только андроид или только айос, и т.д. и т.п.  

Десятки платформ разработки - сложно найти исполнителей под то, что тебе надо. Самое близкое сравнение - в веб-кодинге команды, отказывающиеся работать с wordpress\magento\xoops\bitrix и т.д., называющие причину “у нас нет опыта” - хотя казалось бы, всё это одно и то же php, html, js, css. В моб.разработке всё еще более запущено, т.к. платформы сейчас действительно друг от друга отличаются и порог входа выше, чем в веб.

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

Решение простое, вам или вашему программисту\CTO придется разобраться в теме, прежде чем делать заказ.

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

Пример объявления:

Как нанимать людей, как контролировать - моя предыдущая статья, выложена здесь же на Партнеркине.

Сколько это всё должно стоить?

Классическое “дорого, быстро, качественно - выберите любые два”  тут не работает, т.к. см. огромную проблему рынка. Кого бы вы не нанимали, это лотерея, и ниже будет пара примеров.

Фрилансеры и агентства

Разброс как обычно от $7 до $45 за час работы. 

Рекомендации по белой разработке:

  • Приходите уже с ТЗ, смотрите задают ли вам вопросы, смотрите содержание этих вопросов, улучшайте ТЗ исходя из вопросов.
  • Не стесняйтесь покупать готовые исходники.

Рекомендации по серой разработке:

  • Сразу отсеивайте “белые” агентства - пока вы им объясните, что вам надо модерацию пройти, а не отзывчивость кнопок в материал-дизайне, может уйти много-много ценного времени.
  • В идеале конечно небольшие команды из 3-5 человек, где главный сам является программистом (я стараюсь привлекать только таких).
  • Избегайте одиночек, особенно в серой разработке. От хорошей жизни люди "хакерами" не становятся - а значит там будет ворох психологических проблем, тянущих за собой срывы сроков, пропадания и т.д.

Чип и Дейл спешат на помощь

Есть какие-то ультра-специалисты, о которых я очень часто слышу, но ни разу их не видел. Ну, это ребята “продают прилы вместе с аккаунтом, за 50/100/200/300$, с гарантией прохождения модерации”. Я всегда прошу ссылку на таких ребят - ни разу мне её не дали. Видимо, секрет :)

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

-А если всё-таки не сдам? - спрашивает первокурсник.

-Тогда я верну тебе 2500р.

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

Пример расчета стоимости:

  • Код, дизайн - допустим, самый говённый рерайт кода и переделка картинок за $25,
  • Клоакинг - допустим, один и тот же клоакинг с “гарантией работы” от селлера, $0,
  • Акк гуглплей - допустим, модерация гугла не лютует и пропускает всё подряд, значит хватит 1 аккаунта - $25, симка, прокси и доп. расходы, например ещё $10,
  • Работа по заливу на модерацию, обработку клиента и т.д., 1 час.

Итого себестоимость $60, выручка $100, маржа $40 за 1 час. Когда-то гугл начнет жестить и банить 50% попыток, и тут начинается интересное. По условиям оффера, селлер обязан вернуть деньги, в случае отсутствия успеха. Допустим он сделал 10 продаж, получил $1000 выручки, из них в 50% он вернул деньги (осталось $500), из оставшегося он заработал 40% маржи: 0.40($500)=$200, за 10 часов, то есть итого 20% общая маржинальность, при этом сохраняя идеальную репутацию (ведь всем, с кем не получилось, он вернул\не брал деньги).

Гарантирует ли селлер, что приложение пройдет модерацию? Нет. Гарантирует ли он, что возьмет деньги только в случае успеха? Да.

Есть ли обман? По-сути нет, обманутыми могут быть только ваши ожидания. Создает ли селлер ложные ожидания? Да, его оффер “размыт”. Можно ли пользоваться селлерами? Можно. Есть ли реальные гарантии успеха? Нету, селлер абузит математику и ваши ожидания. 

Выше я описал доброго, пушистого селлера. А фактически у него куча вариантов, как задрать рентабельность в небеса, например возвращать не всю сумму, оставлять себе “себестоимость” разработки\аккаунтов\проксей. В таком случае вы вообще не сможете проверить: а тот код что он вам дает, уникален или он его просто скопировал-вставил ХХ клиентам? А те акки, что были забанены, он только вам показывает, или сразу ХХ другим клиентам? С клоакингом тоже могут быть проблемы: чем больше экземпляров он продает, тем больше на них наливают трафика, тем скорее боты гугла научаться определять схему клоакинга и забанят всю сетку с аналогичной клоакой. И чем больше будет у селлера всяких таких проблем, тем выше шансы, что он соскамится.

Какие советы я могу тут дать:

  • Уточняйте, что входит в “пакет”.
  • Контролируйте. Берите исходники 2х приложений и “читайте” их. Визуально распознать одинаковый текст кода (копипаст) можно даже не будучи программистом. Визуально распознать одинаковый текст кода (копипаст) можно даже не будучи программистом.
  • Требуйте свежие примеры из стора (ссылки на стор). Очевидно, если у него много заказывают, ему не жалко один раз в неделю потратить немножко денег и запилить свежее доказательство, что его методы всё еще проходят модерацию.
  • Не жалейте потраченных денег. Это хорошая рулетка и селлер помог вам в неё сыграть.

Анекдот от Санька про теорию вероятности:

 

Заключение

Когда смартфоны появились - я их ненавидел. Мой друг заставил меня использовать второй Galaxy, уже во времена ультрабуков, говорил мол удобно капец. Мне было неудобно. Потом я нырнул в бассейн говоря по скайпу и смартфон сдох. Прошло много лет. Сейчас всю работу я веду с телефона. И даже эту статью пишу на телефоне - подключив внешний монитор, клавиатуру и мышь. Уже сейчас телефонные процессоры сопоставимы с ноутбучными огрызками. Не говоря уже про оперативку и размер диска. Во многих странах, таких как Таиланд, смартфонов продается гораздо больше, чем компьютеров. Еще несколько лет и мощностей смартфона будет хватать на всё, а по размеру он помещается в кармане. Конечно, нативные интерфейсы андроид и айос далеки от идеала. Но тот же samsung dex позволял запустить полноценный линукс и пользоваться всеми прелестями десктопной ОС на телефоне. А с айпада прекрасно сидится в винде по RDP. Короче, будущее за мобильными ПК. Первые мобильные ПК - ноутбуки - давно уделывают стационарные ПК в массовом сегменте. Теперь второе поколение мобильных пк - смартфоны\планшеты - уделывают ноутбуки. Следующим будет уже чип в мозгу или типа того.

И смартфоны это не страшно. Как я боялся юзать смартфон 13 лет назад и предпочитал кнопочный телефон - страх был напрасным. Так и сейчас я боялся запускать мобильную разработку, предпочитая классическую  веб и десктоп - страх был таким же напрасным. Оказалось, все проще, нет никакой секретной магии, всё лишь повторение давно изобретенного - в новом формфакторе. Спасибо за внимание.

Мой телеграм канал с палевом тем: https://t.me/public31 

У канала есть чат, вы можете зайти туда и скинуть мне приложение на анализ, я проведу мастер-класс по реверсу для первых 3х счастливчиков.

Обязательно подписывайтесь на мой блог на Партнеркине, статьи выходят редко, но очень крутые. Вот прошлая статья, о том как построить бизнес с 200 человек штата полностью на удаленке.

Пишите комментарии, ставьте лайки. Увидимся на просторах интернета!

Как вам статья
Роман Ответить
Ну Партнёркин в своём стиле... Из телеги завлекают в статью на сайт, а статья по факту - вода водой. Отписка.
17 октября, 19:57 0
Анон Ответить
Такая статья,они ведь не все подобного рода.
18 октября, 15:25 0
Ирина Ответить
Для меня слишком всё показалось муторно слишком
19 октября, 20:38 0