Конференции
Будапешт, Венгрия
08-10
Июль
Будапешт, Венгрия
09-10
Июль
Будапешт, Венгрия
09
Июль
Будапешт, Венгрия
09
Июль
Будапешт, Венгрия
09
Июль
Будапешт, Венгрия
09
Июль
Будапешт, Венгрия
09
Июль
Будапешт, Венгрия
10
Июль
Тбилиси, Грузия
14
Июль
Тбилиси, Грузия
15-16
Июль
Тбилиси, Грузия
15
Июль
Тбилиси, Грузия
15
Июль
Тбилиси, Грузия
16
Июль
Лимасол, Кипр
22
Июль
Лимасол, Кипр
23-24
Июль
Лимасол, Кипр
23
Июль
Лимасол, Кипр
23
Июль
24
Июль
Нью-Йорк, США
26
Июль
Нью-Йорк, США
27-28
Июль
Рига, Латвия
30-31
Июль
Бангкок, Таиланд
05-07
Август
Лимасол, Кипр
07
Август
г.Санкт-Петербург, Россия
12-13
Август
Дели, Индия
25
Август
Мехико, Мексика
27-01
Август -
Сентябрь
Мехико, Мексика
31
Август
Мехико, Мексика
01-03
Сентябрь
Лиссабон, Португалия
01
Сентябрь
Мехико, Мексика
01-03
Сентябрь
Мехико, Мексика
03
Сентябрь
г.Канкун, Мексика
07-08
Сентябрь
Лимасол, Кипр
17-18
Сентябрь
Тбилиси, Грузия
24-25
Сентябрь
Лиссабон, Португалия
28
Сентябрь
Лиссабон, Португалия
29-01
Сентябрь -
Октябрь
Лиссабон, Португалия
29-01
Сентябрь -
Октябрь
Ереван, Армения
01
Октябрь
Дакар, Сенегал
14-16
Октябрь
Дакар, Сенегал
14-16
Октябрь
Варшава, Польша
14
Октябрь
Рим, Италия
02-05
Ноябрь
02
Ноябрь
02
Ноябрь
02
Ноябрь
Рим, Италия
02
Ноябрь
03
Ноябрь
Рим, Италия
03
Ноябрь
Рим, Италия
04
Ноябрь
Пномпень, Камбоджа
05-06
Ноябрь
Рим, Италия
05
Ноябрь
Канкун, Мексика
24-25
Ноябрь
Шарм-эш-Шейх, Египет
24-25
Ноябрь
Гоа, Индия
24-25
Ноябрь
г.Бангкок, Таиланд
30-02
Ноябрь -
Декабрь
г.Бангкок, Таиланд
09-10
Декабрь
Бангкок, Таиланд
10
Декабрь
Дубай, ОАЭ
10
Декабрь
Кейптаун, ЮАР
01
Февраль
Коломбо, Шри-Ланка
01
Март
Рио-де-Жанейро, Бразилия
02-04
Март
ОАЭ, Дубай
15-17
Март
Найроби, Кения
21-23
Апрель
г.Та‑Кали, Мальта
03-05
Май
Мадрид, Испания
18-20
Май
Хошимин, Вьетнам
14
Июнь

Сравнение 8 ИИ-моделей для создания PWA-приложений


Протестировали восемь ИИ-моделей, дали каждой одинаковый промпт на создание PWA-приложения под оффер и сравнили качество реализации, необходимость доработок и время выполнения задачи.

Ранее мы сравнили, как три нейросети — Kimi, DeepSeek и GLM справляются с переводом и локализацией лендинга под заданное гео: https://cpa.rip/ai/landing-page-adaptation-test/.

Как проводили тестирование

Использовали: DeepSeek V4 Flash, DeepSeek V4 Pro, Kimi 2.7 Code, локальная LLM Qwen 3.6 на 35 миллиадров параметров, GLM 5.2, Claude Sonnet 5, Claude Opus 4.8 и GPT 5.5.

Каждой модели дали одинаковый рабочий промпт из предыдущего материала о создании PWA-приложения с помощью Claude Sonnet 4.6. Промпт не изменяли и не дополняли:

Pwa prompt english · MDCopyPWA Traffic Arbitrage — Compact Prompt
PARAMETERS
APP_NAME : Generate randomly
SHORT_NAME : Generate randomly
DEVELOPER : SkyNet Entertainment Ltd.
CATEGORY : Casino · Games
LANGUAGE : es
AFFILIATE_LINK : link
RATING : 4.8 | REVIEWS: 12K | DOWNLOADS: 500K+
SIZE : 4.2 MB | AGE: 18+
SPLASH_SECONDS : 10
SCREENSHOT_COUNT: 3

DESCRIPTION: …

REVIEWS (name / date / text):
1: Generate randomly / Generate randomly / Generate randomly
2: Generate randomly / Generate randomly / Generate randomly ?
3: Generate randomly / Generate randomly / Generate randomly

SCREENSHOTS (theme / emoji / bg-color / badge):
1: Slots / ? / dark purple / "⭐️ TOP"
2: Bonus / ? / dark green / "? Bonus"
3: Jackpot / ? / dark orange / "? Jackpot"

ZIP CONTENTS (all files in root, no subfolders)
index.html, app.html, manifest.json, sw.js,
icon-192.png, icon-512.png,
screenshot1.png … screenshot{SCREENSHOT_COUNT}.png

index.html
First lines immediately after <meta charset>:
html<script>
if (window.matchMedia("(display-mode:standalone)").matches || navigator.standalone)
{ document.documentElement.style.cssText="background:#fff;visibility:hidden";
window.location.replace("./app.html"); }
</script>
<style>body{visibility:hidden}html.ready body{visibility:visible}</style>
Page sections (Google Play style):

Sticky header — Google Play logo (4-color SVG) + search/profile icons
App block — 80×80px icon, app name, developer, category, badges
Statistics — star rating ★, downloads, editor's choice medal, age rating
Install button — color #01875f, 100% width, height 40px, border-radius 8px
Progress bar — below the button, hidden by default
Screenshot carousel — 130×230px thumbnails, border-radius 10px, horizontal scroll; show only screenshot1…N
Description — with "More ▾" toggle
Reviews — avatar (first letter), name, date, stars, text
Info grid 2×2 — size / Android version / downloads / developer
Fixed bottom bar — icon + app name + button

Button logic (in-memory variables only, ⛔️ no localStorage/cookies):
jsvar deferredPrompt = null, installed = false, animationPlayed = false;

addEventListener('beforeinstallprompt', e => { e.preventDefault(); deferredPrompt = e; });
addEventListener('appinstalled', () => {
if (animationPlayed) return;
installed = true; deferredPrompt = null;
runInstallAnimation(() => setOpenState());
});

// On "Install" button click:
// • deferredPrompt exists → prompt() → accepted: run animation → setOpenState; dismissed: restore "Install" label
// • no prompt + iOS → show modal with Safari instruction
// • no prompt + not iOS → wait 4s → prompt()
runInstallAnimation(callback):
jsfunction runInstallAnimation(cb) {
if (animationPlayed) { cb?.(); return; }
animationPlayed = true;
// button → spinner + "Installing…", bg #e8f5e9, color #01875f
// progress bar steps: [10, 25, 45, 65, 80, 92, 100] with pauses between
// after reaching 100% → wait 500ms → call cb()
}
setOpenState / openApp:
jsfunction setOpenState() {
installed = true; // in-memory only — do NOT write to localStorage
// both buttons (main + bottom bar) → "✓ Open", onclick = openApp
}
function openApp() { window.location.href = './app.html'; }
End of script:
jsdocument.documentElement.classList.add('ready');
if ('serviceWorker' in navigator) navigator.serviceWorker.register('./sw.js');
// + add ripple animation to all buttons

app.html — Splash Screen + Redirect
Splash screen (white background, all content centered):

icon-512.png — 112×112px, border-radius 24px, box-shadow
App name — 26px, font-weight 400, color #202124
Spinner — border-top-color #01875f
Entrance animation: scale(0.75→1) + opacity(0→1), duration 0.5s
Progress bar — position: fixed; bottom: 0, height 3px, color #01875f; fills evenly over SPLASH_SECONDS seconds, jumps to 100% 400ms before the end

Redirect (fires 300ms after page load):
jsvar TARGET = 'AFFILIATE_LINK';
var host = new URL(TARGET).host, path = TARGET.replace(/^https?:\/\/[^/]+/, '');
var intent = 'intent://' + host + path
+ '#Intent;scheme=https;package=com.android.chrome'
+ ';S.browser_fallback_url=' + encodeURIComponent(TARGET) + ';end';
window.location.href = intent;
setTimeout(() => window.location.replace(TARGET), 1500); // fallback for non-Android

manifest.json
json{
"name": "APP_NAME",
"short_name": "SHORT_NAME",
"start_url": "./index.html",
"scope": "./",
"display": "standalone",
"orientation": "portrait",
"background_color": "#ffffff",
"theme_color": "#01875f",
"icons": [
{"src":"icon-192.png","sizes":"192x192","type":"image/png","purpose":"any"},
{"src":"icon-512.png","sizes":"512x512","type":"image/png","purpose":"maskable"}
]
}
⛔️ Do NOT add a "screenshots" field — Chrome renders them inside the install dialog, which breaks UX.

sw.js
jsconst CACHE = 'app-v1';
const STATIC = [
'./manifest.json', './icon-192.png', './icon-512.png',
...Array.from({ length: SCREENSHOT_COUNT }, (_, i) => `./screenshot${i + 1}.png`)
];

// install → caches.open(CACHE).addAll(STATIC); self.skipWaiting()
// activate → delete old caches; self.clients.claim()
// fetch rules:
// cross-origin request → pass through (do not intercept)
// index.html / app.html / "/"→ network-first; fallback: cache(index.html)
// everything else → cache-first → on miss: fetch → store in cache

Icons (Python Pillow)

icon-192.png — 192×192px
icon-512.png — 512×512px
Background: vertical gradient #1a0a3e → #0d0628
First letter of SHORT_NAME, white, bold, centered


Screenshots (Playwright Chromium)

Generate exactly SCREENSHOT_COUNT files (screenshot1.png … screenshotN.png)
Viewport: 260×460px, save as PNG
Each screenshot structure:

Header — app name + colored badge (from SCREENSHOT_N params)
Center — large emoji ~80px with CSS drop-shadow filter
Bottom panel — background: rgba(0,0,0,0.65) + backdrop-filter: blur; title in #ffd700; description text; 3 decorative emojis; "Play Now" button in #01875f

После завершения генерации проверяли:

  • работоспособность приложения;
  • полноту реализации функционала;
  • соответствие интерфейса требованиям;
  • время выполнения задачи.

Основные выводы

Полностью справились с задачей: DeepSeek V4 Flash, DeepSeek V4 Pro, Claude Sonnet 5, Claude Opus 4.8 и Kimi 2.7 Code — все четыре модели создали работоспособное PWA-приложение без необходимости доработки.

Частично справился: GLM 5.2 сгенерировал основной код, но не создал файлы проекта и пропустил этап установки WebView.

Не справились с задачей: Qwen 3.6 сгенерировал только оболочку приложения, а GPT 5.5 не стал выполнять задачу, сославшись на ограничения безопасности.

Самой быстрой моделью стал DeepSeek V4 Flash, которому потребовалось около 3 минут на генерацию готового приложения.

Наиболее близкий к оригиналу интерфейс получился у Claude Sonnet 5 и Claude Opus 4.8.

МодельВремяРаботоспособностьДоработкиИнтерфейс
DeepSeek V4 Flash3 минНет⭐⭐⭐
DeepSeek V4 Pro22 минНет⭐⭐⭐⭐
Claude Sonnet 59 минНет⭐⭐⭐⭐⭐
Kimi 2.7 Code15 минНет⭐⭐⭐⭐
GLM 5.230 мин*⚠️ ЧастичноДа⭐⭐⭐⭐
Claude Opus 4.841 минНет⭐⭐⭐⭐⭐
Qwen 3.65 минТребуется переработка
GPT 5.5🚫 Отказался

GLM 5.2

Время выполнения: около 20 минут + примерно 10 минут ручной доработки.

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

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

Итоговый результат

Kimi 2.7 Code

Время выполнения: около 15 минут.

Kimi полностью выполнил поставленную задачу. Приложение успешно запускалось и работало.

Итоговый результат

Qwen 3.6

Модель не справилась с поставленной задачей.

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

Итоговый результат

Claude Sonnet 5 и Opus 4.8

Обе модели Sonnet 5 и Opus 4.8 успешно справились с поставленной задачей и создали полностью работоспособные PWA-приложения без необходимости ручной доработки. Кроме того, они показали наиболее удачный интерфейс, максимально приближенный к оригинальному приложению.

Главное отличие между моделями — скорость генерации. Claude Sonnet 5 выполнил задачу примерно за 9 минут, тогда как Claude Opus 4.8 потребовалось около 41 минуты, что стало самым продолжительным результатом среди всех протестированных моделей.

Итоговый результат Sonnet 5

Итоговый результат Opus 4.8

DeepSeek V4 Flash и V4 Pro

Сравнение DeepSeek V4 Flash и V4 Pro показало разницу между быстрыми и более мощными моделями. Flash завершил генерацию всего за три минуты, но качество интерфейса оказалось самым слабым среди успешно выполненных проектов. V4 Pro работал почти в семь раз дольше, однако результат получился значительно ближе к оригинальному приложению.

Итоговый результат V4 Flash

Итоговый результат V4 Pro


Like it? Share with your friends!
0 Комментариев
Партнерка - Наша оценка
Вертикали
Мин. сумма
Сайт
Vavada Partners обзор
Прямой рекламодатель
Бренды: Vavada Casino
1000 рублей/$20/€20 выплата
фото
фото
фото
фото
фото
фото
фото
фото
фото
фото
фото
фото
фото
фото
NOVA PARTNERS обзор
Партнерская программа в gambling-вертикали, прямой рекламодатель. Принимают трафик из СНГ. Сотрудничают по CPA, RevShare, Hybrid, Fix и Flat моделям.
$100 выплата
фото
фото
фото
фото
фото
фото
фото
Наша партнерская программа c офферами по Gambling и Betting вертикалям. Выплаты в день запроса от $20.
$20 выплата
фото
860 шт
Перейти к офферам
Партнерская программа в Gambling и Betting вертикалях от прямого рекламодателя SpinBetter. (топ-10 букмекеров по версии AskGamblers Awards 2025). Сотрудничают по CPA, Hybrid, RevShare, Fix, Fix + RevShare моделям. Принимают SEO, ASO, PPC, UAC, Facebook, social, stream, email, messengers и другие виды трафика, кроме мотива, схем и фрода.
$50 выплата
фото
фото
фото
фото
фото
фото
Traffic Cake - прямой рекламодатель с офферами iGaming вертикали. Эксклюзивные офферы: VOX, Winnita. ГЕО: TIER-1/2. Является авторизованным партнером известных брендов, таких как Vulkan Vegas, IceCasino, Verde Casino. Работают по CPA (до 600 EUR), RevShare и Hybrid модели. Каждый аффилиат может получить до 60% прибыли по RevShare. Выплаты происходят раз в неделю, без задержек. Принимаются все самые популярные источники трафика.
€100 выплата
фото
фото
V.Partners обзор
Прямой рекламодатель популярных европейских казино и беттинг брендов V.Vegas, ICE Casino, VERDE Casino, FS Casino, Fiery Play, Slotoro и Hit’N’Spin. Основана в 2016 году. Работают по СРА, RevShare, Hybrid и принимают трафик с более чем 35 стран. Дают все необходимые для работы инструменты.
€100 выплата
фото
фото
фото
фото
фото