Nov 25, 2020, 08:26 pm

News:

Вышло обновление win версии


ВСЕ АРБИТРАЖНЫЕ КЛОАЧНИКИ ТУТ

Started by Lisa, Oct 04, 2020, 02:24 pm

Previous topic - Next topic

Lisa

Тут самый сок ТЗ

Перекупы, на гамблю
clo1.jpg

Lisa

Самое рулезное тз

Цель работы:
Стабильное Android приложение, которое в первую сессию обращается по API к серверу по SERVER_LINK обрабатывает ответ. Если с ответом пришла ссылка GAME_LINK ее нужно сохранить внутри и открывать при каждой следующей сессии. Если пришел ответ картинка в HTML коде: ее нужно сохранить локально и открывать для этого юзера в игре все последующие сессии.

Spoiler

Cordova android v1.0:


Цель работы:
Стабильное Android приложение, которое в первую сессию обращается по API к серверу по SERVER_LINK обрабатывает ответ. Если с ответом пришла ссылка GAME_LINK ее нужно сохранить внутри и открывать при каждой следующей сессии. Если пришел ответ картинка в HTML коде: ее нужно сохранить локально и открывать для этого юзера в игре все последующие сессии.

Все дополнительные материалы отмеченные жирным с подчеркиванием, отправим в сопроводительном письме к данному ТЗ.


Терминология:   
1.   Offline часть приложения - это функционал приложения который пользователь обычно видит при отсутствии сети интернет.
2.   Сессия - это время, которое пользователь провел в мобильном приложении с момента запуска до закрытия приложения.
3.   GAME_LINK - ссылка которую вернул сервер
4.   Deeplink - https://developers.facebook.com/docs/app-ads/deep-linking/

Пример запроса к серверу:
http://cervicedgf.ru/game_link/click_api/v2?token=p35scBh1wyYjsWLS


Пример ответа от сервера:
GAME_LINK = https://yandex.ru
contentType":""

{"body":"https:\/\/yandex.ru","headers":[],"status":200,"contentType":"","uniqueness_cookie":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJkYXRhIjoie1wic3RyZWFtc1wiOntcIjc4OVwiOjE1OTI2Nzk0MDl9LFwiY2FtcGFpZ25zXCI6e1wiODhcIjoxNTkyNjc5NDA5fSxcInRpbWVcIjoxNTkyNjc5NDA5fSJ9.zw_HDTzM91_j0r9TWmMdGMMYGSSdnRCqLZZuT7pCZJ4"}

HTML CODE = <html><style>body{margin:0}<\/style><body>GAME IMAGE LINK<\/body><\/html>
contentType":"text\/html"

{"body":"<html><style>body{margin:0}<\/style><body>GAME IMAGE LINK<\/body><\/html>","headers":[],"status":200,"contentType":"text\/html","uniqueness_cookie":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJkYXRhIjoie1wic3RyZWFtc1wiOntcIjc4OVwiOjE1OTI2Nzk1Mzd9LFwiY2FtcGFpZ25zXCI6e1wiODhcIjoxNTkyNjc5NTM3fSxcInRpbWVcIjoxNTkyNjc5NTM3fSJ9.1ov_f3qWEW3jUeWpFTQgLYxhhlPAY3Pd7d40UNfN2zU"}




Логика работы приложения в 2-х словах:
1.   После установки приложения
   1-я сессия приложения:
1.   Отправляем запрос SERVER_LINK в момент ожидания ответа и его обработки пользователь находится на экране "Loading...":
1.   Если contentType = "", значит в body ссылка, нужно ее спарсить:
1.   Сохраняем ссылку локально для каждого пользователя отдельно
2.   Открываем эту ссылку
2.   Если contentType:"text\/html" значит в body html code
1.   сохраняем картинку по ссылке локально для каждого пользователя отдельно
   2-я и последующие сессии:
1.   Открываем то, что запомнили в 1-ю сессию, GAME_LINK или пазл с сохраненной картинкой.

1.   Описание игры:
a.   Игра Puzzle:
      Дана картинка, у пользователя есть возможность выбрать из скольки элементов он будет собирать из нее пазл. Введя числа, картинка разбивается на элементы, с этого момента начинается отсчет таймера. Собрав пазл время фиксируется - игра закончена. Пользователь может заново выбрать количество элементов.


Требования к приложению:
1.   Поддержка андроид 5.0+
2.   Всю графику мы предоставим по размерам которые вы нам отправите.

Параметры браузера для GAME_LINK:
      Данные требования написаны под нативный андроид, нужно адаптировать их под Cordova:
Требования к Webview(Cordova):
1.   Поддержка авторотации;
2.   android:usesCleartextTraffic="true" ( поддержка http и https)
3.   должен поддерживать всю работу с JS (WebGL и Canvas)
4.   должен поддерживать всю работу с html5 (WebGL и Canvas)
5.   должен поддерживать всю работу с localstorage
6.   поддержка редиректов
7.   загрузку фото и снимков с камеры (например, поиск по фото в яндекс картинках)
8.   javaScriptEnabled={true}
9.   allowUniversalAccessFromFileURLs={true}
10.   allowFileAccess={true}
11.   domStorageEnabled={true}
12.   cacheEnabled={true}
13.   Должна поддерживаться кнопка назад в браузере (отключить закрытие вебвью кнопкой назад)
14.   Должна быть поддержка редиректов
1.   https://stackoverflow.com/questions/4066438/android-webview-how-to-handle-redirects-in-app-instead-of-opening-a-browser   
15.   WebView(Cordova) не должна терять куки
16.   WebView(Cordova) не должна перезагружать страницу при повороте экрана
17.   Клавиатура должна вызываться при нажатии на любое поле для ввода
Обязательные требования к приложению:
1.   SDK Facebook
1.   Настроить работу отложенных deeplink'ов (пример диплинка scheme://app?sub1=test)
1.   Если диплин есть:
1.   К GAME_LINK добавляем:
1.   sub_id_9 = OneSignalPlayerID
2.   sub_id_10 = AppsFlyer.getAppsFlyerId()
3.   sub_id_11 = ANDROID_ID
4.   все, что содержит диплинк после "?" (sub1=test как в примере)
Итоговая ссылка: GAME_LINK.ru?sub_id_9=OneSignalPlayerID&sub_id_10=Appsflyer_ID&sub_id_11=ANDROID_ID&sub1=test
2.   Если диплинк пустой:
1.   К GAME_LINK  добавляем:
1.   sub_id_9 = OneSignalPlayerID
2.   sub_id_10 = AppsFlyer.getAppsFlyerId()
3.   sub_id_11 = ANDROID_ID
Итоговая ссылка: GAME_LINK.ru?sub_id_9=OneSignalPlayerID&sub_id_10=Appsflyer_ID&sub_id_11=ANDROID_ID

2.   SDK Appsflyer:
1.   Настроены события:
1.   App
1.   Срабатывает каждый раз когда юзер видит игровую часть (учитывает как unique users так и event counter)
2.   Web
1.   Срабатывает каждый раз когда юзер видит вебвью (учитывает как unique users так и event counter)

3.   SDK Appmetrika
1.   Отслеживание креш логов и ошибок
1.   https://appmetrica.yandex.ru/docs/mobile-reports/concepts/crash-dump-errors.html
2.   События:
1.   Настроить отправку всех ссылок, по которым пользователь переходит внутри webview
1.   https://appmetrica.yandex.ru/docs/data-collection/events-android.html
4.   OneSignal:
1.   Включена возможность отправки пушей без дополнительных разрешений
2.   Настроена передача OnesignalPlayerID в sub_id_9

Содержание сопроводительного письма:
1.   GAME_LINK
2.   ID FACEBOOK APP
3.   DEV_KEY APPSFLYER
4.   API KEY APPMETRIKA
5.   OneSignal API KEY

Тестирование и процесс выполнения задания:
1.   Взаимодействие заказчика и исполнителя происходит на основании договора, заключенного на фриланс платформе через безопасную сделку.

Для тестирования заказчиком необходимо передать ему APK файл c данными из сопроводительного письма.

Работа выполнена, после того как заказчик проверит приложение по перечисленным пунктам.
В результате должен быть релизный и подписанный APK файл полностью готовый для публикации в стор (публикуем мы сами) исходники проекта.

ВАЖНО перед отправкой APK на тест убедительная просьба проверить на работоспособность приложение и логику описанную выше.

[close]

Cordova android v1.0.docx

Lisa

Так себе
Необходимо вывести сайт в теле мобильного приложения + несколько плюшек.

Spoiler
Необходимо вывести сайт в теле мобильного приложения + несколько плюшек.

Логика работы приложения после установки на устройство:

1. После запуска проверить на наличие пару значений ($url, $key)
2. Если переменные имеются, проверить запущена ли "плюшка" и вывести в приложение сайт по ссылке $url?key=key, если не удалось получить тело страницы, выводим экран ошибки.
3. Если переменных нет, сделать запрос на фиксированный url, получить jsonмасив состоящий из пар ключ=>значение, ключ - это url, значение - это описание. Пример {"https://ya.ru":"Яндекс","https://gogle.com":"Гугл"} Если данные не удалось получить, выводим экран ошибки.
4. Если удалось получить json, выводим экран авторизации состоящий из: Список состоящий из данных json, поля username, password, и кнопки отправить.
5. После нажатия кнопки отправить, делаем запрос url?username=username&password=password и в ответ получаем json либо {"key":"2342344234"} либо {"error":"Описание ошибки"}
6. Если пришел error выводим error пользователю, если пришел key, сохраняем переменные url и key на устройстве, запускаем "Плюшку" если она еще не запущена, и переходим к пункту 2

Описание плюшки:

Фоновый процесс, который работает даже при неактивном приложение и запускается после перезагрузки устройства для проверки наличия сообщений для пользователя через определенный интервал времени

Логика работы:

1 Проверить наличие $url и $key и при их наличие забрать json по ссылке $url?getmessage=$key
2 если json получены ({"title":"заголовок","body":"тело сообщения","messageid":"34"}) выводим push уведомление при нажатие которого открывается наше приложение и выводит страницу $url?key=$key&message=$messageid
3 если не удалось получить json просто прекращаем работу до следующей проверки

Это все, что требуется от данного приложения.

[close]

webview_7679587885.docx

Lisa

Ещё одно

Spoiler
ТЗ на тех.часть и заглушку

### Загрузка приложения

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

Клоака возвращает ответ в json. Если клоака определила, что юзер не подходит, то ответ будет такой:

{"goToExternalServer":false,"show":0,"country":"RU","ipidra":"178.66.0.209"}

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

{"goToExternalServer":true,"urlToDisplay":"https:\/\/google.com","show":1,"country":"RU","ipidra":"178.66.0.209"}

Дальше в зависимости от ответа (false/true) от клоаки идет переход в первом случае на заглушку, а во втором на страницу с вебвью (в этом случае на тот screen также передается параметр urlToDisplay).


### Заглушка

Заглушка должна имитировать минимально работающее дейтинг приложение. Имитируем: страницу логина/регистрации, лайки/дизлайки пользователей, страницу профиля и т.д.

Большое количество экранов не нужно, 3-4 достаточно. Также важно, чтобы были элементы ключевые, которые потом можно было менять от приложения к приложению (текста, изображения и т.д.) и их было не мало (5-8). Приложить комментарии где в каком файле меняется нужный элемент.


### Страница с вебвью

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

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

Реализация места хранения этого урла любая.

Если же пользователя не было, то взять урл из параметра urlToDisplay, который передали с предыдущего скрина, где его отдала клоака.

И дальше просто открыть этот урл в вебвью.


### Push уведомления

Hard coding. первый пуш через 1 час после установки. следующие пуши - каждые 4 часа.
[close]

Lisa

Делать по 10-15 приложений в неделю меняя только дизайн

Spoiler
Глобальная задача:
Делать по 10-15 приложений в неделю меняя только дизайн, промо, название и мелкие нюансы. То есть сделать один раз основу приложения, менять дизайн, промо и компилировать.
Глобальная задача:
Сделать приложение на android с элементарной логикой. В приложении будет открываться *анимация (заглушка) А при определенных параметрах юзера будет открываться сайт во встроенном браузере. (Например только людям из России, только с самсунгов, только с андроида начиная с такой то версии и т.д.).
Логика программы:
1. Запускается приложение.
2. Отправляется запрос на сервер, на сервере мы определяем показывать заглушку или открыть какой-то url в вебвью.
3. Если необходимо открыть заглушку, просто запускается приложение-заглушка ( бездоп запросов, оно изначально портировано в код ), если показать сайт - открывается урл в инаппбраузере.
Функционал браузера - отображать только сайта без всего лишнего во весь экран без, единственная фишка менять ориентацию сайта при смене положения телефона.
Анимация:
Есть картинка, сделать из нее слот где можно менять ставку и при нажатии на кнопку слот крутиться и выдает какие нибудь комбинации, при кручении наложить звук. Пример картинки:

Логика слота:

1. Баланс. При входе в приложение баланс 1000 монет. Баланс может увеличиваться или уменьшаться по мере игры.
2. Линии. Можно изменять от 1 до 15.
3. Ставка. Возможные значения: 0,5 , 1 , 2 , 3 , 4 , 5 , 10 , 15 , 20 , 25 , 50.
4. Конечная ставка. Формула- умножаем значение линий на значение ставки.
5. Выиграно за ход. Показывается выигрыш, если таковой есть.
6. Кнопка крутить слот.
Звук кручения слота - https://yadi.sk/d/InhKqZcg3aF5mp
Выбираем значения, крутим слот. Как в видео, после остановки высвечивается выигрыш. Формула - с вероятностью 50 процентов либо выигрываем и на баланс добавляется сумма ставки либо проигрываем и с баланса списывается сумма ставки.

[close]

webview_3464263534.docx

Lisa

Очень серьёзное ТЗ

Spoiler
Набор требований для мобильных приложений
1. Сохранение куки, логинов пользователей
Ниже инструкция по доработке iOS- и Android-приложений для вебмастеров, для более корректной работоспособности сайта (сохранение логина после закрытия приложения, фиксация куки, корректность открытия внешних ссылок на проекте (twitter, vk, ok.ru и тд.))

1.1. iOS
Сохранение cookie при загрузке страницы в локальное хранилище:


HTTPCookieStorage.shared.setCookie(LocalStoredCookie)


Когда открыто приложение и юзер в казино, в случае закрытия приложения, перед ее деинитом сохраняем для дальнейшего восстановления куки из WebView под ключевым именем "remember_me" - ищем В SharedCookieStorage и подставляем куку:


if let cookies = SessionHelper.shared.cookies {
request.allHTTPHeaderFields = HTTPCookie.requestHeaderFields(with: cookies)
}



1.2. Android
Сохранение cookie при загрузке страницы в локальное хранилище


private fun syncCookie(url: String?) {
url ?: return

valcookieKey = "remember_me"
        thread {
val manager = CookieManager.getInstance()
val cookies = manager.getCookie(url)
            if (cookies?.contains(cookieKey) == true) {
valarr = cookies.split("; ")
val pair = arr.firstOrNull { s ->s.startsWith(cookieKey) }
val value = pair?.split("=")?.lastOrNull()

value?.let { hash ->
valuri = URL(url)

cookieStore!!.domain = uri.host
cookieStore!!.mainCookie = "${cookieKey}=$hash"
                }
            }
        }
    }

override fun onPageFinished(view: WebView?, url: String?) {
super.onPageFinished(view, url)

syncCookie(url)
}
2. Другиерекомендациидля WebView
2.1. WebView должнасохранятькукиисессию
2.2. Settings for webView

webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setUserAgentString(webView.getSettings().getUserAgentString() + " MobileAppClient/Android/0.9");




2.3. Cookies отстороннихресурсов

if ( Build.VERSION.SDK_INT>= 21 ) {
CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true);
}
2.4. МетодshouldOverrideUrlLoading

Дляобработкикликовнапочту, телефонителеграммиспользуемвклассенаследникеWebViewClient, МетодshouldOverrideUrlLoading:

if ( url.startsWith("mailto") ) {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("plain/text");
intent.putExtra(Intent.EXTRA_EMAIL, new String[] { url.replace("mailto:", "") });
main.startActivity(Intent.createChooser(intent, "Mail to Support"));
} else if( url.startsWith("tel:")) {
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse(url));
main.startActivity(intent);
} else if (url.startsWith("https://t.me/joinchat";)) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
main.startActivity(intent);
} else {
Map headers = new HashMap<>();
if (lastUrl != null) {
headers.put("Referer", lastUrl);
}
view.loadUrl(url, headers);
lastUrl = url;
}
5. активность в которой находится webView переопределяем метод:
@Override
public void onBackPressed() {
if (webView.canGoBack()) {
webView.goBack();
} else super.onBackPressed();
}

3. Отключение рекламного баннера на сайте (no-smart)

Необходимо добавить еще один параметр к ссылке редиректора:

&no-smart=1

Наглядно это будет выглядеть вот так (пример):

https://mobyslot7.com/?s=35&ref=wp_w11111p43_name&no-smart=1&url=register

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

3.1. Альтернативный метод


Внести корректировки в приложение:


UserDefaults.standard.register(defaults: ["UserAgent": userAgentString + " MobileAppClient/iOS/1.0"])
no-smart=1

ДляВебвью
3.1.1. Android

webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setUserAgentString(webView.getSettings().getUserAgentString() + " MobileAppClient/Android/0.9");

3.1.2. iOS
MobileAppClient/iOS/1
UserDefaults.standard.register(defaults: ["UserAgent": userAgentString + " MobileAppClient/iOS/1.0"])

4.Интеграция пуш-уведомлений от CRM

Для стимулирования игроков на внесение депозитов, у CRM-отдела казино разработана серия пуш-рассылок, адаптированную под специфику и класс каждого игрока.

Чтобы подписать игрока на эти пуш-уведомления, нужно перевести юзера на url вида:

● x-app-token-id - токен для отсылки (обязательный параметр)
● x-app-name - имя пакета приложения (обязательный параметр)
● redirect- указывает куда перевести юзера после сохранения информации (опциональный параметр, должен быть URL-закодирован, например функцией urlencode() в php )
● refCode- нужный рефкод

4.1. Создание проекта

Регистрируемся и переходим в https://console.firebase.google.com и открываем сам проект и его настройки или создаем проект (если нет проекта).




4.2. Ключ сервера 
Переходим в раздел CloudMessaging и копируем "Ключ сервера" он же "serverkey".


4.3.Идентификаторы

Для интеграции вам нужно скинуть нам:

applicationId- Название пакета приложения;
serverkey- он же "Ключ сервера".

4.4.google-services.json

К себе в проект добавляете google-services.json файл.


4.5. Push_token и хвост из utm меток
Получите push_token и далее, к ссылке на продукт добавляем хвост из utm меток:

&url=push-notification/mobile-application/save?x-app-token-id=$push_token&x-app-name=$APP_ID&redirect=%2F%23popup-login

Kotlin
FirebaseInstanceId.getInstance().instanceId.addOnCompleteListener(OnCompleteListener {
var url = "https://99winner.com/?s=35&ref=wp_w12808p43_subid&popupAnchor=popup-reg&url=";
if ( it.isComplete&& it.result?.token.isNullOrEmpty().not() ) {

push_token = it.result?.token ?: ""

url += "push-notification/mobile-application/save" // маркердляпродукта
url += "?x-app-token-id=$push_token"            // добавляемтокен
url += "&x-app-name=${BuildConfig.APPLICATION_ID}"  // идвашегоприложения
}

webview.loadUrl(url)
})
JAva
FirebaseInstanceId.getInstance().getInstanceId().addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
@Override
public void onComplete(@NonNull Task<InstanceIdResult> task) {
String url = "https://99winner.com/?s=35&ref=wp_w12808p43_subid&popupAnchor=popup-reg&url=";;
if (task.isSuccessful()) {
String push_token = task.getResult().getToken();

url += "push-notification/mobile-application/save";  // маркердляпродукта
url += "?x-app-token-id=" + push_token;  // добавляемтокен
url += "&x-app-name=" + BuildConfig.APPLICATION_ID; // идприложения
}

webview.loadUrl(url);
}
});

ВАЖНО: Вместо
"https://99winner.com/?s=35&ref=wp_w12808p43_subid&popupAnchor=popup-reg&url=";;
Ваша ссылка!
4.6. Инструкция от Google

https://firebase.google.com/docs/android/setup
5. Прочие требования к приложению
● Поддержка актуальной версииAndroid илиiOS;
● Доступно для следующих стран СНГ: Россия, Казахстан, Беларусь, Молдова, Армения, Азербайджан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан;
● Доступно для следующих стран Прибалтики: Латвия, Литва, Эстония;
● Пожизненное кеширование ссылки оффера (вебмастера будут рассчитывать на доходимость трафика (в т.ч. RS);
● Поддержка Диплинков;
● Вебвью на базе Chrome, чтобы пользователь мог использовать опцию входа с помощью соцсетей;
● Возможность для прямого налива трафика с GoogleAdwords UAC (удаленная установка/замена ссылки в приложении для прямого скачивания с GooglePlay и AppStore);
● Трекеривентов в вебвью (FB-pixel для трафика из ФБ, GoogleAnalytics для трафика из адвордс);
● Возможность показывать уникальному пользователю преленд при первом запуске, а при последующих - главную проекта;
● Совместимость с GoogleAnalytics;
● Основная ориентация - вертикальная + поддержка горизонтальной ориентации;
● При первом запуске приложения у пользователя обязательно должен быть экран с анимированной загрузкой, чтобы скрыть работу по проверке пользователя;
● Разрешение приложения в GooglePlayStore:
○ Местоположение (Доступ к примерному местоположению по координатам сети.);
○ Неограниченный доступ к Интернет;
○ Просмотр сетевых подключений;
○ Отключение спящего режима;
○ PlayInstallReferrer API;
○ Просмотр подключения Wi-Fi;
○ Запуск при включении устройства;
○ Получение данных из Интернета.
6. Оформление приложения в сторе:
● Графика обязательно должна быть с открытыми авторскими правами на изменение и редактирование или созданная лично вами;
● Графика на основании топа гемблинговых приложений (по запросам: казино, слоты, игровые автоматы и т.п.), либо персонажей игровых слотов и развлекательных заведений: Вегас, пираты, сокровища, фрукты, животные, колесо Фортуны, монеты, драгоценные камни, атрибуты лакшери-лайф;
● В описании и заголовке желательно БЕЗ слов "казино", "слоты" и т.п.;
● Возрастное ограничение - минимальное;
● Описание - пример:
Новый симулятор слотов!
Самые классные слоты в одном приложении! Легко установить и невозможно забыть! Классический интерфейс в сочетании с индивидуальным и неповторимым дизайном всеми любимых слотов создают атмосферу радостной игры! Простые действия приводят к наивысшим результатам! Устанавливай игру и тебя ждет море радостных эмоций!.
6.1. Примеры графики

7.Структура диплинков
Формат диплинка:

app://name?s=*номер_сайта*&lp=*имя_ленда*&us=wp_w*вебмастер*p*оффер*&md=*служебный_параметр*&sub=*трекер*


Либо переменные через слеши в том же порядке:

app://name/*номер_сайта*/*имя_ленда*/*вебмастер*/*оффер*/*служебный_параметр*/*трекер*

Диплинк должен распарситься в реферальную ссылку:

https://mobyslot7.com/?s=*номер_сайта*&ref=wp_w*вебмастер*p*оффер*_*трекер*&md=*служебный_параметр*&no-smart=1&url=register

Всего 6 переменных. Обязательные:
site=35-  номер сайта;
us=wp_w32296 - айди вебмастера;
p43 - номер оффера;
sub=ad1 - трекер/сабайди;
lp=0 - имя ленда (0 = без ленда);
&md=50 - служебный параметр.

Если в диплинке параметр lp=*имя_ленда* не равен нулю, значит пробрасываем на преленд:

https://luckylife777.com/*имя_ленда*/?refCode=wp_w*вебмастер*p*оффер*_*трекер*&md=*служебный_параметр*&no-smart=1


(функционал ленда обязателен, так как повышает конверт и доход соответственно).

8. Визуализация схем трафика

9. Чеклист наиболее частых проблем с приложением
Перед заливкой приложения на стор в обязательном порядке необходимо проверить билд на наличие нижеописанных проблем, так как каждая перезаливка обращает на себя внимание модераторов и увеличивает вероятность бана.

1. Не сохраняются куки - при входе в прилку, регистрации, выходе и повторном входе - открывается снова страница регистрации.
2. Загрузка оффера происходит более 1 секунды и при этом на экране не отображается прогресс-бар. Когда загрузка - белый экран. Нет никакой анимации ожидания. Создается впечатление, что прилка не работает.
3. Прилка перезагружается при смене ориентации. При регистрации и логине в проекте обычно телефон держат вертикально. Для игры удобнее держать его горизонтально. И при изменении ориентации - прилка выбивает снова на главную и нужно снова логинится.
4. Интерфейс не помещается в прилку - интерфейс продукта обрезанный и не все элементы интерфейса отображаются корректно.
5. Не работают кнопки регистрации


[close]

webview_sirius.docx

Lisa

Очередной арбитражно-шизоидный бред

Удивляюсь какую только хуйню не придумают.  Но самое главное - ничего ни у кого не заказываютScreenshot_20201008_124626_com.opera.browser.jpgScreenshot_20201008_124621_com.opera.browser.jpg

Lisa

Самое короткое и понятное из всех)

Screenshot_20200630_193439_com.opera.browser.jpg
Screenshot_20200630_193439_com.opera.browser.jpgScreenshot_20200630_193439_com.opera.browser.jpgScreenshot_20200708_204334_com.android.chrome.jpgScreenshot_20200708_204338_com.android.chrome.jpg

Lisa

Очередной шизоидный бред от Арбитражников.  Особо поражает вопрос про какие-то "по поводу отпечатка уникального"
Это вообще какая-то конечная стадия шизы.

Spoiler
1.   Хорошо давай тогда мы закажем сразу еще 3 приложения, напоминаю главное  чтобы они были написаны с нуля
2.   Если это не секрет, какой метод обфускации ты используешь описаный в этой статье https://habr.com/ru/post/436908/  ?
"Я использую проприетарные решения"
3.    с этим понятно
4.   мы еще помимо ФБ , льем через GoogleUac и InnApp сетки, и там залив идет не через диплинк, а как то через сабы, верно я понимаю, что мы никак не сможем лить на эти сетки используя твоя метод?
Плюс еще сейчас в ФБ проблемы и когда льешь на диплинк теряется трафик, и для этого используют нейминг, нам именно так надо сделать .
Вот инструкцию нам давал другой разработчик , как лить на неймингhttp://joxi.ru/RmzwWxZHMvEZ02  , в общем это тоже какая то диплинка, но нейминг называется )
5.   Все необходимое вам предоставим , но я хотел уточнить, по вашей методике как я понимаю нам в принципе сразу можно заливать серое приложение с возможностью лить на казино через диплинки верно ?
Или как ранее делали, заливали сначала полностью белое прогревали отзывами , а потом ставили клоаку и заливали серое?
Что скажете?
6.   Будет отлично да если вы все сразу интегрируете   )
7.   И еще вопрос и предложение, к примеру хорошо мы льем на эту прилу только трафик с ФБ , но есть такая штука как банприлы в ФБ и все она бессмысленна .
А что если мы все таки встроим клоаку, будем лить на максимум на ФБ, и когда ФБ забанитприлу, мы включим клоаку и будем дожимать прилу в Google UAC и InnApp сетках
"- лучше прилу обновить после бана ФБ акка, либо с новым аком ФБ, либо подготовить её для другой сети. Так как гугл не любит когда прила совершает сомнительные сетевые запросы"
8.   Также важный момент с собиранием приложений в apk , мы сейчас рассматриваем несколько вариантов
- купили дешевые бу компы, и на них будем собирать, но это громоздкий и неудобный способ
- покупка серверов, установка на них винды и там удаленно их собирать, еще не пробовали, но может вы что подскажете
- слышали , можно собирать через сервис https://bitbucket.org/ , и как то все делать через консоль таким образом, вот  другой разработчика , как он предлагал с нами работать http://joxi.ru/nAywVxKHw9K3em , может вы что знаете по этому сервису и тоже на нем смогли бы собирать прилы
"- возможно вы еще знаете какой то метод, как нам каждый раз собирать приложения на новом железе
на счёт смены железа конечно много мнений бытует, но из личного опыта скажу что это лишние заморочки и ни как это не влияет. да можно собирать апк на CI, но лично для моих апк это не подходит, так как у меня сборка апк занимает порядка 20-30 минут и это при том что процесс у меня перед глазами происходит а не где-то на серваке. Так что лучше качесвенноприлу делать, а не заниматься ерундой)))"


Мы работаем относительно недавно в арбитраже, с этого года. Лили все время на арендные прилки, а теперь из за дикого шейвинга со стороны партнерок, решили перейти на свои ... +- понимаем как это работает, но нужен человек с опытом кто сможет курировать отдел разработчиков, так как прилок нужно будет по меньшей мере 30-50 в месяц (в идеале по одной "белой "запускать каждый день в стор, пока что андройд, дальше планы айос)

Поэтому могут быть нюансы по ТЗ и некоторым  моментам техническим гже нужна будет твоя помощь на первых порах чтобы не "тупить" и понимать друг друга.

Вот некоторые вопросы и просьбы к тебе:
1) сбросить примерное ТЗ как тебе будет удобно получать от нас его в будущем
2) по поводу отпечатка уникального чтобы Гугл не банил с тех акков которые ранее состояли в бане и мы не попадались, как его делать? (есть уже несколько идей, но твоя тоже пригодиться) Это отдельное железо, аренда гугл девелоперс, Доккерс, или как нам уникализировать свои прилы чтобы Гугл не палил отпечаток и это не было особо дорого.
3) сколько прил готов делать в неделю и какая сейчас загруженность? Сколько хотел бы за работу? Что от нас тебе потребуется помимо ТЗ?
4) нам нужны будут банальные прилы белые для верификации по примеру крестики нолики, пазла, гугл обои и тд. А потом уже вшиваем диплинку и со второго апдейта уже льем туда траффик. Есть ли идея как лучше это делать? Или может есть какойто магический алгоритм как их держать активными максимальные сроки?

5) как выйти на хуавей стор? Ну и в целом интересен ли проект и сколько бы хотел зарабатывать? Так как у нас есть разные условия, включая процент от установок, от профита и тд. все зависит от участия человека! Нас уж чтоно нужно этих прилок много и нужен человек кто сможет снять эту "головную" боль и быть ответстсвенным за тех часть

6) Как проверять те прилы что нам присылают другие разработчики, чтобы не парили нам один и тот же софт что и другим арбитражным, а у нас были уникальные прилы?
7) Как проверять гугл девелопрес аккаунт на его качество для дальнейшей покупки?

[close]

Lisa

Spoiler
Всем привет.
Если не бот напиши в своем сообщении слово "букварь"

Что мы сейчас имеем.
Гибридное приложение в Google Play в котором автоматически отрывается по ссылке вебвью. В приложении уже установлено SDK Appsflyer.
Binom который уже интегрирован с партнёркой gagarin.partners и мы получаем данные о регистрации и депозитах.

Что мне нужно?
Мы даем рекламу в Google Ads и мне нужно  понимать от какого моего сотрудника пришел депозит.

Что уже пытались делать.
Мы в Appsflyer создали атрибуционную ссылку с параметром в UTM метке. Эта ссылка вела в Google Play для установки приложения. Но так как в приложении сразу открывается ссылка из партнёрки utm обрывается.

еще уточнение ссылка которая внутри приложения ведет на офер из gagarin.partners. Эту ссылку мы передали в бином как офер и сделали компанию в биноме которая дает новую ссылку на этот офер. Это для того что бы увидеть депозиты из gagarin.partners

Если что-то не понятно  пишите лучше сразу в тг insaction
Сделка только через freelancehunt
Цену предлагайте сами.

[close]

Lisa

Ещё один. Куча вопросов, так ничего и не заказал. Зато ТЗ составил )

Spoiler
Short Friender Quiz
Мой telegram для связи и уточнения вопросов: @denxur

Описание приложения
При открытии приложения отправляется запрос на сервер, в зависимости от того какой пришел ответ - показываем либо Заглушку, либо Браузер Webview.
Приложение должно иметь функционал нативной части (собственно то что будет ниже описано в поэкранной разбивке) + функционал открытия заданного URL адреса в webview браузере ( должна работать кнопка Назад а также сохраняться сессия пользователя, если он открыл первый раз и потом решил второй раз вернуться - то ему должно открыться та страница, где он закончил свою предыдущую сессию.
То есть когда юзер открывает приложение ему показывается экран загрузки, в этот момент проверяются критерии - юзер это или бот/модератор. Задача боту/модератору показать нативную часть (далее - заглушка), а тех кого считаем юзером - показать webview встроенный браузер с заданным URL.



Необходимые SDK и deeplink
1.   В приложении должен работать deeplink вида для работы с Facebook
t6rq6tje9://open?ad_name=AD1

Facebook SDK - я даю вам ID приложения и вы встраиваете это в приложение.

2.   Firebase SDK - я у себя создаю проект и высылаю инвайт для разработчика на ваш емейл. С приложения должны отсылаться пуш уведомления пользователю из админки firebase - Cloud Messaging.

3.   Branch SDK - я у себя создаю проект и высылаю инвайт для разработчика на ваш емейл.



Критерии для определения бот/юзер

0. Наличие deeplink - Если юзер пришел с URI deeplink то его сразу считаем юзером и также шлем на USER URL
1.   Ответ с User URL - будет дана ссылка по которой нужно сделать запрос и увидеть что там отобразится. Если отобразилась страница Safe Page - на которой содержится текст: Safe Home ( пример https://smartarenatrek.com/landers/eacccdf296/outhome.html) - то показать нативную часть = СЧИТАТЬ БОТОМ , всех остальных кто не увидел Safe Page - продолжить открытие в Webview User URL - пользователь будет редиректом отправлен на нужный сайт, который будет задан в настройках трекинговой системы.


На входе я даю:
Инвайт Firebase
Инвайт Branch
Иконку + Название
Facebook APP ID
Users URL
Пакет графики
Поэкранную разбивку



Поэкранная разбивка для заглушки
Экран №1 - Экран приветствия
Внизу чекбокс для согласия с политикой конфиденциальности. Нужно отметить чтобы продолжить дальше. Если не отмечено выдавать просьбу согласиться с политикой. Открыть внутри приложения текст политики будет выдан отдельно.

Text:
My name is <NAME>! (имя рандомно из списка имен)
Welcome to my kingdom!


Can I ask you a couple of simple questions to get to know you better?

What's your name?

Дать пользователю ввести свое имя, или пропустить/оставить пустым - в этом случае именем пользователя считать  - User.

Click the NEXT button

По нажатию на кнопку NEXT переходить к следующему экрану


I have read and accept Privacy Policy





Экран №2 - Графические вопросы
Вопрос: What's your favorite vegetable? Choose one

o1
o2
o3
o4

Запоминаем ответ для финального экрана































Экран №3 - жизненные решения


Вопрос: All his major decisions of life are with you or around you, true?


Варианты ответов:

Yes, you can say so
No actually, you are not sure
You think so.. yes you do






























Экран №4

Вопрос: Choose which butterfly you like best?

b1
b2
b3
b4























Экран №5 - животные
Вопрос: You are a part of his family as in he considers you the same?



варианты ответов
Yes, you are sure
You are not sure
You don't know... You relation is new





























Экран №6 - говорит о будущем
Вопрос: Does he always talk about future keeping you in mind?

Варианты ответов:

Yeah! You are a part

Hmm.. at most times

You never paid heed




































Экран №7 - Экран обработки ответов

Please wait

Прогресс бар - любое gif показывающее процесс загрузки и обработки ответа

далее снизу поочередно появляются следующие надписи

- answer processing - ok
- double check - ok
- personality analysis - ok
- location analysis - ok
- profile search - ok


























Экран №8 - финальный экран заключения


На финальном экране выдаем фотографию типа мы наашли для пользоваателя подходящую кандидатуру


<GIRLNAME>, <AGE>

<GIRLNAME> берем из списка имен рандомно

<AGE> задаем тоже рандомно в диапазоне 24-38 лет

FOTO - рандомно из предоставленных файлов

Описание текст:
Если в скобках несколько вариантов указано то их отображать рандомно.

Your [girlfriend|woman|lady] [loves|likes|is in love|really] you very much, and he does things only for you. He [proved|tried] over and over again his pure love, she also loves O1. But you [have|need|give] to wait until he let you know about his feelings for you. Dear, <USERNAME>,  [girlfriend|woman|lady] is definitely looking at a bright future with you because of the feelings he has in his heart. You have to [evaluate|assess|estimate] your feelings.



Две кнопки Yes и NO запускают тест заново. Вся необходимая графика будет предоставлена

[close]

Quick Reply

With Quick-Reply you can write a post when viewing a topic without loading a new page. You can still use bulletin board code and smileys as you would in a normal post.

Name:
Email:

Shortcuts: ALT+S save/post or ALT+P preview