# Adapty > The all-in-one service for in-app subscriptions. Develop, optimize and grow apps with iOS, Android, React Native, Flutter, Unity and Web support. --- ## Pages - [App Leaders Meetup in Barcelona 2025](https://adapty.io/app-leaders-meetup-in-barcelona-2025/): Join top app developers and founders at App Leaders Meetup in Barcelona! Explore strategies to boost mobile app revenue with expert insights on in-app subscriptions. - [App Leaders Meetup in Warsaw 2025](https://adapty.io/app-leaders-meetup-in-warsaw-2025/): Join top app developers and founders at App Leaders Meetup in Warsaw! Explore strategies to boost mobile app revenue with expert insights on in-app subscriptions. - [Adapty Pricing Index](https://adapty.io/app-subscription-pricing-index/): Data-driven pricing insights from $2B and 11,000 apps. Benchmark your subscription prices against global markets. - [Adapty Pricing Index](https://adapty.io/zh/app-subscription-pricing-index/): 基于数据的定价洞察,来自 $2B 和 11,000 个应用。将您的订阅价格与全球市场进行基准比较。 - [Adapty Pricing Index](https://adapty.io/fr/app-subscription-pricing-index/): Informations tarifaires basées sur les données provenant de 2 milliards $ et de 11.000 applications. Comparez vos prix d’abonnement aux marchés mondiaux. - [Adapty Pricing Index](https://adapty.io/de/app-subscription-pricing-index/): Datenbasierte Preiserkenntnisse aus $2 Mrd. und 11.000 Apps. Vergleichen Sie Ihre Abo-Preise mit globalen Märkten. - [Adapty Pricing Index](https://adapty.io/ja/app-subscription-pricing-index/): $2B と 11,000 件のアプリから得たデータ主導の価格インサイト。あなたのサブスクリプション価格を世界市場と比較しましょう。 - [Adapty Pricing Index](https://adapty.io/ko/app-subscription-pricing-index/): $2B와 11,000개의 앱에서 얻은 데이터 기반 가격 인사이트. 구독 가격을 글로벌 시장과 비교하세요. - [Adapty Pricing Index](https://adapty.io/pl/app-subscription-pricing-index/): Analizy cen oparte na danych z $2B i 11.000 aplikacji. Porównaj ceny subskrypcji z rynkami globalnymi. - [Adapty Pricing Index](https://adapty.io/pt/app-subscription-pricing-index/): Insights de preços baseados em dados de $2B e 11.000 aplicativos. Compare seus preços de assinatura com os mercados globais. - [Adapty Pricing Index](https://adapty.io/ru/app-subscription-pricing-index/): Аналитика ценообразования на основе данных из 11.000+ приложений на $2 млрд. Сравните цены подписки с мировыми рынками. - [Adapty Pricing Index](https://adapty.io/es/app-subscription-pricing-index/): Información de precios basada en datos de $2B y 11.000 aplicaciones. Compara tus precios de suscripción con los mercados globales. - [Adapty Pricing Index](https://adapty.io/tr/app-subscription-pricing-index/): $2B ve 11.000 uygulamadan elde edilen verilere dayalı fiyat içgörüleri. Abonelik fiyatlarınızı küresel pazarlarla karşılaştırın. - [Adapty Pricing Index](https://adapty.io/ua/app-subscription-pricing-index/): Аналітика цін на основі даних із $2B та 11.000 застосунків. Порівняйте свої ціни підписки з глобальними ринками. - [Adapty offer for React NYC Meetup](https://adapty.io/reactnyc-offer/): Special offer for React NYC attendees. Get 50% off any Adapty plan for 3 months when you sign up by September 30, 2025. - [Apple Fiscal Calendar](https://adapty.io/apple-fiscal-calendar/): Plan your finances with the Apple Fiscal Calendar 2025-2026. Track payment dates and set up Apple payment notifications directly in your Google Calendar. - [Apple Fiscal Calendar](https://adapty.io/fr/apple-fiscal-calendar/): Planifiez vos finances avec le calendrier fiscal Apple 2025-2026. Suivez les dates de paiement et configurez les notifications de paiement Apple directement dans votre Google Agenda. - [Apple Fiscal Calendar](https://adapty.io/zh/apple-fiscal-calendar/): 使用 Apple 财政日历 2025-2026 来规划你的财务。在 Google 日历中直接跟踪付款日期并设置 Apple 付款通知。 - [Apple Fiscal Calendar](https://adapty.io/de/apple-fiscal-calendar/): Plane deine Finanzen mit dem Apple Fiscal Calendar 2025-2026. Verfolge Zahlungstermine und richte Apple-Zahlungsbenachrichtigungen direkt in deinem Google Kalender ein. - [Apple Fiscal Calendar](https://adapty.io/ja/apple-fiscal-calendar/): Apple会計年度カレンダー2025-2026で財務を計画。支払日を追跡し、Appleの支払い通知をGoogleカレンダーに直接設定できます。 - [Apple Fiscal Calendar](https://adapty.io/ko/apple-fiscal-calendar/): Apple 회계연도 달력 2025-2026으로 재정을 계획하세요. 지급일을 추적하고 Apple 지급 알림을 Google Calendar에 직접 설정하세요. - [Apple Fiscal Calendar](https://adapty.io/pl/apple-fiscal-calendar/): Zaplanuj swoje finanse z Apple Fiscal Calendar 2025-2026. Śledź terminy płatności i ustaw powiadomienia o płatnościach Apple bezpośrednio w Google Calendar. - [Apple Fiscal Calendar](https://adapty.io/pt/apple-fiscal-calendar/): Planeje suas finanças com o Calendário Fiscal da Apple 2025-2026. Acompanhe as datas de pagamento e configure notificações de pagamento da Apple diretamente no seu Google Agenda. - [Apple Fiscal Calendar](https://adapty.io/ru/apple-fiscal-calendar/): Планируйте финансы с финансовым календарём Apple 2025–2026. Отслеживайте даты выплат и настраивайте уведомления о выплатах Apple прямо в Google Календаре. - [Apple Fiscal Calendar](https://adapty.io/es/apple-fiscal-calendar/): Planifica tus finanzas con el Calendario Fiscal de Apple 2025-2026. Haz un seguimiento de las fechas de pago y configura notificaciones de pago de Apple directamente en tu Google Calendar. - [Apple Fiscal Calendar](https://adapty.io/tr/apple-fiscal-calendar/): Mali durumunuzu Apple Mali Takvimi 2025-2026 ile planlayın. Ödeme tarihlerini takip edin ve Apple ödeme bildirimlerini doğrudan Google Takviminize ekleyin. - [Apple Fiscal Calendar](https://adapty.io/ua/apple-fiscal-calendar/): Плануйте свої фінанси з Apple Fiscal Calendar 2025-2026. Відстежуйте дати виплат і налаштовуйте сповіщення про виплати Apple безпосередньо у вашому Google Calendar. - [Master Factoring Agreement](https://adapty.io/factoring-terms/): Read Adapty’s Master Factoring Agreement. Terms for factoring, receivables, commissions, and payment processes for approved platform customers. - [Master Factoring Agreement](https://adapty.io/pl/factoring-terms/): Przeczytaj Umowę Master Factoring Adapty. Warunki dotyczące faktoringu, należności, prowizji i procesów płatności dla zatwierdzonych klientów platformy. - [Master Factoring Agreement](https://adapty.io/pt/factoring-terms/): Leia o Acordo-Mestre de Faturamento da Adapty. Termos para faturamento, recebíveis, comissões e processos de pagamento para clientes da plataforma aprovados. - [Master Factoring Agreement](https://adapty.io/tr/factoring-terms/): Adapty’nin Ana Faktoring Sözleşmesini okuyun. Onaylı platform müşterileri için faktoring, alacaklar, komisyonlar ve ödeme süreçlerine dair şartlar. - [Master Factoring Agreement](https://adapty.io/fr/factoring-terms/): Lisez l'Accord de Factoring Principal d'Adapty. Conditions de factoring, créances, commissions et processus de paiement pour les clients de la plateforme approuvés. - [Master Factoring Agreement](https://adapty.io/zh/factoring-terms/): 阅读 Adapty 的主 factoring 协议。 适用于经批准平台客户的 factoring、应收账款、佣金和支付流程的条款。 - [Master Factoring Agreement](https://adapty.io/de/factoring-terms/): Lesen Sie Adaptys Master Factoring-Vereinbarung. Bedingungen für Factoring, Forderungen, Provisionen und Zahlungsprozesse für genehmigte Plattformkunden. - [Master Factoring Agreement](https://adapty.io/ja/factoring-terms/): Adaptyのマスターファクタリング契約をお読みください。承認されたプラットフォーム顧客向けのファクタリング、売掛金、手数料、支払いプロセスに関する条件です。 - [Master Factoring Agreement](https://adapty.io/ko/factoring-terms/): Adapty의 마스터 팩토링 계약서를 읽어보세요. 승인된 플랫폼 고객을 위한 팩토링, 수령금, 수수료 및 지불 프로세스에 대한 조건입니다. - [Master Factoring Agreement](https://adapty.io/ru/factoring-terms/): Прочитайте Основное Соглашение об Факторинге Adapty. Условия факторации, дебиторской задолженности, комиссий и процессов платежей для утверждённых клиентов платформы. - [Master Factoring Agreement](https://adapty.io/es/factoring-terms/): Lee el Acuerdo Maestro de Factoring de Adapty. Términos para factoring, cuentas por cobrar, comisiones y procesos de pago para clientes aprobados de la plataforma. - [Master Factoring Agreement](https://adapty.io/ua/factoring-terms/): Прочитайте Генеральну угоду про факторинг Adapty. Умови для факторингу, дебіторської заборгованості, комісій і процесів оплати для затверджених клієнтів платформи. - [App Leaders Meetup in Berlin 2025](https://adapty.io/app-leaders-meetup-in-berlin-2025/): Join top app developers and founders at Adapty App Leaders Meetup in Berlin! Explore strategies to boost mobile app revenue with expert insights on in-app subscriptions. - [How to use the 2025 data to grow your app](https://adapty.io/webinars-2025-data/): Discover what’s really driving growth in 2025. - [Authors](https://adapty.io/author/): Adapty's editorial team writers who gather insider information for you every day in the mobile app subscriptions industry. - [Authors](https://adapty.io/zh/author/): Adapty的编辑团队作家每天为您收集移动应用订阅行业的内部信息。 - [Authors](https://adapty.io/fr/author/): L'équipe éditoriale d'Adapty, des rédacteurs qui rassemblent des informations exclusives pour vous chaque jour dans l'industrie des abonnements d'applications mobiles. - [Authors](https://adapty.io/de/author/): Das Redaktionsteam von Adapty besteht aus Autoren, die täglich Insider-Informationen für Sie in der Branche der mobilen App-Abonnements sammeln. - [Authors](https://adapty.io/ja/author/): Adaptyの編集チームのライターが、モバイルアプリのサブスクリプション業界に関するインサイダー情報を毎日あなたのために集めます。 - [Authors](https://adapty.io/ko/author/): Adapty의 편집 팀 작가들이 모바일 앱 구독 산업에 관한 내부 정보를 매일 수집하여 제공합니다. - [Authors](https://adapty.io/pl/author/): Zespół redakcyjny Adapty, który codziennie zbiera informacje z branży subskrypcji aplikacji mobilnych. - [Authors](https://adapty.io/pt/author/): Os escritores da equipe editorial da Adapty que reúnem informações privilegiadas para você todos os dias na indústria de assinaturas de aplicativos móveis. - [Authors](https://adapty.io/ru/author/): Редакционная команда Adapty, писатели которой собирают внутреннюю информацию для вас каждый день в индустрии подписок мобильных приложений. - [Authors](https://adapty.io/es/author/): El equipo editorial de Adapty está formado por escritores que recopilan información privilegiada para ti todos los días en la industria de suscripciones de aplicaciones móviles. - [Authors](https://adapty.io/tr/author/): Adapty'nin editoryal ekip yazarları, mobil uygulama abonelikleri sektöründe sizin için her gün iç bilgi toplar. - [Authors](https://adapty.io/ua/author/): Редакційна команда Adapty, яка щодня збирає інсайдерську інформацію для вас в індустрії підписок на мобільні застосунки. - [Newsletters](https://adapty.io/newsletters/): Paywall Newsletter by Adapty: every month we pick hot mobile paywalls, ask experts to comment on them, pack into email, and send to our lovely subscriber. - [Newsletters](https://adapty.io/zh/newsletters/): Adapty的付费墙通讯:每月我们挑选热门移动付费墙,邀请专家评论,整理成邮件,发送给我们的可爱订阅者。 - [Newsletters](https://adapty.io/fr/newsletters/): Newsletter sur les Paywalls par Adapty: chaque mois, nous sélectionnons des paywalls mobiles chauds, demandons à des experts de les commenter, les regroupons dans un email et les envoyons à notre cher abonné. - [Newsletters](https://adapty.io/de/newsletters/): Paywall-Newsletter von Adapty: jeden Monat wählen wir heiße mobile Paywalls aus, bitten Experten um Kommentare, packen sie in eine E-Mail und senden sie an unseren lieben Abonnenten. - [Newsletters](https://adapty.io/ja/newsletters/): Adaptyによるペイウォールニュースレター:毎月ホットなモバイルペイウォールを選び、専門家にコメントを依頼し、メールにまとめて、愛する購読者に送ります。 - [Newsletters](https://adapty.io/ko/newsletters/): Adapty의 유료 벽 뉴스레터: 매달 핫 모바일 유료 벽을 선정하여 전문가에게 코멘트를 요청하고 이메일로 포장하여 사랑하는 구독자에게 전송합니다. - [Newsletters](https://adapty.io/pl/newsletters/): Newsletter Płatny przez Adapty: co miesiąc wybieramy gorące płatne treści mobilne, prosimy ekspertów o ich skomentowanie, pakujemy je do e-maila i wysyłamy do naszych wspaniałych subskrybentów. - [Newsletters](https://adapty.io/pt/newsletters/): Newsletter de Paywall por Adapty: todo mês escolhemos paywalls móveis quentes, pedimos a especialistas para comentarem sobre eles, agrupamos em um e-mail e enviamos aos nossos queridos assinantes. - [Newsletters](https://adapty.io/ru/newsletters/): Еженедельная рассылка пейволлов от Adapty: каждый месяц мы выбираем горячие мобильные пейволлы, просим экспертов прокомментировать их, упаковываем в электронное письмо и отправляем нашим дорогим подписчикам. - [Newsletters](https://adapty.io/es/newsletters/): Boletín de Paywall de Adapty: cada mes seleccionamos las mejores pleywalls móviles, pedimos a expertos que comenten sobre ellas, las empaquetamos en un correo y se lo enviamos a nuestro querido suscriptor. - [Newsletters](https://adapty.io/tr/newsletters/): Adapty'nin Piyasa Duvarı Bülteni: her ay sıcak mobil piyasa duvarlarını seçiyoruz, uzmanlardan yorum alıyoruz, e-postaya paketliyoruz ve sevgili abonelerimize gönderiyoruz. - [Newsletters](https://adapty.io/ua/newsletters/): Пейволл Розсилка від Adapty: кожного місяця ми обираємо гарячі мобільні пейволли, просимо експертів прокоментувати їх, упаковуємо в електронний лист і надсилаємо нашим чудовим підписникам. - [Cookie Policy](https://adapty.io/zh/cookie/): 了解Adapty如何处理和处理您的数据。阅读我们的数据处理协议以获取有关数据安全和合规性的详细信息。 - [Cookie Policy](https://adapty.io/fr/cookie/): Comprenez comment Adapty gère et traite vos données. Lisez notre Accord de traitement des données pour plus de détails sur la sécurité des données et la conformité. - [Cookie Policy](https://adapty.io/de/cookie/): Verstehen Sie, wie Adapty Ihre Daten behandelt und verarbeitet. Lesen Sie unsere Vereinbarung zur Datenverarbeitung für Details zur Datensicherheit und Compliance. - [Cookie Policy](https://adapty.io/ja/cookie/): Adaptyがあなたのデータをどのように扱い、処理するかを理解してください。データのセキュリティとコンプライアンスに関する詳細は、当社のデータ処理契約をお読みください。 - [Cookie Policy](https://adapty.io/ko/cookie/): Adapty가 귀하의 데이터를 어떻게 처리하는지 이해하세요. 데이터 보안 및 규정 준수에 대한 자세한 내용은 데이터 처리 계약서를 읽어보세요. - [End-Users Privacy Policy](https://adapty.io/zh/end-users-privacy/): 了解Adapty如何处理和处理您的数据。阅读我们的数据处理协议以获取有关数据安全和合规性的详细信息。 - [Cookie Policy](https://adapty.io/pl/cookie/): Dowiedz się, jak Adapty obsługuje i przetwarza Twoje dane. Przeczytaj naszą Umowę o przetwarzaniu danych, aby uzyskać szczegóły dotyczące bezpieczeństwa danych i zgodności. - [End-Users Privacy Policy](https://adapty.io/fr/end-users-privacy/): Comprenez comment Adapty gère et traite vos données. Lisez notre Accord de Traitement des Données pour plus de détails sur la sécurité des données et la conformité. - [Cookie Policy](https://adapty.io/pt/cookie/): Entenda como a Adapty lida e processa seus dados. Leia nosso Acordo de Processamento de Dados para detalhes sobre segurança de dados e conformidade. - [End-Users Privacy Policy](https://adapty.io/de/end-users-privacy/): Verstehen Sie, wie Adapty Ihre Daten behandelt und verarbeitet. Lesen Sie unsere Vereinbarung zur Datenverarbeitung für Details zur Datensicherheit und Compliance. - [End-Users Privacy Policy](https://adapty.io/ja/end-users-privacy/): Adaptyがあなたのデータをどのように扱い、処理するかを理解してください。データのセキュリティとコンプライアンスに関する詳細は、当社のデータ処理契約をお読みください。 - [Cookie Policy](https://adapty.io/ru/cookie/): Узнайте, как Adapty обрабатывает ваши данные. Прочтите наше Соглашение об обработке данных для получения информации о безопасности данных и соблюдении требований. - [Cookie Policy](https://adapty.io/es/cookie/): Entiende cómo Adapty maneja y procesa tus datos. Lee nuestro Acuerdo de Procesamiento de Datos para obtener detalles sobre la seguridad de los datos y el cumplimiento. - [End-Users Privacy Policy](https://adapty.io/ko/end-users-privacy/): Adapty가 귀하의 데이터를 어떻게 처리하는지 이해하세요. 데이터 보안 및 규정 준수에 대한 자세한 내용은 데이터 처리 계약서를 읽어보세요. - [Cookie Policy](https://adapty.io/tr/cookie/): Adapty'nin verilerinizi nasıl işlediğini ve yönettiğini anlayın. Veri güvenliği ve uyumluluğu hakkında bilgiler için Veri İşleme Sözleşmemizi okuyun. - [Cookie Policy](https://adapty.io/ua/cookie/): Зрозумійте, як Adapty обробляє ваші дані. Ознайомтеся з нашою Угодою про обробку даних для отримання деталей з безпеки даних і дотримання вимог. - [End-Users Privacy Policy](https://adapty.io/pl/end-users-privacy/): Dowiedz się, jak Adapty obsługuje i przetwarza Twoje dane. Przeczytaj naszą Umowę o przetwarzaniu danych, aby uzyskać szczegóły dotyczące bezpieczeństwa danych i zgodności. - [End-Users Privacy Policy](https://adapty.io/pt/end-users-privacy/): Entenda como a Adapty lida e processa seus dados. Leia nosso Acordo de Processamento de Dados para detalhes sobre segurança de dados e conformidade. - [End-Users Privacy Policy](https://adapty.io/tr/end-users-privacy/): Adapty'nin verilerinizi nasıl işlediğini ve yönettiğini anlayın. Veri güvenliği ve uyumluluğu hakkında ayrıntılar için Veri İşleme Sözleşmemizi okuyun. - [End-Users Privacy Policy](https://adapty.io/ua/end-users-privacy/): Зрозумійте, як Adapty обробляє та управляє вашими даними. Ознайомтеся з нашою Угодою про обробку даних для отримання відомостей про безпеку даних та відповідність. - [End-Users Privacy Policy](https://adapty.io/es/end-users-privacy/): Entiende cómo Adapty maneja y procesa tus datos. Lee nuestro Acuerdo de Procesamiento de Datos para obtener detalles sobre la seguridad de los datos y el cumplimiento. - [End-Users Privacy Policy](https://adapty.io/ru/end-users-privacy/): Узнайте, как Adapty обрабатывает ваши данные. Прочтите наше Соглашение об обработке данных для получения информации о безопасности данных и соблюдении требований. - [End-Users Privacy Policy](https://adapty.io/end-users-privacy/): Understand how Adapty handles and processes your data. Read our Data Processing Agreement for details on data security and compliance. - [Cookie Policy](https://adapty.io/cookie/): Understand how Adapty handles and processes your data. Read our Data Processing Agreement for details on data security and compliance. - [[redirect] WWDC25’i birlikte keşfedelim](https://adapty.io/wwdc25-istanbul/): WWDC25 is more than just a livestream. It’s a chance to reflect, learn, and connect with peers who share your curiosity and expertise. - [WWDC25’i birlikte keşfedelim](https://adapty.io/tr/wwdc25-istanbul/): 9 Haziran’da İstanbul’da WWDC25’i birlikte izleyelim, içgörüler paylaşalım ve sektörden isimlerle buluşalım. Davetiyeli, kontenjan sınırlı. Yerini ayırt! - [AI Paywall Generator](https://adapty.io/ai-paywall-generator/): Generate 5 custom paywalls for your app in seconds. No code, no design tools, no release needed. Pick, edit, and test directly in Adapty. - [AI Paywall Generator](https://adapty.io/zh/ai-paywall-generator/): 在几秒钟内为您的应用程序生成 5 个自定义支付墙。无需编码,无需设计工具,无需发布。直接在Adapty中选择、编辑和测试。 - [AI Paywall Generator](https://adapty.io/fr/ai-paywall-generator/): Générez 5 paywalls personnalisés pour votre application en quelques secondes. Aucune code, aucun outil de design, aucune sortie nécessaire. Choisissez, modifiez et testez directement dans Adapty. - [AI Paywall Generator](https://adapty.io/de/ai-paywall-generator/): Generieren Sie 5 benutzerdefinierte Paywalls für Ihre App in Sekundenschnelle. Kein Code, keine Design-Tools, keine Veröffentlichung erforderlich. Wählen, bearbeiten und testen Sie direkt in Adapty. - [AI Paywall Generator](https://adapty.io/ja/ai-paywall-generator/): 数秒でアプリ用のカスタムペイウォールを5つ生成。コード不要、デザインツール不要、リリースも不要。直接Adaptyで選択、編集、テスト。 - [AI Paywall Generator](https://adapty.io/pl/ai-paywall-generator/): Wygeneruj 5 spersonalizowanych pęknięć dla swojej aplikacji w kilka sekund. Bez kodu, bez narzędzi projektowych, bez potrzeby wydania. Wybierz, edytuj i testuj bezpośrednio w Adapty. - [AI Paywall Generator](https://adapty.io/ko/ai-paywall-generator/): 앱을 위해 5개의 맞춤형 페이월을 몇 초 안에 생성하세요. 코드, 디자인 도구, 릴리즈가 필요 없습니다. 아답티에서 직접 선택, 편집 및 테스트하세요. - [AI Paywall Generator](https://adapty.io/pt/ai-paywall-generator/): Gere 5 paywalls personalizados para seu aplicativo em segundos. Sem código, sem ferramentas de design, sem necessidade de lançamento. Escolha, edite e teste diretamente no Adapty. - [AI Paywall Generator](https://adapty.io/ru/ai-paywall-generator/): Создайте 5 индивидуальных пейволлов для вашего приложения за секунды. Без кода, без инструментов дизайна, без необходимых релизов. Выберите, отредактируйте и тестируйте напрямую в Adapty. - [AI Paywall Generator](https://adapty.io/es/ai-paywall-generator/): Genera 5 pagarés personalizados para tu aplicación en segundos. Sin código, sin herramientas de diseño, no se requiere lanzamiento. Elige, edita y prueba directamente en Adapty. - [AI Paywall Generator](https://adapty.io/tr/ai-paywall-generator/): Uygulamanız için saniyeler içinde 5 özel paywall oluşturun. Kod yok, tasarım aracı yok, yayınlama gerekli değil. Seçin, düzenleyin ve doğrudan Adapty’de test edin. - [AI Paywall Generator](https://adapty.io/ua/ai-paywall-generator/): Генеруйте 5 унікальних пейволлів для вашого застосунку за секунди. Без коду, без дизайнерських інструментів, без необхідності випуску. Обирайте, редагуйте та тестуйте безпосередньо в Adapty. - [Subscription Calculator](https://adapty.io/ru/subscription-app-revenue-calculator/): Введите ваши данные для расчета прибыли приложения и посмотрите результат, а также как Adapty поможет вам увеличить конверсии и доход на 30%. - [Subscription Calculator](https://adapty.io/zh/subscription-app-revenue-calculator/): 输入您的数据以计算应用程序的利润,查看结果以及 Adapty 如何帮助您将转化率和收入提高 30%。 - [Subscription Calculator](https://adapty.io/fr/subscription-app-revenue-calculator/): Entrez vos données pour calculer le profit de l'application et voyez le résultat et comment Adapty vous aidera à augmenter les conversions et les revenus de 30%. - [Subscription Calculator](https://adapty.io/de/subscription-app-revenue-calculator/): Geben Sie Ihre Daten zur Berechnung des Gewinns der App ein und sehen Sie das Ergebnis sowie, wie Adapty Ihnen helfen wird, die Konversionen und den Umsatz um 30% zu steigern. - [Subscription Calculator](https://adapty.io/ko/subscription-app-revenue-calculator/): 앱의 수익을 계산하기 위한 데이터를 입력하고 결과를 확인하세요. Adapty가 어떻게 전환율과 수익을 30% 증가시키는 데 도움을 줄 수 있는지도 확인하세요. - [Subscription Calculator](https://adapty.io/ja/subscription-app-revenue-calculator/): アプリの利益を計算するためのデータを入力し、結果を確認し、Adaptyがどのようにして30%のコンバージョンと収益を増加させるのに役立つかを見てみましょう。 - [Subscription Calculator](https://adapty.io/pt/subscription-app-revenue-calculator/): Insira seus dados para calcular o lucro do aplicativo e veja o resultado e como a Adapty pode ajudá-lo a aumentar as conversões e a receita em 30%. - [Subscription Calculator](https://adapty.io/pl/subscription-app-revenue-calculator/): Wprowadź dane do obliczenia zysku z aplikacji i zobacz wynik oraz jak Adapty pomoże Ci zwiększyć konwersje i przychody o 30%. - [Subscription Calculator](https://adapty.io/es/subscription-app-revenue-calculator/): Ingresa tus datos para calcular el beneficio de la aplicación y ver el resultado y cómo Adapty te ayudará a aumentar las conversiones y los ingresos en un 30%. - [Subscription Calculator](https://adapty.io/ua/subscription-app-revenue-calculator/): Введіть свої дані для розрахунку прибутку застосунку та побачте результат, як Adapty допоможе вам збільшити конверсії та доходи на 30%. - [Subscription Calculator](https://adapty.io/tr/subscription-app-revenue-calculator/): Uygulamanın kârını hesaplamak için verilerinizi girin ve sonucu görün; Adapty'nin dönüşümleri ve geliri %30 artırmanıza nasıl yardımcı olacağını keşfedin. - [Subscription Calculator](https://adapty.io/subscription-app-revenue-calculator/): Enter your data for calculating the profit of the app and see the result and how Adapty will help you increase conversions and revenue by 30%. - [Web2app](https://adapty.io/zh/web2app/): 构建并优化无编码的网页到应用程序的漏斗。将流量转化为付费用户,进行漏斗的A/B测试,并使用FunnelFox扩展您的应用程序。 - [Web2app](https://adapty.io/fr/web2app/): Créez et optimisez des tunnels web-à-application sans codage. Convertissez le trafic en utilisateurs payants, testez A/B votre tunnel et développez votre application avec FunnelFox. - [Web2app](https://adapty.io/de/web2app/): Erstellen und optimieren Sie Web-to-App-Trichter ohne Programmierung. Wandeln Sie Traffic in zahlende Benutzer um, führen Sie A/B-Tests für Ihren Trichter durch und skalieren Sie Ihre App mit FunnelFox. - [Web2app](https://adapty.io/ko/web2app/): 코딩 없이 웹-앱 깔때기를 구축하고 최적화하세요. 트래픽을 유료 사용자로 전환하고, 깔때기를 A/B 테스트하며, FunnelFox로 앱을 확장하세요. - [Web2app](https://adapty.io/pl/web2app/): Twórz i optymalizuj lejki web-to-app bez programowania. Zamieniaj ruch w płacących użytkowników, przeprowadzaj testy A/B swojego lejka i rozwijaj swoją aplikację z FunnelFox. - [Web2app](https://adapty.io/ja/web2app/): コーディングなしでウェブからアプリへのファネルを構築&最適化します。トラフィックを支払いユーザーに変換し、ファネルをA/Bテストし、FunnelFoxを使用してアプリをスケールします。 - [Web2app](https://adapty.io/pt/web2app/): Crie e otimize funis de web para app sem codificação. Converta o tráfego em usuários pagantes, faça testes A/B em seu funil e amplie seu app com FunnelFox. - [Web2app](https://adapty.io/ru/web2app/): Создайте и оптимизируйте воронки веб-приложений без кода. Превратите трафик в платящих пользователей, проведите A/B тестирование вашей воронки и развивайте ваше приложение с FunnelFox. - [Web2app](https://adapty.io/es/web2app/): Crea y optimiza embudos de web a app sin necesidad de programar. Convierte el tráfico en usuarios de pago, realiza pruebas A/B en tu embudo y escala tu app con FunnelFox. - [Web2app](https://adapty.io/ua/web2app/): Створюйте та оптимізуйте воронки з вебу до застосунку без кодування. Перетворюйте трафік на платних користувачів, проводьте A/B тестування вашої воронки та масштабуйте свій застосунок за допомогою FunnelFox. - [Web2app](https://adapty.io/tr/web2app/): Kodlama yapmadan web'den uygulamaya geçiş hunileri oluşturun ve optimize edin. Trafiği ödeme yapan kullanıcılara dönüştürün, huninizi A/B test edin ve FunnelFox ile uygulamanızı ölçeklendirin. - [Web2app](https://adapty.io/web2app/): Build & optimize web-to-app funnels without coding. Convert traffic into paying users, A/B test your funnel, and scale your app with FunnelFox. - [Istanbul App Leaders Meetup](https://adapty.io/tr-istanbul-app-leaders-meetup/): Uygulama liderleri topluluğuyla, uygulama büyümesini hızlandırmanın en yeni stratejilerine derinlemesine dalacağımız özel bir akşam için bize katıl! En başarılı uygulamalardan... - [Refund Calculator](https://adapty.io/zh/refund-calculator/): 想要减少退款吗?今天让我们谈谈如何开启它。 - [Refund Calculator](https://adapty.io/fr/refund-calculator/): Vous voulez réduire les remboursements? Parlons de la façon de l'activer aujourd'hui. - [Refund Calculator](https://adapty.io/de/refund-calculator/): Möchten Sie Rückerstattungen reduzieren? Lassen Sie uns heute darüber sprechen, wie es geht. - [Refund Calculator](https://adapty.io/ja/refund-calculator/): 払い戻しを減らしたいですか?今日、どのようにそれを実現するか話しましょう。 - [Refund Calculator](https://adapty.io/ko/refund-calculator/): 환불을 줄이고 싶으신가요? 오늘 어떻게 활성화할 수 있는지 이야기해봅시다. - [Refund Calculator](https://adapty.io/pl/refund-calculator/): Chcesz zmniejszyć zwroty? Porozmawiajmy o tym, jak to włączyć dzisiaj. - [Refund Calculator](https://adapty.io/pt/refund-calculator/): Quer reduzir reembolsos? Vamos conversar sobre como ativá-lo hoje. - [Refund Calculator](https://adapty.io/ru/refund-calculator/): Хотите уменьшить количество возвратов? Давайте обсудим, как запустить это сегодня. - [Refund Calculator](https://adapty.io/es/refund-calculator/): ¿Quieres reducir reembolsos? Hablemos sobre cómo activarlo hoy. - [Refund Calculator](https://adapty.io/tr/refund-calculator/): İade oranını azaltmak mı istiyorsunuz? Bugün nasıl devreye alabileceğimizi konuşalım. - [Refund Calculator](https://adapty.io/ua/refund-calculator/): Хочете зменшити повернення? Давайте поговоримо про те, як увімкнути це сьогодні. - [Refund Calculator](https://adapty.io/refund-calculator/): Want to reduce refunds? Let’s talk about how to turn it on today. - [Istanbul App Leaders Meetup](https://adapty.io/istanbul-app-leaders-meetup/): Join us for an exclusive evening of insights and networking with the app growth leaders community as we deep dive... - [Uygulamanızı 10 dakikada düzeltin](https://adapty.io/tr/turkish-checklist/): Tam bir gelir denetimi için ihtiyacınız olan her şey tek bir listede. İlk 20 başvuru için ücretsiz büyüme denetimi. - [Partnerships](https://adapty.io/partnerships/): Connect with certified Adapty partners and grow your user acquisition. - [Partnerships](https://adapty.io/zh/partnerships/): 与认证的适应合作伙伴联系,增加您的用户获取. - [Partnerships](https://adapty.io/fr/partnerships/): Connectez-vous avec des partenaires Adapty certifiés et développez votre acquisition d'utilisateurs. - [Partnerships](https://adapty.io/de/partnerships/): Verbinden Sie sich mit zertifizierten Adapty-Partnern und steigern Sie Ihre Nutzerakquise. - [Partnerships](https://adapty.io/ja/partnerships/): 認定されたAdaptyパートナーと連携し、ユーザー獲得を拡大しましょう。 - [Partnerships](https://adapty.io/ko/partnerships/): 인증된 어댑티 파트너와 연결하여 사용자 확보율을 높일 수 있습니다. - [Partnerships](https://adapty.io/pl/partnerships/): Połącz się z certyfikowanymi partnerami Adapty i zwiększ liczbę pozyskiwanych użytkowników. - [Partnerships](https://adapty.io/pt/partnerships/): Ligue-se a parceiros certificados da Adapty e aumente a sua aquisição de utilizadores. - [Partnerships](https://adapty.io/ru/partnerships/): Подключайтесь к сертифицированным партнерам Adapty и увеличивайте число своих пользователей. - [Partnerships](https://adapty.io/es/partnerships/): Conéctese con socios certificados de Adapty y aumente la captación de usuarios. - [Partnerships](https://adapty.io/tr/partnerships/): Sertifikalı Adapty iş ortaklarıyla bağlantı kurun ve kullanıcı kazanımınızı artırın. - [Partnerships](https://adapty.io/ua/partnerships/): Зв'яжіться з сертифікованими партнерами Adapty та збільшуйте кількість користувачів. - [The London App Leaders Meetup](https://adapty.io/the-london-app-leaders-meetup-2025/): Join us for an exclusive evening of insights and networking with the app growth leaders community as we deep dive... - [App Founders Meetup: Ankara](https://adapty.io/adapty-app-founders-meetup-ankara/): Mobil uygulama yayıncıları ve geliştiriciler için en büyük etkinlik. Para kazanma trendleri ve öngörüler. Kayıt olun! - [Adapty Conf: Cyprus 2023](https://adapty.io/adapty-conf-cyprus-2023/): Welcome to the offline event for subscription apps in Cyprus hosted by Adapty. Join us to hear industry experts discuss the latest trends in subscriptions, user acquisition, and more. - [Adapty Conf: Istanbul 2024](https://adapty.io/adapty-conf-istanbul-2024/): Welcome to the offline event for subscription apps in Istanbul hosted by Adapty. Join us to hear industry experts discuss the latest trends! - [App Founders Meetup: Izmir](https://adapty.io/adapty-app-founders-meetup-izmir/): Mobil uygulama yayıncıları ve geliştiriciler için en büyük etkinlik. Para kazanma trendleri ve öngörüler. Kayıt olun! - [App Founders Meetup: Istanbul](https://adapty.io/adapty-app-founders-meetup-istanbul/): Mobil uygulama yayıncıları ve geliştiriciler için en büyük etkinlik. Para kazanma trendleri ve öngörüleri. - [Refund Saver](https://adapty.io/zh/refund-saver/): 使用 Adapty Refund Saver 將您訂閱應用程式的退款率降低 40%。自動化退款管理、留住使用者,毫不費力地將收入最大化。 - [Refund Saver](https://adapty.io/fr/refund-saver/): Réduisez les taux de remboursement de votre application d'abonnement de 40% avec Adapty Refund Saver. Automatisez la gestion des remboursements, fidélisez les utilisateurs et maximisez vos revenus sans effort. - [Refund Saver](https://adapty.io/de/refund-saver/): Reduzca las tasas de reembolso de su aplicación de suscripción en un 40% con Adapty Refund Saver. Automatice la gestión de reembolsos, retenga a los usuarios y maximice los ingresos sin esfuerzo. - [Refund Saver](https://adapty.io/ja/refund-saver/): Adapty Refund Saverで定期購入アプリの返金率を40%削減。返金管理を自動化し、ユーザーを維持し、収益を最大化します。 - [Refund Saver](https://adapty.io/ko/refund-saver/): 어댑티 환불 세이버로 구독 앱의 환불율을 40%까지 낮춰보세요. 환불 관리를 자동화하고, 사용자를 유지하며, 손쉽게 수익을 극대화하세요. - [Refund Saver](https://adapty.io/pl/refund-saver/): Zmniejsz liczbę zwrotów dla swojej aplikacji subskrypcyjnej o 40% dzięki Adapty Refund Saver. Zautomatyzuj zarządzanie zwrotami, zatrzymaj użytkowników i zmaksymalizuj przychody bez wysiłku. - [Refund Saver](https://adapty.io/pt/refund-saver/): Reduza as taxas de reembolso do seu aplicativo de assinatura em 40% com o Adapty Refund Saver. Automatize o gerenciamento de reembolsos, retenha usuários e maximize a receita sem esforço. - [Refund Saver](https://adapty.io/ru/refund-saver/): Сократите количество возвратов в приложении по подписке на 40% с помощью Adapty Refund Saver. Автоматизируйте управление возвратами, удерживайте пользователей и увеличивайте доход без особых усилий. - [Refund Saver](https://adapty.io/es/refund-saver/): Reduzca las tasas de reembolso de su aplicación de suscripción en un 40% con Adapty Refund Saver. Automatice la gestión de reembolsos, retenga a los usuarios y maximice los ingresos sin esfuerzo. - [Refund Saver](https://adapty.io/tr/refund-saver/): Adapty Refund Saver ile abonelik uygulamanız için iade oranlarını %40 azaltın. Geri ödeme yönetimini otomatikleştirin, kullanıcıları elinizde tutun ve geliri zahmetsizce en üst düzeye çıkarın. - [Refund Saver](https://adapty.io/ua/refund-saver/): Знизьте рівень відшкодувань для вашого додатку передплати на 40% за допомогою Adaptty Refund Saver. Автоматизуйте управління відшкодуваннями, утримуйте користувачів та максимізуйте дохід без зайвих зусиль. - [Refund Saver](https://adapty.io/refund-saver/): Reduce refund rates for your subscription app by 40% with Adapty Refund Saver. Automate refund management, retain users, and maximize revenue effortlessly. - [Why Adapty?](https://adapty.io/why-adapty/): Explore Adapty’s features and discover why it’s the most powerful choice over any alternative. - [Why Adapty?](https://adapty.io/zh/why-adapty/): 探索 Adapty 的功能,瞭解為什麼它是最強大的選擇。 - [Why Adapty?](https://adapty.io/fr/why-adapty/): Explorez les caractéristiques d'Adapty et découvrez pourquoi c'est le choix le plus puissant par rapport à toute autre solution. - [Why Adapty?](https://adapty.io/de/why-adapty/): Lernen Sie die Funktionen von Adapty kennen und entdecken Sie, warum es die leistungsstärkste Wahl gegenüber allen Alternativen ist. - [Why Adapty?](https://adapty.io/ja/why-adapty/): Adaptyの特徴を探り、他のどの製品よりも強力な選択肢である理由を発見してください。 - [Why Adapty?](https://adapty.io/ko/why-adapty/): Adapty의 기능을 살펴보고 다른 어떤 대안보다 가장 강력한 선택인 이유를 알아보세요. - [Why Adapty?](https://adapty.io/pl/why-adapty/): Poznaj funkcje Adapty i dowiedz się, dlaczego jest to najpotężniejszy wybór w porównaniu z jakąkolwiek alternatywą. - [Why Adapty?](https://adapty.io/pt/why-adapty/): Explore as caraterísticas do Adapty e descubra porque é que é a escolha mais poderosa em relação a qualquer alternativa. - [Why Adapty?](https://adapty.io/ru/why-adapty/): Ознакомьтесь с возможностями Adapty и узнайте, почему она является наиболее эффективным выбором по сравнению с другими. - [Why Adapty?](https://adapty.io/es/why-adapty/): Explore las funciones de Adapty y descubra por qué es la opción más potente frente a cualquier otra alternativa. - [Why Adapty?](https://adapty.io/tr/why-adapty/): Adapty'nin özelliklerini keşfedin ve neden diğer alternatiflere göre en güçlü seçim olduğunu keşfedin. - [Why Adapty?](https://adapty.io/ua/why-adapty/): Вивчіть функції Adapty та дізнайтеся, чому це найкращий вибір серед усіх альтернатив. - [2024 holiday insights for subscription apps](https://adapty.io/zh/2024-holiday-insights-for-subscription-apps/): 透過 Adapty 的報告,探索將假日商機轉化為應用程式成長的頂尖趨勢與實用方法。 - [2024 holiday insights for subscription apps](https://adapty.io/fr/2024-holiday-insights-for-subscription-apps/): Explore top trends and practical ways to turn holiday opportunities into app growth with Adapty's report. - [2024 holiday insights for subscription apps](https://adapty.io/de/2024-holiday-insights-for-subscription-apps/): Entdecken Sie die wichtigsten Trends und praktische Möglichkeiten, wie Sie mit dem Adapty-Bericht die Chancen des Urlaubs in App-Wachstum verwandeln können. - [2024 holiday insights for subscription apps](https://adapty.io/ja/2024-holiday-insights-for-subscription-apps/): Explore top trends and practical ways to turn holiday opportunities into app growth with Adapty's report. - [2024 holiday insights for subscription apps](https://adapty.io/pl/2024-holiday-insights-for-subscription-apps/): Poznaj najważniejsze trendy i praktyczne sposoby na przekształcenie świątecznych okazji w rozwój aplikacji dzięki raportowi Adapty. - [2024 holiday insights for subscription apps](https://adapty.io/ru/2024-holiday-insights-for-subscription-apps/): Изучите основные тенденции и практические способы превратить праздничные возможности в рост приложений с помощью отчета Adapty. - [2024 holiday insights for subscription apps](https://adapty.io/pt/2024-holiday-insights-for-subscription-apps/): Explore as principais tendências e formas práticas de transformar as oportunidades de férias em crescimento de aplicações com o relatório da Adapty. - [2024 holiday insights for subscription apps](https://adapty.io/es/2024-holiday-insights-for-subscription-apps/): Explore las principales tendencias y formas prácticas de convertir las oportunidades de las vacaciones en crecimiento de las aplicaciones con el informe de Adapty. - [2024 holiday insights for subscription apps](https://adapty.io/tr/2024-holiday-insights-for-subscription-apps/): Adapty'nin raporu ile tatil fırsatlarını uygulama büyümesine dönüştürmenin en önemli trendlerini ve pratik yollarını keşfedin. - [2024 holiday insights for subscription apps](https://adapty.io/ua/2024-holiday-insights-for-subscription-apps/): Вивчіть основні тенденції та практичні способи перетворення святкових можливостей на зростання додатків у звіті Adapty. - [2024 holiday insights for subscription apps](https://adapty.io/ko/2024-holiday-insights-for-subscription-apps/): 애드앱티의 보고서를 통해 홀리데이 기회를 앱 성장으로 전환하는 주요 트렌드와 실용적인 방법을 알아보세요. - [2024 holiday insights for subscription apps](https://adapty.io/2024-holiday-insights-for-subscription-apps/): Explore top trends and practical ways to turn holiday opportunities into app growth with Adapty's report. - [LTV Prediction Model](https://adapty.io/zh/ltv-prediction-model/): 取得免費的 LTV 預測範本來規劃您的應用程式成長。它可以計算從 7 天到 4 年期間的收入、ARPPU、ROAS 和 LTV。 - [LTV Prediction Model](https://adapty.io/fr/ltv-prediction-model/): Obtenez gratuitement le modèle LTV Predict pour planifier la croissance de votre application. Il calcule les revenus, l'ARPPU, le ROAS et le LTV pour des périodes allant de 7 jours à 4 ans. - [LTV Prediction Model](https://adapty.io/de/ltv-prediction-model/): Holen Sie sich das kostenlose LTV Predict Template, um das Wachstum Ihrer App zu planen. Es berechnet Umsatz, ARPPU, ROAS und LTV für Zeiträume von 7 Tagen bis 4 Jahren. - [LTV Prediction Model](https://adapty.io/ja/ltv-prediction-model/): アプリの成長を計画するためのLTV予測テンプレートを無料で入手できます。7日から4年までの期間の収益、ARPPU、ROAS、LTVを計算します。 - [LTV Prediction Model](https://adapty.io/ko/ltv-prediction-model/): 무료 LTV 예측 템플릿을 다운로드하여 앱의 성장을 계획하세요. 7일에서 4년까지의 기간 동안의 매출, ARPPU, ROAS 및 LTV를 계산합니다. - [LTV Prediction Model](https://adapty.io/pl/ltv-prediction-model/): Pobierz darmowy szablon LTV Predict Template, aby zaplanować rozwój swojej aplikacji. Oblicza przychody, ARPPU, ROAS i LTV dla okresów od 7 dni do 4 lat. - [LTV Prediction Model](https://adapty.io/pt/ltv-prediction-model/): Obtenha gratuitamente o LTV Predict Template para planear o crescimento da sua aplicação. Ele calcula a receita, ARPPU, ROAS e LTV para períodos que variam de 7 dias a 4 anos. - [LTV Prediction Model](https://adapty.io/ru/ltv-prediction-model/): Получите бесплатный шаблон LTV Predict, чтобы планировать рост вашего приложения. Он рассчитывает доход, ARPPU, ROAS и LTV для периодов от 7 дней до 4 лет. - [LTV Prediction Model](https://adapty.io/es/ltv-prediction-model/): Consigue gratis la plantilla LTV Predict para planificar el crecimiento de tu app. Calcula ingresos, ARPPU, ROAS y LTV para periodos de 7 días a 4 años. - [LTV Prediction Model](https://adapty.io/tr/ltv-prediction-model/): Uygulamanızın büyümesini planlamak için ücretsiz LTV Tahmin Şablonu edinin. Gelir, ARPPU, ROAS ve LTV'yi 7 gün ile 4 yıl arasında değişen dönemler için hesaplar. - [LTV Prediction Model](https://adapty.io/ua/ltv-prediction-model/): Отримайте безкоштовний шаблон LTV Predict, щоб планувати зростання вашого додатку. Він розраховує дохід, ARPPU, ROAS і LTV для періодів від 7 днів до 4 років. - [LTV Prediction Model](https://adapty.io/ltv-prediction-model/): Get free LTV Predict Template to plan your app’s growth. It calculates revenue, ARPPU, ROAS, and LTV for periods ranging from 7 days to 4 years. - [[Webinar|RU] 18/09 Как повысить конверсию пейволла](https://adapty.io/ru/increase-paywall-conversion/): Поделимся простыми, но действенными советами по повышению конверсий. - [[Webinar|TR] 10/09 Paywall Builder Demo](https://adapty.io/tr/increase-paywall-conversion/): Dönüşümlerinizi arttırmanıza yardımcı olacak ve kolayca uygulayabileceğiniz pratik ipuçlarını paylaşacağımız webinarda bize katılın. - [[Webinar|EN] 17/09 Tips to grow paywall conversion](https://adapty.io/increase-paywall-conversion/): Join us for a laid-back, practical webinar where we’ll share simple tips you can apply right away to boost conversions without all the fluff. - [Grow your app faster](https://adapty.io/zh/grow-your-app-faster/): 使用 Adapty 將您的激情專案轉換為成功的應用程式。無縫整合應用程式內購買、優化付費牆,並獲得寶貴的財務洞察力。 - [Grow your app faster](https://adapty.io/fr/grow-your-app-faster/): Transformez votre projet de passion en une application à succès avec Adapty. Intégrez de manière transparente les achats in-app, optimisez les paywalls et obtenez des informations financières précieuses. - [Grow your app faster](https://adapty.io/de/grow-your-app-faster/): Verwandeln Sie Ihr Lieblingsprojekt mit Adapty in eine erfolgreiche App. Integrieren Sie nahtlos In-App-Käufe, optimieren Sie Paywalls und gewinnen Sie wertvolle finanzielle Einblicke. - [Grow your app faster](https://adapty.io/ja/grow-your-app-faster/): Adaptyを使って、あなたの情熱的なプロジェクトを成功するアプリに変えましょう。アプリ内課金をシームレスに統合し、ペイウォールを最適化し、貴重な財務インサイトを得ることができます。 - [Grow your app faster](https://adapty.io/ko/grow-your-app-faster/): 애드앱으로 열정적인 프로젝트를 성공적인 앱으로 전환하세요. 인앱 구매를 원활하게 통합하고, 페이월을 최적화하고, 귀중한 재무 인사이트를 확보하세요. - [Grow your app faster](https://adapty.io/pl/grow-your-app-faster/): Przekształć swój pasjonujący projekt w odnoszącą sukcesy aplikację dzięki Adapty. Płynnie zintegruj zakupy w aplikacji, zoptymalizuj paywalle i uzyskaj cenne informacje finansowe. - [Grow your app faster](https://adapty.io/pt/grow-your-app-faster/): Transforme seu projeto de paixão em um aplicativo de sucesso com Adapty. Integre perfeitamente as compras in-app, optimize os paywalls e obtenha informações financeiras valiosas. - [Grow your app faster](https://adapty.io/ru/grow-your-app-faster/): Превратите свой страстный проект в успешное приложение с помощью Adapty. Легко интегрируйте покупки в приложении, оптимизируйте пейволлы и получайте ценные финансовые данные. - [Grow your app faster](https://adapty.io/es/grow-your-app-faster/): Transforma el proyecto de tu pasión en una aplicación de éxito con Adapty. Integra a la perfección las compras dentro de la aplicación, optimiza los paywalls y obtén valiosa información financiera. - [Grow your app faster](https://adapty.io/tr/grow-your-app-faster/): Adapty ile tutku projenizi başarılı bir uygulamaya dönüştürün. Uygulama içi satın alımları sorunsuz bir şekilde entegre edin, ödeme duvarlarını optimize edin ve değerli finansal bilgiler edinin. - [Grow your app faster](https://adapty.io/ua/grow-your-app-faster/): Перетворіть свій проект на успішний додаток за допомогою Adapty. Легко інтегруйте покупки в додатку, оптимізуйте пейволі та отримайте цінну фінансову інформацію. - [Grow your app faster](https://adapty.io/grow-your-app-faster/): Transform your passion project into a successful app with Adapty. Seamlessly integrate in-app purchases, optimize paywalls, and gain valuable financial insights. - [Start making money with your new app](https://adapty.io/start-making-money-with-new-app/): Launch your app with Adapty! Optimize monetization, integrate in-app purchases, and gain key analytics for user growth and retention. Start for free! - [Start making money with your new app](https://adapty.io/zh/start-making-money-with-new-app/): 使用 Adapty 推出您的應用程式!優化貨幣化,整合應用程式內購買,並獲得用戶成長和保留的關鍵分析。免費開始! - [Start making money with your new app](https://adapty.io/fr/start-making-money-with-new-app/): Lancez votre application avec Adapty ! Optimisez la monétisation, intégrez les achats in-app et obtenez des analyses clés pour la croissance et la fidélisation des utilisateurs. Commencez gratuitement ! - [Start making money with your new app](https://adapty.io/de/start-making-money-with-new-app/): Starten Sie Ihre App mit Adapty! Optimieren Sie die Monetarisierung, integrieren Sie In-App-Käufe und gewinnen Sie wichtige Analysen für Nutzerwachstum und -bindung. Starten Sie kostenlos! - [Start making money with your new app](https://adapty.io/ja/start-making-money-with-new-app/): Adaptyでアプリを立ち上げましょう!マネタイズを最適化し、アプリ内課金を統合して、ユーザーの成長と維持のための重要な分析を得ることができます。まずは無料でお試しください! - [Start making money with your new app](https://adapty.io/ko/start-making-money-with-new-app/): 어댑티로 앱을 출시하세요! 수익 창출을 최적화하고, 인앱 구매를 통합하고, 사용자 성장과 유지를 위한 주요 분석 정보를 얻으세요. 지금 무료로 시작하세요! - [Start making money with your new app](https://adapty.io/pl/start-making-money-with-new-app/): Uruchom swoją aplikację z Adapty! Zoptymalizuj monetyzację, zintegruj zakupy w aplikacji i uzyskaj kluczowe analizy dotyczące wzrostu i utrzymania użytkowników. Zacznij za darmo! - [Start making money with your new app](https://adapty.io/pt/start-making-money-with-new-app/): Lance a sua aplicação com Adapty! Optimize a monetização, integre as compras in-app e obtenha análises importantes para o crescimento e retenção de utilizadores. Comece gratuitamente! - [Start making money with your new app](https://adapty.io/ru/start-making-money-with-new-app/): Launch your app with Adapty! Optimize monetization, integrate in-app purchases, and gain key analytics for user growth and retention. Start for free! - [Start making money with your new app](https://adapty.io/es/start-making-money-with-new-app/): ¡Lanza tu aplicación con Adapty! Optimiza la monetización, integra las compras dentro de la aplicación y obtén análisis clave para el crecimiento y la retención de usuarios. ¡Empieza gratis! - [Start making money with your new app](https://adapty.io/tr/start-making-money-with-new-app/): Uygulamanızı Adapty ile başlatın! Para kazanmayı optimize edin, uygulama içi satın alımları entegre edin ve kullanıcı büyümesi ve elde tutma için önemli analizler elde edin. Ücretsiz başlayın! - [Start making money with your new app](https://adapty.io/ua/start-making-money-with-new-app/): Launch your app with Adapty! Optimize monetization, integrate in-app purchases, and gain key analytics for user growth and retention. Start for free! - [Contact us](https://adapty.io/contacts/): Need assistance or have questions? Contact Adapty today! Reach out to our team for support, inquiries, or to learn more about our services. - [Contact us](https://adapty.io/zh/contacts/): 需要協助或有疑問?立即聯絡 Adapty!聯絡我們的團隊尋求支援、查詢或瞭解更多有關我們的服務。 - [Contact us](https://adapty.io/fr/contacts/): Vous avez besoin d'aide ou vous avez des questions ? Contactez Adapty dès aujourd'hui ! Contactez notre équipe pour obtenir de l'aide, poser des questions ou en savoir plus sur nos services. - [Contact us](https://adapty.io/de/contacts/): Brauchen Sie Hilfe oder haben Sie Fragen? Kontaktieren Sie Adapty noch heute! Wenden Sie sich an unser Team für Unterstützung, Anfragen oder um mehr über unsere Dienstleistungen zu erfahren. - [Contact us](https://adapty.io/ja/contacts/): サポートが必要ですか?今すぐAdaptyにご連絡ください!サポート、お問い合わせ、サービスの詳細については、私たちのチームにご連絡ください。 - [Contact us](https://adapty.io/ko/contacts/): 도움이 필요하거나 질문이 있으신가요? 지금 바로 어댑티에 문의하세요! 지원이나 문의 사항이 있거나 서비스에 대해 자세히 알아보려면 팀에 문의하세요. - [Contact us](https://adapty.io/pl/contacts/): Potrzebujesz pomocy lub masz pytania? Skontaktuj się z Adapty już dziś! Skontaktuj się z naszym zespołem, aby uzyskać wsparcie, zapytać lub dowiedzieć się więcej o naszych usługach. - [Contact us](https://adapty.io/pt/contacts/): Precisa de assistência ou tem dúvidas? Contacte a Adapty hoje mesmo! Contacte a nossa equipa para obter apoio, questões ou para saber mais sobre os nossos serviços. - [Contact us](https://adapty.io/ru/contacts/): Нужна помощь или есть вопросы? Свяжитесь с Adapty сегодня! Свяжитесь с нашей командой, чтобы получить поддержку, задать вопросы или узнать больше о наших услугах. - [Contact us](https://adapty.io/es/contacts/): ¿Necesita ayuda o tiene alguna pregunta? Póngase en contacto con Adapty hoy mismo. Póngase en contacto con nuestro equipo para obtener asistencia, realizar consultas o saber más sobre nuestros servicios. - [Contact us](https://adapty.io/tr/contacts/): Yardıma mı ihtiyacınız var veya sorularınız mı var? Adapty ile bugün iletişime geçin! Destek, sorularınız veya hizmetlerimiz hakkında daha fazla bilgi edinmek için ekibimize ulaşın. - [Contact us](https://adapty.io/ua/contacts/): Потрібна допомога або є питання? Зверніться до Adapty вже сьогодні! Зверніться до нашої команди за підтримкою, запитами або щоб дізнатися більше про наші послуги. - [Turn your app into a profitable business](https://adapty.io/zh/turn-indie-app-into-business/): 學習如何使用 Adapty 讓您的獨立應用程式獲利。整合 IAP、建立付費牆、執行 A/B 測試以及使用行動分析。 - [Turn your app into a profitable business](https://adapty.io/fr/turn-indie-app-into-business/): Apprenez à rentabiliser votre application indépendante avec Adapty. Intégrez les IAP, créez des paywalls, effectuez des tests A/B et utilisez l'analyse mobile. - [Turn your app into a profitable business](https://adapty.io/de/turn-indie-app-into-business/): Lernen Sie, wie Sie Ihre Indie-App mit Adapty profitabel machen können. Integrieren Sie IAPs, erstellen Sie Paywalls, führen Sie A/B-Tests durch und nutzen Sie mobile Analysen. - [Turn your app into a profitable business](https://adapty.io/ja/turn-indie-app-into-business/): Adaptyを使ってインディーズアプリを収益性の高いものにする方法を学びましょう。IAPの統合、ペイウォールの作成、A/Bテストの実行、モバイル分析の使用。 - [Turn your app into a profitable business](https://adapty.io/ko/turn-indie-app-into-business/): 애드앱으로 인디 앱의 수익성을 높이는 방법을 알아보세요. IAP를 통합하고, 페이월을 만들고, A/B 테스트를 실행하고, 모바일 애널리틱스를 사용하세요. - [Turn your app into a profitable business](https://adapty.io/pl/turn-indie-app-into-business/): Dowiedz się, jak sprawić, by Twoja niezależna aplikacja przynosiła zyski dzięki Adapty. Integruj IAP, twórz paywalle, przeprowadzaj testy A/B i korzystaj z analityki mobilnej. - [Turn your app into a profitable business](https://adapty.io/pt/turn-indie-app-into-business/): Adapty ile bağımsız uygulamanızı nasıl kârlı hale getireceğinizi öğrenin. IAP'leri entegre edin, ödeme duvarları oluşturun, A/B testleri yapın ve mobil analizleri kullanın. - [Turn your app into a profitable business](https://adapty.io/ru/turn-indie-app-into-business/): Узнайте, как сделать ваше инди-приложение прибыльным с помощью Adapty. Интегрируйте IAP, создавайте пейволлы, проводите A/B-тесты и используйте мобильную аналитику. - [Turn your app into a profitable business](https://adapty.io/es/turn-indie-app-into-business/): Aprende a rentabilizar tu app indie con Adapty. Integra IAPs, crea paywalls, realiza tests A/B y utiliza analíticas móviles. - [Turn your app into a profitable business](https://adapty.io/tr/turn-indie-app-into-business/): Dowiedz się, jak sprawić, by Twoja niezależna aplikacja przynosiła zyski dzięki Adapty. Integruj IAP, twórz paywalle, przeprowadzaj testy A/B i korzystaj z analityki mobilnej. - [Turn your app into a profitable business](https://adapty.io/ua/turn-indie-app-into-business/): Дізнайтеся, як зробити свій інді-додаток прибутковим за допомогою Adapty. Інтегруйте IAP, створюйте пейволі, запускайте A/B тести та використовуйте мобільну аналітику. - [Turn your app into a profitable business](https://adapty.io/turn-indie-app-into-business/): Learn how to make your indie app profitable with Adapty. Integrate IAPs, create paywalls, run A/B tests, and use mobile analytics. - [Apple receipt checker](https://adapty.io/zh/apple-receipt-checker/): 通过我们的 Apple 收据检查器轻松验证 iOS 应用内购买。确保交易的真实性,并防止您 iOS 应用中的欺诈行为。 - [Apple receipt checker](https://adapty.io/fr/apple-receipt-checker/): Validez facilement les achats in-app iOS avec notre Vérificateur de Reçus Apple. Assurez l'authenticité des transactions et prévenez la fraude dans vos applications iOS. - [Apple receipt checker](https://adapty.io/ja/apple-receipt-checker/): 私たちのAppleレシートチェッカーを使用して、iOSのアプリ内購入を簡単に検証できます。トランザクションの真実性を確保し、iOSアプリでの詐欺を防ぎましょう。 - [Apple receipt checker](https://adapty.io/ko/apple-receipt-checker/): Apple 영수증 검사기를 통해 iOS 인앱 구매를 쉽게 검증하세요. 거래의 진위성을 보장하고 iOS 앱에서 사기를 방지하세요. - [Apple receipt checker](https://adapty.io/pl/apple-receipt-checker/): Łatwo weryfikuj zakupy w aplikacji iOS za pomocą naszego narzędzia Apple Receipt Checker. Zapewnij autentyczność transakcji i zapobiegaj oszustwom w swoich aplikacjach iOS. - [Apple receipt checker](https://adapty.io/pt/apple-receipt-checker/): Valide facilmente as compras dentro do aplicativo iOS com nosso Verificador de Recibos da Apple. Garanta a autenticidade das transações e previna fraudes em seus aplicativos iOS. - [Apple receipt checker](https://adapty.io/ru/apple-receipt-checker/): Легко проверяйте покупки в приложении для iOS с помощью нашего Проверятора Чеков Apple. Обеспечьте подлинность транзакций и предотвращайте мошенничество в ваших приложениях iOS. - [Apple receipt checker](https://adapty.io/es/apple-receipt-checker/): Valida fácilmente las compras en la aplicación de iOS con nuestro Verificador de Recibos de Apple. Asegura la autenticidad de las transacciones y previene fraudes en tus aplicaciones de iOS. - [Apple receipt checker](https://adapty.io/apple-receipt-checker/): Easily validate iOS in-app purchases with our Apple Receipt Checker. Ensure transaction authenticity and prevent fraud in your iOS apps. - [Apple receipt checker](https://adapty.io/ua/apple-receipt-checker/): Легко перевіряйте покупки в застосунку iOS за допомогою нашого Apple Receipt Checker. Забезпечте справжність транзакцій та запобігайте шахрайству у своїх застосунках для iOS. - [Apple receipt checker](https://adapty.io/de/apple-receipt-checker/): Validieren Sie ganz einfach In-App-Käufe auf iOS mit unserem Apple Receipt Checker. Stellen Sie die Authentizität von Transaktionen sicher und verhindern Sie Betrug in Ihren iOS-Apps. - [Apple receipt checker](https://adapty.io/tr/apple-receipt-checker/): Kolayca iOS uygulamanızda in-app purchases'i Apple Makbuz Kontrolcümüzle doğrulayın. İşlem yetkililiğini sağlayın ve iOS uygulamalarınızda dolandırıcılığı önleyin. - [State of in-app subscriptions 2025](https://adapty.io/state-of-in-app-subscriptions/): Download Adapty’s 2025 State of in-app subscriptions report powered by $1.9B in revenue from 11,000+ apps to uncover pricing, monetization & growth benchmarks. - [State of in-app subscriptions 2025](https://adapty.io/ua/state-of-in-app-subscriptions/): Завантажте звіт Adapty «Стан внутрішньоігрових підписок у 2025 році», створений на основі $1,9 млрд доходу від понад 11 000 застосунків, щоб дізнатись про ціноутворення, монетизацію та ключові показники зростання. - [State of in-app subscriptions 2025](https://adapty.io/zh/state-of-in-app-subscriptions/): 下载 Adapty 的 2025 年应用内订阅状态报告,凭借 11,000+ 应用的 19 亿美元收入,揭示定价、货币化与增长基准。 - [State of in-app subscriptions 2025](https://adapty.io/fr/state-of-in-app-subscriptions/): Téléchargez le rapport 2025 sur l'état des abonnements in-app d'Adapty, alimenté par 1,9 milliard de dollars de revenus provenant de plus de 11 000 applications pour découvrir les prix, la monétisation et les indicateurs de croissance. - [State of in-app subscriptions 2025](https://adapty.io/de/state-of-in-app-subscriptions/): Laden Sie Adaptys Bericht über den Stand der In-App-Abonnements 2025 herunter, der von 1,9 Mrd. USD Umsatz aus über 11.000 Apps unterstützt wird, um Preisgestaltung, Monetarisierung und Wachstumsbenchmarks zu enthüllen. - [State of in-app subscriptions 2025](https://adapty.io/ja/state-of-in-app-subscriptions/): Adaptyの2025年のアプリ内サブスクリプションレポートをダウンロードし、11,000以上のアプリから得られた19億ドルの収益を活用して、価格設定、マネタイズ、および成長のベンチマークを明らかにしましょう。 - [State of in-app subscriptions 2025](https://adapty.io/ko/state-of-in-app-subscriptions/): 11,000개 이상의 앱에서 발생한 19억 달러의 수익으로 지원되는 Adapty의 2025년 인앱 구독 상태 보고서를 다운로드하여 가격 책정, 수익화 및 성장 벤치마크를 확인하세요. - [State of in-app subscriptions 2025](https://adapty.io/pl/state-of-in-app-subscriptions/): Pobierz raport „State of In-App Subscriptions 2025” od Adapty, oparty na danych o przychodach w wysokości 1,9 mld USD z ponad 11 000 aplikacji, aby poznać benchmarki cenowe, monetyzacyjne i wzrostowe. - [State of in-app subscriptions 2025](https://adapty.io/pt/state-of-in-app-subscriptions/): Baixe o relatório "State of In-App Subscriptions 2025" da Adapty, baseado em US$ 1,9 bilhão de receita gerada por mais de 11.000 apps, e descubra referências de preços, monetização e crescimento. - [State of in-app subscriptions 2025](https://adapty.io/ru/state-of-in-app-subscriptions/): Скачайте отчет Adapty «Состояние рынка in-app подписок в 2025 году», основанный на $1,9 млрд дохода от более чем 11 000 приложений, чтобы узнать ключевые бенчмарки ценообразования, монетизации и роста. - [State of in-app subscriptions 2025](https://adapty.io/es/state-of-in-app-subscriptions/): Descarga el informe de Adapty «Estado de las suscripciones in-app 2025», respaldado por 1.900 millones de dólares en ingresos de más de 11.000 apps, y descubre referencias clave de precios, monetización y crecimiento. - [State of in-app subscriptions 2025](https://adapty.io/tr/state-of-in-app-subscriptions/): Adapty’nin 2025 Yılı Uygulama İçi Abonelikler Raporunu indirin; 11,000'den fazla uygulamadan elde edilen $1.9B'lık geliri kullanarak fiyatlandırma, monetizasyon & büyüme ölçütlerini keşfedin. - [Community](https://adapty.io/zh/community/): 透過應用程式貨幣化的頂級 Slack 社群 SubHub,提升您的應用程式之旅。與專家聯繫、交換意見並獲得獨家見解。 - [Community](https://adapty.io/fr/community/): Améliorez votre parcours d'application avec SubHub, la meilleure communauté Slack pour la monétisation des applications. Entrez en contact avec des experts, échangez des idées et obtenez des informations exclusives. - [Community](https://adapty.io/de/community/): Verbessern Sie Ihre App-Reise mit SubHub, der führenden Slack-Community für App-Monetarisierung. Verbinden Sie sich mit Experten, tauschen Sie Ideen aus und gewinnen Sie exklusive Einblicke. - [Community](https://adapty.io/ja/community/): アプリ収益化のためのトップSlackコミュニティ、SubHubでアプリの旅を高めましょう。専門家とつながり、アイデアを交換し、独占的な洞察を得ましょう。 - [Community](https://adapty.io/ko/community/): 앱 수익화를 위한 최고의 Slack 커뮤니티인 SubHub를 통해 앱 여정을 개선하세요. 전문가와 소통하고, 아이디어를 교환하고, 독점적인 인사이트를 얻으세요. - [Community](https://adapty.io/pl/community/): Podnieś poziom swojej aplikacji dzięki SubHub, najlepszej społeczności Slack do monetyzacji aplikacji. Kontaktuj się z ekspertami, wymieniaj się pomysłami i zdobywaj wyjątkowe spostrzeżenia. - [Community](https://adapty.io/pt/community/): Eleve a jornada do seu aplicativo com o SubHub, a principal comunidade do Slack para monetização de aplicativos. Conecte-se com especialistas, troque ideias e obtenha insights exclusivos. - [Community](https://adapty.io/ru/community/): Повысьте свой уровень развития приложений с помощью SubHub, лучшего сообщества Slack по монетизации приложений. Общайтесь с экспертами, обменивайтесь идеями и получайте эксклюзивные знания. - [Community](https://adapty.io/es/community/): Mejore la experiencia de su aplicación con SubHub, la mejor comunidad de Slack para la monetización de aplicaciones. Conecta con expertos, intercambia ideas y obtén información exclusiva. - [Community](https://adapty.io/tr/community/): Uygulamadan para kazanma konusunda en iyi Slack topluluğu olan SubHub ile uygulama yolculuğunuzu yükseltin. Uzmanlarla bağlantı kurun, fikir alışverişinde bulunun ve özel bilgiler edinin. - [Community](https://adapty.io/ua/community/): Підніміть свій шлях до успіху з SubHub, провідною спільнотою Slack для монетизації додатків. Спілкуйтеся з експертами, обмінюйтеся ідеями та отримуйте ексклюзивні інсайти. - [Community](https://adapty.io/community/): Elevate your app journey with SubHub, the top Slack community for app monetization. Connect with experts, exchange ideas, and gain exclusive insights. - [Privacy Policy](https://adapty.io/privacy/): Learn how Adapty collects, uses, and protects your personal information. Read our privacy policy to understand our commitment to your data privacy. - [Privacy Policy](https://adapty.io/zh/privacy/): 了解 Adapty 如何收集、使用和保護您的個人資訊。閱讀我們的隱私權政策,瞭解我們對您資料隱私的承諾。 - [Privacy Policy](https://adapty.io/fr/privacy/): Découvrez comment Adapty recueille, utilise et protège vos informations personnelles. Lisez notre politique de confidentialité pour comprendre notre engagement envers la protection de vos données. - [Privacy Policy](https://adapty.io/de/privacy/): Erfahren Sie, wie Adapty Ihre persönlichen Daten sammelt, verwendet und schützt. Lesen Sie unsere Datenschutzrichtlinie, um unser Engagement für den Datenschutz zu verstehen. - [Privacy Policy](https://adapty.io/ja/privacy/): Adaptyがお客様の個人情報をどのように収集し、使用し、保護しているかについてご覧ください。当社のプライバシーポリシーをお読みいただき、お客様のデータプライバシーに対する当社の取り組みをご理解ください。 - [Privacy Policy](https://adapty.io/ko/privacy/): Adapty가 개인정보를 수집, 사용 및 보호하는 방법을 알아보세요. 개인정보 보호정책을 읽고 개인정보 보호에 대한 당사의 약속을 이해하세요. --- ## Posts - [Paywall Newsletter #26: Smart paywalls from plant apps](https://adapty.io/blog/paywall-newsletter-26/): A closer look at plant care paywalls shows surprising lessons in pricing and packaging in Adapty's Paywall Newsletter - [Turn tomorrow’s revenue into today’s growth: Introducing Adapty Finance](https://adapty.io/blog/introducing-adapty-finance/): Turn tomorrow's app revenue into today's growth capital with Adapty Finance. Get up to 85% of your earned App Store/Google Play revenue in 1-2 days. No debt, no equity risk. - [Paywall Newsletter #25: Cloudy with a chance of conversions](https://adapty.io/blog/paywall-newsletter-25/): Learn how weather apps design paywalls that convert. See what works for them and what you can apply to your own app. - [Paywall Newsletter #24: Keeping your focus](https://adapty.io/blog/paywall-newsletter-24/): With so many distractions around, users pay to stay focused. We broke down how focus tool apps convert, and what really works for them. - [How adding friction before your app's paywall can grow your revenue](https://adapty.io/blog/how-friction-can-grow-your-apps-revenue/): Not every app needs fewer onboarding screens. Learn how the Jobs-to-Be-Done framework can streamline your onboarding flow, engage users, and increase revenue. - [Clearer docs, faster integrations: What’s new at Adapty](https://adapty.io/blog/blog-adapty-sdk-docs-update/): Adapty’s docs just got a major upgrade: clearer structure, platform-specific SDK guides, Quickstart steps, and LLM-ready pages for faster integrations. - [Paywall Newsletter #23: Education made profitable](https://adapty.io/blog/paywall-newsletter-23/): What does it take to convert users in education apps? We analyzed paywalls from “study essentials” apps to see what drives subscriptions. - [Quickstart Adapty setup guide: Flutter](https://adapty.io/blog/quickstart-adapty-setup-guide-flutter/): Get from zero Adapty setup to displaying a paywall and processing purchases in under 60 minutes. Pre-requisites Before you begin,... - [Quickstart Adapty setup guide: Android](https://adapty.io/blog/quickstart-adapty-setup-guide-android/): Get from zero Adapty setup to displaying a paywall and processing purchases in under 60 minutes. Pre-requisites Before you begin,... - [How to analyze and optimize Apple Search Ads in 2025?](https://adapty.io/blog/how-to-analyze-and-optimize-apple-ads/): Learn how to analyze and optimize Apple Search Ads in 2025 with proven strategies, tools, and tips to boost conversions and maximize ROI. - [Apple Search Ads guide for 2025: Best practices from beginner to expert](https://adapty.io/blog/apple-ads-best-practices/): Discover the best Apple Search Ads practices for 2025. This step-by-step guide covers placements, targeting, bidding, creatives, and optimization tips to boost your app's growth. - [Paywall Newsletter #22: From calories to conversions](https://adapty.io/blog/paywall-newsletter-22/): How do top-performing calorie counter apps make people subscribe? We studied their paywalls to understand what works and what they could test to drive even better results. - [The art of conversion: How Health & Fitness apps nail upselling on iOS](https://adapty.io/blog/how-health-and-fitness-apps-nail-upselling-on-ios/): Why do Health & Fitness apps convert so effectively? We break down the funnels of three top apps to uncover the upselling strategies and product tactics behind their success. - [Apple Search Ads beginner's guide: From setup to revenue optimization](https://adapty.io/blog/apple-search-ads/): Learn how Apple Search Ads work: discover ad placements, pricing models, and bidding strategies to boost your app visibility and maximize ROI. - [How to sell your app for maximum value: Insights into what buyers want](https://adapty.io/blog/selling-your-app-for-maximum-value/): How to sell an app in 2025? Learn expert tips, breaking down what boosts your app's valuation and what buyers look for in a deal. - [9 subscription economy trends dominating 2025: The complete strategy guide](https://adapty.io/blog/9-subscription-trends-dominating-2025/): Explore key subscription economy trends and fatigue statistics shaping 2025. Learn how consumer behavior is shifting and what it means for your subscription business model. - [Paywall Newsletter #21: How travel apps convert users](https://adapty.io/blog/paywall-newsletter-21/): We analyzed large and small travel apps and their paywalls to uncover how they convince users to subscribe. - [How to feed ad platforms the best signals and reduce your CAC](https://adapty.io/blog/how-to-lower-cac-with-ad-platform-signals/): Discover how to lower customer acquisition costs by sending high-quality signals to ad platforms. Boost campaign performance with smarter data strategies. - [State of in-app subscriptions 2025: everything you need to know in 10 minutes](https://adapty.io/blog/state-of-in-app-subscriptions-2025-in-10-minutes/): Highlights from the State of in-app subscriptions 2025 report, with clear tips to improve pricing, retention, and monetization. - [Is Apple's new EU in-app purchase fee system more complex than ever?](https://adapty.io/blog/apple-eu-in-app-purchase-fee-system-2025/): Apple replaced its €0.50 in-app purchase fee with a complex multi-tier system (2-13%) to comply with EU rules. Should developers switch? Full breakdown. - [How to go from product-market fit to profit in your subscription app](https://adapty.io/blog/from-pmf-to-profit-in-subscription-app/): Learn how to monetize a subscription app without falling into the common early-stage traps. - [Quickstart Adapty setup guide: React Native with Expo](https://adapty.io/blog/quickstart-adapty-setup-guide-react-native-with-expo/): Get from zero Adapty setup to displaying a paywall and processing purchases in under 60 minutes using Expo and React... - [WWDC25: Apple’ın geliştiriciler için yenilikleri ve daha fazlası](https://adapty.io/blog/wwdc25-applein-gelistiriciler-icin-yenilikleri-ve-daha-fazlasi/): TL;DR: Apple, AI destekli app discovery, 100+ yeni App Analytics metriği, Xcode içinde ChatGPT entegrasyonu, gelişmiş attribution araçları ve App... - [How to build personalized paywalls with user attributes and Adapty segments](https://adapty.io/blog/how-to-build-personalized-paywalls/): Learn how to build personalized paywalls using HealthKit workout data and Adapty user segments. Complete guide with SwiftUI code examples for higher conversion. - [WWDC25 summary: What Apple announced and what does it mean for app developers?](https://adapty.io/blog/wwdc25-what-apple-announced/): WWDC25: AI-powered App Store discovery, 100+ new analytics, on-device LLMs, and tools that will transform your app's growth. Here's what matters most. - [How to add Android in-app purchases to your app in 10 minutes](https://adapty.io/blog/add-android-in-app-purchases-to-your-app/): Learn to add Android in-app purchases using Adapty SDK and Jetpack Compose. Complete tutorial with code examples, 10-minute setup guide. - [Quickstart Adapty Setup Guide: iOS with UIKit](https://adapty.io/blog/quickstart-adapty-setup-guide-ios-with-uikit/): Get from zero Adapty setup to displaying a paywall and processing purchases in under 30 minutes. Pre-requisites Project Files To... - [How to increase app revenue: Push notifications and targeted messaging](https://adapty.io/blog/how-to-use-push-notifications-to-increase-app-revenue/): Learn how top subscription apps use push notifications and targeted messaging to convert trials, reduce churn, and grow revenue without... - [Quickstart Adapty setup guide: iOS with SwiftUI](https://adapty.io/blog/quickstart-adapty-setupguide-ios-with-swiftui/): Learn how to integrate Adapty SDK into your iOS SwiftUI app in under 60 minutes. Complete tutorial with step-by-step code examples. - [Guide to ad testing: How to test and scale ads for web-to-app in 2025](https://adapty.io/blog/guide-to-ad-testing/): Ad testing is key to web-to-app growth. Learn how top teams find winning creatives and scale them fast. - [How to validate server-side transactions with Apple's App Store Server API](https://adapty.io/blog/validating-iap-with-app-store-server-api/): Learn secure server-side transaction validation with Apple's App Store Server API. Covers JWT authentication, transaction validation, subscription management, and verifyReceipt... - [RevenueCat alternatives: Why I switched to Adapty for my indie weather app](https://adapty.io/blog/revenuecat-alternatives-why-i-switched-to-adapty/): Find the best RevenueCat alternative for your app. I compared StoreKit, RevenueCat, and Adapty for subscription management, paywalls, and A/B testing. - [Can you use Stripe for in-app purchases in 2025?](https://adapty.io/blog/can-you-use-stripe-for-in-app-purchases/): Cut your app fees in half. Learn how to use Stripe for in-app purchases and boost your revenue in 2025. - [Top 9 ways to monetize your app in 2025 and beyond](https://adapty.io/blog/mobile-app-monetization-strategies/): Here are all the mobile app monetization strategies you should consider for monetizing your free, freemium, or paid mobile app! - [Google App Campaigns playbook 2025: Setup, optimization, reporting & best practices](https://adapty.io/blog/google-app-campaigns-playbook-2025/): A complete guide to setting up, optimizing, and scaling Google App Campaigns in 2025 - [New U.S. ruling on external iOS payments](https://adapty.io/blog/new-us-ruling-on-external-ios-payments/): Apple can no longer charge fees on external iOS payments. Discover the opportunities, hidden costs, and strategic considerations for app developers. - [How to A/B test free trials on iOS](https://adapty.io/blog/how-to-ab-test-free-trials-on-ios/): Apple’s rules make A/B testing free trials tricky. This guide breaks down three workarounds that help you compare trial lengths and boost LTV - [Why Japanese ASO creatives need a different strategy](https://adapty.io/blog/why-japanese-aso-creatives-need-different-strategy/): Japanese app users think differently from US users. They value clarity, trust, and proof. Here's how to adapt your ASO creatives for Japan. - [How to reduce early churn and activate the second session](https://adapty.io/blog/how-to-reduce-early-churn/): Most users churn by day 3. We looked at how Brilliant got them to open the app again and found 5 tactics that work. - [Why your web-to-app funnel is broken and how to fix it](https://adapty.io/blog/why-your-web-to-app-funnel-is-broken-and-how-to-fix-it/): Web-to-app funnels can seriously boost your revenue, but they’re hard to build and easy to break. Here’s how to avoid... - [How to optimize ASO for Japan and why direct translations won't work](https://adapty.io/blog/how-to-optimize-aso-for-japan/): ASO in Japan is different. Search behavior, loanwords, and abbreviations change everything. Direct translations won’t work. So how do you... - [Paywall Newsletter #20: Apps built by women, loved by thousands](https://adapty.io/blog/paywall-newsletter-20/): Paywall Newsletter highlights thoughtful monetization strategies from women-led apps — full of ideas worth testing. - [What is web-to-app and how does it work](https://adapty.io/blog/what-is-web-to-app-and-how-does-it-work/): Web-to-app is taking over. And it rocks. Lower fees, better tracking, higher conversions. Want to see how it works and... - [February Adapty updates: Rich text, smarter taxes, and more](https://adapty.io/blog/february-adapty-updates-rich-text-smarter-taxes-and-more/): February brought exciting improvements, from richer paywall customization to enhanced revenue tracking. Check Adapty updates - [What Japanese paywalls look like and why Western strategies won’t work](https://adapty.io/blog/what-japanese-paywalls-look-like-and-why-western-strategies-wont-work/): Japanese paywalls focus on transparency, detailed explanations, and value-driven messaging. Discover why Western strategies fall short and how to adapt for success. - [How to use TikTok ads for subscription apps?](https://adapty.io/blog/how-to-use-tiktok-ads-for-subscription-apps/): TikTok is everywhere. Big brands, indie developers - everyone’s jumping in. And it’s not just hype. More and more apps are using TikTok ads to grow, and it’s working. Want to know how subscription apps do it? Read on. - [What is a product matrix and how to use it?](https://adapty.io/blog/product-matrix/): Discover the power of a product matrix with real-world examples, key benefits, and practical applications. Learn how to optimize product strategy and decision-making with this business tool. - [How Japanese apps onboard users and how it differs from the West](https://adapty.io/blog/how-japanese-apps-onboard-users/): Japanese apps rely on detailed guides, trust signals, and structured onboarding. No fast sign-ups or minimal screens. Adapting to local UX expectations is key. Here’s what you need to know. - [Adapty updates in January: Web API, AI translation in Paywall Builder and new integrations](https://adapty.io/blog/january-adapty-updates/): Track web purchases, auto-translate paywalls, and optimize subscriptions with Adapty updates in January. Smarter integrations, better insights, more growth. - [Mobil uygulamalar için TikTok Marketing](https://adapty.io/blog/mobil-uygulamalar-icin-tiktok-marketing/): TikTok diğer sosyal medya platformlarından ayrılan kendine has özellikleriyle mobil uygulama geliştiricilerin ve pazarlamacıların ilgisini çeken bir platform. Telegram topluluğumuzda... - [Navigating in-app subscription refunds, part 2](https://adapty.io/blog/how-to-make-adapty-free/): Refund Saver fights unfair refunds for you — no extra work needed. Most apps recover enough to cover Adapty’s cost. Flip the switch and start saving. - [Navigating in-app subscription refunds, part 3](https://adapty.io/blog/refund-saver/): Refund Saver recovers 2-3% of lost revenue by winning 80% of disputes and cutting refund rates by 50%. Learn how it works—and why it pays for itself. - [Paywall Newsletter #19](https://adapty.io/blog/paywall-newsletter-19/): We broke down the paywalls of App Store Award finalists in this Paywall Newsletter to see what works. From smart pricing to trust boosters - here’s what makes them convert (and how to use these tricks yourself). - [Navigating in-app subscription refunds, part 1](https://adapty.io/blog/what-refunds-are-why-they-matter/): Learn what refunds are, how they affect your app’s revenue, and why manual handling is a pain. Discover how Refund Saver helps recover lost revenue easily. - [Adapty updates in December: New year, new features!](https://adapty.io/blog/adapty-updates-in-december/): Start 2025 strong with Adapty’s latest updates: Refund Saver, video paywalls, auto-translation, smarter cohorts, and more tools for app growth. - [How to identify the North Star Metric for your product](https://adapty.io/blog/north-star-metric/): Here's how to identify your product's North Star metric and use it to align all your efforts and drive sustainable growth. Also, see how you can validate it. - [Adapty Wrapped 2024: celebrate your growth](https://adapty.io/blog/adapty-wrapped/): Discover your 2024 milestones with Adapty Wrapped. Celebrate your growth, share your wins, and enter to win app growth mentorship sessions! - [Adapty November updates: Refund Saver, new paywall builder features, win-back offers and more](https://adapty.io/blog/adapty-updates-in-november/): Refund Saver, new paywall builder features, win-back offers and more to make your app better and your work easier. - [Yazılım şirketleri için vergi ve teşvikler](https://adapty.io/blog/yazilim-sirketleri-icin-vergi-ve-tesvikler/): Yazılım şirketleri ve özellikle mobil uygulama geliştiren şirketlerden vergi ödemeleri, teşvikler ve istisnalar ile ilgili Telegram topluluğumuzda ve sosyal medyada... - [How to cut your app’s subscription refund rate by 40% in 15 days?](https://adapty.io/blog/how-to-cut-your-apps-subscription-refund-rate/): Refunds drain your profits. Each one chips away at your revenue, and many are unjustified. Here’s everything you need to know to reduce your refund rate. - [How do free apps make money?](https://adapty.io/blog/how-do-free-apps-make-money/): Wondering how free apps make money? Explore how free apps monetize and turn "free" into a sustainable and profitable mobile app business model. - [Paywall Newsletter #18](https://adapty.io/blog/paywall-newsletter-18/): In the 18th issue our expert shares tips on how to use paywall length, multiple plans, trial toggles, and other features to boost your paywall. - [Apple Search Ads artık Türkiye'de: tüm bilmeniz gereken detaylar](https://adapty.io/blog/apple-search-ads-artik-turkiyede-tum-bilmeniz-gereken-detaylar/): Apple Search Ads kendine özgü yanları, avantajlı ve dezavantajlı yönleriyle diğer reklam platformlarından farklı özelliklere sahip bir reklam platformudur. Apple... - [How to pitch your app idea to investors and get funded](https://adapty.io/blog/how-to-pitch-app-idea-to-investors/): Here’s how to pitch your mobile app idea to investors. Learn how to research your pitch deck, write the copy, and present it for maximum impact to get funded. - [How to get your first subscribers: Steve P. Young’s advice for indie developers](https://adapty.io/blog/how-to-get-your-first-subscribers/): Getting traction with your app isn’t easy, especially when you’re starting with no downloads or paying customers. Steve P. Young’s advice for indie developers. - [Adapty updates in October: New paywall builder features, promo offers analytics, and more](https://adapty.io/blog/adapty-updates-in-october/): New paywall builder features, promo offers analytics, and more... Let’s dive into what’s new and how these updates can work for you! - [App Store conversion rate benchmarks](https://adapty.io/blog/app-store-conversion-rate/): Discover the latest App Store conversion rates by category in 2025. Gain insights into key factors driving app installs and optimize your app listing. - [What is a soft launch (and how to do it for your app)?](https://adapty.io/blog/soft-launch-meaning/): Discover how soft launches for mobile apps can help optimize your new app or update for a more successful full release. - [Adapty updates in September: Paywall Builder for Android, win-back offers, and more](https://adapty.io/blog/adapty-updates-september-2024/): Check out Adapty’s September updates: Paywall Builder for Android, win-back offers, and improved install tracking. Better tools to make your app thrive. - [App Store's custom product pages: How to use them](https://adapty.io/blog/custom-product-pages-app-store/): Learn how to effectively use custom product pages in the App Store to boost app visibility, target specific audiences, and increase downloads. - [Adapty updates in August: Faster Funnels, hot webinars, and more](https://adapty.io/blog/adapty-updates-august-2024/): Fresh updates in August: Check out faster Funnels, view the recordings of our useful webinars, and learn more about indie-development in a new expert article. - [Why predictive analytics is important for mobile app growth](https://adapty.io/blog/predictive-analytics-for-mobile-apps/): Discover how predictive analytics boosts mobile app revenue growth by forecasting sales, revenue, and retention, and helping you make proactive decisions today. - [From corporate to indie: How and when to make the transition](https://adapty.io/blog/how-and-when-to-go-indie/): In this guide by Antoine van der Lee, you'll learn about when the time is right to go indie and how to make this transition the most effective and safe. - [How to set up push notifications for your app](https://adapty.io/blog/setting-up-push-notifications/): Discover the best mobile app push notifications solutions to execute your push notification strategy. We'll look at OneSignal, Pushwoosh, WonderPush, and more. - [Yazılım şirketleri için devlet teşviği nasıl alınır?](https://adapty.io/blog/yazilim-sirketleri-icin-devlet-tesvigi-nasil-alinir/): Son düzenlediğimiz, Yazılım şirketleri için devlet teşviği nasıl alınır? , webinarında konuğumuz Arif Esen ile birlikte mobil uygulama şirketleri için... - [Adapty updates in July: Test devices and new calculations for cohorts](https://adapty.io/blog/adapty-updates-july-2024/): Check the latest Adapty updates, including enhancements to cohort calculations and a handy feature for testing paywalls on your devices. - [Migrate from Glassfy to Adapty — get 6 months of Pro+ plan for free](https://adapty.io/blog/migrate-from-glassfy-to-adapty/): Glassfy service will be ending in December 2024. Move to Adapty and get 6 months free on Pro+ plan. Seamless migration in one day. - [Interstitial Ads in Mobile Apps: Best Practices and Examples](https://adapty.io/blog/mobile-interstitial-ads/): Discover the best practices for using interstitial ads in mobile apps. Learn how to optimize user experience and revenue with effective examples and strategies in this comprehensive guide. - [TAM, SAM, SOM: How to measure market size for your app](https://adapty.io/blog/tam-sam-som/): Learn how to accurately measure your app's market size with our guide on TAM, SAM, and SOM analyses & set realistic growth goals and strategies to achieve them. - [Adapty updates in June: New Paywall Builder and 2024 subscription report](https://adapty.io/blog/adapty-updates-june-2024/): This June Adapty shares two huge updates: Major Paywall Builder update and the "State of In-App Subscriptions 2024" report. Find more details in the post! - [7 monetization models for mobile games](https://adapty.io/blog/mobile-game-monetization/): Discover the latest mobile game monetization strategies and trends for 2025. Learn how to maximize your game's revenue with in-app purchases, ads, subscriptions, and more. Stay ahead in the competitive mobile gaming market. - [Growth loops: How to use cohort analysis for subscriptions](https://adapty.io/blog/growth-loops/): Discover how to use cohort analysis to drive growth in your business. Learn the fundamentals of growth loops and how to effectively implement cohort analysis for improved customer retention and engagement. - [Adapty Conf Warsaw 2024: Unlocking app growth](https://adapty.io/blog/adapty-conf-warsaw-2024/): Explore the highlights of Adapty Conf Warsaw 2024, where industry experts shared insights on mobile app growth, subscription models, web-to-app, and much more! - [Android vs iOS app development: benefits and challenges](https://adapty.io/blog/android-vs-ios-development/): Explore the key differences between Android and iOS development in this detailed guide. Learn about platform-specific features, development tools, and which operating system is best suited for your app project. - [App pricing: Guide to pricing tiers and strategies](https://adapty.io/blog/tiered-pricing/): Discover the ultimate guide to tiered pricing strategies for your SaaS. Learn how to optimize your pricing tiers to maximize revenue, enhance user experience, and boost customer retention. Perfect for developers and marketers aiming to elevate their app's success. - [WWDC24: What’s new for app developers?](https://adapty.io/blog/wwdc24-whats-new-for-app-developers/): View WWDC24 highlights regarding mobile apps, in-app subscriptions, and marketing: Swift 6, Xcode 16, StoreKit, Localization, App Store Connect. - [What is hybrid mobile app development?](https://adapty.io/blog/what-is-hybrid-app/): Discover what a hybrid app is, explore real-world examples, and learn about the key benefits of using hybrid apps for your business. This comprehensive guide covers everything from development to deployment. - [May updates: CDN for A/B testing and upgraded Cohorts](https://adapty.io/blog/adapty-may-2024-updates/): Check out Adapty May updates: New features for paywall CDN caching and ARPU and Installs added to the Cohorts chart. - [What is offerwall monetization for apps?](https://adapty.io/blog/offerwall-monetization-for-apps/): Explore the benefits of offerwall monetization for mobile apps and games in our comprehensive guide. Learn how to effectively integrate offerwalls to boost user engagement, increase your revenue, and enhance overall app performance. - [What types of apps make the most money?](https://adapty.io/blog/what-apps-make-the-most-money/): Discover which types of apps are the most profitable in today's market. Learn about key trends, successful monetization strategies, and real-world examples of top-grossing app categories. - [Google I/O 2024 updates: What's new for in-app subscriptions?](https://adapty.io/blog/google-io-2024-subscription-updates/): Check the most timportant in-app subscription updates from Google I/O 2024. New features in Google Play Market for developers and marketers. - [Flutter vs Kotlin: Which one to choose for your project?](https://adapty.io/blog/flutter-vs-kotlin/): Explore the comprehensive comparison of Flutter vs Kotlin for app development. Understand the strengths, use cases, and performance of each to make an informed choice. Perfect for developers and decision-makers looking to leverage the latest technology trends. - [April updates: Email reporting and conversion chart updates](https://adapty.io/blog/adapty-april-2024-updates/): In April we focused on two major updates: Improvement of the Conversion chart and email reporting. Learn more about how these updates should make your interaction with Adapty easier. - [What is App Tracking Transparency (ATT)?](https://adapty.io/blog/app-tracking-transparency/): Explore Apple's App Tracking Transparency (ATT) framework, designed to enhance user privacy by empowering iOS users to control which apps can track their activity across other apps and websites. Learn how ATT works, its impact on digital advertising, and tips for compliance. - [Average revenue per unit (ARPU) explained](https://adapty.io/blog/average-revenue-per-unit-arpu/): Discover the meaning of Average Revenue Per Unit (ARPU) and learn how to calculate it with step-by-step formulas. Enhance your understanding of this crucial financial metric to optimize your business's revenue analysis. - [What is user stickiness and how to calculate it](https://adapty.io/blog/user-stickiness/): Explore essential metrics and best practices to enhance user stickiness on your platform. Learn strategies to increase engagement and retain users effectively. - [App Store Connect guidelines for app developers and marketers](https://adapty.io/blog/app-store-connect-guide/): Unlock the potential of App Store Connect in 2025 with our comprehensive guide tailored for developers and marketers. Discover insider tips, the latest features, and strategies to optimize your app's visibility and performance. Whether you're launching a new app or aiming to boost your existing app's reach, this guide is your roadmap to success in the App Store ecosystem. - [March updates: Remote Config upgrade, Stripe on the Free plan, and more](https://adapty.io/blog/adapty-march-2024-updates/): Check out Adapty March updates: Remote Config got many JSON improvements, the Stripe integration is now free, iOS SDK now supports visionOS, and more. - [What is deferred deep linking and how does it work?](https://adapty.io/blog/deferred-deep-linking/): Discover the power of deferred deep linking in our latest article. Learn how it directs users to specific content within apps, even upon first install, enhancing user experience and improving app engagement. Understand the mechanics behind this technology and its impact on marketing strategies. - [Flutter vs. React Native: Which framework is better for your project?](https://adapty.io/blog/flutter-vs-react-native/): Explore the comprehensive comparison of Flutter vs React Native in 2025. Learn which framework leads in performance, development efficiency, and community support to choose the best for your next app project. - [New App Store business terms for the EU: To adopt or not to adopt?](https://adapty.io/blog/app-store-business-terms-in-the-eu/): We’ve analyzed the new App Store terms for the EU and found out which conditions will be the most profitable for the EU developers. - [How to calculate and interpret Customer Lifetime Value (LTV)](https://adapty.io/blog/customer-lifetime-value-ltv/): Discover how to calculate and enhance Customer Lifetime Value (LTV) for your SaaS product. Learn strategies to maximize LTV, improve customer retention, and drive long-term profitability. Essential reading for marketers and business owners. - [Month-over-month growth: metrics and calculation formula](https://adapty.io/blog/month-over-month-growth/): Learn how to measure month-over-month growth with key metrics and calculation formula. Enhance your business insights by understanding and applying these essential growth calculation techniques. - [App Store screenshot sizes and requirements in 2025](https://adapty.io/blog/app-store-screenshot-sizes-dimensions/): Discover the latest guidelines for App Store screenshot sizes, dimensions and requirements for 2025. Ensure your app stands out with optimized visuals that meet the current standards for Apple's App Store. Learn essential tips and best practices for creating compelling screenshots that capture your iOS app's essence and attract more downloads. - [How to calculate customer acquisition cost (CAC): Benchmarks to know](https://adapty.io/blog/customer-acquisition-cost/): Here’s how to calculate and optimize your mobile app’s Customer Acquisition Cost (CAC) metric, your CAC payback period, and your LTV-CAC ratio. - [February updates: New Paywall Builder features, A/B test prediction, and more](https://adapty.io/blog/adapty-february-2024-updates/): This month we paid more attention to further enhancements of our Paywall Builder, expanded the prediction possibilities to be featured... - [How to set up Universal Links on iOS for deep linking](https://adapty.io/blog/ios-universal-links/): Learn how to integrate your iOS app with your website using universal links for deep linking. This step-by-step guide covers everything from enabling universal links in your app to handling deep links for a cohesive user experience. - [ASO vs SEO: the differences and similarities](https://adapty.io/blog/aso-vs-seo/): Discover the key distinctions between ASO (App Store Optimization) and SEO (Search Engine Optimization) in the realm of app promotion. Understand the unique strategies, tools, and metrics involved in both ASO and SEO to effectively enhance your app's discoverability and drive more organic traffic. - [What is a SDK? The difference between API and SDK explained ](https://adapty.io/blog/what-is-sdk/): Explore the essentials of Software Development Kits (SDKs) and how they differ from APIs in our comprehensive guide. Understand the key components, uses, and advantages of SDKs to enhance your development projects. - [Calculating return on ad spend (ROAS) metrics](https://adapty.io/blog/what-is-roas/): Unlock the secrets of Return on Ad Spend (ROAS) with our comprehensive guide. Learn how to calculate ROAS, understand its importance, and improve your marketing ROI. Ideal for marketers and businesses aiming for better ad performance. - [How to prepare your app for peak seasonality](https://adapty.io/blog/app-seasonality/): Maximize your app's potential during peak seasons with our comprehensive guide on app seasonality. Learn effective strategies for updating features, targeted marketing, and engaging users with seasonal promotions. Perfect for developers and marketers aiming to boost app performance and user satisfaction during high-traffic periods. - [How to increase app engagement in 2025?](https://adapty.io/blog/how-to-increase-app-engagement/): Explore efficient strategies to boost app engagement in our comprehensive guide. From personalization to push notifications, learn how to captivate your audience, increase user retention, and drive app success. Perfect for app developers and marketers looking to create a more engaging user experience. - [How to run a PR campaign for your mobile app?](https://adapty.io/blog/pr-campaign-for-mobile-app/): Discover the key steps to running a successful PR campaign for your mobile app. Learn how to craft compelling messages, choose the right channels, and engage effectively with your audience to boost visibility and downloads. Essential reading for app developers and marketers aiming for the spotlight. - [Apple App Store subscription groups explained](https://adapty.io/blog/app-store-subscription-groups/): Learn how to effectively manage and maximize subscriptions for user retention and revenue growth. Perfect for developers and marketers aiming... - [How to increase app installs: reliable strategies](https://adapty.io/blog/how-to-increase-app-downloads/): Boost your mobile app's visibility and downloads with our expert guide! Discover effective strategies to attract users, improve engagement, and... - [Winter holiday updates: Stripe, faster analytics, and much more!](https://adapty.io/blog/adapty-january-2024-updates/): We’re back with new and exciting updates. The Adapty tech team focused on enhancing the analytics infrastructure and adding a... - [How to grow a mobile app: strategies for 2025](https://adapty.io/blog/app-growth-strategies/): Discover key mobile app growth strategies for the different stages of the mobile app marketing funnel that will help you get and retain more app users. - [Understanding DAU, WAU & MAU active users metrics](https://adapty.io/blog/dau-wau-mau-active-users/): Unlock the secrets of user engagement with our comprehensive guide on DAU, WAU, and MAU. Learn how Daily, Weekly, and Monthly Active Users metrics can transform your digital strategy and drive growth. Ideal for marketers and analytics enthusiasts! - [Alternative payments in the App Store: All you need to know](https://adapty.io/blog/alternative-payments-in-the-app-store/): Apple now allows developers to point users to web-based subscription options outside of in-app purchases. Let's see how it translates... - [Kotlin vs Java: Which is better for Android app development?](https://adapty.io/blog/kotlin-vs-java/): Explore the Kotlin vs. Java debate for Android app development in our comprehensive article. Understand the pros and cons, performance comparisons, and practical insights to help you choose the best programming language for your next mobile app project. - [10 best mobile testing tools for Android and iOS](https://adapty.io/blog/mobile-testing-tools/): Discover the 10 best mobile testing tools in 2025! Stay ahead in the tech world with our comprehensive guide, featuring the latest and most efficient tools for ensuring flawless mobile app performance. Perfect for developers and QA professionals! - [How to submit your app to the App Store](https://adapty.io/blog/how-to-publish-app-to-app-store/): Discover the essential steps for publishing your app on the App Store with our comprehensive guide. Learn about developer account setup, app design guidelines, submission process, and review tips to ensure a successful launch. Ideal for developers aiming to navigate Apple's ecosystem effectively. - [Myths and mistakes of paywall A/B testing](https://adapty.io/blog/myths-and-mistakes-of-paywall-ab-testing/): We’ll try to disprove some of the most popular myths about paywall A/B testing and also cover several common mistakes... - [Android UI layouts and views: all you need to know](https://adapty.io/blog/android-layouts-and-views/): Master Android UI layout and views with our comprehensive guide, detailing the types, attributes, and best practices for creating seamless and intuitive app interfaces. - [Mobile app marketing tips for the Christmas Season](https://adapty.io/blog/mobile-app-marketing-tips-for-holiday-season/): Boost your mobile app's holiday success with our marketing tips for the Christmas season. Discover effective strategies to engage users, increase downloads, and maximize revenue during this festive period. Perfect for app developers and marketers aiming to capitalize on the holiday spirit! - [November updates: Live A/B test editing, pie charts, and more](https://adapty.io/blog/adapty-november-2023-updates/): New in Adapty in November: The A/B test editing flow reworked, pie charts are now available in analytics, and more options for Paywall Builder. - [How much does it cost to hire an app developer?](https://adapty.io/blog/hire-mobile-app-developers/): Uncover the costs of hiring a mobile app developer, with insights into hourly rates, project estimates, and factors affecting pricing to budget effectively for your app creation. - [Understanding iPhone vs Android users: A detailed behavioral comparison](https://adapty.io/blog/iphone-vs-android-users/): Discover the unique behaviors of iPhone vs Android users in our in-depth analysis. Explore how brand loyalty, app preferences, spending habits, and tech usage differentiate these groups. Perfect for marketers and tech enthusiasts looking to understand the mobile landscape. - [How to increase mobile app subscriptions with holiday marketing strategy](https://adapty.io/blog/growing-mobile-in-app-subscriptions-with-holiday-marketing/): A full guide to using holiday marketing tools like discounts and offers to boost your mobile app subscription revenue. - [Paywall Newsletter #16](https://adapty.io/blog/paywall-newsletter-16/): In the new issue of the paywall newsletter, we compare minimal and excessive. Find out which way of presenting information on the paywall is more profitable. - [How to enable developer options in Android?](https://adapty.io/blog/how-to-turn-on-developer-mode-android/): Unlock the full potential of your Android device with our step-by-step guide on configuring developer options. Enhance your user experience... - [Understanding refund rate benchmarking](https://adapty.io/blog/refund-rate-metrics-and-benchmarking/): Here’s how to measure and optimize your mobile app’s refund rate so you can set the right user expectations and avoid critical reviews from disgruntled users. - [Adapty is a winner of the App Growth Awards 2023](https://adapty.io/blog/app-growth-awards-2023-winner/): Adapty has won in the App Revenue Platform nomination at the App Growth Awards 2023! Let's have a look at what let our service stand out and win the hearts of numerous clients. - [Mobil uygulama ve abonelik dünyasına dair sohbet](https://adapty.io/blog/mobil-uygulama-ve-abonelik-dunyasina-dair-sohbet/): Mobil uygulama sektöründen en önemli konuklarla gerçekleştirdiğimiz podcastin yeni bölümüyle karşınızdayız. Bu podcast serisinde mobil uygulamadan para kazanma, abonelikler, reklamlar... - [Implement in-app purchases using Expo](https://adapty.io/blog/expo-in-app-purchases-tutorial/): Unlock the full potential of your mobile app by integrating in-app purchases with Expo! Explore our step-by-step guide to seamlessly implement this feature, enabling a smoother and more versatile user experience, while optimizing your app’s revenue stream. Whether you're a seasoned developer or just starting, our article provides insightful tips and strategies to make the integration process straightforward and effective. - [Black Friday: Ways to present sales in your app](https://adapty.io/blog/black-friday-paywalls/): Wonder how to prepare your app for Black Friday or Cyber Monday? Check out several examples from popular apps and find the apporach that works for you. - [Paywall Newsletter #17](https://adapty.io/blog/paywall-newsletter-17/): The 17th issue is dedicated to the most popular intro offer – free trial. Take a look at the paywalls of several popular apps and see how they approach it. - [A complete guide to content marketing for mobile apps](https://adapty.io/blog/content-marketing-strategy-for-apps/): Explore effective content marketing strategies tailored for apps. Discover the best practices to enhance user engagement, boost downloads, and ensure... - [App Store Awards 2023: Top 15 finalists and their paywall strategies](https://adapty.io/blog/app-store-awards-finalists-paywall-insights/): Unveil the secrets behind the success of the App Store Awards 2023 winners. Discover how these leading apps utilize paywalls to enhance user experience and drive revenue. Learn from the best in the industry and see what sets these award-winning apps apart. - [Most effective ways to segment your users](https://adapty.io/blog/user-segmentation-guide/): Enjoy our definitive guide on user segmentation, exploring its top strategies and real-world examples. Unlock the power of tailored marketing and enhance your user engagement effectively. - [Bireysel geliştirici olarak mobil uygulamadan gelir elde etme](https://adapty.io/blog/bireysel-gelistirici-olarak-mobil-uygulamadan-gelir-elde-etme/): Mobil uygulama sektöründen en önemli konuklarla gerçekleştirdiğimiz podcastin yeni bölümüyle karşınızdayız. Bu podcast serisinde mobil uygulamadan para kazanma, abonelikler, reklamlar... - [How can a mobile app developer earn extra income](https://adapty.io/blog/how-to-make-more-money-as-app-developer/): Explore the latest strategies and insights for app developers in 2025. Boost your earnings, capitalize on emerging trends, and thrive in today's competitive market. Your roadmap to financial success in the app industry starts here. - [October updates: Free Paywall Builder, Braze integration, and more](https://adapty.io/blog/adapty-october-2023-updates/): Check out Adapty updates and improvements for October: Paywall Builder on the Free plan, new integrations, real-time localization, and more. - [How to build a mobile app development team?](https://adapty.io/blog/how-to-build-mobile-app-development-team/): Explore key steps to creating a stellar development team for your mobile app startup. Dive into hiring strategies, roles, and collaboration tips for a successful app launch. - [5-step process for success in scaling paid UA](https://adapty.io/blog/5-step-process-for-success-in-scaling-paid-ua/): Check out a fresh framework on how to scale paid UA which can help any app marketer looking for guidance in paid ad campaigns. - [Paywall Newsletter #15](https://adapty.io/blog/paywall-newsletter-15/): In this issue of the Paywall Newsletter — insights for paywalls from our latest "State of In-App Subscriptions in the US 2023" report based on 30M transactions. - [Tüm ayrıntılarıyla mobil yayıncılık](https://adapty.io/blog/tum-ayrintilariyla-mobil-yayincilik/): Mobil uygulama sektöründen en önemli konuklarla gerçekleştirdiğimiz podcastin yeni bölümüyle karşınızdayız. Bu podcast serisinde mobil uygulamadan para kazanma, abonelikler, reklamlar... - [Getting started with SwiftUI framework](https://adapty.io/blog/how-to-get-started-with-swiftui/): Learn how to start working with SwiftUI and drastically simplify your app development process. - [Most popular mobile app development frameworks in 2025](https://adapty.io/blog/mobile-app-development-frameworks/): Explore the leading mobile app development frameworks of 2025. See what makes each unique, which ones are dead, and how to choose the right one for your mobile app. - [How to promote App Store in-app purchases on iOS?](https://adapty.io/blog/how-to-promote-app-store-in-app-purchases-on-ios/): Learn how to promote your in-app offers and convert users faster. - [10 best practices for your push marketing strategy](https://adapty.io/blog/push-notification-best-practices/): Unlock the full potential of push notifications with our guide on best practices and innovative marketing strategies. Enhance engagement, retention, and conversion rates while delivering personalized and timely messages to your audience. Start optimizing your push notification campaigns now! - [Why do you need to localize your mobile app?](https://adapty.io/blog/mobile-app-localization/): Explore the main differences between ROI and ROAS for mobile apps. Discover their unique attributes, how they're calculated, and their... - [Abonelik tabanlı mobil uygulamalarda son trendler](https://adapty.io/blog/abonelik-tabanli-mobil-uygulamalarda-son-trendler/): Mobil uygulama sektöründen en önemli konuklarla gerçekleştirdiğimiz podcastin yeni bölümüyle karşınızdayız. Bu podcast serisinde mobil uygulamadan para kazanma, abonelikler, reklamlar... - [SKAdNetwork 4.0 guide: Apple’s attribution API](https://adapty.io/blog/what-is-skadnetwork/): Discover the SKAdNetwork 4. 0, Apple's solution for user privacy and ad attribution. Our detailed guide describes its functionalities, implications... - [Tiktok ads formats and types explained](https://adapty.io/blog/tiktok-advertising-formats/): Explore the latest TikTok ad formats and specs for 2025. - [In-app purchases: types and key statistics](https://adapty.io/blog/what-is-in-app-purchase/): Uncover the world of in-app purchases, their significance in the mobile ecosystem, and the different types available. Check our comprehensive guide to understanding and leveraging in-app monetization strategies. - [September updates: Paywall Builder 2.0, localization, and more](https://adapty.io/blog/adapty-september-2023-updates/): Adapty updates in September: Paywall Builder 2.0 with fresh templates and more tools, improved localizations, new flitering and grouping for metrics - [Trial conversion rates for in-app subscriptions](https://adapty.io/blog/trial-conversion-rates-for-in-app-subscriptions/): Explore insights on trial conversion rates for in-app subscriptions. Unlock strategies to boost user retention and maximize revenue in the mobile app ecosystem. Dive deep into data-driven best practices today! - [Paywall Newsletter #14](https://adapty.io/blog/paywall-newsletter-14/): In the 14th issue of the paywall newsletter: — what the best combination of products is for a Health and... - [12 Questions About iOS 17 App Clips, Answered](https://adapty.io/blog/ios-17-app-clips/): Learn more about App Clips — a smaller, leaner version of apps, getting a revamp in iOS 17. - [13 mobile app development trends to follow in 2025](https://adapty.io/blog/mobile-app-development-trends-to-follow/): What category or market should you focus on in 2025? Read our latest trends report to find out. - [Sürdürülebilir bir iş modeli olarak mobil abonelikler - İbrahim Özdemir](https://adapty.io/blog/surdurulebilir-bir-is-modeli-olarak-mobil-abonelikler-ibrahim-ozdemir/): Mobil uygulama sektöründen en önemli konuklarla gerçekleştirdiğimiz podcastin yeni bölümüyle karşınızdayız. Bu podcast serisinde mobil uygulamadan para kazanma, abonelikler, reklamlar... - [ROI vs ROAS: Which metric is best for your mobile app](https://adapty.io/blog/rois-vs-roas/): Explore the main differences between ROI and ROAS for mobile apps. Discover their unique attributes, how they're calculated, and their implications for app marketers. Understand which metric best aligns with your goals and how to effectively leverage them for optimal performance. - [Mobil oyunlarda performance marketing - Buse Sevinç](https://adapty.io/blog/mobil-oyunlarda-performance-marketing/): Mobil uygulama sektöründen en önemli konuklarla gerçekleştirdiğimiz podcastin yeni bölümüyle karşınızdayız. Bu podcast serisinde mobil uygulamadan para kazanma, abonelikler, reklamlar... - [August updates: Adapty SDK 2.6.2 and other improvements](https://adapty.io/blog/adapty-august-2023-updates/): Adapty updates in August: Meeet SDK 2.6.2 and other minor technical updates, such as new URL fields for Webhook sandbox, member settings update, and more. - [Building the app for language learning with 10M users](https://adapty.io/blog/subhub-podcast-18-easyten/): SubHub podcast №18: The co-founder of EasyTen reflects on how to create a successful language-learning app and grow it the right way. - [Veri Odaklı Büyüme Stratejileri: Biryudumkitap](https://adapty.io/blog/veri-odakli-buyume-stratejileri/): Mobil uygulama sektöründen en önemli konuklarla gerçekleştirdiğimiz podcastin yeni bölümüyle karşınızdayız. Bu podcast serisinde mobil uygulamadan para kazanma, abonelikler, reklamlar... - [How much does an app make: Adapty's ultimate app revenue & VAT guide](https://adapty.io/blog/how-much-money-do-apps-make/): Want to understand how much mobile apps make? Adapty introduces you to the basic terms that will help you calculate your profits and move in the right direction - [Paywall Newsletter #13](https://adapty.io/blog/paywall-newsletter-13/): In the 13th issue of the paywall newsletter, we review some paywalls including fantastic ones - [How can subscription apps leverage iOS in-app events?](https://adapty.io/blog/ios-in-app-events/): Increase customer engagement with the help of iOS in-app events. - [How to run A/B tests for subscription onboarding](https://adapty.io/blog/onboarding-ab-testing/): Learn how to run A/B tests for onboarding screens with Adapty. Change images, colors, text, button shapes - anything with the help of remote config. - [Top reasons for App Store rejections and how to avoid them](https://adapty.io/blog/app-store-rejection/): Uncover the most common reasons for app store rejections and learn practical strategies to avoid them and improve your app’s chances of successful acceptance. - [Mobil Girişimcilikte Son Trendler](https://adapty.io/blog/mobil-girisimcilikte-son-trendler/): Mobil uygulama sektöründen en önemli konuklarla gerçekleştirdiğimiz podcastin yeni bölümüyle karşınızdayız. Bu podcast serisinde mobil uygulamadan para kazanma, abonelikler, reklamlar... - [July updates: Paywalls 2.0, Google Play Billing Library 5 & 6, and more](https://adapty.io/blog/adapty-july-2023-updates/): Adapty updates in July: Placements 2.0, support of Goolge Play Billing Library 5 & 6, store commission and taxes visualization in charts, and more. - [Genie - Mobil yayıncılıkta bir başarı hikayesi](https://adapty.io/blog/genie-mobil-yayincilikta-bir-basari-hikayesi/): Mobil uygulama sektöründen en önemli isimlerle gerçekleştirdiğimiz podcastin yeni bölümüyle karşınızdayız. Bu podcast serisinde mobil uygulamadan para kazanma, abonelikler, reklamlar... - [Top 10 mistakes to avoid in mobile user acquisition](https://adapty.io/blog/top-10-user-acquisition-mistakes/): Learn about the top 10 mistakes developers and marketers make n mobile user acquisition. - [App Store’da bireysel geliştirici olarak para kazanma](https://adapty.io/blog/app-storeda-bireysel-gelistirici-olarak-para-kazanma/): Mobil aboneliklerden gelir elde etme hakkında hazırladığımız podcast’in ilk bölümüyle karşınızdayız. Mobil uygulama sektöründen en iyi konuklarla konuşuyoruz, para kazanma,... - [Mobile app subscriptions in 2023: Market trends and monetization strategies in the US](https://adapty.io/blog/mobile-app-subscriptions-in-2023/): Take a look at the comprehensive report on the state of in-app subscriptions in 2023 in the US. Discover the latest trends, strategies, and insights. - [Paywall Newsletter #12](https://adapty.io/blog/paywall-newsletter-12/): In the 12th issue of the paywall newsletter, we review paywalls of AI-based apps. Let's see how they sell their subscriptions! - [What is cannibalization in ASO and how to accurately measure it?](https://adapty.io/blog/aso-cannibalization/): Dive into the concept of ASO cannibalization, learn how it impacts your app's performance, and discover precise measurement methods with Adapty! - [Mobile advertising: everything you need to know in 2025](https://adapty.io/blog/mobile-advertising/): Stay ahead in the dynamic world of mobile advertising. Explore the latest trends, formats, targeting strategies for impactful campaigns in 2025 with Adapty! - [Mobile app deep linking in 2025: everything you need to know](https://adapty.io/blog/app-deep-linking/): Explore the landscape of app deep linking. Enhance user experience, boost app discoverability, and optimize your mobile marketing strategy with Adapty! - [SKErrorDomain Error 4 in iOS apps and how to fix it](https://adapty.io/blog/skerrordomain-code-4/): Find out how to troubleshoot and fix SKErrorDomain Code=4 in iOS applications. Our comprehensive guide breaks down causes, solutions, and preventive measures. - [SKErrorDomain Error 2 in iOS apps and how to fix it](https://adapty.io/blog/skerrordomain-code-2/): Find out how to troubleshoot and fix SKErrorDomain Code=2 in iOS applications. Our comprehensive guide breaks down causes, solutions, and preventive measures. - [Paywall Newsletter #11](https://adapty.io/blog/paywall-newsletter-11/): The 11th issue of the paywall newsletter by Adapty in which top experts of the mobile app industry comments on interesting mobile paywalls and share insights - [Top mobile app publishers in 2024](https://adapty.io/blog/top-mobile-app-publishers/): Explore the top mobile app publishers of 2024 categorized by genre, including gaming, fintech, travel, and music. Stay up-to-date with the mobile app industry leaders. - [SKErrorDomain Error 0 in iOS apps and how to fix it](https://adapty.io/blog/skerrordomain-error-0/): Find out how to troubleshoot and fix SKErrorDomain Error 0 in iOS applications. Our comprehensive guide breaks down causes, solutions, and preventive measures. - [June updates: LTV chart, paywall builder for Flutter and React Native, & more](https://adapty.io/blog/adapty-june-2023-updates/): Brand new LTV chart, paywall builder for Flutter and React Native, Observer mode for StoreKit 2, and more. - [How to predict revenue and LTV of your subscription-based app](https://adapty.io/blog/how-to-predict-revenue-and-ltv/): Our prediction model will give you an accurate insight of the revenue and LTV your user cohort will have in 3, 6, 9, and 12 months! - [ASO metrics and KPIs: How to measure your app’s success](https://adapty.io/blog/how-to-measure-app-performance/): Discover the essential ASO metrics and KPIs to gauge your app's success. Track rankings, conversion rates, and more for effective ASO and improved downloads! - [App Store screenshots: best practices](https://adapty.io/blog/app-store-screenshots-optimization/): App Store screenshots play a critical role in the success of your mobile app. In this guide, we'll provide tips and tricks to optimize your app's screenshots and increase downloads - [App description: tips and best practices for increasing your app downloads](https://adapty.io/blog/app-store-description/): Learn how to create a winning app description with our expert guide. From catchy titles to optimized SEO, get the tips to stand out in the crowded app market! - [WWDC 23 – What’s new for mobile subscriptions?](https://adapty.io/blog/wwdc23-whats-new-for-mobile-subscriptions/): We've gathered all the most interesting updates from WWDC 23 concerning mobile subscriptions. Check out the highlights with Adapty. - [How to easily create paywalls and run A/B tests with Adapty’s paywall builder](https://adapty.io/blog/how-to-create-a-paywall-with-adapty/): Learn how to fast and easily create a native iOS or Android paywall for your subscription-based app. Use Adapty's paywall builder to create and test numerous paywalls. - [May updates: predictive cohort analytics, event feed improvement, and more](https://adapty.io/blog/adapty-may-2023-updates/): May updates for Adapty inlcude predictions in cohorts, event feed updates, and introductory offers eligibility for StoreKit 2. - [How to improve your app ratings and reviews?](https://adapty.io/blog/app-ratings-and-reviews/): Discover proven strategies to increase positive app ratings and reviews, reduce poor feedback, and respond to reviews so they get you even more downloads! - [Subscription analytics: why it's hard, and 3 strategies to improve results](https://adapty.io/blog/subscription-analytics-for-mobile-apps/): Adapty has prepared 3 effective answers for you on how to improve subscription analytics for mobile apps. It's not that simple, but we know the solution! - [How to design an app icon: best practices](https://adapty.io/blog/how-to-design-app-icon/): A well-designed app icon can make all the difference in attracting users and standing out in the crowded app store. In this guide, we'll explore the best practices for designing an effective app icon that drives downloads and engages users. - [Personalized paywall: why do you need it and how to make it](https://adapty.io/blog/how-to-personalize-your-paywall/): Read Adapty's step-by-step guide on how to create the perfect personalized paywall for your mobile app and cement a relationship with your users - [How to choose a financial provider for your subscription app?](https://adapty.io/blog/financial-provider-for-app/): Not sure how to choose a financial provider? Adapty has put together metrics that are to tell you what kind of app financial providers are in front of you! - [Step-by-step app funnel analysis guide](https://adapty.io/blog/app-funnels-analysis-guide/): Discover how to effectively analyze app funnels to optimize user experience, increase user retention, and maximize revenue. Learn proven strategies and best practices in our comprehensive guide. - [Paywall Newsletter #10](https://adapty.io/blog/mobile-paywall-newsletter-10/): The 10th issue of the paywall newsletter by Adapty in which top experts of the mobile app industry comments on interesting mobile paywalls and share insights - [Recurring revenue in subscription apps: how to earn a predictable income](https://adapty.io/blog/recurring-revenue-in-subscription-apps/): Explore the power of recurring revenue in subscription apps and learn how to maximize your predictable income with proven strategies and techniques. - [How to share in-app purchases with family on iOS and Android](https://adapty.io/blog/app-purchases-family-sharing/): Discover the step-by-step process to share in-app purchases with your family, making the most of your favorite apps and saving money together. - [April updates: new charts, paywall builder for Android, and more.](https://adapty.io/blog/adapty-april-2023-updates/): April updates: New charts, timezones support, Apple Small Business Program and Google Reduced Fee Program reporting, and paywall builder for Android. - [5 Estratégias de Retenção de Usuários Pagantes - Mantenha seus Usuários Engajados](https://adapty.io/blog/5-estrategias-de-retencao-de-usuarios-pagantes-mantenha-seus-usuarios-engajados/): A retenção de usuários é um componente essencial para o sucesso de qualquer aplicativo, especialmente quando se trata de usuários... - [How to choose a publisher for a subscription app?](https://adapty.io/blog/mobile-app-publishers/): Not sure how to choose a publisher for a subscription app? Adapty has put together metrics that are to tell you what kind of app publishers are in front of you! - [Unit economics of a subscription app and how to calculate it](https://adapty.io/blog/unit-economics-subscription-app-and-how-to-calculate-it/): Adapty explains how to calculate unit economics for your subscription-based app. Learn why it's important to check the metrics, such as CAC and LTV. - [How to choose a marketing agency for your mobile app?](https://adapty.io/blog/mobile-app-marketing-agency/): Not sure how to choose a marketing agency for your app? Adapty has prepared a step-by-step guide for choosing the partner for your perfect partnership! - [React Nativeアプリ内購入: シンプルな実装。チュートリアル](https://adapty.io/blog/react-native-in-app-purchases-implementation-tutorial/): React Native モバイルアプリのアプリ内購入を実装する方法についての手順ごとのシンプルなガイド(サーバーサイドのレシート検証を含む) - [리액트 네이티브 (React native) 인앱 구매: 간단한 구현. 사용 지침서](https://adapty.io/blog/react-native-in-app-purchases-implementation-tutorial/): 리액트 네이티브 모바일 앱용 인앱 구매를 구현하는 방법에 대한 빠른 단계별 가이드입니다. 서버 측 영수증 검증이 포함됩니다 - [Achats intégrés sous React native : implémentation simple. Tutoriel](https://adapty.io/blog/react-native-in-app-purchases-implementation-tutorial/): Un guide rapide étape par étape sur la façon de mettre en œuvre les achats intégrés à l'application pour une application mobile React Native - [React native In-App-Käufe: Einfache Implementierung. Tutorial](https://adapty.io/blog/react-native-in-app-purchases-implementation-tutorial/): Eine Schritt-für-Schritt Anleitung zur Implementierung von In-App-Käufen für die React Native App samt serverseitiger Emfpangsvalidierung - [Zakupy w aplikacji React Native: prosta implementacja. Samouczek](https://adapty.io/blog/react-native-in-app-purchases-implementation-tutorial/): Krótki przewodnik krok po kroku, jak zaimplementować zakupy w aplikacji dla aplikacji mobilnej React Native. - [Las compras dentro de la aplicación nativas de React: implementación sencilla. Tutorial](https://adapty.io/blog/react-native-in-app-purchases-implementation-tutorial/): Una guía rápida paso a paso sobre cómo implementar las compras dentro de la aplicación para una aplicación móvil React Native - [React Native in-app purchases: The complete implementation tutorial](https://adapty.io/blog/react-native-in-app-purchases-tutorial/): A quick step-by-step guide on how to implement in-app purchases for a React Native mobile app. Server-side receipt validation is included. - [Compras em aplicativos React Native: uma implementação muiti fácil de fazer. Tutorial](https://adapty.io/blog/react-native-in-app-purchases-implementation-tutorial/): Um guia rápido, passo a passo, que descreve como implementar compras um aplicativo móvel React Native - [React Native应用内购买:简单的实现。教程](https://adapty.io/blog/react-native-in-app-purchases-implementation-tutorial/): 以下是如何在React Native手机应用中实现应用内购买的快速分步指南。包括服务器端收据验证 - [User acquisition strategies for subscription apps](https://adapty.io/blog/mobile-user-acquisition-guide/): Step-by-step guide to running a successful paid user acquisition strategy for your subscription-based app. Learn expert tips and tricks to optimize your campaigns and drive growth. - [How to build an ideal paywall for a mobile app: a comprehensive guide](https://adapty.io/blog/how-to-design-a-paywall-for-a-mobile-app/): Looking for ways to create an effective, convertible, perfect Paywall for your mobile app? Adapty tells you the most progressive ways to do it! - [March updates: App Store Server Notifications V2 and new integrations](https://adapty.io/blog/adapty-march-2023-updates/): March updates: introducing App Store server notifications V2, Google Cloud Storage and Airbridge integrations - [Como as assinaturas podem transformar seu app em um negócio rentável](https://adapty.io/blog/como-as-assinaturas-podem-transformar-seu-app-em-um-negocio-rentavel/): Com a quantidade de aplicativos gratuitos disponíveis no mercado, muitas empresas estão enfrentando dificuldades para encontrar um modelo de negócios... - [The complete guide to iOS in-app purchases: Build profitable apps with StoreKit 2](https://adapty.io/blog/in-app-purchase-tutorial-for-ios/): This comprehensive tutorial provides iOS developers with everything they need to know about in-app purchases. Learn about the different types of in-app purchases, how to set them up, best practices for pricing and offering free trials, and how to handle refunds. Gain the knowledge you need to successfully integrate in-app purchases into your iOS app. - [Freemium app monetization strategies to make a real profitable app](https://adapty.io/blog/freemium-app-monetization-strategies/): Discover how to maximize revenue in your subscription app with a freemium model. Learn the benefits, best practices, and practical strategies for implementing freemium monetization. Avoid common mistakes and optimize user experience to boost customer acquisition, retention, and lifetime value. - [How to integrate In-App Purchases (IAP) in Unity application?](https://adapty.io/blog/unity-in-app-purchases-tutorial/): Learn how to enable in-app purchases and subscriptions with apps and games made with Unity in App Store and Google Play Store. Learn how to hide premium content with paywalls and validate user subscription state. - [The 10 key mobile app metrics you need to track](https://adapty.io/blog/mobile-app-metrics/): Here are all the mobile app metrics you need to track to learn how your mobile app is doing and how you can grow its revenue. - [Apple’s peer group benchmarks: are they any good?](https://adapty.io/blog/apples-peer-group-benchmarks-are-they-any-good/): Looking to improve your app's performance on the App Store? Check out our comprehensive guide on utilizing Apple’s peer group benchmarks to enhance your optimization strategy. Discover the key metrics and insights you need to stay ahead of the competition. - [February updates: paywall builder, cohorts by days, Pro+ plan, and hiring](https://adapty.io/blog/adapty-february-2023-updates/): February updates: introducing new Pro+ plan, paywall desgn tools, update for Cohorts, and hiring new team members. - [Paywall Newsletter #9](https://adapty.io/blog/mobile-paywall-newsletter-9/): The third issue of the paywall newsletter by Adapty in which top experts of the mobile app industry comments on interesting mobile paywalls and share insights - [A complete guide on Apple's Billing Grace Period](https://adapty.io/blog/how-to-handle-apple-billing-grace-period/): Apple Billing Grace Period: Here's how to enable a grace period inside your iOS app and how it helps you recover involuntary subscriber churn. - [Mobile app onboarding: How-to, best practices, and examples](https://adapty.io/blog/mobile-app-onboarding/): Here's a complete guide on how to design mobile app onboarding experiences that wow your users and boost user engagement, conversions, and retention. - [Setting up remote configuration for mobile app paywalls](https://adapty.io/blog/what-is-remote-config/): Here's how to remotely configure your mobile app’s paywall and optimize it for more conversions with remote config. - [January updates: Firebase + Google Analytics integration, localizations in the paywall remote config, and more.](https://adapty.io/blog/adapty-january-2023-updates/): January updates: Firebase + Google Analytics integration, localizations in paywall remote config, and React Native and Unity SDK 2.2. - [Paywall Newsletter #8](https://adapty.io/blog/mobile-paywall-newsletter-8/): The 8th issue of the paywall newsletter by Adapty in which top experts of the mobile app industry comments on interesting mobile paywalls and share insights - [Mobil Uygulama İçi Abonelikler Nasıl Fiyatlandırılır?](https://adapty.io/blog/how-to-price-mobile-in-app-subscriptions/): Abonelik modeli hızla yayılırken, uygulamanızın Netflix ve Spotify ile rekabet sürecinde düzgün bir fiyatlandırma stratejisi çok önemlidir. - [App pricing tips: How to price mobile in-app subscriptions the right way](https://adapty.io/blog/how-to-price-mobile-in-app-subscriptions/): Discover the secrets of successful app pricing strategies in this comprehensive guide, learn how to price an app subscription for maximum revenue and user satisfaction. Boost your app's potential today! - [Paywall A/B testing for Android apps: maximize your revenue](https://adapty.io/blog/android-a-b-testing-for-paywalls/): Discover the differences between paywall A/B testing on Android and iOS. Learn how to optimize your paywall for maximum conversions and revenue. - [Paywall Newsletter #7](https://adapty.io/blog/mobile-paywall-newsletter-7/): The third issue of the paywall newsletter by Adapty in which top experts of the mobile app industry comments on interesting mobile paywalls and share insights - [iAd vs. AdServices: What's the difference?](https://adapty.io/blog/iad-vs-adservices/): What’s the difference between iAd and AdServices? Here’s a primer on how Apple’s now deprecated attribution model iAd differs from AdServices. - [Paywall Newsletter: Special Issue with Thomas Petit](https://adapty.io/blog/mobile-paywall-newsletter-special-issue-feat-thomas-petit/): The special issue of the paywall newsletter by Adapty in which top experts of the mobile app industry comments on interesting mobile paywalls and share insights - [Androidアプリ内購入、パート 5: サーバーサイドでの購入の検証](https://adapty.io/blog/android-in-app-purchases-part-5-server-side-purchase-validation/): チュートリアル: Google Play アプリのサーバーサイドアプリ内購入検証を設計する方法 - [Android 인앱 구매, 5부: 서버 측 구매 검증](https://adapty.io/blog/android-in-app-purchases-part-5-server-side-purchase-validation/): 사용 지침서: Google Play 앱에 대한 서버 측 인앱 구매 검증을 설계하는 방법 - [Achats intégrés sous Android, 5e partie : validation des achats côté serveur](https://adapty.io/blog/android-in-app-purchases-part-5-server-side-purchase-validation/): Tutoriel: Comment concevoir la validation des achats intégrés côté serveur pour les applications Google Play ? - [Android In-App-Käufe, Teil 5: Serverseitige Kaufvalidierung](https://adapty.io/blog/android-in-app-purchases-part-5-server-side-purchase-validation/): Tutorial: So entwerfen Sie serverseitige In-App-Kaufvalidierungen für Google Play Apps - [Zakupy w aplikacji na Androida, część 5: walidacja zakupów po stronie serwera](https://adapty.io/blog/android-in-app-purchases-part-5-server-side-purchase-validation/): Samouczek: Jak zaprojektować walidację zakupu w aplikacji po stronie serwera dla aplikacji Google Play - [Google Play server-side purchase validation](https://adapty.io/blog/android-in-app-purchases-server-side-validation/): How to verify purchase for an Android app — receipt validation. Subscription acknowledgement, refund tracking, server notifications for transactions. - [Las compras dentro de la aplicación de Android, parte 5: Validación de las compras del lado del servidor](https://adapty.io/blog/android-in-app-purchases-part-5-server-side-purchase-validation/): Tutorial: Cómo diseñar la validación de compras dentro de la aplicación del lado del servidor para las aplicaciones de Google Play - [Compras no aplicativo para Android, parte 5: validação de compras do lado do servidor.](https://adapty.io/blog/android-in-app-purchases-part-5-server-side-purchase-validation/): Tutorial: Como desenvolver a validação de compras do lado do servidor para aplicativos no Google Play - [安卓应用内购买,第5部分:服务器端购买验证](https://adapty.io/blog/android-in-app-purchases-part-5-server-side-purchase-validation/): 教程:如何设计Google Play应用程序服务器端应用内购买验证 - [How to sell physical goods by subscription](https://adapty.io/blog/subhub-podcast-17-scentbird/): SubHub podcast №17: CTO & Co-founder of Scentbird talks on creating a perfume subscription business, deeper aspects of processing, and headless commerce. - [November updates: new integrations, adjustable tables, Adapty newsfeed, SDK 2.1.](https://adapty.io/blog/adapty-november-2022-updates/): Adapty November 2022 update: new integrations, adjustable tables, Adapty newsfeed, SDK 2.1. - [Paywall Newsletter #6](https://adapty.io/blog/mobile-paywall-newsletter-6/): The 6th issue of the paywall newsletter by Adapty in which top experts of the mobile app industry comments on interesting mobile paywalls and share insights - [Amplitude vs Mixpanel: Which one to choose?](https://adapty.io/blog/amplitude-vs-mixpanel-which-one-to-choose/): Mixpanel vs Amplitude analytics systems comparison: overview of reports, features, and pricing. - [Adapty’s next round](https://adapty.io/blog/adaptys-next-round/): Announcement on the next investement step for Adapty. - [Why Firebase doesn’t work for mobile paywall A/B testing (+ a better alternative)](https://adapty.io/blog/firebase-a-b-testing-mobile-app-paywalls/): Three key limitations of Firebase A/B testing when it comes to A/B testing mobile app paywalls and running personalization experiments. - [Adapty October updates: comparison in charts, remote config table, and more](https://adapty.io/blog/adapty-october-2022-updates/): Adapty October 2022 update: comparison in charts, paywall metrics dashboard, remote config table, and the screenshot feature. - [Mobile app paywall A/B testing: How to get started](https://adapty.io/blog/mobile-app-paywall-ab-testing/): This mobile app paywall A/B testing guide shows you everything you need to run winning mobile app paywall A/B tests and a quality experimentation program. - [Paywall Newsletter #5](https://adapty.io/blog/mobile-paywall-newsletter-5/): The fifth issue of the paywall newsletter by Adapty in which top experts of the mobile app industry comments on interesting mobile paywalls and share insights - [How to create personalized mobile app paywalls](https://adapty.io/blog/mobile-paywall-personalization/): Maximize your app's potential with our detailed guide to mobile paywall personalization. Explore proven strategies, tips, and insights to boost user engagement, paywall conversion rates, and revenue growth. - [A guide to paywall essentials: What should you include on your mobile app paywall?](https://adapty.io/blog/designing-effective-paywalls-for-mobile-apps/): We’ll teach you how to structure and design your app paywall. Learn about the essentials of any paywall: banners, sliders, videos, CTA, and more! - [Dark patterns in subscription apps](https://adapty.io/blog/subhub-podcast-16-vivid-money/): SubHub podcast №16: Product owner at Vivid Money, talks on working with dating apps, growing a banking service, and exploring dark patterns in mobile apps. - [How to promote a new mobile app: 7 effective strategies](https://adapty.io/blog/how-to-promote-mobile-app/): Learn how to promote your new mobile app with the help of ASO, ASA, and other promotional methods. - [New in Adapty: paywall metrics, menu redesign, last sent event time, and your stars on GitHub](https://adapty.io/blog/adapty-september-2022-updates/): Learn about new features added in Adapty in September 2022 - [Abonelik fiyatları %40 arttı, sırada ne var?](https://adapty.io/blog/subscription-prices-have-increased-by-40-percent/): 2022'de ortalama abonelik fiyatı artmış görünüyor. Mobil uygulama aboneliklerinin mevcut durumuna bir göz atalım. - [Subscription prices have increased by 40%, what’s next?](https://adapty.io/blog/subscription-prices-have-increased-by-40-percent/): Average subscription price seems to have increased in 2022. Let’s have a look at the current state of mobile app subscriptions. - [Paywall Newsletter #4](https://adapty.io/blog/mobile-paywall-newsletter-4/): The fourth issue of the paywall newsletter by Adapty in which top experts of the mobile app industry comments on interesting mobile paywalls and share insights - [10 types of mobile app paywalls and conversion hacks they use](https://adapty.io/blog/the-10-types-of-mobile-app-paywalls/): Are you a mobile app developer or owner looking to monetize your app? Check out our guide on the top 10 popular types of paywalls for mobile apps. From standard to donation paywalls, we'll cover the pros and cons of each strategy to help you choose the best fit for your app and target audience. - [Avatarify: Şaka ile Başladı, App Store'da birinci uygulama haline geldi](https://adapty.io/blog/avatarify/): Şaka ile başlayıp aylık 200 bin dolarlık gelire ulaşan mobil uygulamanın başarı öyküsü. - [How to pass an App Store review: Recommendations for a subscription-based app](https://adapty.io/blog/how-to-pass-app-store-review/): Master the App Store review process with our comprehensive guide! Learn the latest guidelines, tips, and best practices to ensure your app gets approved swiftly and seamlessly. - [Adapty August Update: Server notification status, A/B testing CSV, and SDK 1.18-beta](https://adapty.io/blog/adapty-august-2022-updates/): Learn what's new in Adapty in August: server notification statuses, resizable cloumns beta SDK, and more. - [How to get paid subscribers for your app: conversion from freemium to premium](https://adapty.io/blog/freemium-to-premium-conversion-techniques/): Upgrade your app monetization strategy with proven freemium to premium conversion techniques. This guide provides insights and tips to help you increase revenue and user engagement for subscription-based apps - [Top 5 advanced mobile apps subscription metrics](https://adapty.io/blog/top-5-advanced-mobile-subscription-metrics/): Explore the top 5 advanced subscription metrics essential for mobile app success, and learn how to optimize your strategies for better user engagement and revenue growth. - [Paywall Newsletter #3](https://adapty.io/blog/mobile-paywall-newsletter-3/): The third issue of the paywall newsletter by Adapty in which top experts of the mobile app industry comments on interesting mobile paywalls and share insights - [Achats intégrés sous Android, 2e partie : traitement des achats avec la service de facturation de Google Play](https://adapty.io/blog/android-in-app-purchases-google-play-billing-library-part-2/): Achat intégré sous iOS : validation des reçus côté serveur. Nous expliquons pourquoi la validation des reçus est importante et comment la paramétrer. - [Branch & Adapty webinar: WWDC 2022 recap and in-app purchases updates in 2022](https://adapty.io/blog/branch-adapty-webinar-2022/): Branch & Adapty webinar: WWDC 2022, in-app purchases updates, and other mobile growth-related questions. - [チュートリアル: アプリ内購入をFlutterアプリに実装する方法](https://adapty.io/blog/flutter/): Adapty を利用したFlutterアプリのアプリ内購入。 - [Adapty ile yıllık gelirini 0'dan 2.45 milyon dolara çıkaran uygulama: Moonly](https://adapty.io/blog/moonly-app/): Adapty'nin güçlü özelliklerini kullanarak gelirini milyon dolara çıkaran uygulama Moonly. - [Adapty ile A/B Testi Yaparak Gelirlerini %30 Arttıran Mobil Uygulama: Prosto](https://adapty.io/blog/prosto/): Adapty ile A/B testi yaparak gelirini arttıran mobil uygulama Prosto - [Union Apps, Adapty ile Müşterilerine Nasıl Milyonlarca Dolar Kazandırdı?](https://adapty.io/blog/union-apps/): Adapty' kullanarak abonelik yoluyla milyonlarca dolar kazanan mobil uygulamalar - [Adapty July Updates: retention and conversion charts](https://adapty.io/blog/adapty-july-2022-updates/): What's new in Adapty in July: new retention feature, conversion tracking, Sandbox documentation, and more. - [Why is everyone wrong about unit economics](https://adapty.io/blog/subhub-podcast-15-wowmaking/): SubHub podcast №15: Listen to Anton Shlovenets, the CPO at Wowmaking, talk on how to approach traffic acquisition and correctly calculate unit economics. - [Understanding Google Play Billing Library 5](https://adapty.io/blog/google-play-billing-library-5-0-overview/): Our review of Google Play Billing Library 5: new subscription model, in-app messaging, backward compatibility, and more. - [Adapty June Updates: funnels, paywall visits export to Amazon S3, Adjust OAuth, and hiring!](https://adapty.io/blog/adapty-june-2022-updates/): What's new in Adapty in June: introduced new funnels tab, added paywall visits export to Amazon S3, and integrated Adjust OAuth token. - [Paywall A/B testing guide, part 4: how to run experiments in Adapty](https://adapty.io/blog/how-to-run-a-b-test-for-mobile-paywalls-in-adapty/): We truly believe Adapty A/B testing for paywalls is different. Here, we will tell you why and how it helps increase your revenue by 40%. - [Paywall Newsletter #2](https://adapty.io/blog/mobile-paywall-newsletter-2/): The second issue of the paywall newsletter by Adapty in which top experts of the mobile app industry comments on interesting mobile paywalls and share insights - [Paywall A/B testing for optimizing in-app revenue](https://adapty.io/blog/how-to-run-ab-tests-on-mobile-paywalls/): Learn how to find the right A/B testing framework and what technical steps are needed to launch a test. - [Paywall A/B testing guide, part 2: what to test on the paywall](https://adapty.io/blog/ab-testing-guide-part-2-what-to-test-on-the-paywall/): Let's talk about the things you can test on your paywall: pricing options, intro offers, design elements, and more. - [Paywall A/B testing guide: How to approach split-testing and avoid mistakes](https://adapty.io/blog/paywall-ab-testing-mistakes/): A/B testing can be a powerful tool for optimizing your mobile app paywall. But if you're not careful, you can make mistakes that could undermine the effectiveness of your testing. In this guide, we'll explore common paywall A/B testing mistakes and how to avoid them. - [What’s new in SKAdNetwork 4.0](https://adapty.io/blog/whats-new-in-skadnetwork/): Review of all new features of SKAdNetwork 4.0 announced at WWDC 2022: crowd anonimity, 4-digit source identifier, and more. - [Paywall Newsletter #1](https://adapty.io/blog/mobile-paywall-newsletter-1/): The 1st issue of the paywall newsletter by Adapty in which top experts of the mobile app industry comments on interesting mobile paywalls and share insights. - [What’s new with in-app purchases: WWDC 2022](https://adapty.io/blog/in-app-purchases-wwdc-2022/): Apple WWDC 2022 in-app purchases updates: App Transaction API, SwiftUI, and StoreKit messages. - [Adapty May Updates: full-featured Unity SDK, chart improvements, and new navigation](https://adapty.io/blog/adapty-may-2022-updates/): What's new in Adapty in May: new version of Unity SDK, improved segmentation in charts, and reworked side menu. - [How to find a new niche and grow your app](https://adapty.io/blog/subhub-podcast-14-woofz/): SubHub podcast on mobile app business and app monetization. Episode 14: CMO of Woofz, Natalia Shahmetova, talks about successful developing an app in a nar - [Adapty April Updates: all new cohorts, SearchAdsHQ integration and hiring new team members!](https://adapty.io/blog/adapty-april-2022-updates/): What's new in Adapty in Aprli: reworked cohorts, SearchAdsHQ integration and team growing! - [Adapty March Updates: Home metrics, paywall and A/B tests duplication](https://adapty.io/blog/adapty-march-updates/): What's new in Adapty in March: Home metrics, paywall and A/B tests duplication - [How to improve app visibility and conversion in the App Store?](https://adapty.io/blog/improve-app-visibility-in-app-store/): Discover proven strategies to boost your app's visibility in the App Store. Learn how in-app purchases can drive engagement, enhance user experience, and skyrocket your app's ranking and downloads. - [Mobil Uygulamanız İçin Para Kazandıran Keywordler Nasıl Seçilir?](https://adapty.io/blog/how-to-choose-money-making-keywords-for-your-app/): Uygulamanızın abonelik gelirini artırmak için birkaç basit adımda en alakalı keywordleri bulun - [How to choose money-making keywords for your app](https://adapty.io/blog/how-to-choose-money-making-keywords-for-your-app/): Find the most relevant keywords in a few simple steps to grow your app's subscription revenue - [Adapty February Updates: ARPPU Metric, improved attribution](https://adapty.io/blog/adapty-february-updates-arppu-metric-improved-attribution/): What's new in Adapty in February: ARPPU Metric, improved attribution - [Bir mobil uygulama nasıl satın alınır: Nelere dikkat etmek gerekir?](https://adapty.io/blog/how-to-buy-a-mobile-app/): Bir mobil uygulama alım sürecinin tüm detayları: neleri kontrol etmeli, riskler neler ve tüm satın alma süreçleri - [How to buy a mobile app: what to pay attention to](https://adapty.io/blog/how-to-buy-a-mobile-app/): What to know before you buy an app: From the reasons why apps are commonly sold or bought to the details you should know to get a successful --- ## Cases - [Going Merry](https://adapty.io/case-studies/going-merry/): Discover how Going Merry grew 5x in under a year, scaling from $100K to $470K MRR with Adapty’s Paywall Builder for faster testing and campaigns. - [Shmoody](https://adapty.io/case-studies/shmoody/): Discover how Shmoody used Adapty to grow to $2M ARR. 60+ paywall tests, $80K from a single experiment, and $34K saved on refunds – all in one case study. - [Lively](https://adapty.io/case-studies/lively/): Discover how Lively cut the refund rate by 83% and saved 82% of revenue using Adapty Refund Saver. Real results in just one month. - [Glam AI](https://adapty.io/case-studies/glam-ai/): Discover how Glam AI scaled to $1M ARR with Adapty’s real-time analytics. Learn how A/B testing and Refund Saver helped optimize revenue and maximize user LTV. - [Pepapp](https://adapty.io/case-studies/pepapp/): Learn how Pepapp used Adapty’s Refund Saver to save 86% of lost revenue, achieve 58% YoY subscription growth, and earn a 400% ROI in just 7 days. - [Fotorama](https://adapty.io/case-studies/fotorama/): Discover how Fotorama used Adapty’s Refund Saver to automate refund handling, reduce refund rates by 40%, and boost daily revenue by over $2,500. - [Wave](https://adapty.io/case-studies/wave/): Learn the story of Josh Mohrer. an ex-business executive, who became a solo app developer and bootstrapped its app Wave: AI Note Taker from $0 to $4M ARR. - [Impala](https://adapty.io/case-studies/impala/): Impala Studios, a global app publisher, migrated to Adapty from a competitor's solution. Learn about the migration process that took less than a week and gave a 2x speed boost in launching A/B tests and preparing paywalls. - [ABBYY](https://adapty.io/case-studies/abbyy/): See how ABBYY amplified subscription revenue by integrating Adapty and AppsFlyer, enhancing data analysis and marketing strategies in our comprehensive case study. - [SocialKit](https://adapty.io/case-studies/socialkit/): Learn from the Social Kit App case study how leveraging Adapty's data-driven subscription management contributed to a robust increase in monthly recurring revenue. - [Moonly](https://adapty.io/case-studies/moonly/): Discover how Moonly App maximized revenue growth through strategic use of Adapty's features, as detailed in this compelling case study on subscription optimization and user retention. - [Prosto](https://adapty.io/case-studies/prosto/): Unveil the success story of Prosto App's revenue surge with Adapty. This case study highlights the effective strategies and tools that propelled user conversion and retention. - [Avatarify](https://adapty.io/case-studies/avatarify/): Discover how Avatarify skyrocketed user engagement and revenue with Adapty's personalized paywalls in this insightful case study. Learn key strategies for app growth and monetization success! - [Union Apps](https://adapty.io/case-studies/union-apps/): Explore Union Apps' remarkable revenue growth journey in our case study, showcasing how strategic use of Adapty's subscription analytics and A/B testing led to enhanced monetization. --- ## Compare - [RevenueCat](https://adapty.io/zh/compare/revenuecat/): 正在寻找 RevenueCat 的替代方案?比较 Adapty 与 RevenueCat,了解为什么 Adapty 是跟踪应用内购买、订阅分析和付费墙优化的最佳选择。 - [RevenueCat](https://adapty.io/fr/compare/revenuecat/): Vous cherchez une alternative à RevenueCat? Comparez Adapty et RevenueCat pour voir pourquoi Adapty est le meilleur choix pour le suivi des achats intégrés, l’analyse des abonnements et l’optimisation des paywalls. - [RevenueCat](https://adapty.io/de/compare/revenuecat/): Auf der Suche nach einer RevenueCat-Alternative? Vergleiche Adapty vs. RevenueCat und erfahre, warum Adapty die beste Wahl für das Tracking von In-App-Käufen, Abo-Analysen und Paywall-Optimierung ist. - [RevenueCat](https://adapty.io/ja/compare/revenuecat/): RevenueCatの代替を探していますか?AdaptyとRevenueCatを比較して、アプリ内購入の追跡、サブスクリプション分析、ペイウォール最適化でAdaptyがなぜ最良の選択なのかをご確認ください。 - [RevenueCat](https://adapty.io/ko/compare/revenuecat/): RevenueCat 대안을 찾고 계신가요? Adapty와 RevenueCat을 비교해 보세요. Adapty가 인앱 구매 추적, 구독 분석, 페이월 최적화에서 최고의 선택인 이유를 확인할 수 있습니다. - [RevenueCat](https://adapty.io/pl/compare/revenuecat/): Szukasz alternatywy dla RevenueCat? Porównaj Adapty i RevenueCat, aby zobaczyć, dlaczego Adapty to najlepszy wybór do śledzenia zakupów w aplikacji, analityki subskrypcji i optymalizacji paywalli. - [RevenueCat](https://adapty.io/pt/compare/revenuecat/): Procurando uma alternativa ao RevenueCat? Compare Adapty vs RevenueCat para ver por que o Adapty é a melhor escolha para rastrear compras in-app, analisar assinaturas e otimizar paywalls. - [RevenueCat](https://adapty.io/es/compare/revenuecat/): ¿Buscas una alternativa a RevenueCat? Compara Adapty vs RevenueCat y descubre por qué Adapty es la mejor opción para rastrear compras dentro de la app, analíticas de suscripción y optimización de paywalls. - [RevenueCat](https://adapty.io/tr/compare/revenuecat/): RevenueCat alternatifi mi arıyorsunuz? Adapty ve RevenueCat'i karşılaştırın, uygulama içi satın alımları takip etmede, abonelik analizlerinde ve ödeme duvarı optimizasyonunda neden Adapty'nin en iyi seçim olduğunu görün. - [RevenueCat](https://adapty.io/ua/compare/revenuecat/): Шукаєте альтернативу RevenueCat? Порівняйте Adapty і RevenueCat, щоб побачити, чому Adapty — найкращий вибір для відстеження in-app покупок, аналітики підписок і оптимізації пейволів. - [RevenueCat](https://adapty.io/ru/compare/revenuecat/): Ищете альтернативу RevenueCat? Сравните Adapty и RevenueCat, чтобы увидеть, почему Adapty — лучший выбор для отслеживания внутриигровых покупок, аналитики подписок и оптимизации пейволлов. - [RevenueCat](https://adapty.io/compare/revenuecat/): Looking for a RevenueCat alternative? Compare Adapty vs RevenueCat to see why Adapty is the best choice for tracking in-app purchases, subscription analytics, and paywall optimization. - [Superwall](https://adapty.io/compare/superwall/): Looking for a Superwall alternative? Compare Adapty vs Superwall to see why Adapty is the best choice for app revenue growth, subscription analytics, and paywall optimization. - [Superwall](https://adapty.io/zh/compare/superwall/): 正在寻找 Superwall 的替代方案?比较 Adapty 与 Superwall,了解为什么 Adapty 是应用营收增长、订阅分析和付费墙优化的最佳选择。 - [Superwall](https://adapty.io/fr/compare/superwall/): Vous cherchez une alternative à Superwall? Comparez Adapty et Superwall pour voir pourquoi Adapty est le meilleur choix pour la croissance des revenus des apps, l’analyse des abonnements et l’optimisation des paywalls. - [Superwall](https://adapty.io/de/compare/superwall/): Auf der Suche nach einer Superwall-Alternative? Vergleiche Adapty vs. Superwall und erfahre, warum Adapty die beste Wahl für Umsatzwachstum, Abo-Analysen und Paywall-Optimierung ist. - [Superwall](https://adapty.io/ja/compare/superwall/): Superwallの代替をお探しですか?AdaptyとSuperwallを比較して、アプリ収益成長、サブスクリプション分析、ペイウォール最適化においてAdaptyが最良の選択である理由をご確認ください。 - [Superwall](https://adapty.io/ko/compare/superwall/): Superwall 대안을 찾고 계신가요? Adapty와 Superwall을 비교해 보세요. 앱 수익 성장, 구독 분석, 페이월 최적화에서 Adapty가 최고의 선택인 이유를 확인할 수 있습니다. - [Superwall](https://adapty.io/pl/compare/superwall/): Szukasz alternatywy dla Superwall? Porównaj Adapty i Superwall, aby zobaczyć, dlaczego Adapty to najlepszy wybór dla wzrostu przychodów z aplikacji, analityki subskrypcji i optymalizacji paywalli. - [Superwall](https://adapty.io/pt/compare/superwall/): Procurando uma alternativa ao Superwall? Compare Adapty vs Superwall para ver por que o Adapty é a melhor escolha para crescimento de receita de apps, análise de assinaturas e otimização de paywalls. - [Superwall](https://adapty.io/ru/compare/superwall/): Ищете альтернативу Superwall? Сравните Adapty и Superwall, чтобы увидеть, почему Adapty — лучший выбор для роста дохода приложений, аналитики подписок и оптимизации пейволлов. - [Superwall](https://adapty.io/es/compare/superwall/): ¿Buscas una alternativa a Superwall? Compara Adapty vs Superwall y descubre por qué Adapty es la mejor opción para el crecimiento de ingresos de apps, analíticas de suscripción y optimización de paywalls. - [Superwall](https://adapty.io/tr/compare/superwall/): Superwall alternatifi mi arıyorsunuz? Adapty ve Superwall'u karşılaştırın, uygulama gelir büyümesi, abonelik analizleri ve ödeme duvarı optimizasyonunda neden Adapty'nin en iyi seçim olduğunu görün. - [Superwall](https://adapty.io/ua/compare/superwall/): Шукаєте альтернативу Superwall? Порівняйте Adapty і Superwall, щоб побачити, чому Adapty — найкращий вибір для зростання доходів застосунку, аналітики підписок і оптимізації пейволів. - [Qonversion](https://adapty.io/tr/compare/qonversion/): Uygulama geliri artışını hızlandırmak için Qonversion'a lider alternatif olan Adapty'yi keşfedin. Mobil uygulamanızın performansını optimize etmek ve kazancınızı en üst düzeye çıkarmak için tasarlanmış güçlü analitik, A/B testi ve uygulama içi abonelik yönetimi araçlarını açığa çıkarın. - [In-house Development](https://adapty.io/zh/compare/in-house-development/): 了解內部開發與使用 Adapty 平台進行應用程式貨幣化的利弊。了解哪種方法最適合您的業務目標、預算和時間表,以有效推動業務成長。 - [In-house Development](https://adapty.io/fr/compare/in-house-development/): Découvrez les avantages et les inconvénients du développement interne par rapport à l'utilisation de la plateforme d'Adapty pour la monétisation des applications. Apprenez quelle approche correspond le mieux à vos objectifs commerciaux, à votre budget et à votre calendrier afin de stimuler efficacement votre croissance. - [In-house Development](https://adapty.io/de/compare/in-house-development/): Entdecken Sie die Vor- und Nachteile der Inhouse-Entwicklung gegenüber der Nutzung der Adapty-Plattform für die App-Monetarisierung. Erfahren Sie, welcher Ansatz am besten zu Ihren Geschäftszielen, Ihrem Budget und Ihrem Zeitplan passt, um Ihr Wachstum effektiv zu fördern. - [Qonversion](https://adapty.io/compare/qonversion/): Discover Adapty - the leading alternative to Qonversion for accelerating app revenue growth. Unleash powerful analytics, A/B testing, and in-app subscription management tools designed to optimize your mobile app's performance and maximize earnings. - [In-house Development](https://adapty.io/ko/compare/in-house-development/): 앱 수익화를 위해 자체 개발과 애드앱티 플랫폼을 사용하는 것의 장단점을 알아보세요. 비즈니스 목표, 예산, 일정에 가장 적합한 접근 방식이 무엇인지 알아보고 효과적으로 성장을 촉진하세요. - [In-house Development](https://adapty.io/pl/compare/in-house-development/): Odkryj zalety i wady wewnętrznego rozwoju w porównaniu z korzystaniem z platformy Adapty do monetyzacji aplikacji. Dowiedz się, które podejście najlepiej odpowiada Twoim celom biznesowym, budżetowi i harmonogramowi, aby skutecznie napędzać wzrost. - [Purchasely](https://adapty.io/compare/purchasely/): Adapty is a Purchasely alternative for growing subscription apps. Level up your app with the paywall builder, paywall A/B testing, subscription analytics, and more. - [In-house Development](https://adapty.io/pt/compare/in-house-development/): Descubra os prós e contras do desenvolvimento interno versus o uso da plataforma Adapty para monetização de aplicativos. Saiba qual a abordagem que melhor se adequa aos seus objectivos comerciais, orçamento e calendário para impulsionar o crescimento de forma eficaz. - [In-house Development](https://adapty.io/compare/in-house-development/): Discover the pros and cons of in-house development vs. using Adapty's platform for app monetization. Learn which approach best suits your business goals, budget, and timeline to drive growth effectively. - [In-house Development](https://adapty.io/ru/compare/in-house-development/): Узнайте о плюсах и минусах собственной разработки и использования платформы Adapty для монетизации приложений. Узнайте, какой подход лучше всего соответствует целям вашего бизнеса, бюджету и срокам, чтобы эффективно стимулировать рост. - [In-house Development](https://adapty.io/es/compare/in-house-development/): Descubre los pros y los contras del desarrollo interno frente al uso de la plataforma de Adapty para la monetización de aplicaciones. Descubre qué enfoque se adapta mejor a tus objetivos empresariales, presupuesto y plazos para impulsar el crecimiento de forma eficaz. - [In-house Development](https://adapty.io/tr/compare/in-house-development/): Şirket içi geliştirmenin ve uygulamadan para kazanma için Adapty'nin platformunu kullanmanın artılarını ve eksilerini keşfedin. Büyümeyi etkili bir şekilde sağlamak için hangi yaklaşımın iş hedeflerinize, bütçenize ve zaman çizelgenize en uygun olduğunu öğrenin. - [In-house Development](https://adapty.io/ua/compare/in-house-development/): Дізнайтеся про переваги та недоліки власної розробки та використання платформи Adapty для монетизації додатків. Дізнайтеся, який підхід найкраще відповідає вашим бізнес-цілям, бюджету та часовим рамкам для ефективного зростання. - [In-house Development](https://adapty.io/ja/compare/in-house-development/): 自社開発とAdaptyのプラットフォームによるアプリ収益化の長所と短所をご覧ください。お客様のビジネス目標、予算、スケジュールに合わせて最適なアプローチを選択し、効果的に成長を促進しましょう。 - [Purchasely](https://adapty.io/zh/compare/purchasely/): Adapty 是 Purchasely 的替代方案,適用於成長中的訂閱應用程式。使用付費牆建立程式、付費牆 A/B 測試、訂閱分析等功能提升您的應用程式等級。 - [Purchasely](https://adapty.io/de/compare/purchasely/): Adapty ist eine Purchasely-Alternative für wachsende Abonnement-Apps. Verbessern Sie Ihre App mit dem Paywall-Builder, Paywall-A/B-Tests, Abonnement-Analysen und mehr. - [Purchasely](https://adapty.io/fr/compare/purchasely/): Adapty est une alternative à Purchasely pour les applications d'abonnement en pleine croissance. Améliorez votre application avec le constructeur de paywall, les tests A/B de paywall, l'analyse des abonnements, et plus encore. - [Purchasely](https://adapty.io/ja/compare/purchasely/): Adaptyは、サブスクリプションアプリを成長させるためのPurchaselyの代替ツールです。ペイウォールビルダー、ペイウォールA/Bテスト、サブスクリプション分析などでアプリをレベルアップさせましょう。 - [Purchasely](https://adapty.io/ko/compare/purchasely/): Adapty는 성장하는 구독 앱을 위한 구매형 대안입니다. 페이월 빌더, 페이월 A/B 테스트, 구독 분석 등을 통해 앱의 수준을 높이세요. - [Purchasely](https://adapty.io/pl/compare/purchasely/): Adapty to alternatywa Purchasely dla rozwijających się aplikacji subskrypcyjnych. Rozwijaj swoją aplikację dzięki kreatorowi paywalli, testom A/B paywalli, analizie subskrypcji i nie tylko. - [Purchasely](https://adapty.io/pt/compare/purchasely/): O Adapty é uma alternativa ao Purchasely para aplicações de subscrição em crescimento. Aumente o nível do seu aplicativo com o construtor de paywall, teste A/B de paywall, análise de assinatura e muito mais. - [Purchasely](https://adapty.io/ru/compare/purchasely/): Adapty - это альтернатива Purchasely для растущих приложений с подпиской. Повысьте уровень своего приложения с помощью конструктора платных стен, A/B-тестирования платных стен, аналитики подписки и многого другого. - [Purchasely](https://adapty.io/es/compare/purchasely/): Adapty es una alternativa a Purchasely para aplicaciones de suscripción en crecimiento. Mejora tu aplicación con el creador de muros de pago, pruebas A/B de muros de pago, análisis de suscripciones y mucho más. - [Purchasely](https://adapty.io/tr/compare/purchasely/): Adapty, büyüyen abonelik uygulamaları için bir Purchasely alternatifidir. Ödeme duvarı oluşturucu, ödeme duvarı A/B testi, abonelik analizleri ve daha fazlasıyla uygulamanızın seviyesini yükseltin. - [Purchasely](https://adapty.io/ua/compare/purchasely/): Adapty - це альтернатива Purchasely для зростаючих додатків з підпискою. Вирівняйте свій додаток за допомогою конструктора, A/B-тестування, аналітики підписки та багато іншого. - [Qonversion](https://adapty.io/zh/compare/qonversion/): 探索 Adapty - 加速應用程式收入成長的 Qonversion 的領先替代方案。釋放功能強大的分析、A/B 測試和應用程式內訂閱管理工具,旨在優化您的行動應用程式的效能,並將收益最大化。 - [Qonversion](https://adapty.io/fr/compare/qonversion/): Découvrez Adapty - la principale alternative à Qonversion pour accélérer la croissance des revenus des applications. Bénéficiez de puissants outils d'analyse, de tests A/B et de gestion des abonnements in-app conçus pour optimiser les performances de votre application mobile et maximiser vos revenus. - [Qonversion](https://adapty.io/de/compare/qonversion/): Entdecken Sie Adapty - die führende Alternative zu Qonversion zur Beschleunigung des App-Umsatzwachstums. Setzen Sie leistungsstarke Analysen, A/B-Tests und In-App-Abonnementverwaltungstools ein, um die Leistung Ihrer mobilen App zu optimieren und die Einnahmen zu maximieren. - [Qonversion](https://adapty.io/ja/compare/qonversion/): アプリの収益成長を加速させるQonversionに代わるリーディングカンパニー、Adaptyをご紹介します。モバイルアプリのパフォーマンスを最適化し、収益を最大化するために設計された、強力な分析、A/Bテスト、アプリ内サブスクリプション管理ツールをご利用いただけます。 - [Qonversion](https://adapty.io/ko/compare/qonversion/): 앱 수익 성장을 가속화하기 위한 Qonversion의 선도적인 대안인 애드앱티에 대해 알아보세요. 모바일 앱의 성능을 최적화하고 수익을 극대화하도록 설계된 강력한 분석, A/B 테스트 및 인앱 구독 관리 도구를 활용하세요. - [Qonversion](https://adapty.io/pl/compare/qonversion/): Odkryj Adapty - wiodącą alternatywę dla Qonversion w celu przyspieszenia wzrostu przychodów z aplikacji. Uwolnij potężne narzędzia analityczne, testy A/B i narzędzia do zarządzania subskrypcjami w aplikacji, zaprojektowane w celu optymalizacji wydajności aplikacji mobilnej i maksymalizacji zysków. - [Qonversion](https://adapty.io/pt/compare/qonversion/): Descubra o Adapty - a principal alternativa ao Qonversion para acelerar o crescimento das receitas das aplicações. Liberte poderosas ferramentas de análise, testes A/B e gestão de subscrições in-app concebidas para otimizar o desempenho da sua aplicação móvel e maximizar os ganhos. - [Qonversion](https://adapty.io/ru/compare/qonversion/): Откройте для себя Adapty - ведущую альтернативу Qonversion для ускорения роста доходов приложений. Мощные инструменты аналитики, A/B-тестирования и управления подписками в приложении помогут оптимизировать работу вашего мобильного приложения и получить максимальный доход. - [Qonversion](https://adapty.io/es/compare/qonversion/): Descubra Adapty, la alternativa líder a Qonversion para acelerar el crecimiento de los ingresos de las aplicaciones. Libere potentes herramientas de análisis, pruebas A/B y gestión de suscripciones dentro de la aplicación diseñadas para optimizar el rendimiento de su aplicación móvil y maximizar los ingresos. - [Qonversion](https://adapty.io/ua/compare/qonversion/): Відкрийте для себе Adapty - провідну альтернативу Qonversion для прискорення зростання доходів від додатків. Використовуйте потужні інструменти аналітики, A/B-тестування та управління підписками в додатку, щоб оптимізувати роботу вашого мобільного додатку та максимізувати прибутки. --- ## Ebooks - [Turn your side project into $1K MRR](https://adapty.io/ja/ebooks/roadmap-to-1k-dollars-mrr/): 無料の電子書籍を使ってサイドプロジェクトアプリを月額1,000ドルのMRRに成長させましょう。実データが検証、初期ユーザー、そして確実なマネタイズ戦略を導きます。 - [Turn your side project into $1K MRR](https://adapty.io/ko/ebooks/roadmap-to-1k-dollars-mrr/): $1K MRR에 도달할 수 있는 사이드 프로젝트 앱을 무료 전자책으로 성장시키세요. 실제 데이터가 검증, 첫 사용자를 안내하고 검증된 수익화 전략을 제공합니다. - [Turn your side project into $1K MRR](https://adapty.io/de/ebooks/roadmap-to-1k-dollars-mrr/): Bring dein Nebenprojekt-App auf 1.000 USD MRR mit unserem kostenlosen Ebook. Echte Daten leiten die Validierung, erste Nutzer und bewährte Monetarisierungsstrategien. - [Turn your side project into $1K MRR](https://adapty.io/zh/ebooks/roadmap-to-1k-dollars-mrr/): 通过我们的免费电子书将您的副项目应用程序增长到每月1000美元的经常性收入。真实数据指导验证、第一批用户和经过验证的货币化策略。 - [Turn your side project into $1K MRR](https://adapty.io/pl/ebooks/roadmap-to-1k-dollars-mrr/): Rozwiń swoją aplikację poboczną do 1 000 USD MRR dzięki naszemu darmowemu ebookowi. Prawdziwe dane prowadzą do walidacji, pierwszych użytkowników i sprawdzonych strategii monetyzacji. - [Turn your side project into $1K MRR](https://adapty.io/es/ebooks/roadmap-to-1k-dollars-mrr/): Haz crecer tu aplicación de proyecto paralelo a $1K MRR con nuestro ebook gratuito. Datos reales guían la validación, los primeros usuarios y estrategias de monetización probadas. - [Turn your side project into $1K MRR](https://adapty.io/ru/ebooks/roadmap-to-1k-dollars-mrr/): Вырастите свое приложение побочного проекта до $1.000 MRR с нашим бесплатным ebook. Реальные данные направляют валидацию, первых пользователей и проверенные стратегии монетизации. - [Turn your side project into $1K MRR](https://adapty.io/ua/ebooks/roadmap-to-1k-dollars-mrr/): Розвивайте свій проєктний застосунок до $1K MRR з нашим безкоштовним ebook. Реальні дані допоможуть з валідацією, першими користувачами та перевіреними стратегіями монетизації. - [Turn your side project into $1K MRR](https://adapty.io/tr/ebooks/roadmap-to-1k-dollars-mrr/): $1K MRR'ye ulaşmak için yan proje uygulamanızı ücretsiz e-kitabımızla geliştirin. Gerçek veriler doğrulamayı, ilk kullanıcıları ve kanıtlanmış para kazanma stratejilerini rehberlik eder. - [Turn your side project into $1K MRR](https://adapty.io/ebooks/roadmap-to-1k-dollars-mrr/): Grow your side-project app to $1K MRR with our free ebook. Real data guides validation, first users, and proven monetization strategies. - [Turn your side project into $1K MRR](https://adapty.io/pt/ebooks/roadmap-to-1k-dollars-mrr/): Cresça seu aplicativo de projeto lateral para $1K MRR com nosso ebook gratuito. Dados reais orientam validação, primeiros usuários e estratégias de monetização comprovadas. - [Turn your side project into $1K MRR](https://adapty.io/fr/ebooks/roadmap-to-1k-dollars-mrr/): Développez votre application de projet secondaire jusqu'à 1 000 $ de MRR avec notre ebook gratuit. Des données réelles guident la validation, les premiers utilisateurs et des stratégies de monétisation éprouvées. - [Stop losing your revenue with the app refunds ebook](https://adapty.io/ebooks/refunds-ebook/): App refunds eat into your revenue, but they don’t have to. Learn how apps win back lost payments and turn refunds into revenue. - [Stop losing your revenue with the app refunds ebook](https://adapty.io/zh/ebooks/refunds-ebook/): 应用退款会侵蚀您的收入,但不必如此。了解应用如何挽回丢失的付款并将退款转化为收入。 - [Stop losing your revenue with the app refunds ebook](https://adapty.io/fr/ebooks/refunds-ebook/): Les remboursements d'applications réduisent vos revenus, mais ce n'est pas une fatalité. Découvrez comment les applications récupèrent les paiements perdus et transforment les remboursements en revenus. - [Stop losing your revenue with the app refunds ebook](https://adapty.io/de/ebooks/refunds-ebook/): App-Rückerstattungen fressen Ihre Einnahmen auf, aber das muss nicht sein. Erfahren Sie, wie Apps verlorene Zahlungen zurückgewinnen und Rückerstattungen in Einnahmen umwandeln. - [Stop losing your revenue with the app refunds ebook](https://adapty.io/ja/ebooks/refunds-ebook/): アプリの払い戻しは収益を削減しますが、防ぐことができます。アプリが失われた支払いを取り戻し、払い戻しを収益に変える方法を学びましょう。 - [Stop losing your revenue with the app refunds ebook](https://adapty.io/ko/ebooks/refunds-ebook/): 앱 환불은 수익을 감소시키지만 반드시 그럴 필요는 없습니다. 앱이 손실된 결제를 되찾고 환불을 수익으로 전환하는 방법을 알아보세요. - [Stop losing your revenue with the app refunds ebook](https://adapty.io/pl/ebooks/refunds-ebook/): Zwroty aplikacji uszczuplają twoje dochody, ale nie muszą. Dowiedz się, jak aplikacje odzyskują utracone płatności i zamieniają zwroty na dochód. - [Stop losing your revenue with the app refunds ebook](https://adapty.io/pt/ebooks/refunds-ebook/): Os reembolsos de aplicativos reduzem sua receita, mas isso não precisa acontecer. Aprenda como os aplicativos recuperam pagamentos perdidos e transformam reembolsos em receita. - [Stop losing your revenue with the app refunds ebook](https://adapty.io/ru/ebooks/refunds-ebook/): Возвраты средств за приложения уменьшают ваш доход, но этого можно избежать. Узнайте, как приложения возвращают потерянные платежи и превращают возвраты в доход. - [Stop losing your revenue with the app refunds ebook](https://adapty.io/es/ebooks/refunds-ebook/): Los reembolsos de aplicaciones reducen tus ingresos, pero no tienen por qué hacerlo. Aprende cómo las aplicaciones recuperan pagos perdidos y convierten los reembolsos en ingresos. - [Stop losing your revenue with the app refunds ebook](https://adapty.io/tr/ebooks/refunds-ebook/): Uygulama iadeleri gelirlerinizi azaltır, ancak bu böyle olmak zorunda değil. Uygulamaların kaybolan ödemeleri nasıl geri kazandığını ve iadeleri gelire dönüştürdüğünü öğrenin. - [Stop losing your revenue with the app refunds ebook](https://adapty.io/ua/ebooks/refunds-ebook/): Повернення коштів за додатки зменшує ваш дохід, але це можна виправити. Дізнайтеся, як додатки відновлюють втрачені платежі та перетворюють повернення у прибуток. - [How to design a mobile paywall to boost subscriptions](https://adapty.io/ebooks/how-to-design-a-mobile-paywall/): In out guide on app paywalls, you'll find: 10 ideas to try on your paywall, 25 examples of highly effective paywalls, recommendations on Apple Guidelines. - [Grow your subscription app from $1K to $10K MRR](https://adapty.io/ebooks/roadmap-to-10k-dollars-mrr/): Discover proven strategies to scale your subscription app to $10K MRR with our ebook. Data-driven insights optimize monetization and retention. - [Grow your subscription app from $1K to $10K MRR](https://adapty.io/zh/ebooks/roadmap-to-10k-dollars-mrr/): 发现经过验证的策略,将您的订阅应用程序扩展到 每月 $10,000 的经常性收入,通过我们的电子书。数据驱动的洞察优化货币化和用户保留。 - [Grow your subscription app from $1K to $10K MRR](https://adapty.io/fr/ebooks/roadmap-to-10k-dollars-mrr/): Découvrez des stratégies éprouvées pour faire évoluer votre application d'abonnement à $10.000 MRR avec notre ebook. Des informations basées sur les données optimisent la monétisation et la rétention. - [Grow your subscription app from $1K to $10K MRR](https://adapty.io/de/ebooks/roadmap-to-10k-dollars-mrr/): Entdecken Sie bewährte Strategien, um Ihre Abonnement-App auf 10.000 USD monatlich wiederkehrende Einnahmen zu skalieren, mit unserem E-Book. Datenbasierte Erkenntnisse optimieren Monetarisierung und Bindung. - [Grow your subscription app from $1K to $10K MRR](https://adapty.io/ja/ebooks/roadmap-to-10k-dollars-mrr/): 私たちの電子書籍を使って、月額収益10,000ドルを達成するための実証済みの戦略を発見してください。データ主導の洞察により、収益化と保持を最適化します。 - [Grow your subscription app from $1K to $10K MRR](https://adapty.io/ko/ebooks/roadmap-to-10k-dollars-mrr/): 우리의 전자책으로 구독 앱을 $10K MRR로 확장하는 입증된 전략을 발견하십시오. 데이터 기반 통찰력을 통해 수익화 및 유지 관리를 최적화합니다. - [Grow your subscription app from $1K to $10K MRR](https://adapty.io/pl/ebooks/roadmap-to-10k-dollars-mrr/): Odkryj sprawdzone strategie, aby zwiększyć swoją aplikację subskrypcyjną do $10.000 MRR za pomocą naszego ebooka. Oparte na danych informacje optymalizują monetyzację i zatrzymanie użytkowników. - [Grow your subscription app from $1K to $10K MRR](https://adapty.io/pt/ebooks/roadmap-to-10k-dollars-mrr/): Descubra estratégias comprovadas para escalar seu aplicativo de assinatura para $10K MRR com nosso ebook. Insights baseados em dados otimizam a monetização e a retenção. - [Grow your subscription app from $1K to $10K MRR](https://adapty.io/ru/ebooks/roadmap-to-10k-dollars-mrr/): Откройте для себя проверенные стратегии масштабирования Вашего приложения до $10K MRR с нашим ebook. Данные, основанные на анализе, оптимизируют монетизацию и удержание. - [Grow your subscription app from $1K to $10K MRR](https://adapty.io/es/ebooks/roadmap-to-10k-dollars-mrr/): Descubre estrategias probadas para escalar tu aplicación de suscripción a $10K MRR con nuestro ebook. Los conocimientos basados en datos optimizan la monetización y la retención. - [Grow your subscription app from $1K to $10K MRR](https://adapty.io/tr/ebooks/roadmap-to-10k-dollars-mrr/): $10K MRR'ye ulaşmak için abonelik uygulamanızı ölçeklendirme konusunda kanıtlanmış stratejileri keşfedin. Veriye dayalı içgörüler, para kazanmayı ve kullanıcı tutmayı optimize eder. - [Grow your subscription app from $1K to $10K MRR](https://adapty.io/ua/ebooks/roadmap-to-10k-dollars-mrr/): Відкрийте перевірені стратегії для масштабування вашого підписного застосунку до $10K MRR з нашим ebook. Аналітичні дані оптимізують монетизацію та утримання. - [How to design a mobile paywall to boost subscriptions](https://adapty.io/zh/ebooks/how-to-design-a-mobile-paywall/): 在這份應用程式付費牆指南中,您會發現: 10 個可在您的付費牆上嘗試的構想、25 個高效付費牆的範例、Apple Guidelines 的建議。 - [How to design a mobile paywall to boost subscriptions](https://adapty.io/fr/ebooks/how-to-design-a-mobile-paywall/): Dans notre guide sur les applications payantes, vous trouverez : 10 idées à essayer sur votre paywall, 25 exemples de paywalls très efficaces, des recommandations sur les lignes directrices d'Apple. - [How to design a mobile paywall to boost subscriptions](https://adapty.io/de/ebooks/how-to-design-a-mobile-paywall/): In unserem Leitfaden über App-Paywalls finden Sie: 10 Ideen, die Sie für Ihre Paywall ausprobieren können, 25 Beispiele für hocheffektive Paywalls, Empfehlungen zu den Apple-Richtlinien. - [How to design a mobile paywall to boost subscriptions](https://adapty.io/ja/ebooks/how-to-design-a-mobile-paywall/): アプリのペイウォールに関するガイドでは、以下をご覧いただけます: あなたのペイウォールで試すべき10のアイデア、非常に効果的なペイウォールの25の例、アップルガイドラインに関する推奨事項。 - [How to design a mobile paywall to boost subscriptions](https://adapty.io/ko/ebooks/how-to-design-a-mobile-paywall/): 앱 페이월 가이드에서 자세한 내용을 확인할 수 있습니다: 페이월에 적용해 볼 수 있는 10가지 아이디어, 매우 효과적인 페이월의 25가지 예시, Apple 가이드라인의 권장 사항. - [How to design a mobile paywall to boost subscriptions](https://adapty.io/pl/ebooks/how-to-design-a-mobile-paywall/): W naszym przewodniku na temat paywalli w aplikacjach znajdziesz: 10 pomysłów do wypróbowania na swoim paywallu, 25 przykładów wysoce skutecznych paywalli, zalecenia dotyczące wytycznych Apple. - [How to design a mobile paywall to boost subscriptions](https://adapty.io/pt/ebooks/how-to-design-a-mobile-paywall/): No nosso guia sobre paywalls de aplicações, encontrará: 10 ideias para experimentar no seu paywall, 25 exemplos de paywalls altamente eficazes, recomendações sobre as Diretrizes da Apple. - [How to design a mobile paywall to boost subscriptions](https://adapty.io/ru/ebooks/how-to-design-a-mobile-paywall/): В этом руководстве о платных стенах в приложениях вы найдете: 10 идей, которые стоит попробовать применить к своему платному экрану, 25 примеров высокоэффективных платных экранов, рекомендации по руководству Apple. - [How to design a mobile paywall to boost subscriptions](https://adapty.io/es/ebooks/how-to-design-a-mobile-paywall/): En nuestra guía sobre paywalls para aplicaciones, encontrarás: 10 ideas para probar en tu paywall, 25 ejemplos de paywalls muy efectivos, recomendaciones sobre las Directrices de Apple. - [How to design a mobile paywall to boost subscriptions](https://adapty.io/tr/ebooks/how-to-design-a-mobile-paywall/): Uygulama ödeme duvarlarıyla ilgili kılavuzumuzda şunları bulacaksınız: Ödeme duvarınızda deneyebileceğiniz 10 fikir, son derece etkili 25 ödeme duvarı örneği, Apple Yönergelerine ilişkin öneriler. - [How to design a mobile paywall to boost subscriptions](https://adapty.io/ua/ebooks/how-to-design-a-mobile-paywall/): У нашому посібнику з платних додатків ви знайдете 10 ідей, які варто спробувати на своїй платній стіні, 25 прикладів високоефективних платних стін, рекомендації з рекомендацій Apple Guidelines. --- ## Events - [App Leaders Meetup in Barcelona](https://adapty.io/events/app-leaders-meetup-in-barcelona-2025/): A curated evening where mobile app leaders share the specific strategies driving their growth. Get tactical insights on user acquisition... - [Web2App Pioneers Dinner](https://adapty.io/events/speakeasy-dinner-amsterdam/): We’re bringing together 20 app leaders - CPOs, CMOs, founders, and product professionals - who have pioneered their categories in... - [App Leaders Meetup in Warsaw](https://adapty.io/events/app-leaders-meetup-in-warsaw/): A curated evening where mobile app leaders share the specific strategies driving their growth. Get tactical insights on user acquisition... - [Aperture Sessions Berlin](https://adapty.io/events/aperture-sessions-berlin/): Spend the evening with app & tech execs with great drinks, delicious nibbles, and even better conversation - [React Meetup](https://adapty.io/events/react-meetup/): Join us for an evening packed with tech talks, pizza & cold brews, and plenty of opportunities to swap stories,... - [Founder Dinner by Leus | MWC](https://adapty.io/events/founder-dinner-by-leus-mwc/): Join us for an exclusive evening in Istanbul with fellow Founders from leading mobile gaming, app development companies - [Mastering the Funnel presented by App Masters, FunnelFox, and Paddle](https://adapty.io/events/mastering-the-funnel-presented-by-app-masters-funnelfox-and-paddle/): Join us for Mastering the Funnel presented by App Masters, FunnelFox, and Paddle — a half-day workshop designed for app... - [Aperture Sessions London](https://adapty.io/events/aperture-sessions-london/): Spend the evening with app & tech execs with great drinks, delicious nibbles, and even better conversation - [NYC Skyline Private Dinner](https://adapty.io/events/nyc-skyline-private-dinner/): Join us for a private dining experience at Nubeluz, one of New York City’s Top 50 Discovery Bars by The... - [App Leaders Meetup in Berlin](https://adapty.io/events/app-leaders-meetup-in-berlin-2025/): A curated evening where mobile app leaders share the specific strategies driving their growth. Get tactical insights on user acquisition... - [Growth Phestival 2025](https://adapty.io/events/growth-phestival-2025/): Join us at MAU Vegas from May 20-22, 2025, for a premier mobile app marketing event with over 2,000 professionals and 83 expert speakers. - [Modern Growth Stack Seoul 2025](https://adapty.io/events/modern-growth-stack-seoul-2025/): Join us at MAU Vegas from May 20-22, 2025, for a premier mobile app marketing event with over 2,000 professionals and 83 expert speakers. - [SubHub Fireside Chat](https://adapty.io/events/subhub-fireside-chat-tbilisi/): Join us for an informal fireside chat with Kir Potekhin, CPO Adapty, and Ivan Dorofeev, CTO FunnelFox - [>$100K MRR App Founders Dinner at WWDC 25](https://adapty.io/events/100k-mrr-app-founders-dinner-at-wwdc-25/): Join us for a great Steak dinner in the WWDC 25 week! We'll host only 10 +$100K Mobile App founders - [Speakeasy about Web2App](https://adapty.io/events/speakeasy-about-web2app/): Join us for a private evening with growth leaders — CPOs, CMOs, founders, and product/growth professionals. - [App Promotion Summit Berlin](https://adapty.io/events/app-promotion-summit-berlin-2025-2/): APS Berlin brings together app marketing, growth, product, CRM and revenue leaders. - [WWDC25’i birlikte keşfedelim](https://adapty.io/events/wwdc25-istanbul/): 9 Haziran’da İstanbul’da WWDC25’i birlikte izleyelim, içgörüler paylaşalım ve sektörden isimlerle buluşalım. Davetiyeli, kontenjan sınırlı. Yerini ayırt! - [Stripe Sessions 2025](https://adapty.io/events/stripe-sessions-2025/): Stripe Sessions brings together the payments and financial technology community to share ideas that drive progress. - [Top Golf Experience](https://adapty.io/events/top-golf-experience/): Connect with top app growth leaders over great food, drinks, and a swing or two at Top Golf Las Vegas. - [SubSummit 2025](https://adapty.io/events/subsummit-2025/): Each year, SubSummit brings together 2,000+ executives and operators from established enterprises, DTC startups, innovative tech companies, active investors and... - [Istanbul App Leaders Meetup](https://adapty.io/events/istanbul-app-leaders-meetup/): Join us for an exclusive evening of insights and networking with the app growth leaders community as we deep dive... - [Dating and Social Discovery Conference](https://adapty.io/events/dating-and-social-discovery-conference/): From monetization strategies and investment opportunities to safety, privacy and more, this year’s conference promises to deliver unparalleled insights into... - [The London App Leaders Meetup](https://adapty.io/events/the-london-app-leaders-meetup/): Join us for an exclusive evening of insights and networking with the app growth leaders community as we deep dive... - [Uygulama Kurucuları Buluşması: İzmir 2024](https://adapty.io/events/afm-izmir-2024/): Mobil uygulama yayıncıları ve bireysel geliştiricilerin buluştuğu sektörün en büyük etkinliğinde yerinizi alın. - [Adapty Conf: Istanbul 2024](https://adapty.io/events/adapty-conf-istanbul-2024/): Take your place at the biggest event of the sector where mobile application publishers and individual developers meet. - [Adapty Conf: Cyprus 2023](https://adapty.io/events/adapty-conf-cyprus-2023-3/): Join us for an exceptional event tailored for app developers
and owners. Gain actionable insights into app monetization strategies, trends, and forecasts. - [App Growth Summit: London 2024](https://adapty.io/events/ags-london-2024/): Adapty will be present at the AGS UK , happening on 3 October in London, UK. - [SwiftLeeds'24](https://adapty.io/events/swiftleeds-2024/): Adapty will be present at the Swift Leeds , happening on 8-9 October in Leeds, UK. - [App Founders Meetup: Ankara 2024](https://adapty.io/events/afm-ankara-2024/): The Adapty App Founders Meetup in Ankara is designed for app developers and founders interested in leveraging subscription models to boost their app's revenue - [App Founders Meetup: Istanbul 2024](https://adapty.io/events/afm-istanbul-2024/): The Adapty App Founders Meetup in Istanbul is tailored for those at the helm of mobile app development. - [ASO Conference 2024](https://adapty.io/events/aso-conference-2024/): Adapty proudly participated in the ASO Conference 2024, a pivotal event for professionals in mobile marketing and app optimization. - [NSSpain XII](https://adapty.io/events/ns-spain-2024/): NS Spain 2024, set in the beautiful vineyards of Logroño, Spain, is the go-to event for iOS developers around the globe. - [App Promotion Summit San Francisco](https://adapty.io/events/app-promotion-summit-sf-2024/): Adapty will be present at the APS SF , happening on 26 September in SF, USA. - [FlutterFlow Developers Conference 2024](https://adapty.io/events/ffdc-2024/): Adapty will be present at the FlutterFlow , happening on 17 September in NY, USA. - [Adapty Conf 2024](https://adapty.io/events/adapty-conf-2024/): This conference brought together app developers, marketers, and growth hackers to explore the latest best practices in mobile success. - [App Growth Summit San Francisco](https://adapty.io/events/app-growth-summit-sf-2024/): Adapty will be present at the App Growth Summit, happening on September 12, 2024, in San Francisco, USA. - [Unlocked: Mobile & App Growth Summit](https://adapty.io/events/unlocked-mobile-app-growth-summit-2024/): Martechvibe presents the Mobile & App Growth Summit for marketers to learn 2024 trends and tech from industry leaders. - [SubHub Meetup](https://adapty.io/events/subhub-dinner-2025/): Start 2025 at SubHub Meetup by Adapty & FunnelFox for subscription app networking. - [App Promotion Summit London](https://adapty.io/events/app-promotion-summit-london-2025/): Join us at the App Promotion Summit London on April 24, 2025, to explore app growth strategies and connect with industry leaders. - [MAU Vegas](https://adapty.io/events/mau-vegas-2025/): Join us at MAU Vegas from May 20-22, 2025, for a premier mobile app marketing event with over 2,000 professionals and 83 expert speakers. - [Web Summit](https://adapty.io/events/websummit-2025/): Join us at Web Summit in Lisbon, to connect with 70,000+ attendees and 1,000+ speakers shaping the tech future. - [App Promotion Summit: New York](https://adapty.io/events/app-promotion-summit-new-york-2025/): Join us at App Promotion Summit NYC on September 18, 2025, to master app growth strategies with top experts and network while supporting sustainability. - [App Promotion Summit Berlin](https://adapty.io/events/app-promotion-summit-berlin-2025/): Join us at App Promotion Summit Berlin on December 5, 2024, to learn from top app growth experts and network while supporting sustainability with tree planting. --- ## Glossary - [Paywall A/B Testing](https://adapty.io/glossary/paywall-a-b-testing/): What's A/B Testing for Mobile Paywalls and why it’s a powerful tool for mobile app revenue growth. Read all about it in the Adapty Glossary - [App Store Connect Shared Secret](https://adapty.io/glossary/app-store-connect-shared-secret/): Get a detailed guide on the iOS App Store Shared Secret, its purpose in app subscriptions, and step-by-step instructions for configuring it effectively. - [App Installs and Uninstalls](https://adapty.io/glossary/app-installs-and-uninstalls/): Learn how to track app install and uninstall rates effectively. Discover tools and strategies to analyze user behavior and improve app retention. - [Peer Group Benchmarks](https://adapty.io/glossary/peer-group-benchmarks/): What is Peer Group Benchmarks, and how to use it to track iOS app performance? Read all about it in the Adapty Glossary - [Ad Server](https://adapty.io/glossary/ad-server/): What is Ad Server, and why it is crucial for your mobile app user acquisition strategy? Read all about it in the Adapty Glossary. - [App Store App Analytics](https://adapty.io/glossary/app-store-app-analytics/): Explore Apple's App Store analytics and insights to track performance, optimize visibility, and boost app success with data-driven strategies. - [Billing Retry State](https://adapty.io/glossary/billing-retry-state/): Learn how the App Store subscription billing retry system works, its benefits for subscription-based apps, and how it helps reduce involuntary churn. - [Cost per Install (CPI)](https://adapty.io/glossary/cost-per-install-cpi/): Understand the meaning of Cost Per App Install (CPI), explore the formula for calculating it, and get tips to optimize CPI for better app marketing results. - [Cohort Analysis](https://adapty.io/glossary/cohort-analysis-for-mobile-apps/): What is cohort analysis for mobile apps, and how can it help improve your app monetization strategy? - [Customer Acquisition Cost (CAC)](https://adapty.io/glossary/customer-acquisition-cost-cac/): What does Сustomer Acquisition Cost (CAC) mean, and why this metric is critical for app performance and monetization? Read all about it in the Adapty Glossary - [Conversion Rate (CVR)](https://adapty.io/glossary/conversion-rate-cvr/): Discover what Conversion Rate (CVR) means in marketing, how to calculate it with a simple formula, and actionable strategies to improve your CVR. - [Daily Active Users (DAU)](https://adapty.io/glossary/daily-active-users-dau/): Daily active users (DAU) meaning. Check the DAU definition and learn why this metric is critical for app monetization. Read all about it in the Adapty Glossary - [Deep Linking](https://adapty.io/glossary/deep-linking/): What is deep linking and how to create a deep link URL? Read all about it in the Adapty Glossary - [Error Rate](https://adapty.io/glossary/error-rate/): Learn about error rate calculation, its formula, and key metrics. Explore how to measure and reduce errors effectively to improve system performance and reliability. - [Flutter](https://adapty.io/glossary/flutter/): What is Google Flutter, and what is Flutter used for? Read all about it in the Adapty Glossary. - [Paywall](https://adapty.io/glossary/paywall-for-mobile-apps/): What is Paywall and how to increase mobile app conversions with paywalls? Read all about it in the Adapty Glossary - [IDFV](https://adapty.io/glossary/idfv/): Discover what Identifier for Vendors (IDFV) is and how it helps track users across your iOS apps. - [IDFA](https://adapty.io/glossary/idfa/): What is IDFA, and how does identifier for advertisers work? Read all about it in the Adapty Glossary - [In-App Notifications](https://adapty.io/glossary/in-app-notifications/): What is in app notification, and what are in-app messaging best practices? Read all about it in the Adapty Glossary - [iOS In-App Purchases](https://adapty.io/glossary/ios-in-app-purchases/): Discover what iOS in-app purchases are, the different types available, and key rules developers must follow to offer seamless purchase experiences on the App Store. - [In-App Subscriptions](https://adapty.io/glossary/in-app-subscriptions/): What are in-app subscriptions, and why are they critical for your mobile app monetization strategy? Read all about it in the Adapty Glossary - [In-App Event](https://adapty.io/glossary/in-app-event/): What are in-app subscriptions, and why are they critical for your mobile app monetization strategy? Read all about it in the Adapty Glossary. - [Mobile App Onboarding](https://adapty.io/glossary/in-app-onboarding/): What is mobile in-app onboarding, and why is it important for your mobile app revenue growth? Read all about it in the Adapty Glossary - [Native Mobile App](https://adapty.io/glossary/native-mobile-app/): What is a native mobile app, and which types of mobile apps exist? Read all about it in the Adapty Glossary. - [In-App Purchases SDK](https://adapty.io/glossary/in-app-purchases-sdk/): What is in-app SDK, and how to use it for in-app purchases? Read all about it in the Adapty Glossary. - [Organic Installs](https://adapty.io/glossary/organic-installs/): What are organic app installs, and how can they contribute to your mobile app monetization? Read all about it in the Adapty Glossary. - [Paid Installs](https://adapty.io/glossary/paid-installs/): Understand paid app installs and pay-per-install marketing. Learn how these strategies work to boost app visibility, drive downloads, and maximize ROI. - [Paywall Optimization](https://adapty.io/glossary/paywall-optimization/): Learn how paywall optimization can boost conversions and revenue for your subscription-based app. - [StoreKit](https://adapty.io/glossary/storekit/): What is StoreKit, and how can it help you to manage mobile in-app purchases? Read all about it in the Adapty Glossary. - [Subscription Revenue](https://adapty.io/glossary/subscription-revenue/): What is the Subscription Revenue model and how can you use it for efficient mobile app monetization? Read all about it in the Adapty Glossary. - [Active Subscriptions](https://adapty.io/glossary/active-subscriptions/): Learn how to check active subscriptions easily. Discover tools and methods to manage and track your ongoing app and service subscriptions effectively. - [Average Revenue Per User (ARPU)](https://adapty.io/glossary/average-revenue-per-user-arpu/): Learn the ARPU meaning, and why this metric is critical for app performance and monetization tracking. Read all about it in the Adapty Glossary - [App Retention](https://adapty.io/glossary/app-retention/): What is a Retention Rate, and why is it a critical metric for app performance and monetization tracking? Read all about it in the Adapty Glossary. - [Lifetime Value (LTV)](https://adapty.io/glossary/lifetime-value-ltv/): Understand Lifetime Value (LTV) and how to calculate it to maximize app revenue and customer retention. - [Server Receipt Validation](https://adapty.io/glossary/apple-store-receipts/): What are Apple Store receipts, and how to ensure the secure transactions for your mobile app users? Read all about it in the Adapty Glossary - [Subscription (Purchase) Deferral](https://adapty.io/glossary/subscription-purchase-deferral/): Discover the meaning of subscription deferred billing. Learn how it works, its benefits for users and businesses, and its impact on subscription models. --- ## Integrations - [Singular](https://adapty.io/integrations/singular/): Send all subscription and purchases metrics on a user level to Singular. Make better products decisions, match product events with purchases. Integration in 5 minutes, no server code required. - [Singular](https://adapty.io/zh/integrations/singular/): 将所有订阅和购买指标以用户级别发送到 Singular。做出更好的产品决策,将产品事件与购买匹配。5分钟内完成集成,无需服务器代码。 - [Singular](https://adapty.io/fr/integrations/singular/): Envoyez toutes les métriques d'abonnement et d'achats au niveau utilisateur à Singular. Prenez de meilleures décisions de produit, associez les événements produits avec les achats. Intégration en 5 minutes, aucun code serveur requis. - [Singular](https://adapty.io/de/integrations/singular/): Übertragen Sie alle Abonnement- und Kaufmetriken auf Benutzerebene an Singular. Treffen Sie bessere Produktentscheidungen, stimmen Sie Produktereignisse mit Käufen ab. Integration in 5 Minuten, kein Server-Code erforderlich. - [Singular](https://adapty.io/ko/integrations/singular/): 모든 구독 및 구매 메트릭을 사용자 수준에서 싱귤러에 전송하십시오. 더 나은 제품 결정을 내리고 제품 이벤트를 구매와 일치시키세요. 5분 안에 통합, 서버 코드는 필요 없습니다. - [Singular](https://adapty.io/ja/integrations/singular/): ユーザー単位でのすべてのサブスクリプションと購入メトリクスをSingularに送信します。より良い製品の意思決定を行い、製品イベントを購入と一致させます。5分で統合、サーバーコードは不要です。 - [Singular](https://adapty.io/pt/integrations/singular/): Envie todas as métricas de assinaturas e compras em nível de usuário para o Singular. Tome melhores decisões de produtos, combine eventos de produtos com compras. Integração em 5 minutos, sem necessidade de código de servidor. - [Singular](https://adapty.io/es/integrations/singular/): Envía todas las métricas de suscripciones y compras a nivel de usuario a Singular. Toma mejores decisiones sobre productos, relaciona eventos de producto con compras. Integración en 5 minutos, sin código de servidor requerido. - [Singular](https://adapty.io/ru/integrations/singular/): Отправляйте все показатели подписок и покупок на уровне пользователя в Singular. Принимайте лучшие решения по продуктам, сопоставляйте события продукта с покупками. Интеграция за 5 минут, без необходимости написания серверного кода. - [Singular](https://adapty.io/pl/integrations/singular/): Wyślij wszystkie metryki subskrypcji i zakupów na poziomie użytkownika do Singular. Podejmuj lepsze decyzje produktowe, dopasuj zdarzenia produktowe do zakupów. Integracja w 5 minut, bez kodu serwerowego. - [Singular](https://adapty.io/tr/integrations/singular/): Tüm abonelik ve satın almalarla ilgili metrikleri kullanıcı seviyesinde Singular'a gönderin. Daha iyi ürün kararları alın, ürün olaylarını satın almalarla eşleştirin. 5 dakikada entegrasyon, sunucu koduna gerek yok. - [Singular](https://adapty.io/ua/integrations/singular/): Надсилайте всі метрики підписки та покупок на рівні користувача до Singular. Приймайте кращі рішення щодо продуктів, збільшуйте відповідність подій продуктів з покупками. Інтеграція за 5 хвилин, жодного коду сервера не потрібно. - [PostHog](https://adapty.io/pl/integrations/posthog/): Wysyłaj wszystkie zdarzenia subskrypcji i metryki zakupów na poziomie użytkownika do PostHog. Szybka integracja w 5 minut, nie wymaga kodu serwera. - [PostHog](https://adapty.io/integrations/posthog/): Send all subscription events and purchases metrics on a user level to PostHog. Quick integration in 5 minutes, no server code required. - [PostHog](https://adapty.io/pt/integrations/posthog/): Envie todos os eventos de subscrição e métricas de compras ao nível do utilizador para o PostHog. Integração rápida em 5 minutos, sem necessidade de código de servidor. - [PostHog](https://adapty.io/ru/integrations/posthog/): Отправляйте все события подписки и метрики покупок на уровне пользователя в PostHog. Быстрая интеграция за 5 минут, не требуется серверный код. - [PostHog](https://adapty.io/es/integrations/posthog/): Envía todos los eventos de suscripción y métricas de compras a nivel de usuario a PostHog. Integración rápida en 5 minutos, sin necesidad de código de servidor. - [PostHog](https://adapty.io/zh/integrations/posthog/): 將使用者層級的所有訂閱事件與購買指標傳送至 PostHog。 5 分鐘內快速整合,無需伺服器程式碼。 - [PostHog](https://adapty.io/tr/integrations/posthog/): Tüm abonelik olaylarını ve satın alma ölçümlerini kullanıcı düzeyinde PostHog'a gönderin. Sunucu kodu gerektirmeden 5 dakikada hızlı entegrasyon. - [PostHog](https://adapty.io/fr/integrations/posthog/): Envoyez à PostHog tous les événements d'abonnement et les mesures d'achat au niveau de l'utilisateur. Intégration rapide en 5 minutes, aucun code serveur n'est requis. - [PostHog](https://adapty.io/de/integrations/posthog/): Senden Sie alle Abonnementereignisse und Kaufmetriken auf Benutzerebene an PostHog. Schnelle Integration in 5 Minuten, kein Servercode erforderlich. - [PostHog](https://adapty.io/ja/integrations/posthog/): 全ての購読イベントと購入メトリックスをユーザーレベルでPostHogに送信します。 サーバーコード不要、5分で簡単に統合できます。 - [PostHog](https://adapty.io/ko/integrations/posthog/): 사용자 단위의 모든 구독 이벤트와 구매 메트릭을 PostHog로 전송하세요. 서버 코드 없이 5분 만에 빠르게 통합할 수 있습니다. - [PostHog](https://adapty.io/ua/integrations/posthog/): Надсилайте всі події підписки та метрики покупок на рівні користувача до PostHog. Швидка інтеграція за 5 хвилин, без серверного коду. - [Tenjin](https://adapty.io/ua/integrations/tenjin/): Надсилайте всі події підписки на рівні користувача до Tenjin. Приймайте кращі рішення щодо продуктів, узгоджуйте події продукту з покупками в додатку. Швидка інтеграція за 5 хвилин. - [Tenjin](https://adapty.io/pl/integrations/tenjin/): Wysyłaj wszystkie zdarzenia subskrypcji na poziomie użytkownika do Tenjin. Podejmuj lepsze decyzje dotyczące produktów, dopasowuj zdarzenia produktowe do zakupów w aplikacji. Szybka integracja w 5 minut. - [Tenjin](https://adapty.io/pt/integrations/tenjin/): Envie todos os eventos de subscrição ao nível do utilizador para a Tenjin. Tome melhores decisões sobre produtos, combine eventos de produtos com compras in-app. Integração rápida em 5 minutos. - [Tenjin](https://adapty.io/ru/integrations/tenjin/): Отправляйте все события подписки на уровне пользователя в Tenjin. Принимайте лучшие решения о продуктах, сопоставляйте события продуктов с покупками в приложении. Быстрая интеграция за 5 минут. - [Tenjin](https://adapty.io/es/integrations/tenjin/): Envía todos los eventos de suscripción a nivel de usuario a Tenjin. Tome mejores decisiones de productos, haga coincidir los eventos de productos con las compras dentro de la aplicación. Integración rápida en 5 minutos. - [Tenjin](https://adapty.io/zh/integrations/tenjin/): 將使用者層級的所有訂閱事件傳送至天神。 做出更好的產品決策,將產品事件與應用程式內購買相匹配。 5 分鐘內快速整合。 - [Tenjin](https://adapty.io/tr/integrations/tenjin/): Tüm abonelik olaylarını kullanıcı düzeyinde Tenjin'e gönderin. Daha iyi ürün kararları verin, ürün etkinliklerini uygulama içi satın almalarla eşleştirin. 5 dakikada hızlı entegrasyon. - [Tenjin](https://adapty.io/fr/integrations/tenjin/): Envoyez tous les événements d'abonnement au niveau de l'utilisateur à Tenjin. Prenez de meilleures décisions concernant les produits, faites correspondre les événements produits avec les achats in-app. Intégration rapide en 5 minutes. - [Tenjin](https://adapty.io/de/integrations/tenjin/): Senden Sie alle Abonnement-Ereignisse auf Benutzerebene an Tenjin. Treffen Sie bessere Produktentscheidungen, stimmen Sie Produktereignisse mit In-App-Käufen ab. Schnelle Integration in 5 Minuten. - [Tenjin](https://adapty.io/ja/integrations/tenjin/): すべての購読イベントをユーザーレベルで天神に送信。 より良い商品決定を行い、商品イベントとアプリ内購入をマッチさせます。 5分ですばやく統合。 - [Tenjin](https://adapty.io/integrations/tenjin/): Send all subscription events on a user level to Tenjin. Make better products decisions, match product events with in-app purchases. Quick integration in 5 minutes. - [Tenjin](https://adapty.io/ko/integrations/tenjin/): 사용자 단위의 모든 구독 이벤트를 텐진으로 전송하세요. 더 나은 제품 결정을 내리고, 제품 이벤트와 인앱 구매를 연결하세요. 5분 안에 빠르게 통합할 수 있습니다. - [Apple Ads](https://adapty.io/pl/integrations/apple-search-ads/): Wyślij wszystkie dane dotyczące subskrypcji i zakupów na poziomie użytkownika do Apple Ads. Podejmuj lepsze decyzje produktowe, dopasuj wydarzenia produktowe do zakupów. Integracja w 5 minut, bez potrzeby kodowania serwera. - [Pushwoosh](https://adapty.io/ua/integrations/pushwoosh/): Надсилайте всі показники підписок і покупок на рівні користувача до Pushwoosh. Приймайте кращі рішення щодо продуктів, узгоджуйте події продукту з покупками. Інтеграція за 5 хвилин, без серверного коду. - [AppMetrica](https://adapty.io/pl/integrations/appmetrica/): Wysyłaj wszystkie dane dotyczące subskrypcji i zakupów na poziomie użytkownika do AppMetrica. Podejmuj lepsze decyzje dotyczące produktów, dopasowuj zdarzenia produktowe do zakupów. Integracja w 5 minut, kod serwera nie jest wymagany. - [Appsflyer](https://adapty.io/pl/integrations/appsflyer/): Wysyłaj wszystkie dane dotyczące subskrypcji i zakupów na poziomie użytkownika do AppsFlyer. Podejmuj lepsze decyzje dotyczące produktów, dopasowuj zdarzenia produktowe do zakupów. Integracja w 5 minut, kod serwera nie jest wymagany. - [SplitMetrics](https://adapty.io/ua/integrations/splitmetrics/): Надсилайте всі показники підписок і покупок на рівні користувачів до SplitMetrics. Приймайте кращі рішення щодо продуктів, зіставляйте події продукту з покупками. Інтеграція за 5 хвилин, без серверного коду. - [Asapty](https://adapty.io/pl/integrations/asapty/): Wysyłaj wszystkie dane dotyczące subskrypcji i zakupów na poziomie użytkownika do Asapty. Podejmuj lepsze decyzje dotyczące produktów, dopasowuj zdarzenia produktowe do zakupów. Integracja w 5 minut, kod serwera nie jest wymagany. - [Branch](https://adapty.io/pl/integrations/branch/): Wysyłaj wszystkie dane dotyczące subskrypcji i zakupów na poziomie użytkownika do Branch. Podejmuj lepsze decyzje dotyczące produktów, dopasowuj zdarzenia produktowe do zakupów. Integracja w 5 minut, kod serwera nie jest wymagany. - [Stripe](https://adapty.io/ua/integrations/stripe/): Надайте автоматичний доступ до платних функцій користувачам, які купили їх на сайті, а потім увійшли в додаток, і консолідуйте аналітику підписок в Adapty. - [Braze](https://adapty.io/pl/integrations/braze/): Wysyłaj wszystkie dane dotyczące subskrypcji i zakupów na poziomie użytkownika do Braze. Podejmuj lepsze decyzje dotyczące produktów, dopasowuj zdarzenia produktowe do zakupów. Integracja w 5 minut - [Facebook Ads](https://adapty.io/pl/integrations/facebook-ads/): Wysyłaj wszystkie dane dotyczące subskrypcji i zakupów na poziomie użytkownika do Facebooka. Podejmuj lepsze decyzje dotyczące produktów, dopasowuj zdarzenia produktowe do zakupów. Integracja w 5 minut, kod serwera nie jest wymagany. - [Google Analytics and Firebase](https://adapty.io/pl/integrations/google-analytics-firebase/): Wysyłaj wszystkie zdarzenia subskrypcji do Google Analytics i Firebase w celu dalszej analizy. Podejmuj lepsze decyzje produktowe, dopasowuj zdarzenia produktowe do zakupów. - [Stripe](https://adapty.io/integrations/stripe/): Grant automatic access to paid features for users who bought on the web and later logged in to the app and consolidate subscription analytics in Adapty. - [Google Cloud Storage](https://adapty.io/pl/integrations/google-cloud-storage/): Wysyłaj wszystkie dane dotyczące subskrypcji i zakupów na poziomie użytkownika do Google Cloud Storage. Podejmuj lepsze decyzje produktowe, dopasowuj zdarzenia produktowe do zakupów. - [Mixpanel](https://adapty.io/pl/integrations/mixpanel/): Wysyłaj wszystkie dane dotyczące subskrypcji i zakupów na poziomie użytkownika do Mixpanel. Podejmuj lepsze decyzje dotyczące produktów, dopasowuj zdarzenia produktowe do zakupów. Integracja w 5 minut, kod serwera nie jest wymagany. - [OneSignal](https://adapty.io/pl/integrations/onesignal/): Wysyłaj wszystkie dane dotyczące subskrypcji i zakupów na poziomie użytkownika do OneSignal. Podejmuj lepsze decyzje dotyczące produktów, dopasowuj zdarzenia produktowe do zakupów. Integracja w 5 minut, kod serwera nie jest wymagany. - [Braze](https://adapty.io/integrations/braze/): Send all subscription and purchases metrics on a user level to Braze. Make better products decisions, match product events with purchases. Integration in 5 mins - [Pushwoosh](https://adapty.io/pl/integrations/pushwoosh/): Wysyłaj wszystkie dane dotyczące subskrypcji i zakupów na poziomie użytkownika do Pushwoosh. Podejmuj lepsze decyzje dotyczące produktów, dopasowuj zdarzenia produktowe do zakupów. Integracja w 5 minut, kod serwera nie jest wymagany. - [SplitMetrics](https://adapty.io/pl/integrations/splitmetrics/): Wysyłaj wszystkie dane dotyczące subskrypcji i zakupów na poziomie użytkownika do SplitMetrics. Podejmuj lepsze decyzje dotyczące produktów, dopasowuj zdarzenia produktowe do zakupów. Integracja w 5 minut, kod serwera nie jest wymagany. - [Stripe](https://adapty.io/pl/integrations/stripe/): Przyznaj automatyczny dostęp do płatnych funkcji użytkownikom, którzy dokonali zakupu w Internecie, a następnie zalogowali się do aplikacji i skonsolidowali analitykę subskrypcji w Adapty. - [Google Cloud Storage](https://adapty.io/integrations/google-cloud-storage/): Send all subscription and purchases metrics on a user level to your Google Cloud Storage. Make better product decisions, match product events with purchases. - [Airbridge](https://adapty.io/pt/integrations/airbridge/): Envie todos os eventos de subscrição e compra para o Airbridge ou veja os dados do Aibridge no Adapty. Tome melhores decisões sobre produtos e faça corresponder os eventos de produtos às compras. - [Google Analytics and Firebase](https://adapty.io/integrations/google-analytics-firebase/): Send all subscription events to Google Analytics and Firebase for further analysis. Make better product decisions, match product events with purchases. - [Apple Ads](https://adapty.io/integrations/apple-search-ads/): Send all subscription and purchases metrics on a user level to Apple Ads. Make better products decisions, match product events with purchases. Integration in 5 minutes, no server code required. - [Amazon S3](https://adapty.io/integrations/amazon-s3/): Send all subscription and purchases metrics on a user level to Amazon S3. Make better products decisions, match product events with purchases. Integration in 5 minutes, no server code required. - [Amplitude](https://adapty.io/integrations/amplitude/): Send all subscription and purchases metrics on a user level to Amplitude. Make better products decisions, match product events with purchases. Integration in 5 minutes, no server code required. - [AppMetrica](https://adapty.io/integrations/appmetrica/): Send all subscription and purchases metrics on a user level to AppMetrica. Make better products decisions, match product events with purchases. Integration in 5 minutes, no server code required. - [Asapty](https://adapty.io/integrations/asapty/): Send all subscription and purchases metrics on a user level to Asapty. Make better products decisions, match product events with purchases. Integration in 5 minutes, no server code required. - [Branch](https://adapty.io/integrations/branch/): Send all subscription and purchases metrics on a user level to Branch. Make better products decisions, match product events with purchases. Integration in 5 minutes, no server code required. - [Facebook Ads](https://adapty.io/integrations/facebook-ads/): Send all subscription and purchases metrics on a user level to Facebook. Make better products decisions, match product events with purchases. Integration in 5 minutes, no server code required. - [Mixpanel](https://adapty.io/integrations/mixpanel/): Send all subscription and purchases metrics on a user level to Mixpanel. Make better products decisions, match product events with purchases. Integration in 5 minutes, no server code required. - [OneSignal](https://adapty.io/integrations/onesignal/): Send all subscription and purchases metrics on a user level to OneSignal. Make better products decisions, match product events with purchases. Integration in 5 minutes, no server code required. - [Amazon S3](https://adapty.io/pt/integrations/amazon-s3/): Envie todas as métricas de subscrição e compras ao nível do utilizador para o Amazon S3. Tome melhores decisões sobre produtos, combine eventos de produtos com compras. Integração em 5 minutos, sem necessidade de código de servidor. - [Pushwoosh](https://adapty.io/integrations/pushwoosh/): Send all subscription and purchases metrics on a user level to Pushwoosh. Make better products decisions, match product events with purchases. Integration in 5 minutes, no server code required. - [SplitMetrics](https://adapty.io/integrations/splitmetrics/): Send all subscription and purchases metrics on a user level to SplitMetrics. Make better products decisions, match product events with purchases. Integration in 5 minutes, no server code required. - [Webhook](https://adapty.io/integrations/webhook/): Send all subscription and purchases metrics on a user level to Webhook. Make better products decisions, match product events with purchases. Integration in 5 minutes, no server code required. - [Adjust](https://adapty.io/zh/integrations/adjust/): 將使用者層級的所有訂閱與購買指標傳送至 Adjust。 做出更好的產品決策,將產品事件與購買相匹配。 5 分鐘內完成整合,無需伺服器程式碼。 - [Appsflyer](https://adapty.io/integrations/appsflyer/): Send all subscription and purchases metrics on a user level to AppsFlyer. Make better products decisions, match product events with purchases. Integration in 5 minutes, no server code required. - [Adjust](https://adapty.io/fr/integrations/adjust/): Envoyez à Adjust tous les indicateurs d'abonnement et d'achat au niveau de l'utilisateur. Prenez de meilleures décisions concernant les produits, faites correspondre les événements produits avec les achats. Intégration en 5 minutes, aucun code serveur n'est requis. - [Adjust](https://adapty.io/de/integrations/adjust/): Senden Sie alle Abonnement- und Kaufmetriken auf Benutzerebene an Adjust. Treffen Sie bessere Produktentscheidungen, stimmen Sie Produktereignisse mit Käufen ab. Integration in 5 Minuten, kein Servercode erforderlich. - [Adjust](https://adapty.io/ja/integrations/adjust/): すべての購読と購入のメトリックスをユーザーレベルでAdjustに送信します。 より良い商品決定を行い、商品イベントと購買をマッチさせましょう。 サーバーコード不要、5分で統合。 - [Adjust](https://adapty.io/ko/integrations/adjust/): 사용자 단위의 모든 구독 및 구매 지표를 Adjust로 전송하세요. 더 나은 제품 결정을 내리고 제품 이벤트와 구매를 일치시키세요. 서버 코드 없이 5분 만에 통합할 수 있습니다. - [Adjust](https://adapty.io/pl/integrations/adjust/): Wysyłaj wszystkie dane dotyczące subskrypcji i zakupów na poziomie użytkownika do Adjust. Podejmuj lepsze decyzje dotyczące produktów, dopasowuj zdarzenia produktowe do zakupów. Integracja w 5 minut, kod serwera nie jest wymagany. - [Adjust](https://adapty.io/pt/integrations/adjust/): Envie todas as métricas de subscrição e compras ao nível do utilizador para a Adjust. Tome melhores decisões sobre produtos, combine eventos de produtos com compras. Integração em 5 minutos, sem necessidade de código de servidor. - [Adjust](https://adapty.io/ru/integrations/adjust/): Отправляйте все показатели подписки и покупок на уровне пользователя в Adjust. Принимайте лучшие решения о продуктах, сопоставляйте события, связанные с продуктами, с покупками. Интеграция за 5 минут, не требуется серверный код. - [Adjust](https://adapty.io/es/integrations/adjust/): Envíe todas las métricas de suscripción y compras a nivel de usuario a Adjust. Tome mejores decisiones sobre productos, relacione los eventos de productos con las compras. Integración en 5 minutos, sin necesidad de código de servidor. - [Adjust](https://adapty.io/ua/integrations/adjust/): Надсилайте всі метрики підписок і покупок на рівні користувача до Adjust. Приймайте кращі рішення щодо продуктів, узгоджуйте події продуктів з покупками. Інтеграція за 5 хвилин, без серверного коду. - [Amplitude](https://adapty.io/pt/integrations/amplitude/): Envie todas as métricas de subscrição e compras ao nível do utilizador para a Amplitude. Tome melhores decisões sobre produtos, combine eventos de produtos com compras. Integração em 5 minutos, sem necessidade de código de servidor. - [Adjust](https://adapty.io/tr/integrations/adjust/): Tüm abonelik ve satın alma ölçümlerini kullanıcı düzeyinde Adjust'a gönderin. Daha iyi ürün kararları alın, ürün etkinliklerini satın almalarla eşleştirin. 5 dakikada entegrasyon, sunucu kodu gerekmez. - [Airbridge](https://adapty.io/zh/integrations/airbridge/): 將所有訂購與購買事件傳送至 Airbridge 或在 Adapty 中檢視 Aibridge 資料。 做出更好的產品決策,並將產品事件與購買相匹配。 - [Apple Ads](https://adapty.io/pt/integrations/apple-search-ads/): Envie todas as métricas de assinaturas e compras em nível de usuário para Apple Ads. Tome melhores decisões sobre produtos, conecte eventos de produtos às compras. Integração em 5 minutos, nenhum código de servidor necessário. - [AppMetrica](https://adapty.io/pt/integrations/appmetrica/): Envie todas as métricas de subscrição e compras ao nível do utilizador para a AppMetrica. Tome melhores decisões sobre produtos, combine eventos de produtos com compras. Integração em 5 minutos, sem necessidade de código de servidor. - [Appsflyer](https://adapty.io/pt/integrations/appsflyer/): Envie todas as métricas de subscrição e compras ao nível do utilizador para a AppsFlyer. Tome melhores decisões sobre produtos, combine eventos de produtos com compras. Integração em 5 minutos, sem necessidade de código de servidor. - [Asapty](https://adapty.io/pt/integrations/asapty/): Envie todas as métricas de subscrição e compras ao nível do utilizador para o Asapty. Tomar melhores decisões sobre os produtos, fazer corresponder os eventos dos produtos às compras. Integração em 5 minutos, sem necessidade de código de servidor. - [Branch](https://adapty.io/pt/integrations/branch/): Envie todas as métricas de subscrição e compras ao nível do utilizador para a Branch. Tome melhores decisões sobre produtos, combine eventos de produtos com compras. Integração em 5 minutos, sem necessidade de código de servidor. - [Braze](https://adapty.io/pt/integrations/braze/): Envie todas as métricas de subscrição e compras ao nível do utilizador para o Braze. Tome melhores decisões sobre produtos, combine eventos de produtos com compras. Integração em 5 minutos - [Facebook Ads](https://adapty.io/pt/integrations/facebook-ads/): Envie todas as métricas de subscrição e compras ao nível do utilizador para o Facebook. Tome melhores decisões sobre produtos, combine eventos de produtos com compras. Integração em 5 minutos, sem necessidade de código de servidor. - [Google Analytics and Firebase](https://adapty.io/pt/integrations/google-analytics-firebase/): Envie todos os eventos de subscrição para o Google Analytics e o Firebase para análise posterior. Tomar melhores decisões sobre produtos, fazer corresponder eventos de produtos a compras. - [Google Cloud Storage](https://adapty.io/pt/integrations/google-cloud-storage/): Envie todas as métricas de subscrição e compras ao nível do utilizador para o seu Google Cloud Storage. Tome melhores decisões sobre produtos, faça corresponder eventos de produtos a compras. - [Mixpanel](https://adapty.io/pt/integrations/mixpanel/): Envie todas as métricas de subscrição e compras ao nível do utilizador para o Mixpanel. Tome melhores decisões sobre produtos, combine eventos de produtos com compras. Integração em 5 minutos, sem necessidade de código de servidor. - [OneSignal](https://adapty.io/pt/integrations/onesignal/): Envie todas as métricas de subscrição e compras ao nível do utilizador para a OneSignal. Tome melhores decisões sobre produtos, combine eventos de produtos com compras. Integração em 5 minutos, sem necessidade de código de servidor. - [Pushwoosh](https://adapty.io/pt/integrations/pushwoosh/): Envie todas as métricas de subscrição e compras ao nível do utilizador para o Pushwoosh. Tome melhores decisões sobre produtos, combine eventos de produtos com compras. Integração em 5 minutos, sem necessidade de código de servidor. - [SplitMetrics](https://adapty.io/pt/integrations/splitmetrics/): Envie todas as métricas de subscrição e compras ao nível do utilizador para a SplitMetrics. Tome melhores decisões sobre produtos, combine eventos de produtos com compras. Integração em 5 minutos, sem necessidade de código de servidor. - [Amazon S3](https://adapty.io/zh/integrations/amazon-s3/): 將使用者層級的所有訂閱與購買指標傳送至 Amazon S3。 做出更好的產品決策,將產品事件與購買匹配起來。 5 分鐘內完成整合,無需伺服器程式碼。 - [Stripe](https://adapty.io/pt/integrations/stripe/): Conceder acesso automático a funcionalidades pagas para utilizadores que compraram na Web e mais tarde iniciaram sessão na aplicação e consolidar a análise de subscrições no Adapty. - [Amazon S3](https://adapty.io/ru/integrations/amazon-s3/): Отправляйте все показатели подписки и покупок на уровне пользователя в Amazon S3. Принимайте лучшие решения о товарах, сопоставляйте события о товарах с покупками. Интеграция за 5 минут, не требуется серверный код. - [Amplitude](https://adapty.io/ru/integrations/amplitude/): Отправляйте все показатели подписки и покупок на уровне пользователя в Amplitude. Принимайте лучшие решения о продуктах, сопоставляйте события, связанные с продуктами, с покупками. Интеграция за 5 минут, не требуется серверный код. - [Apple Ads](https://adapty.io/ru/integrations/apple-search-ads/): Отправляйте все метрики подписок и покупок на уровне пользователя в Apple Ads. Принимайте более обоснованные решения о продуктах, сопоставляйте события продуктов с покупками. Интеграция за 5 минут, код сервера не требуется. - [AppMetrica](https://adapty.io/ru/integrations/appmetrica/): Отправляйте все показатели подписки и покупок на уровне пользователя в AppMetrica. Принимайте лучшие решения о продуктах, сопоставляйте события, связанные с продуктами, с покупками. Интеграция за 5 минут, не требуется серверный код. - [Appsflyer](https://adapty.io/ru/integrations/appsflyer/): Отправляйте все показатели подписки и покупок на уровне пользователя в AppsFlyer. Принимайте лучшие решения о продуктах, сопоставляйте события, связанные с продуктами, с покупками. Интеграция за 5 минут, не требуется серверный код. - [Asapty](https://adapty.io/ru/integrations/asapty/): Отправляйте все показатели подписки и покупок на уровне пользователя в Asapty. Принимайте лучшие решения о продуктах, сопоставляйте события, связанные с продуктами, с покупками. Интеграция за 5 минут, не требуется серверный код. - [Branch](https://adapty.io/ru/integrations/branch/): Отправляйте все показатели подписки и покупок на уровне пользователя в Branch. Принимайте лучшие решения о продуктах, сопоставляйте события, связанные с продуктами, с покупками. Интеграция за 5 минут, не требуется серверный код. - [Braze](https://adapty.io/ru/integrations/braze/): Отправляйте все показатели подписки и покупок на уровне пользователя в Braze. Принимайте лучшие решения о продуктах, сопоставляйте события, связанные с продуктами, с покупками. Интеграция за 5 минут - [Facebook Ads](https://adapty.io/ru/integrations/facebook-ads/): Отправляйте все показатели подписки и покупок на уровне пользователя в Facebook. Принимайте лучшие решения о продуктах, сопоставляйте события, связанные с продуктами, с покупками. Интеграция за 5 минут, не требуется серверный код. - [Google Analytics and Firebase](https://adapty.io/ru/integrations/google-analytics-firebase/): Отправляйте все события подписки в Google Analytics и Firebase для дальнейшего анализа. Принимайте лучшие решения о продукте, сопоставляйте события продукта с покупками. - [Google Cloud Storage](https://adapty.io/ru/integrations/google-cloud-storage/): Отправляйте все показатели подписки и покупок на уровне пользователя в облачное хранилище Google. Принимайте лучшие решения о продукте, сопоставляйте события продукта с покупками. - [Mixpanel](https://adapty.io/ru/integrations/mixpanel/): Отправляйте все показатели подписки и покупок на уровне пользователя в Mixpanel. Принимайте лучшие решения о продуктах, сопоставляйте события, связанные с продуктами, с покупками. Интеграция за 5 минут, не требуется серверный код. - [OneSignal](https://adapty.io/ru/integrations/onesignal/): Отправляйте все показатели подписки и покупок на уровне пользователя в OneSignal. Принимайте лучшие решения о продуктах, сопоставляйте события, связанные с продуктами, с покупками. Интеграция за 5 минут, не требуется серверный код. - [Pushwoosh](https://adapty.io/ru/integrations/pushwoosh/): Отправляйте все показатели подписки и покупок на уровне пользователя в Pushwoosh. Принимайте лучшие решения о продуктах, сопоставляйте события, связанные с продуктами, с покупками. Интеграция за 5 минут, не требуется серверный код. - [SplitMetrics](https://adapty.io/ru/integrations/splitmetrics/): Отправляйте все показатели подписки и покупок на уровне пользователя в SplitMetrics. Принимайте лучшие решения о продуктах, сопоставляйте события, связанные с продуктами, с покупками. Интеграция за 5 минут, не требуется серверный код. - [Amplitude](https://adapty.io/zh/integrations/amplitude/): 將使用者層級的所有訂閱與購買指標傳送至 Amplitude。做出更好的產品決策,將產品事件與購買匹配起來。5 分鐘內完成整合,無需伺服器程式碼。 - [Stripe](https://adapty.io/ru/integrations/stripe/): Предоставьте автоматический доступ к платным функциям пользователям, которые совершили покупку в Интернете, а затем вошли в приложение, и консолидируйте аналитику подписки в Adapty. - [Airbridge](https://adapty.io/ru/integrations/airbridge/): Отправляйте все события подписки и покупки в Airbridge или просматривайте данные Aibridge в Adapty. Принимайте лучшие решения о продукте и сопоставляйте события о продукте с покупками. - [Apple Ads](https://adapty.io/zh/integrations/apple-search-ads/): 将所有订阅和购买指标按用户级别发送到 Apple 广告。做出更好的产品决策,将产品事件与购买匹配。5分钟内集成,无需服务器代码。 - [Airbridge](https://adapty.io/es/integrations/airbridge/): Envíe todos los eventos de suscripción y compra a Airbridge o vea los datos de Aibridge en Adapty. Tome mejores decisiones de producto y relacione los eventos de producto con las compras. - [Amazon S3](https://adapty.io/es/integrations/amazon-s3/): Envíe todas las métricas de suscripción y compras a nivel de usuario a Amazon S3. Tome mejores decisiones de productos, haga coincidir los eventos de productos con las compras. Integración en 5 minutos, sin necesidad de código de servidor. - [AppMetrica](https://adapty.io/zh/integrations/appmetrica/): 將使用者層級的所有訂閱與購買指標傳送至 AppMetrica。 做出更好的產品決策,將產品事件與購買量相匹配。 5 分鐘內完成整合,無需伺服器程式碼。 - [Amplitude](https://adapty.io/es/integrations/amplitude/): Envía todas las métricas de suscripción y compras a nivel de usuario a Amplitude. Tome mejores decisiones de productos, haga coincidir los eventos de productos con las compras. Integración en 5 minutos, sin necesidad de código de servidor. - [Apple Ads](https://adapty.io/es/integrations/apple-search-ads/): Envía todas las métricas de suscripciones y compras a nivel de usuario a Apple Ads. Toma mejores decisiones sobre productos, empareja eventos de productos con compras. Integración en 5 minutos, no se requiere código de servidor. - [Appsflyer](https://adapty.io/zh/integrations/appsflyer/): 將使用者層級的所有訂閱與購買指標傳送至 AppsFlyer。 做出更好的產品決策,將產品事件與購買相匹配。 5 分鐘內完成整合,無需伺服器程式碼。 - [AppMetrica](https://adapty.io/es/integrations/appmetrica/): Envíe todas las métricas de suscripción y compras a nivel de usuario a AppMetrica. Tome mejores decisiones sobre productos, relacione los eventos de productos con las compras. Integración en 5 minutos, sin necesidad de código de servidor. - [Appsflyer](https://adapty.io/es/integrations/appsflyer/): Envíe todas las métricas de suscripción y compras a nivel de usuario a AppsFlyer. Tome mejores decisiones sobre productos, relacione los eventos de productos con las compras. Integración en 5 minutos, sin necesidad de código de servidor. - [Asapty](https://adapty.io/zh/integrations/asapty/): 將使用者層級的所有訂閱與購買指標傳送至 Asapty。 做出更好的產品決策,將產品事件與購買匹配起來。 5 分鐘內完成整合,無需伺服器程式碼。 - [Asapty](https://adapty.io/es/integrations/asapty/): Envíe todas las métricas de suscripción y compras a nivel de usuario a Asapty. Tome mejores decisiones sobre los productos, relacione los eventos de productos con las compras. Integración en 5 minutos, sin necesidad de código de servidor. - [Branch](https://adapty.io/es/integrations/branch/): Envíe todas las métricas de suscripción y compras a nivel de usuario a Branch. Tome mejores decisiones sobre productos, haga coincidir los eventos de productos con las compras. Integración en 5 minutos, sin necesidad de código de servidor. - [Branch](https://adapty.io/zh/integrations/branch/): 將使用者層級的所有訂閱與購買指標傳送至分公司。 做出更好的產品決策,將產品事件與購買相匹配。 5 分鐘內完成整合,無需伺服器程式碼。 - [Braze](https://adapty.io/es/integrations/braze/): Envíe todas las métricas de suscripción y compras a nivel de usuario a Braze. Tome mejores decisiones sobre productos, haga coincidir los eventos de productos con las compras. Integración en 5 minutos - [Facebook Ads](https://adapty.io/es/integrations/facebook-ads/): Envía a Facebook todas las métricas de suscripción y compras a nivel de usuario. Tome mejores decisiones sobre los productos, relacione los eventos de los productos con las compras. Integración en 5 minutos, sin necesidad de código de servidor. - [Braze](https://adapty.io/zh/integrations/braze/): 將使用者層級的所有訂閱與購買指標傳送至 Braze。 做出更好的產品決策,將產品事件與購買匹配起來。 5 分鐘內完成整合 - [Google Analytics and Firebase](https://adapty.io/es/integrations/google-analytics-firebase/): Envíe todos los eventos de suscripción a Google Analytics y Firebase para su posterior análisis. Tome mejores decisiones de producto, relacione los eventos de producto con las compras. - [Google Cloud Storage](https://adapty.io/es/integrations/google-cloud-storage/): Envía todas las métricas de suscripción y compras a nivel de usuario a tu Google Cloud Storage. Tome mejores decisiones de producto, relacione los eventos de producto con las compras. - [Mixpanel](https://adapty.io/es/integrations/mixpanel/): Envíe todas las métricas de suscripción y compras a nivel de usuario a Mixpanel. Tome mejores decisiones de productos, relacione los eventos de productos con las compras. Integración en 5 minutos, sin necesidad de código de servidor. - [OneSignal](https://adapty.io/es/integrations/onesignal/): Envíe todas las métricas de suscripción y compras a nivel de usuario a OneSignal. Tome mejores decisiones sobre productos, relacione los eventos de productos con las compras. Integración en 5 minutos, sin necesidad de código de servidor. - [Facebook Ads](https://adapty.io/zh/integrations/facebook-ads/): 將使用者層級的所有訂閱與購買指標傳送至 Facebook。 做出更好的產品決策,將產品事件與購買相匹配。 5 分鐘內完成整合,無需伺服器程式碼。 - [Pushwoosh](https://adapty.io/es/integrations/pushwoosh/): Envíe todas las métricas de suscripción y compras a nivel de usuario a Pushwoosh. Tome mejores decisiones de productos, haga coincidir los eventos de productos con las compras. Integración en 5 minutos, sin necesidad de código de servidor. - [SplitMetrics](https://adapty.io/es/integrations/splitmetrics/): Envíe todas las métricas de suscripción y compras a nivel de usuario a SplitMetrics. Tome mejores decisiones de productos, haga coincidir los eventos de productos con las compras. Integración en 5 minutos, sin necesidad de código de servidor. - [Stripe](https://adapty.io/es/integrations/stripe/): Conceda acceso automático a las funciones de pago a los usuarios que compraron en la web y posteriormente iniciaron sesión en la aplicación y consolide los análisis de suscripción en Adapty. - [Google Analytics and Firebase](https://adapty.io/zh/integrations/google-analytics-firebase/): 將所有訂閱事件傳送至 Google Analytics 和 Firebase 作進一步分析。 做出更好的產品決策,將產品事件與購買相匹配。 - [Airbridge](https://adapty.io/tr/integrations/airbridge/): Tüm abonelik ve satın alma olaylarını Airbridge'e gönderin veya Aibridge verilerini Adapty'de görüntüleyin. Daha iyi ürün kararları alın ve ürün etkinliklerini satın almalarla eşleştirin. - [Amazon S3](https://adapty.io/tr/integrations/amazon-s3/): Tüm abonelik ve satın alma ölçümlerini kullanıcı düzeyinde Amazon S3'e gönderin. Daha iyi ürün kararları alın, ürün etkinliklerini satın almalarla eşleştirin. 5 dakikada entegrasyon, sunucu kodu gerekmez. - [Google Cloud Storage](https://adapty.io/zh/integrations/google-cloud-storage/): 將使用者層級的所有訂閱和購買指標傳送至您的 Google Cloud Storage。 做出更好的產品決策,將產品事件與購買匹配起來。 - [Amplitude](https://adapty.io/tr/integrations/amplitude/): Tüm abonelik ve satın alma ölçümlerini kullanıcı düzeyinde Amplitude'a gönderin. Daha iyi ürün kararları alın, ürün etkinliklerini satın almalarla eşleştirin. 5 dakikada entegrasyon, sunucu kodu gerekmez. - [Apple Ads](https://adapty.io/tr/integrations/apple-search-ads/): Tüm abonelik ve satın alma metriklerini kullanıcı düzeyinde Apple Ads'e gönderin. Daha iyi ürün kararları alın, ürün olaylarını satın almalarla eşleştirin. 5 dakikada entegrasyon, sunucu kodu gerekmez. - [Mixpanel](https://adapty.io/zh/integrations/mixpanel/): 將使用者層級的所有訂閱與購買指標傳送至 Mixpanel。 做出更好的產品決策,將產品事件與購買相匹配。 5 分鐘內完成整合,無需伺服器程式碼。 - [AppMetrica](https://adapty.io/tr/integrations/appmetrica/): Tüm abonelik ve satın alma ölçümlerini kullanıcı düzeyinde AppMetrica'ya gönderin. Daha iyi ürün kararları alın, ürün etkinliklerini satın almalarla eşleştirin. 5 dakikada entegrasyon, sunucu kodu gerekmez. - [Appsflyer](https://adapty.io/tr/integrations/appsflyer/): Tüm abonelik ve satın alma ölçümlerini kullanıcı düzeyinde AppsFlyer'a gönderin. Daha iyi ürün kararları alın, ürün etkinliklerini satın almalarla eşleştirin. 5 dakikada entegrasyon, sunucu kodu gerekmez. - [OneSignal](https://adapty.io/zh/integrations/onesignal/): 將使用者層級的所有訂閱與購買指標傳送至 OneSignal。 做出更好的產品決策,將產品事件與購買匹配起來。 5 分鐘內完成整合,無需伺服器程式碼。 - [Asapty](https://adapty.io/tr/integrations/asapty/): Tüm abonelik ve satın alma metriklerini kullanıcı düzeyinde Asapty'ye gönderin. Daha iyi ürün kararları verin, ürün etkinliklerini satın almalarla eşleştirin. 5 dakikada entegrasyon, sunucu kodu gerekmez. - [Branch](https://adapty.io/tr/integrations/branch/): Tüm abonelik ve satın alma ölçümlerini kullanıcı düzeyinde Branch'a gönderin. Daha iyi ürün kararları verin, ürün etkinliklerini satın almalarla eşleştirin. 5 dakikada entegrasyon, sunucu kodu gerekmez. - [Braze](https://adapty.io/tr/integrations/braze/): Tüm abonelik ve satın alma ölçümlerini kullanıcı düzeyinde Braze'e gönderin. Daha iyi ürün kararları verin, ürün etkinliklerini satın almalarla eşleştirin. 5 dakikada entegrasyon - [Facebook Ads](https://adapty.io/tr/integrations/facebook-ads/): Tüm abonelik ve satın alma ölçümlerini kullanıcı düzeyinde Facebook'a gönderin. Daha iyi ürün kararları verin, ürün etkinliklerini satın almalarla eşleştirin. 5 dakikada entegrasyon, sunucu kodu gerekmez. - [Pushwoosh](https://adapty.io/zh/integrations/pushwoosh/): 將使用者層級的所有訂閱與購買指標傳送至 Pushwoosh。 做出更好的產品決策,將產品事件與購買相匹配。 5 分鐘內完成整合,無需伺服器程式碼。 - [Google Analytics and Firebase](https://adapty.io/tr/integrations/google-analytics-firebase/): Daha fazla analiz için tüm abonelik olaylarını Google Analytics ve Firebase'e gönderin. Daha iyi ürün kararları alın, ürün etkinliklerini satın almalarla eşleştirin. - [Google Cloud Storage](https://adapty.io/tr/integrations/google-cloud-storage/): Tüm abonelik ve satın alma ölçümlerini kullanıcı düzeyinde Google Cloud Storage'ınıza gönderin. Daha iyi ürün kararları alın, ürün etkinliklerini satın almalarla eşleştirin. - [SplitMetrics](https://adapty.io/zh/integrations/splitmetrics/): 將使用者層級的所有訂閱與購買指標傳送至 SplitMetrics。 做出更好的產品決策,將產品事件與購買匹配起來。 5 分鐘內完成整合,無需伺服器程式碼。 - [Mixpanel](https://adapty.io/tr/integrations/mixpanel/): Tüm abonelik ve satın alma metriklerini kullanıcı düzeyinde Mixpanel'e gönderin. Daha iyi ürün kararları alın, ürün etkinliklerini satın almalarla eşleştirin. 5 dakikada entegrasyon, sunucu kodu gerekmez. - [OneSignal](https://adapty.io/tr/integrations/onesignal/): Tüm abonelik ve satın alma ölçümlerini kullanıcı düzeyinde OneSignal'a gönderin. Daha iyi ürün kararları alın, ürün etkinliklerini satın almalarla eşleştirin. 5 dakikada entegrasyon, sunucu kodu gerekmez. - [Stripe](https://adapty.io/zh/integrations/stripe/): 對於在網頁上購買並稍後登入應用程式的使用者,授予自動存取付費功能的權限,並將訂閱分析整合至 Adapty。 - [Pushwoosh](https://adapty.io/tr/integrations/pushwoosh/): Tüm abonelik ve satın alma metriklerini kullanıcı düzeyinde Pushwoosh'a gönderin. Daha iyi ürün kararları alın, ürün etkinliklerini satın almalarla eşleştirin. 5 dakikada entegrasyon, sunucu kodu gerekmez. - [SplitMetrics](https://adapty.io/tr/integrations/splitmetrics/): Tüm abonelik ve satın alma ölçümlerini kullanıcı düzeyinde SplitMetrics'e gönderin. Daha iyi ürün kararları alın, ürün etkinliklerini satın almalarla eşleştirin. 5 dakikada entegrasyon, sunucu kodu gerekmez. - [Stripe](https://adapty.io/tr/integrations/stripe/): Web üzerinden satın alan ve daha sonra uygulamaya giriş yapan kullanıcılar için ücretli özelliklere otomatik erişim sağlayın ve abonelik analizlerini Adapty'de birleştirin. - [Webhook](https://adapty.io/zh/integrations/webhook/): 將使用者層級的所有訂閱與購買指標傳送至 Webhook。 做出更好的產品決策,將產品事件與購買相匹配。 5 分鐘內完成整合,無需伺服器程式碼。 - [Airbridge](https://adapty.io/ua/integrations/airbridge/): Надсилайте всі події підписки та покупки до Airbridge або переглядайте дані Aibridge в Adapty. Приймайте кращі рішення щодо продуктів та узгоджуйте події з покупками. - [Webhook](https://adapty.io/fr/integrations/webhook/): Envoyez tous les indicateurs d'abonnement et d'achat au niveau de l'utilisateur à Webhook. Prenez de meilleures décisions concernant les produits, faites correspondre les événements produits avec les achats. Intégration en 5 minutes, aucun code serveur n'est requis. - [Webhook](https://adapty.io/de/integrations/webhook/): Senden Sie alle Abonnement- und Kaufmetriken auf Benutzerebene an Webhook. Treffen Sie bessere Produktentscheidungen und gleichen Sie Produktereignisse mit Käufen ab. Integration in 5 Minuten, kein Servercode erforderlich. - [Webhook](https://adapty.io/ja/integrations/webhook/): すべての購読と購入のメトリクスをユーザーレベルでWebhookに送信します。 より良い商品決定を行い、商品イベントと購買をマッチさせます。 サーバーコード不要、5分で統合。 - [Webhook](https://adapty.io/ko/integrations/webhook/): 사용자 단위의 모든 구독 및 구매 지표를 Webhook으로 전송하세요. 더 나은 제품 결정을 내리고, 제품 이벤트와 구매를 일치시키세요. 서버 코드 없이 5분 만에 통합할 수 있습니다. - [Webhook](https://adapty.io/pl/integrations/webhook/): Wysyłaj wszystkie dane dotyczące subskrypcji i zakupów na poziomie użytkownika do Webhook. Podejmuj lepsze decyzje dotyczące produktów, dopasowuj zdarzenia produktowe do zakupów. Integracja w 5 minut, kod serwera nie jest wymagany. - [Webhook](https://adapty.io/pt/integrations/webhook/): Envie todas as métricas de subscrição e compras ao nível do utilizador para o Webhook. Tome melhores decisões sobre produtos, combine eventos de produtos com compras. Integração em 5 minutos, sem necessidade de código de servidor. - [Webhook](https://adapty.io/ru/integrations/webhook/): Отправляйте все показатели подписки и покупок на уровне пользователя в Webhook. Принимайте лучшие решения о продуктах, сопоставляйте события, связанные с продуктами, с покупками. Интеграция за 5 минут, не требуется серверный код. - [Webhook](https://adapty.io/es/integrations/webhook/): Envíe todas las métricas de suscripción y compras a nivel de usuario a Webhook. Tome mejores decisiones sobre productos, relacione los eventos de productos con las compras. Integración en 5 minutos, sin necesidad de código de servidor. - [Webhook](https://adapty.io/tr/integrations/webhook/): Tüm abonelik ve satın alma metriklerini kullanıcı düzeyinde Webhook'a gönderin. Daha iyi ürün kararları verin, ürün etkinliklerini satın almalarla eşleştirin. 5 dakikada entegrasyon, sunucu kodu gerekmez. - [Webhook](https://adapty.io/ua/integrations/webhook/): Надсилайте всі показники підписок і покупок на рівні користувача до Webhook. Приймайте кращі рішення щодо продуктів, зіставляйте події продукту з покупками. Інтеграція за 5 хвилин, без серверного коду. - [Airbridge](https://adapty.io/fr/integrations/airbridge/): Envoyez tous les événements d'abonnement et d'achat à Airbridge ou visualisez les données d'Aibridge dans Adapty. Prenez de meilleures décisions concernant les produits et faites correspondre les événements produits avec les achats. - [Amazon S3](https://adapty.io/fr/integrations/amazon-s3/): Envoyez toutes les données d'abonnement et d'achat au niveau de l'utilisateur à Amazon S3. Prenez de meilleures décisions concernant les produits, faites correspondre les événements produits avec les achats. Intégration en 5 minutes, aucun code serveur n'est requis. - [Amplitude](https://adapty.io/fr/integrations/amplitude/): Envoyez à Amplitude tous les indicateurs d'abonnement et d'achat au niveau de l'utilisateur. Prenez de meilleures décisions concernant les produits, faites correspondre les événements produits avec les achats. Intégration en 5 minutes, aucun code serveur n'est requis. - [Apple Ads](https://adapty.io/fr/integrations/apple-search-ads/): Envoyez toutes les métriques d'abonnement et d'achats au niveau utilisateur à Apple Ads. Prenez de meilleures décisions produit, associez les événements produits avec les achats. Intégration en 5 minutes, aucun code serveur requis. - [AppMetrica](https://adapty.io/fr/integrations/appmetrica/): Envoyez à AppMetrica tous les indicateurs d'abonnement et d'achat au niveau de l'utilisateur. Prenez de meilleures décisions concernant les produits, faites correspondre les événements produits avec les achats. Intégration en 5 minutes, aucun code serveur n'est requis. - [Appsflyer](https://adapty.io/fr/integrations/appsflyer/): Envoyez à AppsFlyer tous les indicateurs d'abonnement et d'achat au niveau de l'utilisateur. Prenez de meilleures décisions concernant les produits, faites correspondre les événements produits avec les achats. Intégration en 5 minutes, aucun code serveur n'est requis. - [Asapty](https://adapty.io/fr/integrations/asapty/): Envoyez à Asapty tous les indicateurs d'abonnement et d'achat au niveau de l'utilisateur. Prenez de meilleures décisions concernant les produits, faites correspondre les événements produits avec les achats. Intégration en 5 minutes, aucun code serveur n'est requis. - [Branch](https://adapty.io/fr/integrations/branch/): Envoyez à Branch tous les indicateurs d'abonnement et d'achat au niveau de l'utilisateur. Prenez de meilleures décisions concernant les produits, faites correspondre les événements produits avec les achats. Intégration en 5 minutes, aucun code serveur n'est requis. - [Braze](https://adapty.io/fr/integrations/braze/): Envoyez à Braze tous les indicateurs d'abonnement et d'achat au niveau de l'utilisateur. Prenez de meilleures décisions concernant les produits, faites correspondre les événements produits avec les achats. Intégration en 5 minutes - [Facebook Ads](https://adapty.io/fr/integrations/facebook-ads/): Envoyez à Facebook tous les indicateurs d'abonnement et d'achat au niveau de l'utilisateur. Prenez de meilleures décisions concernant les produits, faites correspondre les événements produits avec les achats. Intégration en 5 minutes, aucun code serveur n'est requis. - [Google Analytics and Firebase](https://adapty.io/fr/integrations/google-analytics-firebase/): Envoyez tous les événements liés à l'abonnement à Google Analytics et Firebase pour une analyse plus approfondie. Prenez de meilleures décisions concernant les produits, faites correspondre les événements produits avec les achats. - [Google Cloud Storage](https://adapty.io/fr/integrations/google-cloud-storage/): Envoyez toutes les données relatives aux abonnements et aux achats au niveau de l'utilisateur vers votre espace de stockage dans le nuage de Google. Prenez de meilleures décisions concernant les produits, faites correspondre les événements produits avec les achats. - [Mixpanel](https://adapty.io/fr/integrations/mixpanel/): Envoyez à Mixpanel tous les indicateurs d'abonnement et d'achat au niveau de l'utilisateur. Prenez de meilleures décisions concernant les produits, faites correspondre les événements produits avec les achats. Intégration en 5 minutes, aucun code serveur n'est requis. - [OneSignal](https://adapty.io/fr/integrations/onesignal/): Envoyez à OneSignal tous les indicateurs d'abonnement et d'achat au niveau de l'utilisateur. Prenez de meilleures décisions concernant les produits, faites correspondre les événements produits avec les achats. Intégration en 5 minutes, aucun code serveur n'est requis. - [Pushwoosh](https://adapty.io/fr/integrations/pushwoosh/): Envoyez à Pushwoosh tous les indicateurs d'abonnement et d'achat au niveau de l'utilisateur. Prenez de meilleures décisions concernant les produits, faites correspondre les événements produits avec les achats. Intégration en 5 minutes, aucun code serveur n'est requis. - [SplitMetrics](https://adapty.io/fr/integrations/splitmetrics/): Envoyez à SplitMetrics tous les indicateurs d'abonnement et d'achat au niveau de l'utilisateur. Prenez de meilleures décisions concernant les produits, faites correspondre les événements produits avec les achats. Intégration en 5 minutes, aucun code serveur n'est requis. - [Stripe](https://adapty.io/fr/integrations/stripe/): Accorder un accès automatique aux fonctionnalités payantes pour les utilisateurs qui ont acheté sur le web et se sont ensuite connectés à l'application et consolider les analyses d'abonnement dans Adapty. - [Airbridge](https://adapty.io/de/integrations/airbridge/): Senden Sie alle Abonnement- und Kaufereignisse an Airbridge oder zeigen Sie Aibridge-Daten in Adapty an. Treffen Sie bessere Produktentscheidungen und stimmen Sie Produktereignisse mit Käufen ab. - [Amazon S3](https://adapty.io/de/integrations/amazon-s3/): Senden Sie alle Abonnement- und Kaufmetriken auf Benutzerebene an Amazon S3. Treffen Sie bessere Produktentscheidungen und gleichen Sie Produktereignisse mit Käufen ab. Integration in 5 Minuten, kein Servercode erforderlich. - [Amplitude](https://adapty.io/de/integrations/amplitude/): Senden Sie alle Abonnement- und Kaufmetriken auf Benutzerebene an Amplitude. Treffen Sie bessere Produktentscheidungen und gleichen Sie Produktereignisse mit Käufen ab. Integration in 5 Minuten, kein Servercode erforderlich. - [Apple Ads](https://adapty.io/de/integrations/apple-search-ads/): Senden Sie alle Metriken zu Abonnements und Käufen auf Benutzerebene an Apple Ads. Treffen Sie bessere Produktentscheidungen, stimmen Sie Produktereignisse mit Käufen ab. Integration in 5 Minuten, kein Server-Code erforderlich. - [AppMetrica](https://adapty.io/de/integrations/appmetrica/): Senden Sie alle Abonnement- und Kaufmetriken auf Benutzerebene an AppMetrica. Treffen Sie bessere Produktentscheidungen und gleichen Sie Produktereignisse mit Käufen ab. Integration in 5 Minuten, kein Servercode erforderlich. - [Adjust](https://adapty.io/integrations/adjust/): Send all subscription and purchases metrics on a user level to Adjust. Make better products decisions, match product events with purchases. Integration in 5 minutes, no server code required. - [Appsflyer](https://adapty.io/de/integrations/appsflyer/): Senden Sie alle Abonnement- und Kaufmetriken auf Benutzerebene an AppsFlyer. Treffen Sie bessere Produktentscheidungen, stimmen Sie Produktereignisse mit Käufen ab. Integration in 5 Minuten, kein Servercode erforderlich. - [Amazon S3](https://adapty.io/ua/integrations/amazon-s3/): Надсилайте всі показники підписок і покупок на рівні користувача до Amazon S3. Приймайте кращі рішення щодо продуктів, узгоджуйте події продукту з покупками. Інтеграція за 5 хвилин, без серверного коду. - [Asapty](https://adapty.io/de/integrations/asapty/): Senden Sie alle Abonnement- und Kaufmetriken auf Benutzerebene an Asapty. Treffen Sie bessere Produktentscheidungen, stimmen Sie Produktereignisse mit Käufen ab. Integration in 5 Minuten, kein Servercode erforderlich. - [Branch](https://adapty.io/de/integrations/branch/): Senden Sie alle Abonnement- und Kaufstatistiken auf Benutzerebene an Branch. Treffen Sie bessere Produktentscheidungen und gleichen Sie Produktereignisse mit Käufen ab. Integration in 5 Minuten, kein Servercode erforderlich. - [Braze](https://adapty.io/de/integrations/braze/): Senden Sie alle Abonnement- und Kaufmetriken auf Benutzerebene an Braze. Treffen Sie bessere Produktentscheidungen, stimmen Sie Produktereignisse mit Käufen ab. Integration in 5 Minuten - [Facebook Ads](https://adapty.io/de/integrations/facebook-ads/): Senden Sie alle Abonnement- und Kaufmetriken auf Benutzerebene an Facebook. Treffen Sie bessere Produktentscheidungen, stimmen Sie Produktereignisse mit Käufen ab. Integration in 5 Minuten, kein Servercode erforderlich. - [Google Analytics and Firebase](https://adapty.io/de/integrations/google-analytics-firebase/): Senden Sie alle Abonnementereignisse zur weiteren Analyse an Google Analytics und Firebase. Treffen Sie bessere Produktentscheidungen und gleichen Sie Produktereignisse mit Käufen ab. - [Google Cloud Storage](https://adapty.io/de/integrations/google-cloud-storage/): Senden Sie alle Abonnement- und Kaufmetriken auf Nutzerebene an Ihren Google Cloud Storage. Treffen Sie bessere Produktentscheidungen, stimmen Sie Produktereignisse mit Käufen ab. - [Mixpanel](https://adapty.io/de/integrations/mixpanel/): Senden Sie alle Abonnement- und Kaufmetriken auf Benutzerebene an Mixpanel. Treffen Sie bessere Produktentscheidungen und gleichen Sie Produktereignisse mit Käufen ab. Integration in 5 Minuten, kein Servercode erforderlich. - [OneSignal](https://adapty.io/de/integrations/onesignal/): Senden Sie alle Abonnement- und Kaufmetriken auf Benutzerebene an OneSignal. Treffen Sie bessere Produktentscheidungen, stimmen Sie Produktereignisse mit Käufen ab. Integration in 5 Minuten, kein Servercode erforderlich. - [Pushwoosh](https://adapty.io/de/integrations/pushwoosh/): Senden Sie alle Abonnement- und Kaufmetriken auf Benutzerebene an Pushwoosh. Treffen Sie bessere Produktentscheidungen, stimmen Sie Produktereignisse mit Käufen ab. Integration in 5 Minuten, kein Servercode erforderlich. - [SplitMetrics](https://adapty.io/de/integrations/splitmetrics/): Senden Sie alle Abonnement- und Kaufmetriken auf Benutzerebene an SplitMetrics. Treffen Sie bessere Produktentscheidungen und gleichen Sie Produktereignisse mit Käufen ab. Integration in 5 Minuten, kein Servercode erforderlich. - [Stripe](https://adapty.io/de/integrations/stripe/): Gewähren Sie Nutzern, die im Internet gekauft und sich später in der App eingeloggt haben, automatischen Zugang zu kostenpflichtigen Funktionen und konsolidieren Sie die Abonnement-Analyse in Adapty. - [Airbridge](https://adapty.io/ja/integrations/airbridge/): すべての購読および購入イベントをAirbridgeに送信するか、AdaptyでAibridgeのデータを表示します。 より的確な商品決定を行い、商品イベントと購買を一致させます。 - [Amazon S3](https://adapty.io/ja/integrations/amazon-s3/): すべての購読と購入のメトリクスをユーザーレベルでAmazon S3に送信します。 より良い商品決定を行い、商品イベントと購入を一致させます。 サーバーコード不要、5分で統合。 - [Amplitude](https://adapty.io/ja/integrations/amplitude/): すべてのサブスクリプションと購入のメトリクスをユーザーレベルでAmplitudeに送信します。 より良い商品決定を行い、商品イベントと購買を一致させます。 サーバーコード不要、5分で統合。 - [Apple Ads](https://adapty.io/ja/integrations/apple-search-ads/): すべてのサブスクリプションと購入の指標をユーザー単位でApple Adsに送信します。より良い製品の決定を行い、製品のイベントを購入と一致させます。5分で統合、サーバーコードは不要です。 - [AppMetrica](https://adapty.io/ja/integrations/appmetrica/): AppMetricaにすべての購読と購入のメトリクスをユーザーレベルで送信します。 より良い商品決定を行い、商品イベントと購入のマッチングを行います。 サーバーコード不要、5分で統合。 - [Appsflyer](https://adapty.io/ja/integrations/appsflyer/): AppsFlyerにすべての購読と購入の指標をユーザーレベルで送信します。 より良い商品決定を行い、商品イベントと購買をマッチさせます。 サーバーコード不要、5分で統合。 - [Asapty](https://adapty.io/ja/integrations/asapty/): すべての定期購入と購買の指標をユーザーレベルでAsaptyに送信。 より良い商品決定を行い、商品イベントと購買をマッチさせます。 サーバーコード不要、5分で統合。 - [Amplitude](https://adapty.io/ua/integrations/amplitude/): Надсилайте всі метрики підписок і покупок на рівні користувачів до Amplitude. Приймайте кращі рішення щодо продуктів, співставляйте події продукту з покупками. Інтеграція за 5 хвилин, без серверного коду. - [Branch](https://adapty.io/ja/integrations/branch/): すべての購読と購入の指標をユーザーレベルでBranchに送信します。 より良い商品決定を行い、商品イベントと購買をマッチさせます。 サーバーコード不要、5分で統合。 - [Airbridge](https://adapty.io/integrations/airbridge/): Send all subscription and purchase events to Airbridge or view Aibridge data in Adapty. Make better product decisions, and match product events with purchases. - [Braze](https://adapty.io/ja/integrations/braze/): すべての購読と購入の指標をユーザーレベルでBrazeに送信します。 より良い商品決定を行い、商品イベントと購入のマッチングを行います。 5分で統合 - [Facebook Ads](https://adapty.io/ja/integrations/facebook-ads/): すべての購読と購入の指標をユーザーレベルでFacebookに送信します。 より良い商品決定を行い、商品イベントと購買をマッチさせます。 サーバーコード不要、5分で統合。 - [Apple Ads](https://adapty.io/ua/integrations/apple-search-ads/): Надсилайте всі метрики підписки та покупок на рівні користувача до Apple Ads. Приймайте кращі рішення щодо продуктів, співвідносьте події продукту з покупками. Інтеграція за 5 хвилин, не потрібен серверний код. - [Google Analytics and Firebase](https://adapty.io/ja/integrations/google-analytics-firebase/): すべてのサブスクリプションイベントをGoogle AnalyticsとFirebaseに送信し、さらに分析します。 より良い商品決定を行い、商品イベントと購買を一致させます。 - [Google Cloud Storage](https://adapty.io/ja/integrations/google-cloud-storage/): すべてのサブスクリプションと購入のメトリクスをユーザーレベルでGoogle Cloud Storageに送信します。 より良い製品決定を行い、製品イベントと購買を一致させます。 - [AppMetrica](https://adapty.io/ua/integrations/appmetrica/): Надсилайте всі показники підписок і покупок на рівні користувачів до AppMetrica. Приймайте кращі рішення щодо продуктів, зіставляйте події продукту з покупками. Інтеграція за 5 хвилин, без серверного коду. - [Mixpanel](https://adapty.io/ja/integrations/mixpanel/): すべての定期購入と購買の指標をユーザーレベルでMixpanelに送信します。 より良い商品決定を行い、商品イベントと購買を一致させます。 サーバーコード不要、5分で統合。 - [OneSignal](https://adapty.io/ja/integrations/onesignal/): OneSignalにすべての購読と購入のメトリクスをユーザーレベルで送信します。 より良い商品決定を行い、商品イベントと購入を一致させます。 サーバーコード不要、5分で統合。 - [Appsflyer](https://adapty.io/ua/integrations/appsflyer/): Надсилайте всі показники підписок і покупок на рівні користувача до AppsFlyer. Приймайте кращі рішення щодо продуктів, узгоджуйте події продукту з покупками. Інтеграція за 5 хвилин, без серверного коду. - [Pushwoosh](https://adapty.io/ja/integrations/pushwoosh/): Pushwooshにすべての購読と購入の指標をユーザーレベルで送信します。 より良い商品決定を行い、商品イベントと購買をマッチさせます。 サーバーコード不要、5分で統合。 - [Asapty](https://adapty.io/ua/integrations/asapty/): Надсилайте всі метрики підписок і покупок на рівні користувачів до Asapty. Приймайте кращі рішення щодо продуктів, узгоджуйте події продукту з покупками. Інтеграція за 5 хвилин, без серверного коду. - [SplitMetrics](https://adapty.io/ja/integrations/splitmetrics/): SplitMetricsにすべての購読と購入のメトリクスをユーザーレベルで送信します。 より良い商品決定を行い、商品イベントと購買をマッチさせます。 サーバーコード不要、5分で統合。 - [Stripe](https://adapty.io/ja/integrations/stripe/): ウェブで購入し、後でアプリにログインしたユーザーの有料機能への自動アクセスを許可し、購読分析をAdaptyに統合します。 - [Branch](https://adapty.io/ua/integrations/branch/): Надсилайте всі метрики підписок і покупок на рівні користувачів до Branch. Приймайте кращі рішення щодо продуктів, узгоджуйте події продуктів з покупками. Інтеграція за 5 хвилин, без серверного коду. - [Airbridge](https://adapty.io/ko/integrations/airbridge/): 모든 구독 및 구매 이벤트를 에어브릿지로 전송하거나 어댑티에서 아이브릿지 데이터를 확인하세요. 더 나은 제품 결정을 내리고 제품 이벤트와 구매를 매칭하세요. - [Braze](https://adapty.io/ua/integrations/braze/): Надсилайте всі метрики підписок і покупок на рівні користувача до Braze. Приймайте кращі рішення щодо продуктів, узгоджуйте події з покупками. Інтеграція за 5 хвилин - [Amazon S3](https://adapty.io/ko/integrations/amazon-s3/): 사용자 단위의 모든 구독 및 구매 메트릭을 Amazon S3로 전송하세요. 더 나은 제품 결정을 내리고, 제품 이벤트와 구매를 일치시키세요. 서버 코드 없이 5분 만에 통합할 수 있습니다. - [Amplitude](https://adapty.io/ko/integrations/amplitude/): 사용자 단위의 모든 구독 및 구매 지표를 Amplitude로 전송하세요. 더 나은 제품 결정을 내리고, 제품 이벤트와 구매를 일치시키세요. 서버 코드 없이 5분 만에 통합할 수 있습니다. - [Apple Ads](https://adapty.io/ko/integrations/apple-search-ads/): 모든 구독 및 구매 메트릭을 사용자 수준에서 Apple Ads에 전송하세요. 더 나은 제품 결정을 내리고, 제품 이벤트를 구매와 일치시키세요. 5분 안에 통합 가능하며, 서버 코드는 필요하지 않습니다. - [AppMetrica](https://adapty.io/ko/integrations/appmetrica/): 사용자 단위의 모든 구독 및 구매 지표를 앱메트릭스로 전송하세요. 더 나은 제품 결정을 내리고, 제품 이벤트와 구매를 일치시키세요. 서버 코드 없이 5분 만에 통합할 수 있습니다. - [Facebook Ads](https://adapty.io/ua/integrations/facebook-ads/): Надсилайте всі показники підписок і покупок на рівні користувачів до Facebook. Приймайте кращі рішення щодо продуктів, узгоджуйте події продукту з покупками. Інтеграція за 5 хвилин, без серверного коду. - [Appsflyer](https://adapty.io/ko/integrations/appsflyer/): 사용자 단위의 모든 구독 및 구매 지표를 앱스플라이어로 전송하세요. 더 나은 제품 결정을 내리고, 제품 이벤트와 구매를 일치시키세요. 서버 코드 없이 5분 만에 통합할 수 있습니다. - [Asapty](https://adapty.io/ko/integrations/asapty/): 사용자 단위의 모든 구독 및 구매 지표를 Asapty로 전송하세요. 더 나은 제품 결정을 내리고, 제품 이벤트와 구매를 일치시키세요. 서버 코드 없이 5분 만에 통합할 수 있습니다. - [Branch](https://adapty.io/ko/integrations/branch/): 사용자 단위의 모든 구독 및 구매 지표를 Branch로 전송하세요. 더 나은 제품 결정을 내리고 제품 이벤트와 구매를 일치시키세요. 서버 코드 없이 5분 만에 통합할 수 있습니다. - [Braze](https://adapty.io/ko/integrations/braze/): 사용자 단위의 모든 구독 및 구매 지표를 Braze로 전송하세요. 더 나은 제품 결정을 내리고, 제품 이벤트와 구매를 일치시키세요. 5분 안에 통합 - [Google Analytics and Firebase](https://adapty.io/ua/integrations/google-analytics-firebase/): Надсилайте всі події підписки до Google Analytics та Firebase для подальшого аналізу. Приймайте кращі рішення щодо продуктів, узгоджуйте події з покупками. - [Facebook Ads](https://adapty.io/ko/integrations/facebook-ads/): 사용자 단위의 모든 구독 및 구매 지표를 Facebook으로 전송합니다. 더 나은 제품 결정을 내리고, 제품 이벤트와 구매를 일치시키세요. 서버 코드 없이 5분 만에 통합할 수 있습니다. - [Google Analytics and Firebase](https://adapty.io/ko/integrations/google-analytics-firebase/): 추가 분석을 위해 모든 구독 이벤트를 Google 애널리틱스 및 파이어베이스에 전송하세요. 더 나은 제품 결정을 내리고 제품 이벤트와 구매를 일치시키세요. - [Google Cloud Storage](https://adapty.io/ko/integrations/google-cloud-storage/): 사용자 단위의 모든 구독 및 구매 지표를 Google 클라우드 스토리지로 전송하세요. 더 나은 제품 결정을 내리고 제품 이벤트와 구매를 일치시키세요. - [Google Cloud Storage](https://adapty.io/ua/integrations/google-cloud-storage/): Надсилайте всі показники підписок і покупок на рівні користувача до вашого Google Cloud Storage. Приймайте кращі рішення щодо продуктів, узгоджуйте події продукту з покупками. - [Mixpanel](https://adapty.io/ko/integrations/mixpanel/): 사용자 단위의 모든 구독 및 구매 지표를 믹스패널로 전송하세요. 더 나은 제품 결정을 내리고, 제품 이벤트와 구매를 일치시키세요. 서버 코드 없이 5분 만에 통합할 수 있습니다. - [OneSignal](https://adapty.io/ko/integrations/onesignal/): 사용자 단위의 모든 구독 및 구매 지표를 원시그널로 전송하세요. 더 나은 제품 결정을 내리고, 제품 이벤트와 구매를 일치시키세요. 서버 코드 없이 5분 만에 통합할 수 있습니다. - [Mixpanel](https://adapty.io/ua/integrations/mixpanel/): Надсилайте всі показники підписок і покупок на рівні користувачів до Mixpanel. Приймайте кращі рішення щодо продуктів, узгоджуйте події продукту з покупками. Інтеграція за 5 хвилин, без серверного коду. - [Pushwoosh](https://adapty.io/ko/integrations/pushwoosh/): 사용자 단위의 모든 구독 및 구매 지표를 Pushwoosh로 전송하세요. 더 나은 제품 결정을 내리고, 제품 이벤트와 구매를 일치시키세요. 서버 코드 없이 5분 만에 통합할 수 있습니다. - [OneSignal](https://adapty.io/ua/integrations/onesignal/): Надсилайте всі показники підписок і покупок на рівні користувачів до OneSignal. Приймайте кращі рішення щодо продуктів, узгоджуйте події продукту з покупками. Інтеграція за 5 хвилин, без серверного коду. - [SplitMetrics](https://adapty.io/ko/integrations/splitmetrics/): 사용자 단위의 모든 구독 및 구매 지표를 SplitMetrics로 전송하세요. 더 나은 제품 결정을 내리고, 제품 이벤트와 구매를 일치시키세요. 서버 코드 없이 5분 만에 통합할 수 있습니다. - [Stripe](https://adapty.io/ko/integrations/stripe/): 웹에서 구매하고 나중에 앱에 로그인한 사용자에게 유료 기능에 대한 자동 액세스 권한을 부여하고 Adapty에서 구독 분석을 통합합니다. - [Airbridge](https://adapty.io/pl/integrations/airbridge/): Wysyłaj wszystkie zdarzenia subskrypcji i zakupu do Airbridge lub przeglądaj dane Aibridge w Adapty. Podejmuj lepsze decyzje dotyczące produktów i dopasowuj zdarzenia produktowe do zakupów. - [Amazon S3](https://adapty.io/pl/integrations/amazon-s3/): Wysyłaj wszystkie dane dotyczące subskrypcji i zakupów na poziomie użytkownika do Amazon S3. Podejmuj lepsze decyzje dotyczące produktów, dopasowuj zdarzenia produktowe do zakupów. Integracja w 5 minut, kod serwera nie jest wymagany. - [Amplitude](https://adapty.io/pl/integrations/amplitude/): Wysyłaj wszystkie dane dotyczące subskrypcji i zakupów na poziomie użytkownika do Amplitude. Podejmuj lepsze decyzje dotyczące produktów, dopasowuj zdarzenia produktowe do zakupów. Integracja w 5 minut, kod serwera nie jest wymagany. --- ## Reports - [State of in-app subscriptions 2025](https://adapty.io/reports/state-of-in-app-subscriptions-2025/): Download Adapty’s 2025 State of in-app subscriptions report powered by $1.9B in revenue from 11,000+ apps to uncover pricing, monetization & growth benchmarks. - [State of in-app subscriptions 2025](https://adapty.io/zh/reports/state-of-in-app-subscriptions-2025/): 下载Adapty的2025年应用内订阅状态报告,基于来自11000多个应用的19亿美元收入,揭示定价、货币化和增长基准。 - [State of in-app subscriptions 2025](https://adapty.io/fr/reports/state-of-in-app-subscriptions-2025/): Téléchargez le rapport 2025 sur l'état des abonnements in-app d'Adapty, tiré de 1,9 milliard de dollars de revenus provenant de plus de 11 000 applications pour découvrir les prix, la monétisation et les benchmarks de croissance. - [State of in-app subscriptions 2025](https://adapty.io/de/reports/state-of-in-app-subscriptions-2025/): Laden Sie Adapty's Bericht über den Zustand der In-App-Abonnements 2025 herunter, der von $1,9 Milliarden Einnahmen aus über 11.000 Apps unterstützt wird, um Preisgestaltung, Monetarisierung und Wachstumsbenchmarks zu entdecken. - [State of in-app subscriptions 2025](https://adapty.io/ja/reports/state-of-in-app-subscriptions-2025/): 11,000以上のアプリからの19億ドルの収益に基づいたAdaptyの2025年のアプリ内サブスクリプションの状態レポートをダウンロードして、価格設定、収益化、成長のベンチマークを明らかにしてください。 - [State of in-app subscriptions 2025](https://adapty.io/ko/reports/state-of-in-app-subscriptions-2025/): 11,000개 이상의 앱에서 발생한 $1.9B 수익을 기반으로 인앱 구독 가격 책정, 수익화 및 성장 벤치마크를 파악하기 위해 Adapty의 2025년 인앱 구독 상태 보고서를 다운로드하십시오. - [State of in-app subscriptions 2025](https://adapty.io/pt/reports/state-of-in-app-subscriptions-2025/): Baixe o relatório Estado das Assinaturas in-app 2025 da Adapty, com base em $1,9 bilhões de receita de mais de 11.000 aplicativos para descobrir preços, monetização e referências de crescimento. - [State of in-app subscriptions 2025](https://adapty.io/pl/reports/state-of-in-app-subscriptions-2025/): Pobierz raport Adapty o stanie subskrypcji w aplikacjach wewnętrznych 2025, wspierany przez 1,9 miliarda USD przychodu z ponad 11 000 aplikacji, aby odkryć ceny, monetyzację i benchmarki wzrostu. - [State of in-app subscriptions 2025](https://adapty.io/ru/reports/state-of-in-app-subscriptions-2025/): Скачайте отчет Adapty о состоянии подписок в приложениях 2025, основанный на $1.9B дохода от более чем 11,000 приложений, чтобы узнать об уровнях цен, монетизации и вехах роста. - [State of in-app subscriptions 2025](https://adapty.io/es/reports/state-of-in-app-subscriptions-2025/): Descarga el informe de Adapty sobre el Estado de las suscripciones dentro de la aplicación 2025, impulsado por $1.9B en ingresos de más de 11,000 aplicaciones para descubrir precios, monetización y referencias de crecimiento. - [State of in-app subscriptions 2025](https://adapty.io/tr/reports/state-of-in-app-subscriptions-2025/): 11.000'den fazla uygulamadan $1,9 milyar gelirle desteklenen Adapty'nin 2025 Uygulama İçi Abonelikler Raporu'nu indirin, fiyatlandırma, para kazanma ve büyüme kıyaslamalarını keşfedin. - [State of in-app subscriptions 2025](https://adapty.io/ua/reports/state-of-in-app-subscriptions-2025/): Завантажте звіт Adapty про стан підписок у застосунках 2025, що грунтується на $1.9B доходу від понад 11,000 застосунків, щоб дізнатися про ціноутворення, монетизацію та зростання. - [State of in-app subscriptions 2024](https://adapty.io/zh/reports/state-of-in-app-subscriptions-2024/): 取得應用程式內訂閱市場最全面的概觀。 取得最新的 iOS 訂閱基準、專家見解、小抄、策略。 - [State of in-app subscriptions 2024](https://adapty.io/fr/reports/state-of-in-app-subscriptions-2024/): Obtenez la vue d'ensemble la plus complète du marché des abonnements in-app. Accédez aux derniers benchmarks sur les abonnements iOS, aux analyses d'experts, aux antisèches et aux stratégies. - [State of in-app subscriptions 2024](https://adapty.io/de/reports/state-of-in-app-subscriptions-2024/): Erhalten Sie den umfassendsten Überblick über den In-App-Abonnementmarkt. Greifen Sie auf die neuesten iOS-Abonnement-Benchmarks, Experteneinblicke, Spickzettel und Strategien zu. - [State of in-app subscriptions 2024](https://adapty.io/ja/reports/state-of-in-app-subscriptions-2024/): アプリ内サブスクリプション市場の最も包括的な概要を取得します。 最新のiOSサブスクリプションベンチマーク、専門家の洞察、チートシート、戦略にアクセス。 - [State of in-app subscriptions 2024](https://adapty.io/ko/reports/state-of-in-app-subscriptions-2024/): 인앱 구독 시장에 대한 가장 포괄적인 개요를 확인하세요. 최신 iOS 구독 벤치마크, 전문가 인사이트, 치트 시트, 전략에 액세스하세요. - [State of in-app subscriptions 2024](https://adapty.io/pl/reports/state-of-in-app-subscriptions-2024/): Uzyskaj najbardziej kompleksowy przegląd rynku subskrypcji w aplikacjach. Uzyskaj dostęp do najnowszych testów porównawczych subskrypcji iOS, spostrzeżeń ekspertów, ściągawek i strategii. - [State of in-app subscriptions 2024](https://adapty.io/pt/reports/state-of-in-app-subscriptions-2024/): Obtenha a visão geral mais abrangente do mercado de subscrição in-app. Aceda aos mais recentes benchmarks de subscrição iOS, informações de especialistas, folhas de consulta e estratégias. - [State of in-app subscriptions 2024](https://adapty.io/ru/reports/state-of-in-app-subscriptions-2024/): Получите самый полный обзор рынка подписки на приложения. Получите доступ к последним контрольным показателям подписки на iOS, экспертным оценкам, шпаргалкам и стратегиям. - [State of in-app subscriptions 2024](https://adapty.io/es/reports/state-of-in-app-subscriptions-2024/): Obtén la visión más completa del mercado de suscripciones dentro de aplicaciones. Accede a las últimas referencias sobre suscripciones para iOS, opiniones de expertos, trucos y estrategias. - [State of in-app subscriptions 2024](https://adapty.io/tr/reports/state-of-in-app-subscriptions-2024/): Uygulama içi abonelik pazarına en kapsamlı genel bakışı edinin. En son iOS abonelik karşılaştırmalarına, uzman görüşlerine, hile sayfalarına ve stratejilerine erişin. - [State of in-app subscriptions 2024](https://adapty.io/ua/reports/state-of-in-app-subscriptions-2024/): Отримайте найповніший огляд ринку підписок у додатку. Отримуйте доступ до останніх бенчмарків підписок на iOS, експертних думок, шпаргалок, стратегій. - [State of in-app subscriptions in the US 2023](https://adapty.io/de/reports/state-of-in-app-subscriptions-2023/): Dieser Bericht für das Jahr 2023 befasst sich mit dem aktuellen Stand der In-App-Abonnements, einschließlich Benchmarks für Preise, LTV, Kundenbindung, Rückerstattungen und die besten Paywalls. Nutzen Sie die datenbasierten Erkenntnisse, um Ihre Finanzstrategie zu verbessern. - [State of in-app subscriptions in the US 2023](https://adapty.io/fr/reports/state-of-in-app-subscriptions-2023/): Ce rapport 2023 couvre l'état actuel des abonnements in-app, y compris les références pour les prix, LTV, la rétention, les remboursements, et les paywalls les plus performants. Utilisez les informations basées sur les données pour améliorer votre stratégie financière. - [State of in-app subscriptions in the US 2023](https://adapty.io/zh/reports/state-of-in-app-subscriptions-2023/): 本 2023 年報告涵蓋應用程式內訂閱的現況,包括價格、LTV、保留率、退款及表現最佳的付費牆等基準。 使用以資料為基礎的洞察力來改善您的財務策略。 - [State of in-app subscriptions in the US 2023](https://adapty.io/ja/reports/state-of-in-app-subscriptions-2023/): この2023年レポートは、価格、LTV、リテンション、払い戻し、最もパフォーマンスの高いペイウォールのベンチマークなど、アプリ内サブスクリプションの現状を網羅しています。 データに基づく洞察を財務戦略の改善にお役立てください。 - [State of in-app subscriptions in the US 2023](https://adapty.io/ko/reports/state-of-in-app-subscriptions-2023/): 이 2023 보고서는 가격, LTV, 리텐션, 환불, 최고 실적의 페이월에 대한 벤치마크를 포함한 인앱 구독의 현재 상태를 다룹니다. 데이터 기반 인사이트를 활용하여 재무 전략을 개선하세요. - [State of in-app subscriptions in the US 2023](https://adapty.io/pl/reports/state-of-in-app-subscriptions-2023/): Ten raport z 2023 r. obejmuje aktualny stan subskrypcji w aplikacjach, w tym poziomy odniesienia dla cen, LTV, retencji, zwrotów i najlepiej działających zapór płatniczych. Wykorzystaj spostrzeżenia oparte na danych, aby ulepszyć swoją strategię finansową. - [State of in-app subscriptions in the US 2023](https://adapty.io/pt/reports/state-of-in-app-subscriptions-2023/): Este relatório de 2023 abrange o estado atual das subscrições in-app, incluindo parâmetros de referência para preços, LTV, retenção, reembolsos e as paywalls com melhor desempenho. Use os insights baseados em dados para melhorar sua estratégia financeira. - [State of in-app subscriptions in the US 2023](https://adapty.io/ru/reports/state-of-in-app-subscriptions-2023/): В этом отчете за 2023 год рассматривается текущее состояние подписок в приложениях, включая показатели цен, LTV, удержания, возвратов и наиболее эффективных платных стен. Используйте полученные данные для улучшения своей финансовой стратегии. - [State of in-app subscriptions in the US 2023](https://adapty.io/es/reports/state-of-in-app-subscriptions-2023/): Este informe de 2023 cubre el estado actual de las suscripciones in-app, incluyendo puntos de referencia para precios, LTV, retención, reembolsos y los mejores paywalls. Utilice los datos para mejorar su estrategia financiera. - [State of in-app subscriptions in the US 2023](https://adapty.io/tr/reports/state-of-in-app-subscriptions-2023/): Bu 2023 raporu, fiyatlar, LTV, elde tutma, geri ödemeler ve en iyi performans gösteren ödeme duvarları için kıyaslamalar dahil olmak üzere uygulama içi aboneliklerin mevcut durumunu kapsamaktadır. Finansal stratejinizi geliştirmek için veriye dayalı içgörüleri kullanın. - [State of in-app subscriptions in the US 2023](https://adapty.io/ua/reports/state-of-in-app-subscriptions-2023/): Цей звіт за 2023 рік охоплює поточний стан підписок у застосунках, включаючи показники цін, LTV, утримання, відшкодування та найефективніші платформи. Використовуйте інформацію, що базується на даних, щоб покращити свою фінансову стратегію. - [State of Android in-app subscriptions 2022](https://adapty.io/zh/reports/state-of-android-in-app-subscriptions-2022/): 2022 年行動應用程式的基準、趨勢與洞察力。 報告以 1.5 億訂閱為基礎。 100M 追蹤使用者、10M 訂閱事件、15 сharts。 - [State of Android in-app subscriptions 2022](https://adapty.io/fr/reports/state-of-android-in-app-subscriptions-2022/): Benchmarks, tendances et perspectives pour les applications mobiles en 2022. Rapport basé sur 150 millions d'abonnements. 100 millions d'utilisateurs suivis, 10 millions d'événements d'abonnement, 15 сharts. - [State of Android in-app subscriptions 2022](https://adapty.io/de/reports/state-of-android-in-app-subscriptions-2022/): Benchmarks, Trends, Erkenntnisse für mobile Apps im Jahr 2022. Der Bericht basiert auf 150 Millionen Abonnements. 100 Mio. verfolgte Nutzer, 10 Mio. Abonnement-Ereignisse, 15 сharts. - [State of iOS in-app subscriptions 2021](https://adapty.io/reports/state-of-ios-in-app-purchases-2021/): Benchmarks, trends, insights for mobile apps in 2021. Report based on 150 million subscriptions. 150M tracked users, 20M subscription events, 18 сharts. - [State of Android in-app subscriptions 2022](https://adapty.io/ja/reports/state-of-android-in-app-subscriptions-2022/): 2022年のモバイルアプリのベンチマーク、トレンド、洞察。 1億5,000万契約に基づくレポート。 1億人の追跡ユーザー、1,000万件のサブスクリプション・イベント、15個のハート。 - [State of Android in-app subscriptions 2022](https://adapty.io/ko/reports/state-of-android-in-app-subscriptions-2022/): 2022년 모바일 앱에 대한 벤치마크, 트렌드, 인사이트. 1억 5천만 건의 구독을 기반으로 한 보고서입니다. 1억 명의 추적 사용자, 1천만 개의 구독 이벤트, 15개의 차트. - [State of Android in-app subscriptions 2022](https://adapty.io/pl/reports/state-of-android-in-app-subscriptions-2022/): Benchmarki, trendy, spostrzeżenia dotyczące aplikacji mobilnych w 2022 roku. Raport oparty na 150 milionach subskrypcji. 100 milionów śledzonych użytkowników, 10 milionów zdarzeń subskrypcji, 15 wykresów. - [State of Android in-app subscriptions 2022](https://adapty.io/reports/state-of-android-in-app-subscriptions-2022/): Benchmarks, trends, insights for mobile apps in 2022. Report based on 150 million subscriptions. 100M tracked users, 10M subscription events, 15 сharts. - [State of Android in-app subscriptions 2022](https://adapty.io/pt/reports/state-of-android-in-app-subscriptions-2022/): Benchmarks, tendências e perspectivas para as aplicações móveis em 2022. Relatório baseado em 150 milhões de subscrições. 100 milhões de utilizadores controlados, 10 milhões de eventos de subscrição, 15 gráficos. - [State of in-app subscriptions in the US 2023](https://adapty.io/reports/state-of-in-app-subscriptions-2023/): This 2023 report covers the current state of in-app subscriptions including benchmarks for prices, LTV, retention, refunds, and the best performing paywalls. Use the data-based insights to improve your financial strategy. - [State of Android in-app subscriptions 2022](https://adapty.io/ru/reports/state-of-android-in-app-subscriptions-2022/): Бенчмарки, тренды, идеи для мобильных приложений в 2022 году. Отчет основан на 150 миллионах подписок. 100 млн отслеживаемых пользователей, 10 млн событий подписки, 15 схартов. - [State of Android in-app subscriptions 2022](https://adapty.io/es/reports/state-of-android-in-app-subscriptions-2022/): Puntos de referencia, tendencias y perspectivas de las aplicaciones móviles en 2022. Informe basado en 150 millones de suscripciones. 100 millones de usuarios rastreados, 10 millones de eventos de suscripción, 15 сharts. - [State of in-app subscriptions 2024](https://adapty.io/reports/state-of-in-app-subscriptions-2024/): Get the most comprehensive overview of the in-app subscription market. Access the latest iOS subscription benchmarks, expert insights, cheat sheets, strategies. - [State of Android in-app subscriptions 2022](https://adapty.io/tr/reports/state-of-android-in-app-subscriptions-2022/): 2022'de mobil uygulamalar için kıyaslamalar, trendler ve içgörüler. Rapor 150 milyon aboneliğe dayanmaktadır. 100 milyon izlenen kullanıcı, 10 milyon abonelik etkinliği, 15 grafik. - [State of Android in-app subscriptions 2022](https://adapty.io/ua/reports/state-of-android-in-app-subscriptions-2022/): Бенчмарки, тренди, інсайти для мобільних додатків у 2022 році. Звіт на основі 150 мільйонів підписок. 100 млн відстежених користувачів, 10 млн подій підписки, 15 графіків. - [State of iOS in-app subscriptions 2021](https://adapty.io/zh/reports/state-of-ios-in-app-purchases-2021/): 2021 年行動應用程式的基準、趨勢與洞察力。 報告以 1.5 億筆訂閱為基礎。 1.5 億追蹤使用者、2,000 萬個訂閱事件、18 сharts。 - [State of iOS in-app subscriptions 2021](https://adapty.io/fr/reports/state-of-ios-in-app-purchases-2021/): Benchmarks, tendances et perspectives pour les applications mobiles en 2021. Rapport basé sur 150 millions d'abonnements. 150 millions d'utilisateurs suivis, 20 millions d'événements d'abonnement, 18 сharts. - [State of iOS in-app subscriptions 2021](https://adapty.io/de/reports/state-of-ios-in-app-purchases-2021/): Benchmarks, Trends, Erkenntnisse für mobile Apps im Jahr 2021. Der Bericht basiert auf 150 Millionen Abonnements. 150 Mio. erfasste Nutzer, 20 Mio. Abonnement-Ereignisse, 18 сharts. - [State of iOS in-app subscriptions 2021](https://adapty.io/ja/reports/state-of-ios-in-app-purchases-2021/): 2021年のモバイルアプリのベンチマーク、トレンド、洞察。 1億5,000万件のサブスクリプションに基づくレポート。 1億5,000万人の追跡ユーザー、2,000万件のサブスクリプション・イベント、18のハート。 - [State of iOS in-app subscriptions 2021](https://adapty.io/ko/reports/state-of-ios-in-app-purchases-2021/): 2021년 모바일 앱에 대한 벤치마크, 트렌드, 인사이트. 1억 5천만 건의 구독을 기반으로 한 보고서입니다. 1억 5천만 명의 추적 사용자, 2천만 건의 구독 이벤트, 18개의 차트. - [State of iOS in-app subscriptions 2021](https://adapty.io/pl/reports/state-of-ios-in-app-purchases-2021/): Benchmarki, trendy, spostrzeżenia dotyczące aplikacji mobilnych w 2021 roku. Raport oparty na 150 milionach subskrypcji. 150 milionów śledzonych użytkowników, 20 milionów zdarzeń subskrypcji, 18 wykresów. - [State of iOS in-app subscriptions 2021](https://adapty.io/pt/reports/state-of-ios-in-app-purchases-2021/): Referências, tendências e perspectivas para as aplicações móveis em 2021. Relatório baseado em 150 milhões de subscrições. 150 milhões de utilizadores seguidos, 20 milhões de eventos de subscrição, 18 gráficos. - [State of iOS in-app subscriptions 2021](https://adapty.io/ru/reports/state-of-ios-in-app-purchases-2021/): Бенчмарки, тренды, идеи для мобильных приложений в 2021 году. Отчет основан на 150 миллионах подписок. 150 млн отслеживаемых пользователей, 20 млн событий подписки, 18 хартов. - [State of iOS in-app subscriptions 2021](https://adapty.io/es/reports/state-of-ios-in-app-purchases-2021/): Puntos de referencia, tendencias y perspectivas de las aplicaciones móviles en 2021. Informe basado en 150 millones de suscripciones. 150 millones de usuarios rastreados, 20 millones de eventos de suscripción, 18 сharts. - [State of iOS in-app subscriptions 2021](https://adapty.io/tr/reports/state-of-ios-in-app-purchases-2021/): 2021'de mobil uygulamalar için kıyaslamalar, trendler ve içgörüler. Rapor 150 milyon aboneliğe dayanmaktadır. 150 milyon izlenen kullanıcı, 20 milyon abonelik etkinliği, 18 harita. - [State of iOS in-app subscriptions 2021](https://adapty.io/ua/reports/state-of-ios-in-app-purchases-2021/): Бенчмарки, тренди, інсайти для мобільних додатків у 2021 році. Звіт на основі 150 мільйонів підписок. 150 млн відстежених користувачів, 20 млн подій підписки, 18 графіків. --- ## SDK - [FlutterFlow](https://adapty.io/zh/sdk/flutterflow/): 透過與 Adapty 整合應用程式內購買,釋放您 FlutterFlow 應用程式的全部潛力。 簡化 IAP,實現收入增長。 - [FlutterFlow](https://adapty.io/fr/sdk/flutterflow/): Libérez tout le potentiel de votre application FlutterFlow en intégrant les achats in-app avec Adapty. Rationalisez les achats in-app et augmentez vos revenus. - [FlutterFlow](https://adapty.io/de/sdk/flutterflow/): Schöpfen Sie das volle Potenzial Ihrer FlutterFlow-App aus, indem Sie In-App-Käufe mit Adapty integrieren. Optimieren Sie IAPs und steigern Sie Ihren Umsatz. - [FlutterFlow](https://adapty.io/ja/sdk/flutterflow/): アプリ内課金をAdaptyと統合することで、FlutterFlowアプリの可能性を最大限に引き出します。 IAPを効率化し、収益を拡大しましょう。 - [FlutterFlow](https://adapty.io/ko/sdk/flutterflow/): 인앱 구매를 어댑티와 통합하여 FlutterFlow 앱의 잠재력을 최대한 활용하세요. IAP를 간소화하고 수익을 증대하세요. - [FlutterFlow](https://adapty.io/pl/sdk/flutterflow/): Uwolnij pełny potencjał swojej aplikacji FlutterFlow, integrując zakupy w aplikacji z Adapty. Usprawnij IAP i zwiększ przychody. - [FlutterFlow](https://adapty.io/pt/sdk/flutterflow/): Liberte todo o potencial da sua aplicação FlutterFlow integrando as compras na aplicação com o Adapty. Simplifique as IAPs e aumente as receitas. - [FlutterFlow](https://adapty.io/ru/sdk/flutterflow/): Раскройте весь потенциал вашего приложения FlutterFlow, интегрировав покупки в приложении с Adapty. Упорядочьте IAP и увеличьте доходы. - [FlutterFlow](https://adapty.io/es/sdk/flutterflow/): Libera todo el potencial de tu aplicación FlutterFlow integrando las compras desde la aplicación con Adapty. Agiliza las compras desde la aplicación y aumenta tus ingresos. - [FlutterFlow](https://adapty.io/tr/sdk/flutterflow/): Uygulama içi satın alımları Adapty ile entegre ederek FlutterFlow uygulamanızın tüm potansiyelini ortaya çıkarın. Gelir artışı için IAP'leri kolaylaştırın. - [FlutterFlow](https://adapty.io/ua/sdk/flutterflow/): Розкрийте весь потенціал вашого додатку FlutterFlow, інтегрувавши внутрішні покупки з Adapty. Оптимізуйте IAP та збільшуйте дохід. - [FlutterFlow](https://adapty.io/sdk/flutterflow/): Unlock the full potential of your FlutterFlow app by integrating in-app purchases with Adapty. Streamline IAPs for and revenue growth. - [iOS](https://adapty.io/es/sdk/ios/): Integra fácilmente las compras in-app en tu aplicación iOS con Adapty SDK. Mejora la experiencia de usuario y monetiza eficazmente con nuestra solución iOS IAP. - [iOS](https://adapty.io/tr/sdk/ios/): Adapty SDK ile uygulama içi satın alımları iOS uygulamanıza kolayca entegre edin. iOS IAP çözümümüzle kullanıcı deneyimini geliştirin ve etkili bir şekilde para kazanın. - [iOS](https://adapty.io/ua/sdk/ios/): Легко інтегруйте внутрішні покупки у свій додаток для iOS за допомогою Adapty SDK. Покращуйте користувацький досвід та ефективно монетизуйте за допомогою нашого рішення для iOS IAP. - [Unity](https://adapty.io/zh/sdk/unity/): 透過整合應用程式內購買,最大化您的 Unity 應用程式的賺錢潛力。 輕鬆實施 IAP,改善使用者體驗並增加收入。 - [Unity](https://adapty.io/fr/sdk/unity/): Maximisez le potentiel de revenus de votre application Unity en intégrant des achats in-app. Mettez en place des IAP sans effort pour améliorer l'expérience de l'utilisateur et augmenter vos revenus. - [Unity](https://adapty.io/de/sdk/unity/): Maximieren Sie das Ertragspotenzial Ihrer Unity-App durch die Integration von In-App-Käufen. Implementieren Sie mühelos IAPs für ein verbessertes Nutzererlebnis und einen Umsatzschub. - [Unity](https://adapty.io/ja/sdk/unity/): アプリ内課金を統合して、Unityアプリの収益ポテンシャルを最大化しましょう。 ユーザーエクスペリエンスの向上と収益アップのためにIAPを簡単に実装できます。 - [Unity](https://adapty.io/ko/sdk/unity/): 인앱 구매를 통합하여 Unity 앱의 수익 잠재력을 극대화하세요. IAP를 손쉽게 구현하여 사용자 경험을 개선하고 수익을 높일 수 있습니다. - [Unity](https://adapty.io/pt/sdk/unity/): Maximize o potencial de ganhos da sua aplicação Unity integrando compras na aplicação. Implemente IAPs sem esforço para uma experiência de utilizador melhorada e um aumento de receitas. - [Unity](https://adapty.io/pl/sdk/unity/): Zmaksymalizuj potencjał zarobkowy swojej aplikacji Unity, integrując zakupy w aplikacji. Bez wysiłku wdrażaj IAP, aby poprawić wrażenia użytkowników i zwiększyć przychody. - [Unity](https://adapty.io/ru/sdk/unity/): Максимизируйте потенциал заработка вашего приложения Unity, интегрировав покупки в приложении. Легко внедряйте IAP для улучшения пользовательского опыта и повышения доходов. - [Unity](https://adapty.io/es/sdk/unity/): Maximice el potencial de ingresos de su aplicación Unity integrando compras dentro de la aplicación. Implementa las IAP sin esfuerzo para mejorar la experiencia de usuario y aumentar los ingresos. - [Unity](https://adapty.io/tr/sdk/unity/): Uygulama içi satın alımları entegre ederek Unity uygulamanızın kazanç potansiyelini en üst düzeye çıkarın. Gelişmiş bir kullanıcı deneyimi ve gelir artışı için IAP'leri zahmetsizce uygulayın. - [Unity](https://adapty.io/ua/sdk/unity/): Максимізуйте потенціал заробітку вашого додатку Unity, інтегрувавши внутрішні покупки. Легко впроваджуйте IAP для покращення користувацького досвіду та збільшення доходів. - [Web](https://adapty.io/zh/sdk/web/): 使用我們的應用程式內購買 SDK,將網路購物與您的 iOS 或 Android 應用程式同步。 提升跨平台的使用者體驗,並增加您應用程式的收入。 - [Web](https://adapty.io/fr/sdk/web/): Synchronisez les achats sur le web avec votre application iOS ou Android à l'aide de notre SDK d'achat in-app. Améliorez l'expérience utilisateur sur toutes les plateformes et augmentez le chiffre d'affaires de votre application. - [Web](https://adapty.io/de/sdk/web/): Synchronisieren Sie Webkäufe mit Ihrer iOS- oder Android-App mithilfe unseres In-App Purchase SDK. Verbessern Sie das Nutzererlebnis auf allen Plattformen und steigern Sie den Umsatz Ihrer App. - [Web](https://adapty.io/ja/sdk/web/): 当社のアプリ内課金SDKを使用して、iOSまたはAndroidアプリとWeb購入を同期します。 プラットフォーム間のユーザーエクスペリエンスを向上させ、アプリの収益を高めましょう。 - [Web](https://adapty.io/ko/sdk/web/): 인앱 구매 SDK를 사용하여 웹 구매를 iOS 또는 Android 앱과 동기화하세요. 여러 플랫폼에서 사용자 경험을 개선하고 앱의 매출을 높일 수 있습니다. - [Web](https://adapty.io/pl/sdk/web/): Synchronizuj zakupy internetowe z aplikacją na iOS lub Androida za pomocą naszego zestawu SDK do zakupów w aplikacji. Popraw komfort użytkowania na różnych platformach i zwiększ przychody swojej aplikacji. - [Web](https://adapty.io/pt/sdk/web/): Sincronize as compras na Web com a sua aplicação iOS ou Android utilizando o nosso SDK de compras na aplicação. Melhore a experiência do utilizador em todas as plataformas e aumente as receitas da sua aplicação. - [Web](https://adapty.io/ru/sdk/web/): Синхронизируйте веб-покупки с вашим приложением для iOS или Android с помощью нашего SDK для покупок в приложении. Повысьте удобство работы с приложениями на разных платформах и увеличьте доход вашего приложения. - [Web](https://adapty.io/es/sdk/web/): Sincroniza las compras web con tu aplicación iOS o Android mediante nuestro SDK de compras desde la aplicación. Mejora la experiencia de usuario en todas las plataformas y aumenta los ingresos de tu aplicación. - [Web](https://adapty.io/tr/sdk/web/): Uygulama içi Satın Alma SDK'mızı kullanarak web satın alımlarını iOS veya Android uygulamanızla senkronize edin. Platformlar arasında kullanıcı deneyimini geliştirin ve uygulamanızın gelirini artırın. - [Web](https://adapty.io/ua/sdk/web/): Синхронізуйте інтернет-покупки з вашим додатком для iOS або Android за допомогою нашого вбудованого в додаток Purchase SDK. Покращуйте користувацький досвід на різних платформах та збільшуйте прибуток вашого додатку. - [Web](https://adapty.io/sdk/web/): Sync web purchases with your iOS or Android app using our in-app Purchase SDK. Enhance user experience across platforms and boost your app's revenue. - [Unity](https://adapty.io/sdk/unity/): Maximize your Unity app's earning potential by integrating in-app purchases. Effortlessly implement IAPs for an improved user experience and revenue boost. - [React Native](https://adapty.io/sdk/react-native/): Enhance your React Native app with seamless in-app purchase integration. Improve user experience and increase revenue with our easy-to-implement solution. - [Android](https://adapty.io/sdk/android/): Boost your Android app's revenue by integrating in-app purchases with Adapty SDK. Simplify IAP integration and provide a smooth user experience. - [iOS](https://adapty.io/sdk/ios/): Easily integrate in-app purchases into your iOS app with Adapty SDK. Enhance user experience and monetize effectively with our iOS IAP solution. - [Flutter](https://adapty.io/sdk/flutter/): Unlock the full potential of your Flutter app by integrating in-app purchases with Adapty SDK. Streamline IAPs for enhanced user engagement and revenue growth. - [Android](https://adapty.io/zh/sdk/android/): 透過 Adapty SDK 整合應用程式內購買功能,提升您 Android 應用程式的收益。 簡化 IAP 整合,提供流暢的使用者體驗。 - [Android](https://adapty.io/fr/sdk/android/): Augmentez les revenus de votre application Android en intégrant les achats in-app avec Adapty SDK. Simplifiez l'intégration des IAP et offrez une expérience utilisateur fluide. - [Android](https://adapty.io/de/sdk/android/): Steigern Sie den Umsatz Ihrer Android-App durch die Integration von In-App-Käufen mit Adapty SDK. Vereinfachen Sie die IAP-Integration und sorgen Sie für ein reibungsloses Nutzererlebnis. - [Android](https://adapty.io/ja/sdk/android/): Adapty SDKでアプリ内課金を統合し、Androidアプリの収益を高めましょう。 IAPの統合を簡素化し、スムーズなユーザー体験を提供します。 - [Android](https://adapty.io/ko/sdk/android/): 인앱 구매를 어댑티 SDK와 통합하여 안드로이드 앱의 수익을 증대하세요. IAP 통합을 간소화하고 원활한 사용자 경험을 제공하세요. - [Android](https://adapty.io/pl/sdk/android/): Zwiększ przychody swojej aplikacji na Androida, integrując zakupy w aplikacji z Adapty SDK. Uprość integrację IAP i zapewnij płynną obsługę. - [Android](https://adapty.io/pt/sdk/android/): Aumente a receita do seu aplicativo Android integrando compras no aplicativo com o Adapty SDK. Simplifique a integração de IAP e proporcione uma experiência de utilizador suave. - [Android](https://adapty.io/ru/sdk/android/): Повысьте доход вашего Android-приложения, интегрировав покупки в приложении с помощью Adapty SDK. Упростите интеграцию IAP и обеспечьте плавный пользовательский опыт. - [Android](https://adapty.io/es/sdk/android/): Aumenta los ingresos de tu aplicación Android integrando las compras desde la aplicación con Adapty SDK. Simplifica la integración de IAP y proporciona una experiencia de usuario fluida. - [Android](https://adapty.io/tr/sdk/android/): Adapty SDK ile uygulama içi satın alımları entegre ederek Android uygulamanızın gelirini artırın. IAP entegrasyonunu basitleştirin ve sorunsuz bir kullanıcı deneyimi sağlayın. - [Android](https://adapty.io/ua/sdk/android/): Збільште дохід вашого додатку для Android, інтегрувавши внутрішні покупки за допомогою Adapty SDK. Спростіть інтеграцію IAP та забезпечте безперебійний користувацький досвід. - [Flutter](https://adapty.io/zh/sdk/flutter/): 通过与Adapty SDK集成,释放您的Flutter应用的全部潜力。简化IAP以增强用户参与度和收入增长。 - [Flutter](https://adapty.io/fr/sdk/flutter/): Libérez tout le potentiel de votre application Flutter en intégrant les achats in-app avec le SDK Adapty. Rationalisez les achats in-app pour améliorer l'engagement des utilisateurs et la croissance des revenus. - [Flutter](https://adapty.io/ja/sdk/flutter/): Adapty SDKを統合することで、Flutterアプリの潜在能力を最大限に引き出してください。ユーザーエンゲージメントと収益成長を向上させるためにIAPを効率化します。 - [Flutter](https://adapty.io/de/sdk/flutter/): Nutzen Sie das volle Potenzial Ihrer Flutter-App, indem Sie In-App-Käufe mit dem Adapty SDK integrieren. Optimieren Sie IAPs für ein besseres Benutzerengagement und Umsatzwachstum. - [Flutter](https://adapty.io/ko/sdk/flutter/): Adapty SDK와 통합하여 Flutter 앱의 전체 잠재력을 발휘하세요. 향상된 사용자 참여와 수익 성장을 위해 IAP를 간소화하세요. - [Flutter](https://adapty.io/pl/sdk/flutter/): Odblokuj pełny potencjał swojej aplikacji Flutter, integrując zakupy wewnętrzne z SDK Adapty. Uprość zakupy, aby zwiększyć zaangażowanie użytkowników i wzrost przychodów. - [Flutter](https://adapty.io/pt/sdk/flutter/): Desbloqueie todo o potencial do seu aplicativo Flutter integrando compras in-app com o SDK Adapty. Agilize as compras in-app para melhorar o engajamento do usuário e o crescimento da receita. - [Flutter](https://adapty.io/ru/sdk/flutter/): Раскройте полный потенциал Вашего Flutter приложения, интегрировав покупки в приложении с помощью SDK Adapty. Упрощайте IAP для повышения вовлеченности пользователей и роста доходов. - [Flutter](https://adapty.io/es/sdk/flutter/): Desbloquea todo el potencial de tu aplicación Flutter integrando compras en la aplicación con el SDK de Adapty. Optimiza los IAPs para mejorar la participación de los usuarios y el crecimiento de los ingresos. - [Flutter](https://adapty.io/tr/sdk/flutter/): Adapty SDK'sı ile uygulamanızda uygulama içi satın almaları entegre ederek Flutter uygulamanızın tüm potansiyelini açığa çıkarın. Kullanıcı katılımını ve gelir büyümesini artırmak için IAP'leri kolaylaştırın. - [Flutter](https://adapty.io/ua/sdk/flutter/): Розкрийте весь потенціал свого Flutter застосунку, інтегрувавши покупки в застосунку з Adapty SDK. Оптимізуйте IAP для покращення залученості користувачів та зростання доходів. - [React Native](https://adapty.io/zh/sdk/react-native/): 通过无缝的应用内购买集成增强您的 React Native 应用。使用我们易于实施的解决方案改善用户体验并增加收入。 - [React Native](https://adapty.io/fr/sdk/react-native/): Améliorez votre application React Native avec une intégration des achats in-app fluide. Améliorez l'expérience utilisateur et augmentez les revenus avec notre solution facile à mettre en œuvre. - [React Native](https://adapty.io/de/sdk/react-native/): Verbessern Sie Ihre React Native-App mit nahtloser Integration von In-App-Käufen. Verbessern Sie die Benutzererfahrung und steigern Sie den Umsatz mit unserer einfach umsetzbaren Lösung. - [React Native](https://adapty.io/ja/sdk/react-native/): シームレスなアプリ内購入統合でReact Nativeアプリを強化しましょう。ユーザーエクスペリエンスを向上させ、実装が簡単なソリューションで収益を増やします。 - [React Native](https://adapty.io/ko/sdk/react-native/): 리액트 네이티브 앱에 원활한 인앱 구매 통합을 통해 사용자 경험을 향상하고 수익을 증가시키세요. 간편한 솔루션으로 쉽게 구현할 수 있습니다. - [React Native](https://adapty.io/pl/sdk/react-native/): Ulepsz swoją aplikację React Native dzięki płynnej integracji zakupów w aplikacji. Popraw doświadczenia użytkowników i zwiększ przychody dzięki naszemu łatwemu w implementacji rozwiązaniu. - [React Native](https://adapty.io/pt/sdk/react-native/): Melhore seu app React Native com uma integração de compra in-app sem costura. Melhore a experiência do usuário e aumente a receita com nossa solução fácil de implementar. - [React Native](https://adapty.io/ru/sdk/react-native/): Улучшите ваше приложение на React Native с помощью бесшовной интеграции покупок в приложении. Улучшите пользовательский опыт и увеличьте доход с нашим простым в реализации решением. - [React Native](https://adapty.io/es/sdk/react-native/): Mejora tu aplicación de React Native con una integración fluida de compras in-app. Mejora la experiencia del usuario y aumenta los ingresos con nuestra solución fácil de implementar. - [React Native](https://adapty.io/tr/sdk/react-native/): Uygulamanızın kullanıcı deneyimini artırın ve gelirinizi bizim kolay uygulanabilir çözümümüzle artırın. - [React Native](https://adapty.io/ua/sdk/react-native/): Покращте свій застосунок на React Native з безшовною інтеграцією покупок в застосунку. Поліпшіть досвід користувача та збільшіть дохід з нашим простим у впровадженні рішенням. - [iOS](https://adapty.io/zh/sdk/ios/): 使用 Adapty SDK 將應用程式內購買輕鬆整合至您的 iOS 應用程式。 使用我們的 iOS IAP 解決方案,提升使用者體驗並有效地獲利。 - [iOS](https://adapty.io/fr/sdk/ios/): Intégrez facilement les achats in-app dans votre application iOS avec Adapty SDK. Améliorez l'expérience utilisateur et monétisez efficacement avec notre solution iOS IAP. - [iOS](https://adapty.io/de/sdk/ios/): Integrieren Sie In-App-Käufe in Ihre iOS-App mit Adapty SDK. Verbessern Sie das Nutzererlebnis und monetarisieren Sie effektiv mit unserer iOS IAP-Lösung. - [iOS](https://adapty.io/ja/sdk/ios/): Adapty SDKを使えば、iOSアプリにアプリ内課金を簡単に統合できます。 当社のiOS IAPソリューションで、ユーザーエクスペリエンスを向上させ、効果的に収益化しましょう。 - [iOS](https://adapty.io/ko/sdk/ios/): 애드앱 SDK로 인앱 구매를 iOS 앱에 손쉽게 통합하세요. iOS IAP 솔루션으로 사용자 경험을 개선하고 효과적으로 수익을 창출하세요. - [iOS](https://adapty.io/pl/sdk/ios/): Łatwo zintegruj zakupy w aplikacji z systemem iOS za pomocą Adapty SDK. Zwiększ komfort użytkowania i skutecznie zarabiaj dzięki naszemu rozwiązaniu iOS IAP. - [iOS](https://adapty.io/pt/sdk/ios/): Integre facilmente as compras na aplicação na sua aplicação iOS com o Adapty SDK. Melhore a experiência do utilizador e monetize eficazmente com a nossa solução IAP para iOS. - [iOS](https://adapty.io/ru/sdk/ios/): Легко интегрируйте покупки в приложении для iOS с помощью Adapty SDK. Улучшите пользовательский опыт и эффективно монетизируйте с помощью нашего решения для iOS IAP. --- ## Webinars - [Авансы, факторинг и RBF: что выбрать для роста мобильного приложения](https://adapty.io/webinars/funding-tools/): Откройте для себя практические инструменты финансирования развития приложений в 2025 году - [Boost my ASO: Live Teardown](https://adapty.io/webinars/live-aso-teardown-boost-visibility-installs/): Get your ASO roasted live and learn what’s holding you back with Replug’s experts. - [How to use the 2025 data to grow your app](https://adapty.io/webinars/2025-data/): Discover what’s really driving growth in 2025. - [From 0 to $10K/Month: Onboardings & Paywalls Review](https://adapty.io/webinars/onboardings-paywalls-review/): Join a live teardown with ScreensDesign and Adapty. Get tips, spot UX mistakes, and see how AI boosts monetization. - [CapCut Hacks: A Step-by-Step Guide to Engaging Video Creatives](https://adapty.io/webinars/capcut-for-mobile-apps/): Discover how to scale your mobile video content using CapCut fast, simple, and effective. - [2025’te Search Ads Stratejileri](https://adapty.io/webinars/search-ads-2025/): Join us to explore fresh Search Ads tactics for 2025 and learn how to boost your app's growth - [The Psychology of Conversion: From Ad to Payment](https://adapty.io/webinars/the-psychology-of-conversion-from-ad-to-payment/): Dive deep into the psychological triggers that drive user behavior at every stage of the funnel — from the first... - [Креативная прожарка: лайв-разбор креативов мобильных приложений](https://adapty.io/webinars/roasting-creatives-of-mobile-apps/): Пришлите свой креатив и получите лайв-разбор от креативного продюсера и growth эксперта! - [Why one-size-fits-all doesn’t work: paywall & onboarding strategies for Japan](https://adapty.io/webinars/paywall-and-onboarding-strategies-for-japan/): Join our webinar to get step-by-step examples of what’s working in Japan right now, straight from the apps that are... - [AI uygulamalarında son trendler ve fırsatlar](https://adapty.io/webinars/ai-uygulamalarinda-son-trendler-ve-firsatlar/): Bu canlı yayında konuğumuz Each AI ekibinden Co-founder & CEO Eftal Yurtseven ile mobil AI uygulamalarındaki son trendleri konuşacağız. - [Why Korean apps do onboarding & paywalls differently — and what you can learn](https://adapty.io/webinars/why-korean-apps-do-onboarding-and-paywalls-differently/): Join our webinar to uncover why Korean apps ace onboarding & paywalls — and how you can adapt their winning... - [Pricing strategies for scaling subscription mobile apps](https://adapty.io/webinars/pricing-strategies-for-mobile-app-subscriptions-scaling/): Join our webinar with Patrick Falzon, CEO of The App Shop to turn your pricing strategy into a powerful engine... - [Getting started with Adapty](https://adapty.io/webinars/getting-started-with-adapty/): Join our live Q&A session to learn how to grow your app with Adapty - [Avoiding Store rejections: key compliance tips](https://adapty.io/webinars/avoiding-store-rejections/): Learn how to keep your app compliant with App Store and Google Play guidelines, avoid rejections, and prevent costly suspensions with expert tips! - [3 proven tips to increase paywall conversion fast](https://adapty.io/webinars/increase-paywall-conversion-en/): Join us for a laid-back, practical webinar where we’ll share simple tips you can apply right away to boost conversions without all the fluff. - [3 способа повысить конверсию пейволла](https://adapty.io/webinars/increase-paywall-conversion-ru/): Поделимся простыми, но действенными советами по повышению конверсий. - [Paywall dönüşümlerinizi arttıracak kanıtlanmış 3 ipucu](https://adapty.io/webinars/increase-paywall-conversion-tr/): Dönüşümlerinizi arttırmanıza yardımcı olacak ve kolayca uygulayabileceğiniz pratik ipuçlarını paylaşacağımız webinarda bize katılın. - [Mobil uygulamalar için TikTok Marketing](https://adapty.io/webinars/mobil-uygulamalar-icin-tiktok-marketing/): Mars Studios ekibinden Growth Marketing Manager Eylül İyison ve CEO Destan Keskinkılıç'ın yorumlarıyla TikTok reklamcılığının tüm detaylarını konuşacağımız özel webinarımıza... - [Workshop: Boost my paywall](https://adapty.io/webinars/workshop-boost-my-paywall/): Submit your app's paywalls for a live review in our exclusive interactive session. We'll break down paywalls and how to optimise them for maximum conversions. - [Maximize app revenue by avoiding marketing mistakes](https://adapty.io/webinars/maximize-app-revenue-by-avoiding-marketing-mistakes/): Join us on the webinar and learn how to maximize app revenue by avoiding marketing mistakes with Michal Synowiec from... - [Bireysel Mobil Geliştirici Olarak Gelir Elde Etme](https://adapty.io/webinars/monetization-as-an-indie-developer/): Bu canlı yayında konuğumuz Aysel Aydın ile bireysel geliştirici olma serüvenini konuşacağız. Play Store'da yayınladığı uygulamalarla gelir elde etme hikayesini... - [State of in-app subscriptions 2024](https://adapty.io/webinars/state-of-in-app-subscriptions-2024-webinar/): Sektördeki en kapsamlı abonelik raporunu canlı yayında uzman konuklarımızla değerlendirip, yorumluyoruz. - [Scaling subscriptions with the power of ASA & ASO](https://adapty.io/webinars/scaling-subscriptions-with-the-power-of-asa-aso/): Are you ready to skyrocket your app's subscription revenue? - [Yazılım şirketleri için vergi ve teşvikler](https://adapty.io/webinars/yazilim-sirketleri-icin-vergi-ve-tesvikler/): Yazılım şirketlerinin vergiler konusunda bilmesi gereken tüm detayları ve en çok sorulan soruların cevaplarını öğrenmek için bu canlı yayını kaçırmayın. - [App Store Pricing Updates: 6 Growth tips from Experts](https://adapty.io/webinars/app-store-pricing-updates-6-growth-tips-from-experts/): Kickstart 2024 well-prepared for upcoming updates! - [SubHub Community Meetup #1](https://adapty.io/webinars/subhub-community-meetup-1/): SubHub, Türkiye'nin en büyük mobil uygulama girişimci topluluğu, her hafta canlı yayında sektördeki gelişmeleri konuşacak. - [Apple Search Ads artık Türkiye’de: tüm bilmeniz gerekenler](https://adapty.io/webinars/apple-search-ads-now-in-turkiye-all-you-need-to-know/): Apple Search Ads 20 ülke ile birlikte sonunda Türkiye'de de hizmete girdi. Reklam kanalları arasında en yüksek dönüşüm yüzdelerinden birine... - [5 Strategies for Successful Web-to-App Funnels](https://adapty.io/webinars/5-strategies-for-successful-web-to-app-funnels/): Web-to-App funnels are revolutionizing mobile app revenue growth, helping businesses overcome the limitations of app stores. However, launching a Web-to-App... - [Yazılım şirketlerinde vergi ve teşvikler](https://adapty.io/webinars/yazilim-sirketlerinde-vergi-ve-tesvikler/): Son dönemde Maliye Bakanlığı'nın açıkladığı %80 vergi istisnası ve mobil uygulama geliştiren şirketlerin vergileri hakkında Evren Özmen ile canlı yayında... - [How to run a Holiday sale for your subscription app](https://adapty.io/webinars/high-season-hacks/): The holiday season is huge for subscription apps. Whether it’s Halloween, Black Friday, Christmas, or New Year’s, some apps see... - [Adapty Deep Dive](https://adapty.io/webinars/adapty-deep-dive/): Join us for an exclusive session where we take you inside Adapty, showcasing how our tools can boost your app’s... - [ASO and ASA: how to create the perfect synergy](https://adapty.io/webinars/aso-and-asa-how-to-create-the-perfect-synergy/): In today’s competitive app market, simply launching your app isn’t enough. You need the perfect blend of App Store Optimization... - [Panel Discussion "Mobile Subscriptions in 2023"](https://adapty.io/webinars/discussion-panel-mobile-subscriptions-in-2023/): Our panel, including Max from GrowthMads, Artem from UnionApps, and Altai from DiveoMedia, will discuss market challenges and adaptation, paywall... - [Yazılım şirketleri için devlet teşviği nasıl alınır?](https://adapty.io/webinars/yazilim-sirketleri-icin-devlet-tesvigi-nasil-alinir/): Şirketiniz için devlet teşviğine başvurmayı planlıyorsanız bu webinara mutlaka katılmalısınız! - [State of in-app subscriptions 2024: what every app needs to know](https://adapty.io/webinars/state-of-in-app-subscriptions-2024-en/): Join us for an exclusive webinar designed for app owners, marketing experts, and growth managers looking to stay ahead of... --- # # Detailed Content ## Pages Fill the form above for the result. Copy receipt Fill the form above for the result. --- Fill the form above for the result. Copy receiptFill the form above for the result. --- Fill the form above for the result. Copy receiptFill the form above for the result. --- Fill the form above for the result. Copy receiptFill the form above for the result. --- Wypełnij powyższy formularz, aby uzyskać wynik. Skopiować Wypełnij powyższy formularz, aby uzyskać wynik. --- Fill the form above for the result. Copy receiptFill the form above for the result. --- Заполните форму выше для получения результата. Скопировать Заполните форму выше для получения результата. --- Complete el formulario de arriba para obtener el resultado. Copia del reciboComplete el formulario de arriba para obtener el resultado. --- Fill the form above for the result. Copy receiptFill the form above for the result. --- Заповніть форму вище для отримання результату. СкопіюватиЗаповніть форму вище для отримання результату. --- Fill the form above for the result. Copy receiptFill the form above for the result. --- Sonuç için yukarıdaki formu doldurun. Makbuzu kopyalaSonuç için yukarıdaki formu doldurun. --- Focus on interesting development — your product. Delegate the boring infrastructure to us. . activate // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID") Swift . getPaywall // Use Locale. preferredLanguages to find out // which languages the user prefers using let locale = Locale. current. identifier Adapty. getPaywall("YOUR_PAYWALL_ID", locale: locale) { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } } Swift . makePurchase // Your app's code do { let purchaseResult = try await Adapty. makePurchase(product: product) switch purchaseResult { case . userCancelled: // handle the user cancelled purchase case . pending: // handle the pending purchase case let . success(profile, transaction): if profile. accessLevels? . isActive ? ? false { // successful purchase } } } catch { // handle the error }Swift . getProfile // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } } Swift . restorePurchases // Your app's code do { let profile = try await Adapty. restorePurchases if profile. accessLevels? . isActive ? ? false { // successful access restore } } catch { // handle the error } Swift HTML Code for All Functions // Your app's code import Adapty   Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID")                           // Use Locale. preferredLanguages to find out // which languages the user prefers using let locale = Locale. current. identifier   Adapty. getPaywall("YOUR_PAYWALL_ID", locale: locale) { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } }           // Your app's code do { let purchaseResult = try await Adapty. makePurchase(product: product)   switch purchaseResult { case . userCancelled: // handle the user cancelled purchase case . pending: // handle the pending purchase case let . success(profile, transaction): if profile. accessLevels? . isActive ? ? false { // successful purchase } } } catch { // handle the error } // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } }                       // Your app's code do { let profile = try await Adapty. restorePurchases if profile. accessLevels? . isActive ? ? false { // successful access restore } } catch { // handle the error }                 --- 專注於有趣的開發 - 您的產品。將無聊的基礎架構交給我們。 . activate // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID") Swift . getPaywall // Use Locale. preferredLanguages to find out // which languages the user prefers using let locale = Locale. current. identifier Adapty. getPaywall("YOUR_PAYWALL_ID", locale: locale) { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } } Swift . makePurchase // Your app's code do { let purchaseResult = try await Adapty. makePurchase(product: product) switch purchaseResult { case . userCancelled: // handle the user cancelled purchase case . pending: // handle the pending purchase case let . success(profile, transaction): if profile. accessLevels? . isActive ? ? false { // successful purchase } } } catch { // handle the error } Swift . getProfile // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } } Swift . restorePurchases // Your app's code do { let profile = try await Adapty. restorePurchases if profile. accessLevels? . isActive ? ? false { // successful access restore } } catch { // handle the error } Swift 所有功能的HTML代码 // Your app's code import Adapty   Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID")                           // Use Locale. preferredLanguages to find out // which languages the user prefers using let locale = Locale. current. identifier   Adapty. getPaywall("YOUR_PAYWALL_ID", locale: locale) { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } }           // Your app's code do { let purchaseResult = try await Adapty. makePurchase(product: product)   switch purchaseResult { case . userCancelled: // handle the user cancelled purchase case . pending: // handle the pending purchase case let . success(profile, transaction): if profile. accessLevels? . isActive ? ? false { // successful purchase } } } catch { // handle the error } // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } }                       // Your app's code do { let profile = try await Adapty. restorePurchases if profile. accessLevels? . isActive ? ? false { // successful access restore } } catch { // handle the error }                 --- Concentrez-vous sur le développement intéressant - votre produit. Déléguez-nous l'infrastructure ennuyeuse. . activate // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID") Swift . getPaywall // Use Locale. preferredLanguages to find out // which languages the user prefers using let locale = Locale. current. identifier Adapty. getPaywall("YOUR_PAYWALL_ID", locale: locale) { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } } Swift . makePurchase // Your app's code do { let purchaseResult = try await Adapty. makePurchase(product: product) switch purchaseResult { case . userCancelled: // handle the user cancelled purchase case . pending: // handle the pending purchase case let . success(profile, transaction): if profile. accessLevels? . isActive ? ? false { // successful purchase } } } catch { // handle the error } Swift . getProfile // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } } Swift . restorePurchases // Your app's code do { let profile = try await Adapty. restorePurchases if profile. accessLevels? . isActive ? ? false { // successful access restore } } catch { // handle the error } Swift Code HTML pour toutes les fonctions // Your app's code import Adapty   Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID")                           // Use Locale. preferredLanguages to find out // which languages the user prefers using let locale = Locale. current. identifier   Adapty. getPaywall("YOUR_PAYWALL_ID", locale: locale) { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } }           // Your app's code do { let purchaseResult = try await Adapty. makePurchase(product: product)   switch purchaseResult { case . userCancelled: // handle the user cancelled purchase case . pending: // handle the pending purchase case let . success(profile, transaction): if profile. accessLevels? . isActive ? ? false { // successful purchase } } } catch { // handle the error } // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } }                       // Your app's code do { let profile = try await Adapty. restorePurchases if profile. accessLevels? . isActive ? ? false { // successful access restore } } catch { // handle the error }                 --- Konzentrieren Sie sich auf die interessante Entwicklung - Ihr Produkt. Delegieren Sie die langweilige Infrastruktur an uns. . activate // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID") Swift . getPaywall // Use Locale. preferredLanguages to find out // which languages the user prefers using let locale = Locale. current. identifier Adapty. getPaywall("YOUR_PAYWALL_ID", locale: locale) { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } } Swift . makePurchase // Your app's code do { let purchaseResult = try await Adapty. makePurchase(product: product) switch purchaseResult { case . userCancelled: // handle the user cancelled purchase case . pending: // handle the pending purchase case let . success(profile, transaction): if profile. accessLevels? . isActive ? ? false { // successful purchase } } } catch { // handle the error } Swift . getProfile // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } } Swift . restorePurchases // Your app's code do { let profile = try await Adapty. restorePurchases if profile. accessLevels? . isActive ? ? false { // successful access restore } } catch { // handle the error } Swift HTML-Code für alle Funktionen // Your app's code import Adapty   Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID")                           // Use Locale. preferredLanguages to find out // which languages the user prefers using let locale = Locale. current. identifier   Adapty. getPaywall("YOUR_PAYWALL_ID", locale: locale) { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } }           // Your app's code do { let purchaseResult = try await Adapty. makePurchase(product: product)   switch purchaseResult { case . userCancelled: // handle the user cancelled purchase case . pending: // handle the pending purchase case let . success(profile, transaction): if profile. accessLevels? . isActive ? ? false { // successful purchase } } } catch { // handle the error } // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } }                       // Your app's code do { let profile = try await Adapty. restorePurchases if profile. accessLevels? . isActive ? ? false { // successful access restore } } catch { // handle the error }                 --- あなたの製品という興味深い開発に集中してください。退屈なインフラは私たちに任せてください。 . activate // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID") Swift . getPaywall // Use Locale. preferredLanguages to find out // which languages the user prefers using let locale = Locale. current. identifier Adapty. getPaywall("YOUR_PAYWALL_ID", locale: locale) { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } } Swift . makePurchase // Your app's code do { let purchaseResult = try await Adapty. makePurchase(product: product) switch purchaseResult { case . userCancelled: // handle the user cancelled purchase case . pending: // handle the pending purchase case let . success(profile, transaction): if profile. accessLevels? . isActive ? ? false { // successful purchase } } } catch { // handle the error } Swift . getProfile // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } } Swift . restorePurchases // Your app's code do { let profile = try await Adapty. restorePurchases if profile. accessLevels? . isActive ? ? false { // successful access restore } } catch { // handle the error } Swift すべての機能のHTMLコード // Your app's code import Adapty   Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID")                           // Use Locale. preferredLanguages to find out // which languages the user prefers using let locale = Locale. current. identifier   Adapty. getPaywall("YOUR_PAYWALL_ID", locale: locale) { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } }           // Your app's code do { let purchaseResult = try await Adapty. makePurchase(product: product)   switch purchaseResult { case . userCancelled: // handle the user cancelled purchase case . pending: // handle the pending purchase case let . success(profile, transaction): if profile. accessLevels? . isActive ? ? false { // successful purchase } } } catch { // handle the error } // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } }                       // Your app's code do { let profile = try await Adapty. restorePurchases if profile. accessLevels? . isActive ? ? false { // successful access restore } } catch { // handle the error }                 --- 흥미로운 개발, 즉 제품에 집중하세요. 지루한 인프라는 저희에게 맡기세요. . activate // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID") Swift . getPaywall // Use Locale. preferredLanguages to find out // which languages the user prefers using let locale = Locale. current. identifier Adapty. getPaywall("YOUR_PAYWALL_ID", locale: locale) { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } } Swift . makePurchase // Your app's code do { let purchaseResult = try await Adapty. makePurchase(product: product) switch purchaseResult { case . userCancelled: // handle the user cancelled purchase case . pending: // handle the pending purchase case let . success(profile, transaction): if profile. accessLevels? . isActive ? ? false { // successful purchase } } } catch { // handle the error } Swift . getProfile // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } } Swift . restorePurchases // Your app's code do { let profile = try await Adapty. restorePurchases if profile. accessLevels? . isActive ? ? false { // successful access restore } } catch { // handle the error } Swift 모든 기능을 위한 HTML 코드 // Your app's code import Adapty   Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID")                           // Use Locale. preferredLanguages to find out // which languages the user prefers using let locale = Locale. current. identifier   Adapty. getPaywall("YOUR_PAYWALL_ID", locale: locale) { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } }           // Your app's code do { let purchaseResult = try await Adapty. makePurchase(product: product)   switch purchaseResult { case . userCancelled: // handle the user cancelled purchase case . pending: // handle the pending purchase case let . success(profile, transaction): if profile. accessLevels? . isActive ? ? false { // successful purchase } } } catch { // handle the error } // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } }                       // Your app's code do { let profile = try await Adapty. restorePurchases if profile. accessLevels? . isActive ? ? false { // successful access restore } } catch { // handle the error }                 --- Skoncentruj się na interesującym rozwoju - swoim produkcie. Nudną infrastrukturę przekaż nam. . activate // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID") Swift . getPaywall // Use Locale. preferredLanguages to find out // which languages the user prefers using let locale = Locale. current. identifier Adapty. getPaywall("YOUR_PAYWALL_ID", locale: locale) { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } } Swift . makePurchase // Your app's code do { let purchaseResult = try await Adapty. makePurchase(product: product) switch purchaseResult { case . userCancelled: // handle the user cancelled purchase case . pending: // handle the pending purchase case let . success(profile, transaction): if profile. accessLevels? . isActive ? ? false { // successful purchase } } } catch { // handle the error } Swift . getProfile // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } } Swift . restorePurchases // Your app's code do { let profile = try await Adapty. restorePurchases if profile. accessLevels? . isActive ? ? false { // successful access restore } } catch { // handle the error } Swift Kod HTML dla wszystkich funkcji // Your app's code import Adapty   Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID")                           // Use Locale. preferredLanguages to find out // which languages the user prefers using let locale = Locale. current. identifier   Adapty. getPaywall("YOUR_PAYWALL_ID", locale: locale) { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } }           // Your app's code do { let purchaseResult = try await Adapty. makePurchase(product: product)   switch purchaseResult { case . userCancelled: // handle the user cancelled purchase case . pending: // handle the pending purchase case let . success(profile, transaction): if profile. accessLevels? . isActive ? ? false { // successful purchase } } } catch { // handle the error } // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } }                       // Your app's code do { let profile = try await Adapty. restorePurchases if profile. accessLevels? . isActive ? ? false { // successful access restore } } catch { // handle the error }                 --- Concentre-se no desenvolvimento interessante - o seu produto. Delegue-nos a infraestrutura aborrecida. . activate // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID") Swift . getPaywall // Use Locale. preferredLanguages to find out // which languages the user prefers using let locale = Locale. current. identifier Adapty. getPaywall("YOUR_PAYWALL_ID", locale: locale) { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } } Swift . makePurchase // Your app's code do { let purchaseResult = try await Adapty. makePurchase(product: product) switch purchaseResult { case . userCancelled: // handle the user cancelled purchase case . pending: // handle the pending purchase case let . success(profile, transaction): if profile. accessLevels? . isActive ? ? false { // successful purchase } } } catch { // handle the error } Swift . getProfile // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } } Swift . restorePurchases // Your app's code do { let profile = try await Adapty. restorePurchases if profile. accessLevels? . isActive ? ? false { // successful access restore } } catch { // handle the error } Swift Código HTML para todas as funções // Your app's code import Adapty   Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID")                           // Use Locale. preferredLanguages to find out // which languages the user prefers using let locale = Locale. current. identifier   Adapty. getPaywall("YOUR_PAYWALL_ID", locale: locale) { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } }           // Your app's code do { let purchaseResult = try await Adapty. makePurchase(product: product)   switch purchaseResult { case . userCancelled: // handle the user cancelled purchase case . pending: // handle the pending purchase case let . success(profile, transaction): if profile. accessLevels? . isActive ? ? false { // successful purchase } } } catch { // handle the error } // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } }                       // Your app's code do { let profile = try await Adapty. restorePurchases if profile. accessLevels? . isActive ? ? false { // successful access restore } } catch { // handle the error }                 --- Сосредоточьтесь на интересной разработке - вашем продукте. Передайте скучную инфраструктуру нам. . activate // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID") Swift . getPaywall // Use Locale. preferredLanguages to find out // which languages the user prefers using let locale = Locale. current. identifier Adapty. getPaywall("YOUR_PAYWALL_ID", locale: locale) { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } } Swift . makePurchase // Your app's code do { let purchaseResult = try await Adapty. makePurchase(product: product) switch purchaseResult { case . userCancelled: // handle the user cancelled purchase case . pending: // handle the pending purchase case let . success(profile, transaction): if profile. accessLevels? . isActive ? ? false { // successful purchase } } } catch { // handle the error } Swift . getProfile // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } } Swift . restorePurchases // Your app's code do { let profile = try await Adapty. restorePurchases if profile. accessLevels? . isActive ? ? false { // successful access restore } } catch { // handle the error } Swift HTML код для всех функций // Your app's code import Adapty   Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID")                           // Use Locale. preferredLanguages to find out // which languages the user prefers using let locale = Locale. current. identifier   Adapty. getPaywall("YOUR_PAYWALL_ID", locale: locale) { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } }           // Your app's code do { let purchaseResult = try await Adapty. makePurchase(product: product)   switch purchaseResult { case . userCancelled: // handle the user cancelled purchase case . pending: // handle the pending purchase case let . success(profile, transaction): if profile. accessLevels? . isActive ? ? false { // successful purchase } } } catch { // handle the error } // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } }                       // Your app's code do { let profile = try await Adapty. restorePurchases if profile. accessLevels? . isActive ? ? false { // successful access restore } } catch { // handle the error }                 --- Céntrese en el desarrollo interesante: su producto. Delegue en nosotros la aburrida infraestructura. . activate // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID") Swift . getPaywall // Use Locale. preferredLanguages to find out // which languages the user prefers using let locale = Locale. current. identifier Adapty. getPaywall("YOUR_PAYWALL_ID", locale: locale) { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } } Swift . makePurchase // Your app's code do { let purchaseResult = try await Adapty. makePurchase(product: product) switch purchaseResult { case . userCancelled: // handle the user cancelled purchase case . pending: // handle the pending purchase case let . success(profile, transaction): if profile. accessLevels? . isActive ? ? false { // successful purchase } } } catch { // handle the error } Swift . getProfile // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } } Swift . restaurarCompras // Your app's code do { let profile = try await Adapty. restorePurchases if profile. accessLevels? . isActive ? ? false { // successful access restore } } catch { // handle the error } Swift Código HTML para todas las funciones // Your app's code import Adapty   Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID")                           // Use Locale. preferredLanguages to find out // which languages the user prefers using let locale = Locale. current. identifier   Adapty. getPaywall("YOUR_PAYWALL_ID", locale: locale) { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } }           // Your app's code do { let purchaseResult = try await Adapty. makePurchase(product: product)   switch purchaseResult { case . userCancelled: // handle the user cancelled purchase case . pending: // handle the pending purchase case let . success(profile, transaction): if profile. accessLevels? . isActive ? ? false { // successful purchase } } } catch { // handle the error } // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } }                       // Your app's code do { let profile = try await Adapty. restorePurchases if profile. accessLevels? . isActive ? ? false { // successful access restore } } catch { // handle the error }                 --- İlginç gelişime odaklanın - ürününüze. Sıkıcı altyapıyı bize devredin. . activate // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID") Swift . getPaywall // Use Locale. preferredLanguages to find out // which languages the user prefers using let locale = Locale. current. identifier Adapty. getPaywall("YOUR_PAYWALL_ID", locale: locale) { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } } Swift . makePurchase // Your app's code do { let purchaseResult = try await Adapty. makePurchase(product: product) switch purchaseResult { case . userCancelled: // handle the user cancelled purchase case . pending: // handle the pending purchase case let . success(profile, transaction): if profile. accessLevels? . isActive ? ? false { // successful purchase } } } catch { // handle the error } Swift . getProfile // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } } Swift . restorePurchases // Your app's code do { let profile = try await Adapty. restorePurchases if profile. accessLevels? . isActive ? ? false { // successful access restore } } catch { // handle the error } Swift Tüm Fonksiyonlar için HTML Kodu // Your app's code import Adapty   Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID")                           // Use Locale. preferredLanguages to find out // which languages the user prefers using let locale = Locale. current. identifier   Adapty. getPaywall("YOUR_PAYWALL_ID", locale: locale) { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } }           // Your app's code do { let purchaseResult = try await Adapty. makePurchase(product: product)   switch purchaseResult { case . userCancelled: // handle the user cancelled purchase case . pending: // handle the pending purchase case let . success(profile, transaction): if profile. accessLevels? . isActive ? ? false { // successful purchase } } } catch { // handle the error } // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } }                       // Your app's code do { let profile = try await Adapty. restorePurchases if profile. accessLevels? . isActive ? ? false { // successful access restore } } catch { // handle the error }                 --- Зосередьтеся на цікавій розробці - вашому продукті. А нудну інфраструктуру делегуйте нам. . activate // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID") Swift . getPaywall // Use Locale. preferredLanguages to find out // which languages the user prefers using let locale = Locale. current. identifier Adapty. getPaywall("YOUR_PAYWALL_ID", locale: locale) { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } } Swift . makePurchase // Your app's code do { let purchaseResult = try await Adapty. makePurchase(product: product) switch purchaseResult { case . userCancelled: // handle the user cancelled purchase case . pending: // handle the pending purchase case let . success(profile, transaction): if profile. accessLevels? . isActive ? ? false { // successful purchase } } } catch { // handle the error } Swift . getProfile // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } } Swift . restorePurchases // Your app's code do { let profile = try await Adapty. restorePurchases if profile. accessLevels? . isActive ? ? false { // successful access restore } } catch { // handle the error } Swift HTML-код для всіх функцій // Your app's code import Adapty   Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID")                           // Use Locale. preferredLanguages to find out // which languages the user prefers using let locale = Locale. current. identifier   Adapty. getPaywall("YOUR_PAYWALL_ID", locale: locale) { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } }           // Your app's code do { let purchaseResult = try await Adapty. makePurchase(product: product)   switch purchaseResult { case . userCancelled: // handle the user cancelled purchase case . pending: // handle the pending purchase case let . success(profile, transaction): if profile. accessLevels? . isActive ? ? false { // successful purchase } } } catch { // handle the error } // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } }                       // Your app's code do { let profile = try await Adapty. restorePurchases if profile. accessLevels? . isActive ? ? false { // successful access restore } } catch { // handle the error }                 --- Swift // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY") // Make a purchase, Adapty handles the rest do { let purchasedInfo = try await Adapty. makePurchase(product) // successful purchase } catch { // handle the error } Kotlin // Your app's code Adapty. activate(this, "YOUR_APP_KEY") // Make a purchase, Adapty handles the rest Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { // successful purchase } is AdaptyResult. Error -> { // handle the error } } } React Native // Your app's code import { adapty } from 'react-native-adapty'; await adapty. activate('YOUR_APP_KEY'); // Make a purchase, Adapty handles the rest try { const profile = await adapty. makePurchase(product); // successful purchase } catch (error) { // handle the error } Flutter // Your app's code import 'package:adapty_flutter/adapty_flutter. dart'; Adapty. activate; // Make a purchase, Adapty handles the rest try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (error) { // handle another errors } Unity // Your app's code using AdaptySDK; Adapty. makePurchase(product, (profile, error) => { if (error == null) { // successful purchase } }); Manual import StoreKit class Store: ObservableObject { private var productIDs = @Published var products = init { Task { await requestProducts } } @MainActor func requestProducts async { do { products = try await Product. products(for: productIDs) } catch { print(error) } } } Section(header: Text("To buy")) { } ForEach(store. products, id: \. id) { product in HStack { Text(product. displayName) Spacer Button("\(product. displayPrice)") { } } } @Published var purchasedNonConsumables = @MainActor func purchase(_ product: Product) async throws -> Transaction ? { let result = try await product. purchase switch result { case . success(. verified(let transaction)): purchasedNonConsumables. append(product) await transaction. finish return transaction default: return nil } } Button("\(product. displayPrice)") { Task { try await store. purchase(product) } } ProductView( icon: "", quantity: "\(store. purchasedNonConsumables. count)" ) func listenForTransactions -> Task { return Task. detached { for await result in Transaction. updates { switch result { case let. verified(transaction): guard let product = self. products. first(where: { $0. id == transaction. productID }) else { continue } self. purchasedNonConsumables. append(product) await transaction. finish default: continue } } } } var transacitonListener: Task? init { transacitonListener = listenForTransactions Task { await requestProducts } } @MainActor private func handle(transactionVerification result: VerificationResult ) async { switch result { case let. verified(transaction): guard let product = self. products. first(where: { $0. id == transaction. productID }) else { return } self. purchasedNonConsumables. insert(product) await transaction. finish default: return } } --- Swift // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY") // Make a purchase, Adapty handles the rest do { let purchasedInfo = try await Adapty. makePurchase(product) // successful purchase } catch { // handle the error } Kotlin // Your app's code Adapty. activate(this, "YOUR_APP_KEY") // Make a purchase, Adapty handles the rest Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { // successful purchase } is AdaptyResult. Error -> { // handle the error } } } React Native // Your app's code import { adapty } from 'react-native-adapty'; await adapty. activate('YOUR_APP_KEY'); // Make a purchase, Adapty handles the rest try { const profile = await adapty. makePurchase(product); // successful purchase } catch (error) { // handle the error } Flutter // Your app's code import 'package:adapty_flutter/adapty_flutter. dart'; Adapty. activate; // Make a purchase, Adapty handles the rest try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (error) { // handle another errors } Unity // Your app's code using AdaptySDK; Adapty. makePurchase(product, (profile, error) => { if (error == null) { // successful purchase } }); 手动 import StoreKit class Store: ObservableObject { private var productIDs = @Published var products = init { Task { await requestProducts } } @MainActor func requestProducts async { do { products = try await Product. products(for: productIDs) } catch { print(error) } } } Section(header: Text("To buy")) { } ForEach(store. products, id: \. id) { product in HStack { Text(product. displayName) Spacer Button("\(product. displayPrice)") { } } } @Published var purchasedNonConsumables = @MainActor func purchase(_ product: Product) async throws -> Transaction ? { let result = try await product. purchase switch result { case . success(. verified(let transaction)): purchasedNonConsumables. append(product) await transaction. finish return transaction default: return nil } } Button("\(product. displayPrice)") { Task { try await store. purchase(product) } } ProductView( icon: "", quantity: "\(store. purchasedNonConsumables. count)" ) func listenForTransactions -> Task { return Task. detached { for await result in Transaction. updates { switch result { case let. verified(transaction): guard let product = self. products. first(where: { $0. id == transaction. productID }) else { continue } self. purchasedNonConsumables. append(product) await transaction. finish default: continue } } } } var transacitonListener: Task? init { transacitonListener = listenForTransactions Task { await requestProducts } } @MainActor private func handle(transactionVerification result: VerificationResult ) async { switch result { case let. verified(transaction): guard let product = self. products. first(where: { $0. id == transaction. productID }) else { return } self. purchasedNonConsumables. insert(product) await transaction. finish default: return } } --- Swift // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY") // Make a purchase, Adapty handles the rest do { let purchasedInfo = try await Adapty. makePurchase(product) // successful purchase } catch { // handle the error } Kotlin // Your app's code Adapty. activate(this, "YOUR_APP_KEY") // Make a purchase, Adapty handles the rest Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { // successful purchase } is AdaptyResult. Error -> { // handle the error } } } React Native // Your app's code import { adapty } from 'react-native-adapty'; await adapty. activate('YOUR_APP_KEY'); // Make a purchase, Adapty handles the rest try { const profile = await adapty. makePurchase(product); // successful purchase } catch (error) { // handle the error } Flutter // Your app's code import 'package:adapty_flutter/adapty_flutter. dart'; Adapty. activate; // Make a purchase, Adapty handles the rest try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (error) { // handle another errors } Unity // Your app's code using AdaptySDK; Adapty. makePurchase(product, (profile, error) => { if (error == null) { // successful purchase } }); Manuel import StoreKit class Store: ObservableObject { private var productIDs = @Published var products = init { Task { await requestProducts } } @MainActor func requestProducts async { do { products = try await Product. products(for: productIDs) } catch { print(error) } } } Section(header: Text("To buy")) { } ForEach(store. products, id: \. id) { product in HStack { Text(product. displayName) Spacer Button("\(product. displayPrice)") { } } } @Published var purchasedNonConsumables = @MainActor func purchase(_ product: Product) async throws -> Transaction ? { let result = try await product. purchase switch result { case . success(. verified(let transaction)): purchasedNonConsumables. append(product) await transaction. finish return transaction default: return nil } } Button("\(product. displayPrice)") { Task { try await store. purchase(product) } } ProductView( icon: "", quantity: "\(store. purchasedNonConsumables. count)" ) func listenForTransactions -> Task { return Task. detached { for await result in Transaction. updates { switch result { case let. verified(transaction): guard let product = self. products. first(where: { $0. id == transaction. productID }) else { continue } self. purchasedNonConsumables. append(product) await transaction. finish default: continue } } } } var transacitonListener: Task? init { transacitonListener = listenForTransactions Task { await requestProducts } } @MainActor private func handle(transactionVerification result: VerificationResult ) async { switch result { case let. verified(transaction): guard let product = self. products. first(where: { $0. id == transaction. productID }) else { return } self. purchasedNonConsumables. insert(product) await transaction. finish default: return } } --- Swift // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY") // Make a purchase, Adapty handles the rest do { let purchasedInfo = try await Adapty. makePurchase(product) // successful purchase } catch { // handle the error } Kotlin // Your app's code Adapty. activate(this, "YOUR_APP_KEY") // Make a purchase, Adapty handles the rest Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { // successful purchase } is AdaptyResult. Error -> { // handle the error } } } React Native // Your app's code import { adapty } from 'react-native-adapty'; await adapty. activate('YOUR_APP_KEY'); // Make a purchase, Adapty handles the rest try { const profile = await adapty. makePurchase(product); // successful purchase } catch (error) { // handle the error } Flutter // Your app's code import 'package:adapty_flutter/adapty_flutter. dart'; Adapty. activate; // Make a purchase, Adapty handles the rest try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (error) { // handle another errors } Unity // Your app's code using AdaptySDK; Adapty. makePurchase(product, (profile, error) => { if (error == null) { // successful purchase } }); Manuell import StoreKit class Store: ObservableObject { private var productIDs = @Published var products = init { Task { await requestProducts } } @MainActor func requestProducts async { do { products = try await Product. products(for: productIDs) } catch { print(error) } } } Section(header: Text("To buy")) { } ForEach(store. products, id: \. id) { product in HStack { Text(product. displayName) Spacer Button("\(product. displayPrice)") { } } } @Published var purchasedNonConsumables = @MainActor func purchase(_ product: Product) async throws -> Transaction ? { let result = try await product. purchase switch result { case . success(. verified(let transaction)): purchasedNonConsumables. append(product) await transaction. finish return transaction default: return nil } } Button("\(product. displayPrice)") { Task { try await store. purchase(product) } } ProductView( icon: "", quantity: "\(store. purchasedNonConsumables. count)" ) func listenForTransactions -> Task { return Task. detached { for await result in Transaction. updates { switch result { case let. verified(transaction): guard let product = self. products. first(where: { $0. id == transaction. productID }) else { continue } self. purchasedNonConsumables. append(product) await transaction. finish default: continue } } } } var transacitonListener: Task? init { transacitonListener = listenForTransactions Task { await requestProducts } } @MainActor private func handle(transactionVerification result: VerificationResult ) async { switch result { case let. verified(transaction): guard let product = self. products. first(where: { $0. id == transaction. productID }) else { return } self. purchasedNonConsumables. insert(product) await transaction. finish default: return } } --- Swift // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY") // Make a purchase, Adapty handles the rest do { let purchasedInfo = try await Adapty. makePurchase(product) // successful purchase } catch { // handle the error } Kotlin // Your app's code Adapty. activate(this, "YOUR_APP_KEY") // Make a purchase, Adapty handles the rest Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { // successful purchase } is AdaptyResult. Error -> { // handle the error } } } React Native // Your app's code import { adapty } from 'react-native-adapty'; await adapty. activate('YOUR_APP_KEY'); // Make a purchase, Adapty handles the rest try { const profile = await adapty. makePurchase(product); // successful purchase } catch (error) { // handle the error } Flutter // Your app's code import 'package:adapty_flutter/adapty_flutter. dart'; Adapty. activate; // Make a purchase, Adapty handles the rest try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (error) { // handle another errors } Unity // Your app's code using AdaptySDK; Adapty. makePurchase(product, (profile, error) => { if (error == null) { // successful purchase } }); マニュアル import StoreKit class Store: ObservableObject { private var productIDs = @Published var products = init { Task { await requestProducts } } @MainActor func requestProducts async { do { products = try await Product. products(for: productIDs) } catch { print(error) } } } Section(header: Text("To buy")) { } ForEach(store. products, id: \. id) { product in HStack { Text(product. displayName) Spacer Button("\(product. displayPrice)") { } } } @Published var purchasedNonConsumables = @MainActor func purchase(_ product: Product) async throws -> Transaction ? { let result = try await product. purchase switch result { case . success(. verified(let transaction)): purchasedNonConsumables. append(product) await transaction. finish return transaction default: return nil } } Button("\(product. displayPrice)") { Task { try await store. purchase(product) } } ProductView( icon: "", quantity: "\(store. purchasedNonConsumables. count)" ) func listenForTransactions -> Task { return Task. detached { for await result in Transaction. updates { switch result { case let. verified(transaction): guard let product = self. products. first(where: { $0. id == transaction. productID }) else { continue } self. purchasedNonConsumables. append(product) await transaction. finish default: continue } } } } var transacitonListener: Task? init { transacitonListener = listenForTransactions Task { await requestProducts } } @MainActor private func handle(transactionVerification result: VerificationResult ) async { switch result { case let. verified(transaction): guard let product = self. products. first(where: { $0. id == transaction. productID }) else { return } self. purchasedNonConsumables. insert(product) await transaction. finish default: return } } --- Swift // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY") // Make a purchase, Adapty handles the rest do { let purchasedInfo = try await Adapty. makePurchase(product) // successful purchase } catch { // handle the error } Kotlin // Your app's code Adapty. activate(this, "YOUR_APP_KEY") // Make a purchase, Adapty handles the rest Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { // successful purchase } is AdaptyResult. Error -> { // handle the error } } } React Native // Your app's code import { adapty } from 'react-native-adapty'; await adapty. activate('YOUR_APP_KEY'); // Make a purchase, Adapty handles the rest try { const profile = await adapty. makePurchase(product); // successful purchase } catch (error) { // handle the error } Flutter // Your app's code import 'package:adapty_flutter/adapty_flutter. dart'; Adapty. activate; // Make a purchase, Adapty handles the rest try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (error) { // handle another errors } Unity // Your app's code using AdaptySDK; Adapty. makePurchase(product, (profile, error) => { if (error == null) { // successful purchase } }); 수동 import StoreKit class Store: ObservableObject { private var productIDs = @Published var products = init { Task { await requestProducts } } @MainActor func requestProducts async { do { products = try await Product. products(for: productIDs) } catch { print(error) } } } Section(header: Text("To buy")) { } ForEach(store. products, id: \. id) { product in HStack { Text(product. displayName) Spacer Button("\(product. displayPrice)") { } } } @Published var purchasedNonConsumables = @MainActor func purchase(_ product: Product) async throws -> Transaction ? { let result = try await product. purchase switch result { case . success(. verified(let transaction)): purchasedNonConsumables. append(product) await transaction. finish return transaction default: return nil } } Button("\(product. displayPrice)") { Task { try await store. purchase(product) } } ProductView( icon: "", quantity: "\(store. purchasedNonConsumables. count)" ) func listenForTransactions -> Task { return Task. detached { for await result in Transaction. updates { switch result { case let. verified(transaction): guard let product = self. products. first(where: { $0. id == transaction. productID }) else { continue } self. purchasedNonConsumables. append(product) await transaction. finish default: continue } } } } var transacitonListener: Task? init { transacitonListener = listenForTransactions Task { await requestProducts } } @MainActor private func handle(transactionVerification result: VerificationResult ) async { switch result { case let. verified(transaction): guard let product = self. products. first(where: { $0. id == transaction. productID }) else { return } self. purchasedNonConsumables. insert(product) await transaction. finish default: return } } --- Swift // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY") // Make a purchase, Adapty handles the rest do { let purchasedInfo = try await Adapty. makePurchase(product) // successful purchase } catch { // handle the error } Kotlin // Your app's code Adapty. activate(this, "YOUR_APP_KEY") // Make a purchase, Adapty handles the rest Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { // successful purchase } is AdaptyResult. Error -> { // handle the error } } } React Native // Your app's code import { adapty } from 'react-native-adapty'; await adapty. activate('YOUR_APP_KEY'); // Make a purchase, Adapty handles the rest try { const profile = await adapty. makePurchase(product); // successful purchase } catch (error) { // handle the error } Flutter // Your app's code import 'package:adapty_flutter/adapty_flutter. dart'; Adapty. activate; // Make a purchase, Adapty handles the rest try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (error) { // handle another errors } Unity // Your app's code using AdaptySDK; Adapty. makePurchase(product, (profile, error) => { if (error == null) { // successful purchase } }); Ręczny import StoreKit class Store: ObservableObject { private var productIDs = @Published var products = init { Task { await requestProducts } } @MainActor func requestProducts async { do { products = try await Product. products(for: productIDs) } catch { print(error) } } } Section(header: Text("To buy")) { } ForEach(store. products, id: \. id) { product in HStack { Text(product. displayName) Spacer Button("\(product. displayPrice)") { } } } @Published var purchasedNonConsumables = @MainActor func purchase(_ product: Product) async throws -> Transaction ? { let result = try await product. purchase switch result { case . success(. verified(let transaction)): purchasedNonConsumables. append(product) await transaction. finish return transaction default: return nil } } Button("\(product. displayPrice)") { Task { try await store. purchase(product) } } ProductView( icon: "", quantity: "\(store. purchasedNonConsumables. count)" ) func listenForTransactions -> Task { return Task. detached { for await result in Transaction. updates { switch result { case let. verified(transaction): guard let product = self. products. first(where: { $0. id == transaction. productID }) else { continue } self. purchasedNonConsumables. append(product) await transaction. finish default: continue } } } } var transacitonListener: Task? init { transacitonListener = listenForTransactions Task { await requestProducts } } @MainActor private func handle(transactionVerification result: VerificationResult ) async { switch result { case let. verified(transaction): guard let product = self. products. first(where: { $0. id == transaction. productID }) else { return } self. purchasedNonConsumables. insert(product) await transaction. finish default: return } } --- Swift // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY") // Make a purchase, Adapty handles the rest do { let purchasedInfo = try await Adapty. makePurchase(product) // successful purchase } catch { // handle the error } Kotlin // Your app's code Adapty. activate(this, "YOUR_APP_KEY") // Make a purchase, Adapty handles the rest Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { // successful purchase } is AdaptyResult. Error -> { // handle the error } } } React Native // Your app's code import { adapty } from 'react-native-adapty'; await adapty. activate('YOUR_APP_KEY'); // Make a purchase, Adapty handles the rest try { const profile = await adapty. makePurchase(product); // successful purchase } catch (error) { // handle the error } Flutter // Your app's code import 'package:adapty_flutter/adapty_flutter. dart'; Adapty. activate; // Make a purchase, Adapty handles the rest try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (error) { // handle another errors } Unity // Your app's code using AdaptySDK; Adapty. makePurchase(product, (profile, error) => { if (error == null) { // successful purchase } }); Manual import StoreKit class Store: ObservableObject { private var productIDs = @Published var products = init { Task { await requestProducts } } @MainActor func requestProducts async { do { products = try await Product. products(for: productIDs) } catch { print(error) } } } Section(header: Text("To buy")) { } ForEach(store. products, id: \. id) { product in HStack { Text(product. displayName) Spacer Button("\(product. displayPrice)") { } } } @Published var purchasedNonConsumables = @MainActor func purchase(_ product: Product) async throws -> Transaction ? { let result = try await product. purchase switch result { case . success(. verified(let transaction)): purchasedNonConsumables. append(product) await transaction. finish return transaction default: return nil } } Button("\(product. displayPrice)") { Task { try await store. purchase(product) } } ProductView( icon: "", quantity: "\(store. purchasedNonConsumables. count)" ) func listenForTransactions -> Task { return Task. detached { for await result in Transaction. updates { switch result { case let. verified(transaction): guard let product = self. products. first(where: { $0. id == transaction. productID }) else { continue } self. purchasedNonConsumables. append(product) await transaction. finish default: continue } } } } var transacitonListener: Task? init { transacitonListener = listenForTransactions Task { await requestProducts } } @MainActor private func handle(transactionVerification result: VerificationResult ) async { switch result { case let. verified(transaction): guard let product = self. products. first(where: { $0. id == transaction. productID }) else { return } self. purchasedNonConsumables. insert(product) await transaction. finish default: return } } --- Swift // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY") // Make a purchase, Adapty handles the rest do { let purchasedInfo = try await Adapty. makePurchase(product) // successful purchase } catch { // handle the error } Kotlin // Your app's code Adapty. activate(this, "YOUR_APP_KEY") // Make a purchase, Adapty handles the rest Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { // successful purchase } is AdaptyResult. Error -> { // handle the error } } } React Native // Your app's code import { adapty } from 'react-native-adapty'; await adapty. activate('YOUR_APP_KEY'); // Make a purchase, Adapty handles the rest try { const profile = await adapty. makePurchase(product); // successful purchase } catch (error) { // handle the error } Flutter // Your app's code import 'package:adapty_flutter/adapty_flutter. dart'; Adapty. activate; // Make a purchase, Adapty handles the rest try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (error) { // handle another errors } Unity // Your app's code using AdaptySDK; Adapty. makePurchase(product, (profile, error) => { if (error == null) { // successful purchase } }); Manual import StoreKit class Store: ObservableObject { private var productIDs = @Published var products = init { Task { await requestProducts } } @MainActor func requestProducts async { do { products = try await Product. products(for: productIDs) } catch { print(error) } } } Section(header: Text("To buy")) { } ForEach(store. products, id: \. id) { product in HStack { Text(product. displayName) Spacer Button("\(product. displayPrice)") { } } } @Published var purchasedNonConsumables = @MainActor func purchase(_ product: Product) async throws -> Transaction ? { let result = try await product. purchase switch result { case . success(. verified(let transaction)): purchasedNonConsumables. append(product) await transaction. finish return transaction default: return nil } } Button("\(product. displayPrice)") { Task { try await store. purchase(product) } } ProductView( icon: "", quantity: "\(store. purchasedNonConsumables. count)" ) func listenForTransactions -> Task { return Task. detached { for await result in Transaction. updates { switch result { case let. verified(transaction): guard let product = self. products. first(where: { $0. id == transaction. productID }) else { continue } self. purchasedNonConsumables. append(product) await transaction. finish default: continue } } } } var transacitonListener: Task? init { transacitonListener = listenForTransactions Task { await requestProducts } } @MainActor private func handle(transactionVerification result: VerificationResult ) async { switch result { case let. verified(transaction): guard let product = self. products. first(where: { $0. id == transaction. productID }) else { return } self. purchasedNonConsumables. insert(product) await transaction. finish default: return } } --- Swift // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY") // Make a purchase, Adapty handles the rest do { let purchasedInfo = try await Adapty. makePurchase(product) // successful purchase } catch { // handle the error } Kotlin // Your app's code Adapty. activate(this, "YOUR_APP_KEY") // Make a purchase, Adapty handles the rest Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { // successful purchase } is AdaptyResult. Error -> { // handle the error } } } React Native // Your app's code import { adapty } from 'react-native-adapty'; await adapty. activate('YOUR_APP_KEY'); // Make a purchase, Adapty handles the rest try { const profile = await adapty. makePurchase(product); // successful purchase } catch (error) { // handle the error } Flutter // Your app's code import 'package:adapty_flutter/adapty_flutter. dart'; Adapty. activate; // Make a purchase, Adapty handles the rest try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (error) { // handle another errors } Unity // Your app's code using AdaptySDK; Adapty. makePurchase(product, (profile, error) => { if (error == null) { // successful purchase } }); Manual import StoreKit class Store: ObservableObject { private var productIDs = @Published var products = init { Task { await requestProducts } } @MainActor func requestProducts async { do { products = try await Product. products(for: productIDs) } catch { print(error) } } } Section(header: Text("To buy")) { } ForEach(store. products, id: \. id) { product in HStack { Text(product. displayName) Spacer Button("\(product. displayPrice)") { } } } @Published var purchasedNonConsumables = @MainActor func purchase(_ product: Product) async throws -> Transaction ? { let result = try await product. purchase switch result { case . success(. verified(let transaction)): purchasedNonConsumables. append(product) await transaction. finish return transaction default: return nil } } Button("\(product. displayPrice)") { Task { try await store. purchase(product) } } ProductView( icon: "", quantity: "\(store. purchasedNonConsumables. count)" ) func listenForTransactions -> Task { return Task. detached { for await result in Transaction. updates { switch result { case let. verified(transaction): guard let product = self. products. first(where: { $0. id == transaction. productID }) else { continue } self. purchasedNonConsumables. append(product) await transaction. finish default: continue } } } } var transacitonListener: Task? init { transacitonListener = listenForTransactions Task { await requestProducts } } @MainActor private func handle(transactionVerification result: VerificationResult ) async { switch result { case let. verified(transaction): guard let product = self. products. first(where: { $0. id == transaction. productID }) else { return } self. purchasedNonConsumables. insert(product) await transaction. finish default: return } } --- Swift // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY") // Make a purchase, Adapty handles the rest do { let purchasedInfo = try await Adapty. makePurchase(product) // successful purchase } catch { // handle the error } Kotlin // Your app's code Adapty. activate(this, "YOUR_APP_KEY") // Make a purchase, Adapty handles the rest Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { // successful purchase } is AdaptyResult. Error -> { // handle the error } } } React Native // Your app's code import { adapty } from 'react-native-adapty'; await adapty. activate('YOUR_APP_KEY'); // Make a purchase, Adapty handles the rest try { const profile = await adapty. makePurchase(product); // successful purchase } catch (error) { // handle the error } Flutter // Your app's code import 'package:adapty_flutter/adapty_flutter. dart'; Adapty. activate; // Make a purchase, Adapty handles the rest try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (error) { // handle another errors } Unity // Your app's code using AdaptySDK; Adapty. makePurchase(product, (profile, error) => { if (error == null) { // successful purchase } }); Manuel import StoreKit class Store: ObservableObject { private var productIDs = @Published var products = init { Task { await requestProducts } } @MainActor func requestProducts async { do { products = try await Product. products(for: productIDs) } catch { print(error) } } } Section(header: Text("To buy")) { } ForEach(store. products, id: \. id) { product in HStack { Text(product. displayName) Spacer Button("\(product. displayPrice)") { } } } @Published var purchasedNonConsumables = @MainActor func purchase(_ product: Product) async throws -> Transaction ? { let result = try await product. purchase switch result { case . success(. verified(let transaction)): purchasedNonConsumables. append(product) await transaction. finish return transaction default: return nil } } Button("\(product. displayPrice)") { Task { try await store. purchase(product) } } ProductView( icon: "", quantity: "\(store. purchasedNonConsumables. count)" ) func listenForTransactions -> Task { return Task. detached { for await result in Transaction. updates { switch result { case let. verified(transaction): guard let product = self. products. first(where: { $0. id == transaction. productID }) else { continue } self. purchasedNonConsumables. append(product) await transaction. finish default: continue } } } } var transacitonListener: Task? init { transacitonListener = listenForTransactions Task { await requestProducts } } @MainActor private func handle(transactionVerification result: VerificationResult ) async { switch result { case let. verified(transaction): guard let product = self. products. first(where: { $0. id == transaction. productID }) else { return } self. purchasedNonConsumables. insert(product) await transaction. finish default: return } } --- Swift // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY") // Make a purchase, Adapty handles the rest do { let purchasedInfo = try await Adapty. makePurchase(product) // successful purchase } catch { // handle the error } Kotlin // Your app's code Adapty. activate(this, "YOUR_APP_KEY") // Make a purchase, Adapty handles the rest Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { // successful purchase } is AdaptyResult. Error -> { // handle the error } } } React Native // Your app's code import { adapty } from 'react-native-adapty'; await adapty. activate('YOUR_APP_KEY'); // Make a purchase, Adapty handles the rest try { const profile = await adapty. makePurchase(product); // successful purchase } catch (error) { // handle the error } Flutter // Your app's code import 'package:adapty_flutter/adapty_flutter. dart'; Adapty. activate; // Make a purchase, Adapty handles the rest try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (error) { // handle another errors } Unity // Your app's code using AdaptySDK; Adapty. makePurchase(product, (profile, error) => { if (error == null) { // successful purchase } }); Ручний import StoreKit class Store: ObservableObject { private var productIDs = @Published var products = init { Task { await requestProducts } } @MainActor func requestProducts async { do { products = try await Product. products(for: productIDs) } catch { print(error) } } } Section(header: Text("To buy")) { } ForEach(store. products, id: \. id) { product in HStack { Text(product. displayName) Spacer Button("\(product. displayPrice)") { } } } @Published var purchasedNonConsumables = @MainActor func purchase(_ product: Product) async throws -> Transaction ? { let result = try await product. purchase switch result { case . success(. verified(let transaction)): purchasedNonConsumables. append(product) await transaction. finish return transaction default: return nil } } Button("\(product. displayPrice)") { Task { try await store. purchase(product) } } ProductView( icon: "", quantity: "\(store. purchasedNonConsumables. count)" ) func listenForTransactions -> Task { return Task. detached { for await result in Transaction. updates { switch result { case let. verified(transaction): guard let product = self. products. first(where: { $0. id == transaction. productID }) else { continue } self. purchasedNonConsumables. append(product) await transaction. finish default: continue } } } } var transacitonListener: Task? init { transacitonListener = listenForTransactions Task { await requestProducts } } @MainActor private func handle(transactionVerification result: VerificationResult ) async { switch result { case let. verified(transaction): guard let product = self. products. first(where: { $0. id == transaction. productID }) else { return } self. purchasedNonConsumables. insert(product) await transaction. finish default: return } } --- Hey, we’re Adapty team We’re NYC based with a remote team globally. --- 안녕하세요,우리는 적응력있는 팀입니다. 우리는 전 세계적으로 원격 팀과 뉴욕에 기반을 두고 있습니다. --- Ei, somos uma equipa de adaptação Estamos em Nova Iorque com uma equipa remota a nível global. --- Oye, somos un equipo adaptable Tenemos nuestra sede en Nueva York con un equipo remoto a nivel mundial. --- Hey, we’re Adapty team We’re NYC based with a remote team globally. --- Привіт, ми - команда Adapty Ми базуємося в Нью-Йорку, а віддалена команда працює по всьому світу. --- Hej, Jesteśmy zespołem adaptacyjnym Jesteśmy w Nowym Jorku ze zdalnym zespołem na całym świecie. --- Hey, we’re Adapty team We’re NYC based with a remote team globally. --- Эй, мы - команда Adapty Мы базируемся в Нью-Йорке, а удаленная команда работает по всему миру. --- 嘿,我们是适应性强的团队。 我们在纽约有一个全球远程团队。 --- Hey, we’re Adapty team We’re NYC based with a remote team globally. --- Hey, we’re Adapty team We’re NYC based with a remote team globally. --- --- ## Posts This week we peeked into paywalls from plant care apps. And honestly, it’s not too different from actual plant parenting: a little sunlight (trust), a bit of water (value), and sometimes moving the pot around (pricing tests) can make all the difference. To help us break it all down, we invited Ngozi Ogbonna. She has spent years growing subscription products (and a few real plants along the way). So their take on what makes a paywall thrive is rooted in both data and real-life growth stories. PictureThis - Plant Identifier Last month revenue: $8M | Last month downloads: 900K What’s blooming The trial reminder option reassures users the trial is truly “risk-free. " High average ratings and a large number of reviews add strong social proof and build trust. If the main goal is to drive more trial starts, the free trial option is well-designed and positioned to encourage conversions. . What’s worth testing Try clearer copy that highlights key features to better show the app’s value. The monthly plan currently looks cheaper than yearly. Testing other lengths might guide more users toward yearly. Adding visuals — like a healthy plant or an image of the product diagnosing a plant photo — could reinforce the value proposition. → We covered other smart ways apps use trial reminders in Paywall Newsletter #22: Calorie Counter Apps. Plant App: Plant Identifier Last month revenue: $200K | Last month downloads: 30K What’s working well The before/after plant animation shows the benefit clearly. The lifetime plan is featured as the hero and highlights strong value. The trial reminder option helps build trust. What's worth testing Try alternative copy: “Try for free” appears twice and could be replaced with product features. Compare LTV of lifetime vs weekly users to see if the pricing mix is right. Testing different trial lengths (weekly, monthly, yearly) might reveal more value. Offering the discounted lifetime plan as a limited promo for lapsed or undecided users could be worth exploring. Plantify: AI Plant Identifier Last month revenue: $80K | Last month downloads: 8K What’s working well Visuals + listed benefits make the value clear. The free trial is highlighted and easy to spot. The yearly plan is marked as best offer with weekly breakdowns shown. “No payment now” badge reassures users starting a trial. What's worth testing Make the yearly plan the true hero, with a stronger “best offer” badge. Try offering the free trial on yearly, while making weekly secondary. If onboarding gathers user interests, test tailoring paywall copy and benefits to match for a more personalized pitch. Planto: Plant Identifier Last month revenue: $100K | Last month downloads: 40K What’s working well Benefits are outlined clearly in bold text, so users know exactly what they get. The trial reminder toggle reassures users who might be hesitant. What's worth testing Add social proof (ratings, reviews, or user quotes) to support the “Recommended by our users” claim. Try new design versions: stronger CTAs, cleaner layout, and more visible plan buttons. Explore extra pricing options (monthly, yearly) to give users more choice and potentially lift revenue. Takeaway Plant care apps remind us: growth = trust + the right container. Trial reminders lower the barrier, while thoughtful packaging helps users choose confidently. A few tweaks in design and copy could make these paywalls blossom even more. And hey — even if you don’t have a green thumb, remember: testing is the real fertilizer. --- TL;DR: Apple pays you 45 days late. Google takes 30. Meanwhile, your best campaigns are running out of budget. Adapty Finance unlocks up to 85% of your earned revenue within 1-2 days. No loans, no equity, zero platform risk. You're hitting your numbers. User acquisition works. Revenue climbs month over month. But here's what actually happens: you're always 6 weeks behind your own success. Apple pays 45 days after the month-end. Google takes 30. While you wait, your best campaigns stall, your team slows down, and competitors with faster cash flow pull ahead. We've seen this story hundreds of times working with Adapty customers. You've got proven unit economics, clear growth levers, and the data to back it up, but you're artificially constrained by payment timing that made sense in 2008, not 2025. That's why we built Adapty Finance. What is Adapty Finance? Adapty Finance transforms your earned-but-not-yet-paid App Store and Google Play revenue into immediate working capital. This isn't a loan. It's not equity financing. It's your money, faster. Here's how it works: Your app generates subscription revenue. We advance you up to 85% of that earned revenue within 1-2 business days. When stores pay out on their normal schedule, we collect our advance plus a transparent fee. You get the remaining balance the same day stores settle with us. The result: Your revenue cycles 4-6x faster instead of waiting for payment schedules that don't match how growth works today. Why did we build this?   Over the past five years helping thousands of apps optimize their subscription revenue, we kept hearing the same frustration: "We know exactly which campaigns drive profitable users. We have the LTV data. We could 2x our ad spend profitably tomorrow, if we just had the cash flow to do it. " Traditional financing doesn't work for app businesses. Banks don't understand subscription metrics. VCs want equity for what should be a simple cash flow tool. Invoice factoring companies think "App Store Connect" is some kind of networking event. But we understand your business model inside and out. We've seen your revenue patterns, your seasonal fluctuations, your churn curves. We know the difference between healthy growth constraints and actual problems. So we decided to solve this ourselves. Here's what we built: Real-world impact Let's run through a realistic scenario: Meditation app - January performance: Monthly recurring revenue: $85,000 New user acquisition cost: $12 6-month LTV: $47 ROAS target: 120%+ Traditional timingWith Adapty FinanceJanuary revenue earned: $85,000January revenue earned: $85,000Apple payout arrives: Mid-MarchAdvance available February 1st: $72,250 (85% of earned revenue)Available for February ad spend: Whatever's left in the bank (maybe $30K? )Apple payout arrives March: We collect our fee, forward your remaining balanceAvailable for February ad spend: $72K+ instead of $30KGrowth constraint: SevereGrowth constraint: Eliminated That extra $40K+ in February ad spend, with proven 120% ROAS, generates an additional $48K in February revenue. Which becomes available for March 1st. Which compounds again in March. The founders are breaking the artificial ceiling on their growth trajectory. Security and compliance The question we get most: "Is this safe for my developer accounts? " Absolutely. Adapty Finance operates as a legitimate financial intermediary, similar to how banks factor invoices or how Stripe Capital advances against payment processing volume. We're not manipulating app store algorithms, violating terms of service, or creating any platform risk. Your relationship with Apple and Google remains exactly the same. The stores pay us directly (with your authorization), we take our agreed portion, and immediately forward your remaining balance. From Apple's and Google's perspective, you've simply updated your payment recipient, which is completely normal and supported in their standard business processes. Eligibility and requirements Who can apply: Mobile app founders with $15,000+ monthly revenue Must be incorporated as a legal entity (individual developers excluded due to licensing requirements) Apps distributed through major stores (Apple App Store, Google Play) Standard business documentation for verification Application process: Schedule a call with an Adapty Finance representative. Provide required business documentation. Review and sign agreement. Receive first advance within 1-2 business days. Advance terms: Amount: Up to 85% of earned revenue per fiscal period Speed: 1-2 business days from approval Frequency: Weekly or on-demand draws available Fee structure: Transparent fixed percentage on advanced amounts No hidden costs: No setup fees, maintenance charges, or surprise penalties Getting started Ready to break free from payment schedule constraints? The application process is straightforward, with most approvals completed within 24 hours of document submission. Schedule your consultation → --- Issue #25 of the Paywall Newsletter is here! Almost everyone has a weather widget on their phone’s home screen. It’s free and always there. So why are there so many weather forecast apps? And why are people willing to pay for something they can already get at no cost? We took a closer look at this niche to crack their paywalls playbook. For this issue, we invited Murat Menzilci, Developer Advocate at Adapty, to review the paywalls of four weather apps and highlight what’s working well and what’s worth testing to boost conversions and revenue. CARROT Weather: Alerts & Radar Last month revenue: $200K | Downloads: 30K What's working well Clear CTA with “Redeem your free week. ” Apple uses the same wording in its subscription offers, which builds familiarity. Strong social proof through “App of the Year” and Apple Design Award badges. User reviews provide additional social proof. What’s worth testing Making a side-by-side or tabbed plan comparison for easier feature evaluation. Offering a free trial only for the product you want to sell more. Adding more visuals to balance text-heavy sections. Showing “Just $3. 33/month” under the yearly price to make the savings clearer. Weather Up + AccuWeather Data Last month revenue: --- Issue #24 of the Paywall Newsletter is here! Screen-time apps are booming as people try to fight distraction and stay focused. But how do they actually monetize attention? In this issue, we break down four real paywalls with the help of Max Borisik, Product Manager for Adapty’s Paywall Builder. Max works with top subscription apps daily, testing new paywall formats and spotting what drives revenue. OffScreen: Screen Time Control Last month revenue: $6K | Downloads: 10K What’s working Social proof everywhere (reviews + Editor’s Choice) 7-day free trial builds trust Clean, modern layout What could be worth testing Simplifying the layout by keeping either reviews or Editor’s Choice Benchmarking against competitors’ prices and exploring slightly higher tiers Lifetime plans are less common lately; worth trying a week + year combination, or the classic week / month / year trio Focus Lock: Block Apps & Focus Last month revenue: --- Many app developers believe that the less friction they have in onboarding, the better. Short forms, quick skips, early paywall. Though they might see more people getting through onboarding, this doesn't convert into long-term value – not for users, and not for the app. People do not download your app to "explore features. " They want to get a job done. And more often than not, the job is not functional but emotional. When onboarding helps them see that your product is the right tool for that job, you don't get simple conversions but higher retention and LTV. In this article, I'll explain how to leverage the Jobs-to-be-Done framework during user onboarding to accelerate or rekindle your app's growth. You’ll also find real examples of app onboarding flows that utilize this approach. How to convince people that your app is the right choice Most apps promise a functional job: “track workouts,” “block distractions,” “crunch macros. ” But users don’t want to do something for the sake of doing it. They want to see a positive change in their lives. That’s why it’s more important to keep focus not only on a functional job your app promises to deliver, but on an emotional or socially driven job. — User doesn’t want to build muscles → they want to feel more confident. — User doesn’t want to have VPN → they want to have a good time watching shows not available in their region. But here’s the catch. You can’t make users experience the outcome of completing a job because they just downloaded the app. Moreover, they are subject to anxiety and inertia that keep them from trying something new. So you need to help users understand the value of your app before they experience it. That’s where the Jobs-to-be-Done onboarding comes in, allowing you to build perceived value. Jobs-to-be-Done onboarding helps accomplish three objectives: Build perceived value by demonstrating you understand their deeper motivations Reduce anxiety by addressing concerns before they become conversion blockers Establish trust through social proof from users with similar goals What is Job-to-be-Done? Job-to-be-Done is a framework that focuses on understanding why people "hire" products to solve problems in their lives. Instead of asking what features users want, it asks what job they're trying to accomplish. The core insight: people don't buy products for the products themselves – they buy them to make progress toward a goal or resolve a struggle. A person doesn't buy a drill because they want a drill; they buy it because they need a hole in the wall. In apps, this means looking beyond functional tasks ("track workouts") to understand the emotional outcomes users actually want ("feel more confident," "sleep better," "reduce anxiety"). Why are longer onboarding flows ≠ worse results The goal of creating perceived value, reducing anxiety, and establishing trust transforms into onboarding that signals to the user, “Hey, I know how you feel. Here’s how I can help, and here’s what others have already achieved through this app”. But that means that you’ll need to add more screens to your flow, which sounds counterintuitive. Won't people drop off? This concern arises from our misunderstanding of friction. There are two types of friction: negative and positive. Negative friction serves the company, not the user. Registration forms, marketing permissions, tracking requests, "Where did you hear about us? " These screens extract value without giving any back. Positive friction serves the user. It personalizes the experience, demonstrates understanding, and builds confidence that this is the right product for their specific needs. In practice, you can add multiple screens as long as they provide value to the user. The more positive friction you add while reducing negative friction, the higher your conversion rates climb. What are the results of implementing Jobs-to-be-Done onboarding Thanks to Jobs-to-be-Done onboarding, you get more motivated users who are more likely to make a purchase and stay longer within your app. Results of applying the Jobs-to-be-Done onboarding are consistent, and I saw it over and over again with partner apps. One subscription app achieved a 72% conversion increase, another saw 300% higher average revenue per user, and a third improved conversions to payer by 35%. When and how to start implementing JTBD onboarding It might seem like you need to have a large app to start investing effort into JTBD onboarding flows, but in reality, you can start as early as possible. You need a product and some conversion event (downloads, trials, or purchases), but you don't need significant revenue or large user bases. So, the path to building JTBD onboarding flows is straightforward: talk to your users. Identify recent converters, send personal outreach messages, and schedule 15-20 minute conversations focused on their decision psychology rather than product feedback. Who: Recent converters (within 7-14 days of purchase/trial). They remember their decision-making but haven't developed strong product opinions yet. How many: Around 10 users. Recruitment: Personal outreach: "Do you have 15-20 minutes to talk about the product so we can make it better? " Phone calls often work better than scheduled meetings. Questions focus on decision psychology, not product features: "What did you think the product was going to enable you to do? " "Can you remember when you downloaded the app? What were you thinking? " "How long have you been thinking about this problem? " Avoid product-focused questions like "What features do you like? " or "How would you rate the interface? " If you're asking about your product, you're asking wrong questions. And here is a simple template for arranging a call. Subject: Quick chat about ? Hi , I noticed you recently started using – thank you! I'm from the team. Do you have 15-20 minutes this week to share why you decided to try our app? Your insights help us make the product better for users like you. Feel free to grab a time that works: Or just reply to this email and we can set something up. Thanks,      After 10 interviews, you'll have clear... --- Documentation plays a big role in how quickly teams integrate Adapty. The clearer it is, the faster you can get from setup to growth without extra back-and-forth. Over the past few months, we’ve reworked our documentation with one goal in mind: making your path to integration simpler and faster. And a lot of those changes come directly from your feedback. Platform-specific SDK docs Adapty supports iOS, Android, React Native, Flutter, and Unity. Until recently, all SDK instructions were bundled together. That made it harder to find what you needed for your platform. Choose your platform from the SDK dropdown for docs tailored to your stack Now, the docs are fully platform-specific. From the Mobile SDK dropdown, select your platform and instantly see only the information that applies to you. Each SDK guide follows a straightforward structure: Get started Identify users Work with paywalls Test your setup Redesigned navigation makes it easy to find exactly what you need. Quickstart guides We also introduced Quickstart guides designed to get you from your very first step in Adapty to your first in-app purchase as quickly as possible. On the main Docs page, the Quickstart guide section walks through onboarding in five simple steps. Quickstart guides walk you through integration in five simple steps. ly what you need. Each SDK has its own Get started section, everything a developer needs to install and configure Adapty, ready to share with your team. Each SDK guide follows a clear structure: install, configure, test, and release. LLM-optimized docs One of our users said it best: “The best documentation is documentation you can feed directly into an LLM. ” We’ve made that possible. Every docs page now includes a View as Markdown option. Click it to see a plain-text version, or use Copy for LLM to grab the entire article instantly. Easily copy any docs page in Markdown or plain text, ready to use with LLMs. We also provide an llms. txt file to help AI tools fetch clean, text-only versions of our docs. For some AI agents (like ChatGPT), you can download the file and upload it directly, making integrations even easier. To learn more, see our detailed guide on using LLMs to implement Adapty. Your feedback shapes what’s next These improvements exist because of the feedback you’ve shared. And we’re not stopping here. Every comment helps us refine the experience further, so don’t hesitate to use the feedback form on any docs page. Share feedback directly on any page — your input shapes the next improvements. Clearer docs. Faster integrations. Less time wasted. That’s our goal and we’re building it together with you. --- The 23rd issue of the Paywall Newsletter is here! Summer is wrapping up, and learning season is around the corner. To mark the occasion, we’ve picked a set of 'education essentials' apps from the App Store and explored how they drive conversions. Ekaterina from MyGroove (music instrument learning app), who previously worked at Mimo and with many other educational apps as an advisor, joined us in studying the niche. Blinkist Last month revenue: $2MLast month downloads: 100K What's working well: Blinkist’s paywall has been evolving over the years. And now, compared to the first 2020 version of the trial timeline, Blinkist goes beyond explaining how the trial works and focuses on why it’s worth starting one. Despite a lot of copy, the layout feels clean and user-friendly, featuring essentials like cancellation reassurance, clear apple-to-apple (in this case, weekly) price comparison, and strong headlines. All this adds to transparency. The CTA “Start your free 7-day trial” is clear and descriptive. What I would test next: I would test a design with a trial toggle to smooth the scepticism of the PRO offer. This interactive choice right on the paywall can spark engagement and increase conversions, as seen by Flo years ago. A comparison table of the PRO and free plan would help visualize the PRO benefits more clearly. Build money-making paywalls in minutes Dozens of customizable templates. No code. Try Paywall Builder Quizlet Last month revenue: $2MLast month downloads: 500K What's working well: Quizlet nails transparency, clearly stating when billing starts and urging cancellations 24 hours before the trial ends, preventing common user frustrations and, potentially, bad ratings and reviews.   The secondary CTA, “Continue using free Quizlet,” sets honest expectations and makes it clear that the freemium version exists. This might hurt conversions, but it probably helps with user retention and decreases app deletions. What I would test next: I’d add benefit-driven points to the trial timeline section, for users to better understand what they unlock today. In the past, I saw the trial opt-in rate increase after crossing out the first “Today” item on the timeline list, thanks to the goal gradient effect. I’d mention (and implement! ) trial expiration reminders. This can provide peace of mind for users with trial anxiety and, hence, boost trust and conversions. Haven't subscribed to our Paywall Newsletter yet? Two fresh issues each month. Straight to your inbox. Subscribe to Paywall Newsletter Brainly Last month revenue: $300KLast month downloads: 80K What's working well: The first screen has a strong headline with stats, social proof, and feature highlights. Thumbs up for that. A friendly “Maybe later” button offers a respectful opt-out, which is refreshing to see in a world of hidden or delayed close buttons. What I would test next: I’d explore alternative designs for the tier comparisons (Plus vs. Tutor) as well as the yearly vs. monthly versions. Right now, it takes considerable effort to understand the differences. As a result, instead of feeling like a benefit, the free trial becomes a source of confusion. I’d test lowering the monthly prices. While I understand that the current prices can be a decoy to encourage users to choose annual plans, it can also be a barrier for those who a) have limited funds, like students, and/or b) aren’t ready to commit to a yearly subscription. A more accessible monthly price could help remove these conversion barriers. The impact on ARPPU and LTV should be tracked, though. Chegg Last month revenue: $500KLast month downloads: 200K What's working well: Chegg uses testimonials styled as tweets - an excellent trust signal. Reviews in a familiar, social format (e. g. , wrapped as Messenger or WhatsApp messages, social media posts, or SMS) often feel more authentic than standard quotes. I’ve never seen this tactic on paywalls so far, but I’ve seen it working well in paid ads. What I would test next: I’d offer at least one alternative to the monthly plan (e. g. , a 3- or a 6-month plan) to diversify the subscription options, catering to users with varying levels of commitment and budgets.   Reducing text density can also make the paid offer easier to digest. And that’s it for this issue. Keep experimenting, keep growing. --- Get from zero Adapty setup to displaying a paywall and processing purchases in under 60 minutes. Pre-requisites Before you begin, make sure you have: A working Flutter app with iOS deployment configured Flutter SDK 3. 0 or later iOS development environment (Xcode, CocoaPods) At least one in-app purchase product created in App Store Connect An Adapty account with your app added to the dashboard, including at least one product, paywall, and placement Project files To follow along with this tutorial, download the project files from GitHub. The starter branch contains the app without Adapty integration, while the main branch contains the finished project. Install the Adapty SDK in your project Add the Adapty Flutter SDK to your pubspec. yaml file: dependencies: flutter: sdk: flutter # Add the following to your dependencies list adapty_flutter: ^3. 10. 0dependencies: flutter: sdk: flutter # Add the following to your dependencies list adapty_flutter: ^3. 10. 0 Run flutter pub get to install the dependencies. iOS Configuration Since Flutter apps require native iOS configuration for in-app purchases, run the following: cd ios && pod install && cd . . cd ios && pod install && cd . . Initialize Adapty in your app First, add these constants to your existing constants management system: class AppConstants { static const String apiKey = "API key goes here"; static const String accessLevelId = "premium"; static const String placementId = "on_tap_history"; }class AppConstants { static const String apiKey = "API key goes here"; static const String accessLevelId = "premium"; static const String placementId = "on_tap_history"; } Find your public SDK key: Adapty Dashboard > Settings > API Keys Next, initialize Adapty in your main. dart file: // Add these import statements to the existing ones: import 'package:adapty_flutter/adapty_flutter. dart'; import 'constants. dart'; void main async { WidgetsFlutterBinding. ensureInitialized; try { // Initialize Adapty with API key await Adapty. activate(configuration: AdaptyConfiguration( apiKey: AppConstants. apiKey, )); // Set up profile update listener Adapty. didUpdateProfileStream. listen((profile) { profileManager. onProfileUpdate(profile); }); } catch (e) { throw Exception('Failed to initialize Adapty: $e'); } runApp(FocusJournalApp(profileManager: profileManager)); }// Add these import statements to the existing ones: import 'package:adapty_flutter/adapty_flutter. dart'; import 'constants. dart'; void main async { WidgetsFlutterBinding. ensureInitialized; try { // Initialize Adapty with API key await Adapty. activate(configuration: AdaptyConfiguration( apiKey: AppConstants. apiKey, )); // Set up profile update listener Adapty. didUpdateProfileStream. listen((profile) { profileManager. onProfileUpdate(profile); }); } catch (e) { throw Exception('Failed to initialize Adapty: $e'); } runApp(FocusJournalApp(profileManager: profileManager)); } This code configures and activates the Adapty SDK. Set up profile handling Next, edit the file lib/providers/profile_manager. dart to add Adapty integration. The primary changes are the addition of the Adapty profile property, the call to update the profile, and the updating of premium status based on the contents of the profile object. // Add these imports to the existing ones: import 'package:adapty_flutter/adapty_flutter. dart'; import '. . /constants. dart'; class ProfileManager extends ChangeNotifier { // Add this property to your list of properties AdaptyProfile? _customerProfile; ... // Add this getter AdaptyProfile? get customerProfile => _customerProfile; ... Future refreshProfile async { _setLoading(true); _setError(null); try { // Remove the network call delay and replace with: final profile = await Adapty. getProfile; _customerProfile = profile; _updatePremiumStatus; _setLoading(false); } catch (e) { _setError("Failed to refresh profile: $e"); _setLoading(false); } } // Add this function to your profile_manager void _updatePremiumStatus { if (_customerProfile == null) { _isPremium = false; return; } final accessLevel = _customerProfile! . accessLevels; if (accessLevel == null) { _isPremium = false; return; } // Check for active, grace period, or lifetime access _isPremium = accessLevel. isActive || accessLevel. isInGracePeriod || accessLevel. isLifetime; notifyListeners; } // Add this function to your profile_manager: void onProfileUpdate(AdaptyProfile profile) { _customerProfile = profile; _updatePremiumStatus; } // All other functions in starter remain the same }// Add these imports to the existing ones: import 'package:adapty_flutter/adapty_flutter. dart'; import '. . /constants. dart'; class ProfileManager extends ChangeNotifier { // Add this property to your list of properties AdaptyProfile? _customerProfile; ... // Add this getter AdaptyProfile? get customerProfile => _customerProfile; ... Future refreshProfile async { _setLoading(true); _setError(null); try { // Remove the network call delay and replace with: final profile = await Adapty. getProfile; _customerProfile = profile; _updatePremiumStatus; _setLoading(false); } catch (e) { _setError("Failed to refresh profile: $e"); _setLoading(false); } } // Add this function to your profile_manager void _updatePremiumStatus { if (_customerProfile == null) { _isPremium = false; return; } final accessLevel = _customerProfile! . accessLevels; if (accessLevel == null) { _isPremium = false; return; } // Check for active, grace period, or lifetime access _isPremium = accessLevel. isActive || accessLevel. isInGracePeriod || accessLevel. isLifetime; notifyListeners; } // Add this function to your profile_manager: void onProfileUpdate(AdaptyProfile profile) { _customerProfile = profile; _updatePremiumStatus; } // All other functions in starter remain the same } Create the paywall view Create a file in lib/views called paywall_view. dart with the following contents: import 'package:flutter/material. dart'; import 'package:provider/provider. dart'; import 'package:adapty_flutter/adapty_flutter. dart'; import '. . /providers/profile_manager. dart'; import '. . /constants. dart'; class PaywallView extends StatefulWidget { const PaywallView({super. key}); @override State createState => _PaywallViewState; } class _PaywallViewState extends State { // AdaptyPaywall stored for potential future use (analytics, etc. ) List? _products; bool _isLoading = true; bool _isPurchasing = false; String? _error; @override void initState { super. initState; _loadPaywall; } Future _loadPaywall async { try { setState( { _isLoading = true; _error = null; }); final paywall = await Adapty. getPaywall( placementId: AppConstants. placementId, ); final products = await Adapty. getPaywallProducts(paywall: paywall); setState( { _products = products; _isLoading = false; }); } catch (e) { setState( { _error = 'Failed to load paywall: $e'; _isLoading = false; }); } } Future _makePurchase(AdaptyPaywallProduct product) async { setState( { _isPurchasing = true; _error = null; }); try { final purchaseResult = await Adapty. makePurchase(product: product); switch (purchaseResult) { case AdaptyPurchaseResultSuccess(profile: final profile): if (mounted) { context. read. onProfileUpdate(profile); // Show success and close paywall ScaffoldMessenger. of(context). showSnackBar( const SnackBar( content: Text('Purchase successful! Welcome to Premium! '), backgroundColor: Colors. green, duration: Duration(seconds: 3), ), ); Navigator. of( context, ). pop(true); // Return... --- Get from zero Adapty setup to displaying a paywall and processing purchases in under 60 minutes. Pre-requisites Before you begin, make sure you have: A working Android app with Kotlin and Jetpack Compose Android Studio with minimum SDK 24 or later Google Play Console setup for in-app purchases At least one in-app purchase product created in Google Play Console An Adapty account with your app added to the dashboard, including at least one product, paywall, and placement Project files To follow along with this tutorial, download the project files from GitHub. The starter branch contains the app without Adapty integration and a mocked purchase experience, while the main branch contains the finished project. Install the Adapty SDK in your project Add the following to the versions section of the libs. versions. toml file: adaptyBom = "3. 10. 0" adaptyBom = "3. 10. 0" Then, in the same file, add the following definitions to the Libraries section: adapty-android-sdk = { module = "io. adapty:android-sdk" } adapty-bom = { module = "io. adapty:adapty-bom", version. ref = "adaptyBom" } adapty-android-sdk = { module = "io. adapty:android-sdk" } adapty-bom = { module = "io. adapty:adapty-bom", version. ref = "adaptyBom" } And finally, add the Adapty Android SDK to your app-level build. gradle. kts file: dependencies { // ... Other dependencies // Adapty SDK implementation(platform(libs. adapty. bom)) implementation(libs. adapty. android. sdk) }dependencies { // ... Other dependencies // Adapty SDK implementation(platform(libs. adapty. bom)) implementation(libs. adapty. android. sdk) } Sync your project to install the dependencies. Initialize Adapty in your app First, add these constants to your utils/AppConstants. kt file: package io. adapty. FocusJournal. utils object AppConstants { object Adapty { const val API_KEY = "API key goes here" const val ACCESS_LEVEL_ID = "premium" const val PLACEMENT_ID = "on_tap_history" } }package io. adapty. FocusJournal. utils object AppConstants { object Adapty { const val API_KEY = "API key goes here" const val ACCESS_LEVEL_ID = "premium" const val PLACEMENT_ID = "on_tap_history" } } Find your public SDK key: Adapty Dashboard > Settings > API Keys Next, initialize Adapty in your FocusJournalApplication. kt file: package io. adapty. FocusJournal // ... Existing imports import com. adapty. Adapty import com. adapty. models. AdaptyConfig. Builder import io. adapty. focusjournal. utils. AppConstants class FocusJournalApplication : Application { // ... override fun onCreate { super. onCreate // Initialize Adapty SDK Adapty. activate(this, Builder(AppConstants. Adapty. API_KEY). build) } }package io. adapty. FocusJournal // ... Existing imports import com. adapty. Adapty import com. adapty. models. AdaptyConfig. Builder import io. adapty. focusjournal. utils. AppConstants class FocusJournalApplication : Application { // ... override fun onCreate { super. onCreate // Initialize Adapty SDK Adapty. activate(this, Builder(AppConstants. Adapty. API_KEY). build) } } This call configures and activates the Adapty SDK when your app launches. Set up profile handling Next, edit the ProfileManager. kt file to add Adapty integration. The primary changes are the addition of the Adapty profile property, the call to refresh the profile, and updating premium status based on the profile's access levels. package io. adapty. FocusJournal. viewmodel // Add these import statements import com. adapty. Adapty import com. adapty. models. AdaptyProfile import com. adapty. utils. AdaptyResult import io. adapty. focusjournal. utils. AppConstants import javax. inject. Inject import javax. inject. Singleton // Update class to act as a singleton // and add @Inject constructor after class name @Singleton class ProfileManager @Inject constructor( private val journalRepository: JournalRepository ) : ViewModel { // Add the customer profile and isLoading values private val _customerProfile = MutableStateFlow(null) val customerProfile: StateFlow = _customerProfile. asStateFlow private val _isLoading = MutableStateFlow(false) val isLoading: StateFlow = _isLoading. asStateFlow // Update the existing isPremium declaration to pull data from the profile val isPremium: StateFlow = customerProfile. map { profile -> profile? . accessLevels? . get(AppConstants. Adapty. ACCESS_LEVEL_ID)? . let { accessLevel -> accessLevel. isActive || accessLevel. isInGracePeriod || accessLevel. isLifetime } ? : false }. stateIn( scope = viewModelScope, started = SharingStarted. WhileSubscribed(5000), initialValue = false ) // Add an init function to refresh the profile immediately init { refreshProfile } // Delete this function as it's no longer needed fun mockPurchasePremium { // ... } // Add this function to update the profile from Adapty's servers fun refreshProfile { viewModelScope. launch { _isLoading. value = true Adapty. getProfile { result -> when (result) { is AdaptyResult. Success -> { val profile = result. value _customerProfile. value = profile } is AdaptyResult. Error -> { _customerProfile. value = null } } } _isLoading. value = false } } // Add this function to update the profile after the user performs a purchase fun subscriptionPurchased(profile: AdaptyProfile) { _customerProfile. value = profile } }package io. adapty. FocusJournal. viewmodel // Add these import statements import com. adapty. Adapty import com. adapty. models. AdaptyProfile import com. adapty. utils. AdaptyResult import io. adapty. focusjournal. utils. AppConstants import javax. inject. Inject import javax. inject. Singleton // Update class to act as a singleton // and add @Inject constructor after class name @Singleton class ProfileManager @Inject constructor( private val journalRepository: JournalRepository ) : ViewModel { // Add the customer profile and isLoading values private val _customerProfile = MutableStateFlow(null) val customerProfile: StateFlow = _customerProfile. asStateFlow private val _isLoading = MutableStateFlow(false) val isLoading: StateFlow = _isLoading. asStateFlow // Update the existing isPremium declaration to pull data from the profile val isPremium: StateFlow = customerProfile. map { profile -> profile? . accessLevels? . get(AppConstants. Adapty. ACCESS_LEVEL_ID)? . let { accessLevel -> accessLevel. isActive || accessLevel. isInGracePeriod || accessLevel. isLifetime } ? : false }. stateIn( scope = viewModelScope, started = SharingStarted. WhileSubscribed(5000), initialValue = false ) // Add an init function to refresh the profile immediately init { refreshProfile } // Delete this function as it's no longer needed fun mockPurchasePremium { // ... } // Add this function to update the profile from Adapty's servers fun refreshProfile { viewModelScope. launch { _isLoading. value = true Adapty. getProfile { result -> when (result) { is AdaptyResult. Success -> { val profile = result. value _customerProfile. value = profile } is AdaptyResult. Error -> { _customerProfile. value =... --- TL;DR: Effective Apple Ads analysis starts with proper attribution setup to track subscription revenue, not just downloads. Use Share of Voice analysis to identify scaling opportunities, segment users by acquisition keywords for personalized experiences, and focus on ROAS metrics rather than vanity metrics. Key optimization tactics include dynamic keyword discovery, bid optimization based on impression share, and Custom Product Pages matched to search intent. Apple Ads delivers 60%+ conversion rates, but most subscription apps struggle to scale profitably because they focus on the wrong metrics and lack proper analysis frameworks. The difference between successful campaigns and budget drains comes down to analyzing the right data and optimizing for subscription revenue, not just installs. Most advertisers are optimizing for the wrong outcomes. They're focused on downloads while their actual business runs on subscriptions. It's like judging a restaurant by how many people walk through the door instead of how much they spend on dinner. In this guide based on insights from our recent webinar, we'll walk through how to set up proper analysis infrastructure and the optimization strategies that actually move the needle for subscription apps. What makes Apple Ads different for subscription apps? Before diving into analysis techniques, you need to understand why Apple Ads requires a completely different analytical approach than other channels. 1. Attribution without App Tracking Transparency headaches Here's the critical advantage most people miss: Apple Ads attribution doesn't rely on App Tracking Transparency prompts or SKAdNetwork setup. This means you can track deep conversion events, like subscription activations, renewal rates, and lifetime value, with complete confidence in your attribution data. For subscription apps with complex conversion funnels, this changes everything. You can accurately measure not just who downloaded your app, but who completed onboarding, started trials, converted to paid subscriptions, and remained active months later. 2. High-intent users require different analysis Apple Ads reaches people actively searching for solutions in the App Store. With over 600 million weekly active users, you're accessing them at the moment they're most likely to download an app. This high-intent traffic converts differently than social media or display traffic, requiring specialized analysis approaches. How to set up proper Apple Search Ads analysis? Effective analysis starts with the right campaign structure and attribution setup. Without these fundamentals, you'll be optimizing based on incomplete or misleading data. Essential campaign structure for clean analysis The recommended structure for subscription apps includes: Brand defense campaign → targeting your app name and branded terms. Competitor campaign → targeting competitor app names and branded keywords. Generic terms campaign → targeting category and feature-related keywords. Discovery campaign → using Apple's Search Match algorithm to find new keywords. Key insight from our webinar: Treat your Discovery Campaign as a keyword research engine, not a permanent acquisition channel. Set lower bids and budgets for Discovery, then migrate proven keywords to dedicated campaigns with higher budgets. This approach prevents the classic mistake of letting Discovery campaigns eat your budget on irrelevant traffic while starving your proven keywords of investment. How do I track subscription revenue from Apple Ads? For subscription apps, you need to track beyond downloads to subscription revenue. With Adapty, you can integrate Apple Ads attribution with just a few clicks through the AdServices framework, no MMP required. This integration allows you to analyze: Revenue and MRR by keyword and campaign ARPU by acquisition source LTV calculations in real-time Cohort analysis showing user behavior over time Subscription conversion rates at different intervals Pro tip: Most attribution setups focus on first-session events. For subscription apps, you need to track the entire user journey from download to renewal, sometimes spanning months. What Apple Search Ads metrics should I analyze? Most Apple Ads advice focuses on vanity metrics that don't correlate with business success. Here's what actually drives profitable growth. Focus on revenue metrics ROAS is everything. Not CPC, not installs, not tap-through rates. Only ROAS tells you whether campaigns generate profitable growth. Key metrics to track: Cost per subscriber (not just cost per install) LTV:CAC ratio by keyword cluster Subscription conversion rate by acquisition source Revenue attribution down to the keyword level Churn patterns by traffic source Think about it this way: Would you rather have 1,000 downloads that generate $500 in revenue, or 100 downloads that generate $2,000? The math is obvious, but most campaign optimization completely ignores it. Share of Voice analysis for scaling opportunities One of the most powerful but overlooked metrics is impression share by keyword. Apple reports this in ranges (like 90-100%), and understanding these ranges reveals scaling opportunities most advertisers miss. The 90% rule → if you have 90-100% impression share for a well-performing keyword, you've maximized that keyword's potential. Focus additional budget on new keywords rather than increasing bids further. Budget vs Bid analysis: Low impression share + not spending full budget = increase bids Low impression share + spending full budget = increase daily budget High impression share + good performance = test lowering bids to free up budget This framework prevents the common mistake of endlessly bidding up on keywords you've already maximized, while missing opportunities to expand your reach. How do I know which keywords drive high-value subscribers? Keyword analysis goes beyond basic performance metrics to understand user intent and conversion patterns, the secret to sustainable scaling. User segmentation by acquisition keywords Not all downloads convert equally. Users searching for "free fitness app" have completely different intentions than those searching for "personal trainer app. " Create intent-based segments: Price-sensitive users: "free app," "cheap app" keywords Feature-focused users: "calorie counter," "workout tracker" keywords Premium users: "professional app," "premium features" keywords Analyze each segments: Subscription conversion rates Time to first payment Lifetime value Churn patterns This segmentation reveals why some keywords that look expensive deliver your highest-value customers, while "cheap" keywords might be bleeding money through high churn rates. Dynamic keyword discovery analysis To maximize the effectiveness of your Discovery campaign, implement what we call a dynamic pipeline where: The Discovery campaign is assigned lower bids and lower daily budgets than other campaigns.... --- TL;DR: Skip Basic mode. Start with exact match. Target 70-90% Share of Voice. Focus on ROAS over everything else. Most campaign structures break at scale. Apple Ads can either be a goldmine or a money pit. The difference between profitable campaigns and budget-burning disasters comes down to execution fundamentals that most advertisers get wrong. Here's what you need to know to run profitable Apple Search Ads campaigns without wasting your budget on common mistakes. Should I use Basic or Advanced mode for Apple Ads? Most Apple Ads advice starts with the wrong premise. The conventional wisdom start broad, let Apple learn, gradually optimize sounds reasonable but wastes money and time. Here's what actually happens when you follow standard advice: Broad match burns budget on irrelevant traffic, Apple's "learning phase" means weeks of poor performance, and you end up optimizing campaigns built on shaky foundations. Always work in Advanced mode. Every profitable campaign I've analyzed uses Advanced mode exclusively. How much should I spend testing Apple Ads keywords? Your goal isn't to test everything. It's to quickly identify which markets and keywords can profitably drive users for your app. This requires strategic focus, not scattered testing. Geographic strategy based on real data The biggest mistake I see is treating all international markets the same. They're not. Each market has distinct competitive dynamics, user behavior patterns, and economic realities. Always separate the US market. It deserves dedicated campaigns because the competitive landscape and CPC levels make it impossible to optimize alongside other regions. For international expansion, create strategic tiers: Tier 1: UK, Germany, Australia, Canada, Netherlands, Switzerland, Austria, etc. Tier 2: Czech Republic, Hungary, Estonia, Latvia, Lithuania, Portugal, etc. They're based on iOS market penetration, GDP per capita, and advertising competition levels. Tier 2 markets often deliver better ROAS because competition is lower while purchasing power remains decent. Don't automatically dismiss emerging markets, but approach them strategically. Latin America and APAC can work brilliantly for apps with strong local appeal or competitive pricing. However, they require more time and budget to find profitable keywords, so tackle them after you've mastered Tier 1 and Tier 2. Budget allocation principle. Start with maximum two tier campaigns. Concentrate your budget for faster, cleaner learning. The Exact Match reality check Here's an uncomfortable truth most guides won't tell you: broad match rarely delivers meaningful insights. Broad match problems are systemic: Apple's interpretation of "broad" often includes wildly irrelevant traffic. You get mixed traffic quality that's impossible to optimize effectively. Start with exact match campaigns built on solid keyword research instead. This approach works because you're targeting pre-validated, high-intent search terms from day one. The research-first methodology: Use multiple keyword tools to identify relevant search terms in your category. Launch exact match campaigns with thematic keyword groupings. Structure as one theme per ad group (habit tracker general, meditation specific, water tracking specific). Skip the expensive "discovery" phase entirely. How do I scale Apple Search Ads campaigns? Throwing more money at the same campaign structure is the fastest way to tank your ROAS. The campaigns that worked for research will actively hurt you at scale. Why research structures fail at scale The campaign structure that worked for discovery creates systematic problems when you're trying to scale. Apple doesn't distribute impressions evenly across keywords within ad groups. Some keywords dominate while others get starved of traffic. You can't control spend per keyword except through bidding wars. Multiple keywords per ad group create mixed traffic quality that becomes impossible to optimize. The solution: Evolve to granular structures that give you precise control over budget allocation and performance optimization. Campaign architecture Level 1 scaling: Keyword-focused structure One campaign per winning geo Mix of SKAG (Single Keyword Ad Groups) for high-volume terms Multi-keyword ad groups for smaller, thematically related terms 100% exact match keywords for traffic quality Level 2 scaling: Strategic segmentation Separate campaigns by theme combined with keyword ARPU potential High-ARPU keywords get dedicated campaigns with aggressive bidding strategies Lower-ARPU keywords grouped for operational efficiency This segmentation matters more than difficulty scores or popularity metrics Level 3 scaling: Maximum granularity for winners Individual campaigns for absolute best-performing keywords Custom Product Pages aligned to specific keyword intent Dedicated budget allocation based on strategic priority and profit potential Watch our detailed walkthrough of the Apple Ads campaign structure with OtherWayAround to identify profitable terms before launching campaigns: https://youtu. be/SzX2Yx8_gq0 The share of voice strategy Target 70-90% Share of Voice for your best-performing keywords but only while ROAS stays strong. This metric lives in Custom Reports and shows how much available traffic you're actually grabbing. Most people completely ignore it. Here's what actually happens: Most advertisers think their bids are "high enough" when they're capturing 30% of available impressions. Meanwhile, competitors are scooping up the other 70% of potentially profitable traffic. Keep pushing your SoV higher until ROAS starts tanking that's when you stop. Don't assume high Share of Voice will kill your margins without testing it. You might find that 80% SoV at 3. 5x ROAS brings in way more total profit than 30% SoV at 4. 2x ROAS. Bid optimization methodology: No delivery → increase bids aggressively until you see traffic. Getting spend but low SoV → gradually increase bids to hit 70-90% range. High SoV but poor ROAS → question keyword relevance or pause. Most advertisers obsess over finding the "perfect" CPC. Wrong focus. You want to capture enough share of profitable traffic to make scaling work, even if individual clicks cost more than you'd prefer. What are the best Apple Ads optimization tactics? Campaign structure evolution for maximum control As your campaigns mature, you'll hit Apple's delivery limitations even with tight keyword structures. Adding more campaigns won't solve this. Apple matches your app + keyword combination regardless of how you structure things. The solution: Fix your App Ads optimization first. Apple factors your app's organic relevance before considering your bid. When your app ranks organically for a keyword, your Apple Ads become more competitive. Higher relevance drops your CPCs and... --- We broke down calorie counter apps and their paywalls to see how they convert users. The 22nd issue of the Paywall Newsletter is here! Calorie counters are hot right now, and it's not just the August sun. Cal AI’s viral growth and impressive conversion rates have sparked interest in the niche. Established players and newcomers are now refining their monetization strategies. We've asked Alex Vech from ScreensDesign to break down six top-performing calorie counter apps to see how they turn users into paying subscribers. Grab a bite and let's dive in. MyFitnessPal: Calorie Counter Last month revenue: $13M Last month downloads: 1M Setting the scene: MyFitnessPal's paywall is doing something smart – its premium features are logically tiered, not bundled into one expensive plan. What's working well: The Premium vs Premium+ split with distinct use cases works well. That 67% annual discount hits hard, making this choice a no-brainer. What's worth testing: $19. 99/month might feel pricy; worth testing a $9. 99 entry tier to capture more users. Social proof, like a "most popular" badge on a plan, could be useful. Build money-making paywalls in minutes Dozens of customizable templates. No code. Try Paywall Builder Cal AI - Calorie Tracker Last month revenue: $2M Last month downloads: 800K Setting the scene: Cal AI nailed the trial flow. I’d call it a masterclass in reducing trial anxiety and removing every possible friction point. What's working well: The three-screen trial explanation is genius. Straightforward, no surprises. "Try for $0. 00" emphasizes the no-cost aspect without commitment language That yearly price ($2. 49/mo vs $9. 99/mo) makes the annual plan look like stealing. 75% off hits different than most apps' 50%. Showing AI food scanning gives a taste of the core value prop before they even start. What's worth testing: Social proof, like user count or testimonials, can help build trust before the trial starts. "Continue for FREE" on screen 2 is redundant after "Try for $0. 00. " Could use that real estate for feature highlights instead. Aren't subscribed to our Paywall Newsletter yet? Get two fresh issues each month. Straight to your inbox. Subscribe to Paywall Newsletter Calorie Counter - MyNetDiary Last month revenue: $1M Last month downloads: 300K Setting the scene: MyNetDiary plays the exit-intent game perfectly. When users try to bail on the first paywall, they get pulled into a softer trial flow that's much harder to resist. What's working well: The hard sell → soft trial progression is psychology gold. First screen pushes the annual plan hard, then the exit flow offers a risk-free trial. Social proof with specific numbers beats vague claims every time. "FREE TRIAL" badge on the second screen feels like a reward, not a consolation prize. "Risk-free. Cancel anytime" removes the biggest objection. What's worth testing: $59. 99/year vs $8. 99 monthly makes the annual feel like the smartest choice. Testing a $6. 99 monthly price could attract users hesitant to commit annually. "I Don't Want It" button feels harsh. "Maybe Later" could work better to keep the door open for retargeting. AI Calorie Counter - Appediet Last month revenue: $500K Last month downloads: 200K Setting the scene: Appediet built their paywall like a product demo. Users see exactly what they're buying through smooth animations and real interface previews before committing to anything. What's working well: The visual-first approach is brilliant, making the value instantly clear. Animation confirmations ("You're Premium now") feel rewarding. $0. 96/week pricing is psychological gold and feels almost free, even though it's $50/year. The 6-month option at $39. 99 looks like a deal compared to weekly billing, even though it's actually more expensive annually ($80 vs $50). What's worth testing: Weekly billing works for micro-commitments but might increase churn. Worth testing monthly at $3. 99 to see if retention improves. The animations are smooth but might slow down impatient users. Try to A/B test a static version for speed vs. engagement. Social proof or testimonials could strengthen trust. Cronometer: Calorie Counter Last month revenue: $600K Last month downloads: 200K Setting the scene: Cronometer takes a different approach – no hard paywall, just gentle nudges everywhere. Users can experience the free version, but they get reminders of what they're missing. What's working well: Personalization makes the upgrade feel like a personal recommendation, not a generic sales pitch. The 55% annual discount creates urgency. $5. 00/month vs $10. 99/month makes the annual plan obvious without being pushy. In-app contextual prompts are brilliant – they educate about what Gold offers, not block all features. What's worth testing: The feature explanations are detailed but could use more urgency, like "Join 50K+ Gold users" or time pressure. $10. 99/month is steep compared to competitors. Might be good to test a smaller price tag. HitMeal Calorie & Food Tracker Last month revenue: $400K Last month downloads: 90K Setting the scene: HitMeal went full gamification with their 3D avatar approach. It's like looking at your fitness goals as a video game character – surprisingly effective for motivation. What's working well: The 3D avatar showing actual body metrics (weight, calories, water) makes goals feel tangible and achievable. "3x RESULTS FOR HALF THE PRICE" creates serious FOMO Trial toggle is a brilliant UX – users can choose their comfort level (trial vs direct purchase) without leaving the screen. $19. 99/year is competitively priced, while the weekly option at $9. 99 makes the annual look like a steal. What's worth testing: Gamification may attract younger users, while a traditional "before/after" method might suit other demographics. Adding a countdown timer or "expires in 24 hours" to create scarcity can be a good idea. An option to personalize the avatar could increase emotional connection. Bonus – what we see on Google Trends If you search for “calorie counter” on Google Trends, you’ll notice a clear pattern: interest spikes every January. But this year, something different happened. Cal AI’s success story went viral in March, driving even more attention to the app niche and surpassing the usual “new year, new me” surge in search interest. So, if you see a competitor making headlines, don’t retreat. It might actually be the... --- Health & Fitness apps have become the proving ground for sophisticated subscription upsell mechanics on iOS. They consistently out‑innovate other categories in: Onboarding persuasion and trust building Web‑to‑app funnels and cross‑channel coordination Multi‑offer sequencing  Review‑safe UI patterns that survive app review rejections While other categories get slapped with multiple rejections for discount offers & multiple paywalls, Health & Fitness teams are shipping state‑of‑the‑art flows that pass Apple’s scrutiny and convert. Let’s see how they do it. Why Health & Fitness category leads the pack High perceived value but also high skepticism. Users question efficacy ("Will this actually help me? "), so apps must prove value fast and de‑risk the purchase. Habit formation requires an ongoing push. This creates natural touchpoints for multiple, context‑aware upsells. Rich content depth. From workouts to meal plans to meditation libraries, there’s enough value to slice into differentiated plans and time‑boxed offers. Competitive market pressure. With skyrocketing UA costs, teams aggressively test funnels to maximize LTV faster than competitors. Case study #1: Foodvizor. Trust first, then play  Foodvizor exemplifies the Health & Fitness playbook by layering trust, excitement and value reminders before every pitch. 1. Trust before the paywall 30‑day money‑back guarantee shown before the first paywall. Purpose: Lower risk perception and pre‑empt objections ("What if it doesn’t work for me? "). 2. A clean first paywall No fluff: There were 50 onboarding screens to prove the value. Now it’s time for the user to decide (No pressure) Two products only (e. g. , Monthly vs. Annual) to reduce decision friction. Repeated money‑back promise to reinforce safety. 3. Missed it? Gamify the second touch Spinning wheel mechanic appears after the initial decline. First spin: Meh. Not great. Creates an anchor. Second spin: The “real deal” at 75% off. Surprise & delight, plus a sense of earned reward. Didn’t work? 4. The last resort: countdown banner on home A discount countdown banner dominates the home screen if the user still hasn’t converted. Between the home screen and the final purchase, Foodvizor inserts value delivery moments to remind users that the app already helps them and make this last offer even more attractive.   12 screens, 3 offers, 1 game, 1 “lucky moment” and constant value reinforcement. That’s the Foodvizor funnel architecture in a sentence. Case study #2: Fastic. Paint the future, pump the dopamine Fastic runs a very similar play to Foodvizor’s, but the emotional driver flips: less “we’ve got your back” transparency, more dopamine/oxytocin‑fuelled excitement and vivid future‑self framing. 1. Discount code, right out of the gate The flow starts with a gift: a discount code appears immediately. It’s unexpected, feels generous and sets the mood: “I’m already winning here. ” 2. The big, long, everything paywall Fastic’s primary paywall is a buffet of persuasion techniques. No stone unturned: Clear discounts front and center Decoy pricing to steer choice “Cheaper than one meal” comparison (A classic we rarely see anymore. Nice! ) Text value promises for scanners Visual feature tiles matched to the user’s imagination Plan comparison tables for the rational audience Before & After visuals for the emotional audience Social proof/recognition as the cherry on top Every possible lever gets pulled to bend the user toward one inevitable conclusion: that’s worth paying for. 3. Didn’t bite? Spin the wheel Yup, the spinning wheel returns. Pumped‑up excitement, even bigger discount right after the starting discount. The second‑chance mechanic increases desire. Maybe THIS time I’ll get the crazy deal? Yes! FOREVER DISCOUNT! What a catch! Still no conversion here? 4. Home screen banner → Straight to subscribe A limited-time offer banner with a very strong copy lives on the home screen. Smart twist: tapping the banner triggers the purchase directly, skipping a full paywall revisit. Fewer doubts, fewer exits. Same skeleton as Foodvizor. Different soul. Foodvizor reassures. Fastic exhilarates. Case Study #3: Lose It! Simpler funnel, ruthless loss aversion Lose It! keeps the flow short but still punches hard by weaponizing loss aversion and a gentle emotional roller coaster. 1. “Free start” framing before the paywall The journey tees up a free start before you ever see pricing. Expectation set: you’re getting something for nothing. Nice and safe. 2. Classic paywall... Then the twist when you close it The paywall itself is very much classic. Close it. And oops. Lose It! tells you this was the only chance for a free trial. Scarcity flips on, loss aversion engaged. They quietly attach a small discount here. It’s not a new paywall per se. It’s an explanation that just so happens to pitch you again. 3. Decline again? Double down on loss If you still back out, the app forces you to explicitly choose the basic plan and acknowledges you’ll “lose access” to premium features. It stings on purpose. Micro‑regret installed. 4. Push, promise, payoff Next, a motivational push notification swoops in: “64% of users like you hit their goal. ” Hope spikes. Perfect timing for the final discount. Sad → hopeful → rewarded: a mini dopamine arc that ends in conversion. Bonus case: Flo. Guilt trip, then a hug (with a discount) Flo runs a cousin tactic with a softer, brand‑fit wrapper. Reject the bear (Did you? Heartless creature). But it’s okay. You’re still cheared up and ready to start. And guess what? There’s even a little gift waiting for you: a surprise discount. Two quick value/excitement screens later... surprise discount. Same structure as Lose It! : guilt → relief → gift but tuned to Flo’s audience and visual language. Pattern library: What top Health & Fitness apps do differently Here are proven patterns you can adapt and apply for almost any app, even outside Health & Fitness. 1. Trust accelerators Money‑back guarantees are displayed upfront Social proof in contextual snippets (testimonials tied to the step the user is on) Transparent pricing / eligibility messaging (“You already used the free trial last year, here’s a different kind of deal... ”) 2. Intent moments List all touchpoints where a user’s motivation & curiosity spike and use them to offer... --- Here's how to use Apple Search Ads to run your app ads inside the App Store. Also, see how Apple Search Ads Basic compares with Advanced. TL;DR: Use Apple Ads Basic for testing ($10K/month limit, auto-managed) or Advanced for full control (unlimited budget, all App Store placements). Optimize for subscription revenue, not just installs. Most “cheap” keywords deliver tire-kickers, while “expensive” ones often bring paying users. Apple Ads remains one of the most effective ways to acquire high-intent users for iOS apps. With over 600 million weekly App Store visitors, it’s where users are literally one tap away from downloading your app. But most developers face a critical gap: connecting ad spend to actual revenue. While Apple’s dashboard shows installs and clicks, it doesn’t reveal which keywords drive paying subscribers versus non-converting users. This guide covers everything you need to know about Apple Ads and how to solve the attribution gap that’s costing you profitable growth. What is Apple Ads? Apple Ads is Apple’s official advertising platform for the App Store. It offers two distinct solutions designed for different stages of your growth: Apple Ads Basic Apple Ads Advanced Let’s dive into both, starting with Apple Ads Basic. Apple Ads Basic Best for: Beginners testing App Store advertising potential. Apple Ads Basic is a fully managed solution: you set a budget and let Apple handle the rest. Key features: Cost-per-install (CPI) pricing. You only pay when someone downloads your app Single ad placement. Ads appear only at the top of search results Maximum 50 apps per account Monthly budget cap: $10,000 per app Limitations: No keyword control, limited targeting, and basic reporting that ends at the install. Apple Ads Basic: 3-step setup Step 1: Choose your countries/regions Choose your battlefield: promote globally across all available markets or focus on specific high-value regions. Pro tip: Start narrow. Pick 3-5 countries where your app already performs well organically. You can always expand once you identify winning markets. Step 2: Set a monthly budget Set your monthly investment ceiling, anywhere from $100 to $10,000 per app. Budget flexibility rules: Scaling up → Increase anytime to capture more opportunities Scaling down → Changes only take effect next calendar month (Apple needs time to adjust pacing) If you're ready to invest more than $10,000 monthly per app, Apple Ads Advanced removes all budget restrictions and unlocks advanced targeting. Step 3: Set a max CPI The max CPI is the maximum amount that you’d spend to get an app install. And this is where most beginners stumble. Your maximum CPI determines your competitive positioning in Apple's auction system. The platform analyzes your app category, competitor bids, and historical performance to suggest optimal CPIs. Ignore this at your own risk. Apple continuously refines suggestions based on: Seasonal trends  Real-time competitor activity Your app's conversion performance Market demand fluctuations Start with Apple's suggested CPI or 10-20% higher. Lower bids = fewer impressions. Higher bids = more visibility but watch your unit economics. What Apple Ads Basic automates No keyword research needed. Apple matches your ads to relevant searches using your App Store listing, app category, and similar successful apps. Zero creative work. Ads auto-generate from your existing App Store assets. This makes Apple Ads optimization crucial, your listing IS your ad creative. Custom Product Pages amplify performance. Create up to 35 variations with different screenshots, videos, and messaging. Apple tests these automatically to find your best-converting combination. The hidden limitation Here's what Apple Ads Basic won't tell you: you're optimizing blind. Apple shows you got 100 installs at $3. 50 CPI, but doesn't reveal: How many started trials Which users became paying subscribers Your actual return on ad spend Lifetime value by user cohort As a result, you might pause "expensive" keywords that actually deliver your highest-value subscribers while scaling "cheap" keywords that bring tire-kickers. Fix it: Connect Apple Ads Basic to revenue attribution (like Adapty) to see which campaigns drive real business growth. 10 steps to set up Apple Ads Advanced Best for: Growth teams ready for granular control, unlimited budgets, and comprehensive App Store coverage. Apple Ads Advanced transforms your advertising from basic search placements to complete App Store domination. Using a cost-per-tap (CPT) pricing model, you only pay when users actively engage with your ads. With Advanced, you can promote unlimited apps without the $10,000 monthly budget cap. More importantly, you gain granular control over every aspect of your campaigns from precise keyword bidding to advanced audience targeting. The setup process is comprehensive but powerful. Here's your complete roadmap: Step 1: Ad placements Your first critical decision determines where your ads appear across the App Store ecosystem. Apple Ads Advanced offers four prime advertising real estate options: Today tab When users tap the App Store icon, they land here first, making this the most visited section of the entire platform. Today tab ads capture users in discovery mode, perfect for building awareness and driving impulse downloads. Best for: Brand building, seasonal campaigns, and reaching users who aren't actively searching yet. Search tab Over 70% of App Store visitors use search functionality. Search tab ads appear in the "Suggested" section before users even start typing, letting you capture high-intent traffic at the perfect moment. Best for: Intercepting users with search intent and competitive conquest campaigns. Search results Apple reports that 65% of app downloads happen directly after an App Store search. This placement puts your ads above organic results when users search for your target keywords, the same functionality available in Apple Ads Basic, but with full customization control. Best for: Keyword-driven acquisition and protecting branded search terms. Product pages Show your ads directly on competitors' app listing pages. This placement captures users at the moment they're evaluating alternatives, giving you a final chance to steal conversions. Best for: Competitive conquest and category expansion strategies. Step 2: Geographic targeting & market strategy Once you've selected ad placements, define where your ads will run. Apple Ads Advanced allows intelligent location grouping for streamlined campaign management. Pro strategy: Group similar markets together (like clustering all European countries) to simplify bid management while maintaining regional budget control. Step 3: Campaign foundation setup Campaign naming. Use descriptive,... --- To sell an app to buyers, you need to speak the buyer’s language. And speaking their language is not easy. When you’re selling your app, you’re looking at it as your baby — that project where you allocated so many hours, went back and forth with ideas, and asked for support from different friends to make it happen. But buyers don’t see it the same way — buyers are investors. And they see your app as a simple asset composed of lines of code and a marketing engine. My firm’s role is to find a common ground where both parties can get what they want.   In this article, I elaborate more on the questions every developer aiming for an exit has: What platforms should you develop for How distribution channels can boost your app valuation  And how to calculate the value of your app (a template provided) This article is for you, the builders who are ready for an exit. What platforms should you develop apps in? iOS is definitely trendy in the #buildinpublic and developer community in general. But in reality, there’s a demand for an Android market that is underserved, too.   Web is also relevant when it comes to web-to-app funnels and app-to-web funnels (higher subscriber retention, lower platform fees), and also to support retaining your users by providing a broader experience with different functionalities and features. Something I’m currently seeing in the market that doesn’t appeal to buyers is apps that are solely live on iOS with a single distribution channel, for example, TikTok influencer marketing.   Why?   The entire business relies heavily on two platforms, which are not under the buyers’ control: Apple can make any changes, TikTok algorithm can change too, and if any of that happens, your business is screwed.   It’s fine if iOS is the primary source of revenue for your app, but you will have a stronger case if you distribute and convert through other platforms too.   This also broadens your potential buyer spectrum, since you will cover the ones that favor iOS, the ones that favor Android, and the ones who prefer both. Do you need AI in your app to boost its valuation? AI tech ≠ AI wrappers: AI tech is shaping the future.   AI wrappers are jumping on the hype wave of AI, but as it was with the WWW and with Web3, only the best ones will thrive. As a developer who wants to exit, you need to consider if your business will be valuable five years from now, when the AI hype subsides. Don't build your entire business around AI. Build it around real problems that won't lose relevance over time.   Most buyers want to see AI involved in your offering, either in processes, tech, product, or distribution. But AI as a moat happens only when you have advanced technology that is harder to replicate.   An interesting highlight from a SensorTower report presents the following: IAP revenue from AI Chatbot and AI Art Generators climbed from $30 million in 2022 to $455 million in 2023 to nearly $1. 3 billion in 2024. Downloads saw a similar trajectory, approaching 1. 5 billion in 2024. Sixteen different Generative AI apps reached at least $10 million in IAP revenue in 2024, and 25 had more than 10 million downloads. But there’s a catch... the biggest piece of cake is going to OpenAI. One thing that will definitely stand the test of time is code quality. When buyers show interest in your app, metrics and ARR matter, but they also need to look under the hood. If a CTO on the buyer's side sees that your code won't hold up under heavy user traffic, that's a hard no.   How do distribution strategies affect an app's valuation? Buyers know paid ads. They scaled their own companies or saw their employment companies scale by increasing spend on Meta and Google. But they lack and don’t know how to set up a successful influencer growth engine: they are not Gen Z, and they are not scrolling on TikTok, so it’s an unnatural and hard-to-crack traffic source. This makes apps with this influencer engine already built an interesting asset for them to look at, since these apps: Include a new user acquisition source in their growth stack Benefit from the winning creative messages and assets to scale paid UA in an efficient and profitable way Potentially lower the CPIs across their entire portfolio — I’ve seen clients pay $0. 15–$0. 20 per install on TikTok or Instagram. By comparison, U. S. paid channels often cost $2–$5 per install.   Tip for devs: try to translate your growth efforts into CPI and CAC — this will facilitate buyers to compare apples to apples and move forward faster. If you’re growing through influencer marketing, use a dashboard or third-party tool to log creators, impressions, installs, payouts, and conversion rates. Influencer growth should look for them as easy to understand and plug into their stack as a Meta Business dashboard.   Another thing they LOVE is organic traffic from the stores: if you’re highly ranked for relevant keywords and get thousands of installs every month courtesy of Apple and Google, they will love it even if you’re not monetizing them very well.   This is not all for organic growth!   Think also of referrals of any type (discounts, Instagram stories sharing, friends challenges) and niche partnerships with cool brands.   And always think like a buyer! They invest for the next three to five years. Viral trends might not be as sexy, but organic tactics with real engagement and clear metrics will thrive.   How to get a valuation for your app? We created this template for you to fill out and get a potential valuation. Just copy the spreadsheet to your Google Drive and add your data. First, you need to create a P&L for the last 12 months of the business, including a monthly breakdown of: ... --- Quick answer: Weekly subscriptions now capture 47% of all revenue, free trials boost LTV by 64%, and premium pricing consistently outperforms mid-tier options. The $170 billion subscription market rewards flexibility over savings. The subscription economy is experiencing its biggest transformation yet. After analyzing $1. 9 billion in revenue across 11,000+ apps, Adapty has revealed a clear pattern: users are choosing psychological safety over financial savings. This fundamental shift is reshaping everything we thought we knew about subscription pricing, trials, and user behavior. The new subscription psychology: Why everything changed The data tells a compelling story. In 2025, subscription success is about offering the safest commitment. Users overwhelmed by subscription fatigue are gravitating toward options that feel less risky, more flexible, and easier to escape. This psychological shift has created three winning strategies: Flexibility over savings (weekly plans dominating) Try-before-you-buy confidence (trials as conversion multipliers) Quality over quantity (premium pricing succeeding) Let's examine how each trend fits into this new reality. Trend analysis: The flexibility-first revenue model The pattern: Users want to test commitment levels gradually, not jump into long-term relationships. Subscription type2024 revenue2025 revenueGrowthWeekly plans42%46%+9. 5%Monthly plans12%11%-9. 7%Annual plans16%16%0%Lifetime plans18%19%+6. 3%The core pattern: Weekly plans as conversion gateways The 9 interconnected trends (revenue impact ranked) 1. The weekly revolution: your new conversion foundation Impact score: 9. 5/10 | Strategic priority: Core strategy Weekly subscriptions have fundamentally changed the game. By capturing 47% of total revenue, they've proven that low commitment beats low prices. Category dominance: Productivity: 65% of revenue (users want to test workflow integration) Utilities: 59% of revenue (proving daily value matters) Photo & Video: 50% of revenue (creative tools need quick wins) Weekly plans eliminate the fear of "being stuck" while still generating immediate revenue. They're essentially extended trials that users pay for. Strategic implementation: Position weekly as your primary CTA - not an alternative. Design for quick value demonstration within 7 days. Build automatic upsell sequences after positive engagement. Use weekly data to optimize longer-term offerings. 2. Free trials: The trust-building revenue multiplier Impact score: 9. 2/10 | Strategic priority: Conversion optimization Free trials solve the same psychological problem as weekly plans: reducing commitment anxiety. Trials now serve a dual purpose — they convert users AND filter for your highest-value customers. The compounding effect: US: 64% LTV increase (trials attract committed users) Europe: 58% LTV increase (cultural preference for testing) Retention improvement: 23% → 42% (quality user filtering) CategoryTrial lengthWhy this worksConversion focusProductivity0-3 daysQuick workflow integrationDaily habit formationHealth & fitness4-7 daysHabit establishment cycleRoutine buildingEducation0-3 daysLearning curve accommodationSkill developmentPhoto & video0-3 daysImmediate creative outputQuick wins Integration with weekly strategy: Combine 3-day trials with weekly plans for maximum psychological safety: "Try free for 3 days, then just $2. 99/week. " 3. Premium pricing: The quality signal that improves economics Impact score: 8. 5/10 | Strategic priority: Revenue optimization Here's the counterintuitive truth driving 2025 success: higher prices create better customers. Premium pricing attracts users who value your solution enough to commit, improving both revenue and retention. The premium advantage: US weekly plans: Premium ($60-74 LTV) vs Low-tier ($16-28 LTV) Result: 200-300% higher lifetime value Bonus: Lower support costs and higher retention Users have easy exit options with weekly plans, so price becomes a quality signal rather than a commitment barrier. They're buying confidence in your solution, not just features. Connected strategy: Use weekly plans to reduce price sensitivity (low commitment). Position premium as the "recommended" option. Focus value communication on outcomes not features. Test 20-30% increases with clear differentiation. 4. Geographic pricing: The hidden revenue multiplier Impact score: 8. 8/10 | Strategic priority: Global expansion Geographic pricing reveals a crucial insight: willingness to pay varies dramatically by region. While everyone focuses on major markets, the real opportunity lies in understanding value perception differences. Adapty Pricing Index insights (US = 1. 00): Netherlands: 1. 62 (62% premium) - High productivity value Singapore: 1. 45 (45% premium) - Business-focused market Qatar: 1. 38 (38% premium) - Affluent early adopters Turkey: 0. 29 (71% discount) - Price-sensitive but high volume Geographic pricing works best when combined with flexible plans. Users in premium markets prefer weekly plans for expensive apps, while price-sensitive markets convert better to annual commitments with discounts. Hidden gem markets (High LTV, low competition): UAE Bahamas Luxembourg Singapore 5. The mid-tier elimination strategy Impact score: 8. 0/10 | Strategic priority: Conversion optimization Mid-tier pricing fails because it contradicts the flexibility-first psychology. Users want clear choices, and middle options create decision paralysis. The problems: Highest refund rates: 3. 24% (buyer's remorse) Poor retention across all plan types Confuses the value narrative The Solution - Clear value differentiation: Instead of confusing three-tier systems, focus on obvious feature distinctions: Basic plan: Core functionality only Premium plan: Full features + exclusive benefits Keep billing frequency separate from feature tiers. Offer both Basic and Premium at weekly, monthly, and annual intervals. This way users choose features first, then commitment level, eliminating the decision paralysis that mid-tier pricing creates. 6. Experimentation as your competitive moat Impact score: 7. 8/10 | Strategic priority: Systematic improvement Apps running 50+ experiments annually see 10-100x revenue growth because experimentation compounds across all trends. Each test improves your understanding of flexibility-first users. Priority testing framework: Test categoryCR upliftLTV upliftConnection to trendsTrial offers66%80%Reduces commitment anxietyPlan duration66%85%Optimizes flexibility spectrumPricing changes46%73%Finds premium pricing sweet spotNumber of plans54%58%Avoids mid-tier confusionVisual changes27%33%Improves conversion experience The testing sequence for 2025: Test trial lengths for your category. Experiment with weekly plan positioning. Test number of plans (eliminate mid-tier options). Try premium pricing variations. Optimize visual paywall elements. 7. Global revenue reality: Focus follows revenue Impact score: 7. 5/10 | Strategic priority: market expansion Current distribution: Success in major markets requires mastering flexibility-first psychology, while smaller markets offer premium pricing opportunities with less competition. 8. Weekly retention challenge: The upselling imperative Impact score: 7. 2/10 | Strategic priority: Retention strategy Weekly plans have a retention problem: 65% churn by day 30. However, this becomes an advantage when you design for strategic upselling. The two-phase strategy: Phase 1: Use weekly... --- We broke down travel apps and their paywalls to see how they convert users. The 21st issue of the Paywall Newsletter is here! Since it’s (still) summertime, for this Paywall newsletter issue, we decided to take a closer look at travel-related apps. Unique maps and hiking trails, travel planners and flight trackers – this app category has a lot to offer, and we’ve had some new discoveries ourselves. We analyzed six apps, both large and small. We also added a bit more context this time, taking into account the pre-paywall onboarding user experience. The section is dubbed ‘setting the scene’. Ready to explore? TripBFF Last month revenue: $50K Last month downloads: 20K Setting the scene: Users are encouraged to enable location and push permission before the paywall. Makes sense since users can’t experience the ‘aha moment’ without giving out their location. What's working well: Social proof just before the paywall is always a great trust-building tactic. Users also get a small dopamine hit from the confetti animation, as they make it to the paywall. Well done. “Try for $0. 00” as a CTA is smart. The “$0. 00” suggests higher intrinsic product value than "Free," despite the same cost. What's worth testing: We suggest mentioning more perks, not only "Make unlimited travel friends". Striking through the $55. 99 annual price and comparing it to the $2. 59 monthly one might alarm detail-oriented users. “You will never see this again" creates scarcity, but a timer would add urgency. Want to create paywalls in minutes? We make it happen with our Paywall Builder. See it in action Planes Live Last month revenue: $400K Last month downloads: 100K Setting the scene: The onboarding journey is pretty simple. We also see a ‘quantified social proof’ screen with numbers like 50M+ users, 122K+ ratings, and 4. 6 stars, which is great for trust. What's working well: Manual free access switch makes users feel like they’re in control. Phrases like “$0. 00 due today”, “Free for 7 days”, and “Access for free” help beat uncertainty in users. A “Lite plan” hidden under “Other plans” is a nice addition for the price-sensitive users. PeakVisor Last month revenue: $70K Last month downloads: 30K Setting the scene: Intro demo allows users to experience the ‘aha moment’ even before hitting the paywall What's working well: Peakvisor’s lifetime plan, priced at nearly 4X the yearly plan, significantly boosts LTV because most subscribers don’t stay even a full year. What's worth testing: We’d suggest showcasing the PRO features UI inside an iPhone 16 mockup so that users can easily visualize exactly what they’ll get. Analyze users’ goals within the app and use the corresponding keywords in the headline rather than only saying “PeakVisor PRO”. PinTraveler Last month revenue: $30K Last month downloads: 30K Setting the scene: After creating an account, users are welcomed with a 3-slide carousel that heroes the core features of the app. What's working well: A simple ‘checklist’ design pattern always performs well. The background image appeals to avid travelers. Pintraveler uses several paywall designs placed in multiple touchpoints of the user journey. Thumbs up for that. What's worth testing: Being more specific about the features on the paywall might benefit the conversion. No need to be modest about the lifetime plan pricing: it can easily go at least 3X the yearly plan here. TravelSpend Last month revenue: $20K Last month downloads: 8K Setting the scene: We get to the paywall after account creation, app setup questions, and push notification opt-in screens. Users are led to a small win quickly, as they commit by setting up their budget and first expense log. What's working well: “Continue as a guest” is a good way to reduce drop-offs at the account creation page. The founders’ story in the Help section adds to an emotional connection: people prefer supporting solo-builders. What's worth testing: CTA button copies like “Try 7 days for free” or “Unlock lifetime budgeting” might perform better compared to more direct ‘Subscribe now’ and ‘Buy now’. Experiments with paywall copy, highlighting the benefits for users, can bring good results. Wanderlog Last month revenue: $200K Last month downloads: 100K Setting the scene: Wanderlog has the longest onboarding funnel among others. Onboarding questions highlight user problems, goals, and objections, presenting in-app UI demos as solutions. What's working well: Wanderlog uses a multi-page paywall to present "pro features + benefits" in concise, digestible segments. The comparison table is helpful, but can be a bit overwhelming. “Start for Free” CTA button is kept consistent across all pages. What's worth testing: The “Save more” badge on the annual plan could benefit from some additional context. It may be a bit unclear without other plans to anchor against for comparison. Wanderlog will offer you a 20% discount if you initially decline. A nice touch, though it might be worth testing a sweeter deal. Inspired to enhance your paywalls? We’re offering a free paywall audit to help your app grow faster. Send us a screenshot of your paywall, pick a time, and we’ll walk through it together on a quick 20-minute call. We’ll show you what’s working, what’s not, and how to increase your conversion rate from install to trial. Get a free paywall audit now And that’s where this journey ends. Keep experimenting, keep growing. See you soon,Adapty team --- Learn about a data-driven framework for choosing the best in-app events for campaign optimization. Performance marketing for subscription apps is tougher than ever. Rising costs, black-box algorithms, and privacy restrictions have made it harder to know if your ad spend is driving real value. One critical lever still in your control? Signal choice. Ad platforms like Meta and TikTok rely on in-app events to optimize campaigns. The wrong signal leads to wasted spend and under-delivery. The right one can transform results. But with so many possible events and combinations, how do you know which works best? This post shares a data-driven framework for evaluating signals scientifically, helping you find the optimal ad signal for your app. It covers: What ad signals are. The problems associated with the signals typically used by subscription apps. A framework designed to help select a more effective optimization signal. TL;DR: Though most subscription apps rely on signals like trial starts to optimize ad campaigns, these are not the best choice. Such early events don’t always correlate with paying subscribers, leading to wasted spend and higher customer acquisition costs (CAC). You’ll need to enhance your signal with an additional event(s). To decide on the specific events, we demonstrate a framework based on machine learning principles. This framework, for instance, can help you determine whether the “trial + 3 content views” combination is a better predictor than the “trial + completed onboarding” one or not. What are ad signals and why do they matter? Ad platforms have become increasingly algorithmic over the past few years. Marketers no longer need to micromanage targeting or placements. Instead, platforms like Meta, TikTok, and Google Ads now handle these decisions automatically, using their machine learning systems to find the best users for your goal. At the center of this system is your goal event: the in-app action you tell the platform to optimize for. This goal event is often referred to as the "signal" or sometimes the conversion event. It’s the data point that drives the platform’s algorithms to learn who is likely to take similar actions and allocate budget accordingly. Examples include: completed on-boarding trial_started started_subscription Given the shift to algorithmic bidding, choosing the right signal is critical. A strong, well-chosen signal allows the platform to quickly identify high-quality users and deliver efficient results. A weak or misaligned signal, on the other hand, can lead to wasted spend, poor delivery, and campaigns that fail to scale. Why can't a 'high-paying subscriber' be our signal So, we now know why signals are so critical for ad platforms. The goal we really care about is paying customers or those who stick around. Can we just select those as our signals? Not quite. Here’s why: Attribution windows and platform visibility  Ad platforms have limited attribution windows for conversion events. For example, Meta Ads offers options of 1-day, 7-day, or 28-day attribution. On iOS, this visibility diminishes quickly. Meta’s Aggregated Event Measurement (AEM) reduces attribution to 1-day or 7-day, but the longer window often loses user matching accuracy due to probabilistic methods. SKAdNetwork (SKAN) restricts attribution even further to just 48 hours. While SKAN 4 introduces extended windows, they remain complex and outside the scope of this post. Signal volume requirements  Platforms like Meta require enough conversion signals per day per objective to effectively train their algorithms. If the signal (e. g. , paid subscriber) is too sparse, campaigns may struggle to exit the learning phase or scale effectively. Because of these constraints, most subscription apps end up optimizing for the trial event. Pitfalls of the trial event As a result of attribution window limitations and signal volume requirements, most subscription apps choose to optimize for the trial start event. This makes sense because the majority of trial starts happen within the first day after install, fitting within attribution windows like SKAN’s 48 hours or AEM’s 1 to 7 days. However, there are pitfalls. The conversion rate from trial start to paid subscription can vary widely across audiences and app categories. For example, younger users are often more comfortable signing up for trials and cancelling them before they convert. And in the “Photo & Video” category, only around 18% users buy the subscription after the trial (compared to 39% in “Health & Fitness”), per Adapty’s data. var options = { chart: { type: 'bar', height: 350, toolbar: { show: false } }, series: }, { name: "TrialPaid", data: }, { name: "InstallPaid (no trial)", data: } ], xaxis: { categories: }, yaxis: { min: 0, max: 40, tickAmount: 4, labels: { formatter: (value) => Math. round(value) + "%" } }, dataLabels: { enabled: true, formatter: (val) => val. toFixed(2) + "%", offsetY: -17, style: { colors: , fontWeight: 400, fontFamily: 'Inter, sans-serif' } }, title: { text: "Free trials often convert better than direct purchases", align: "center", style: { fontFamily: 'Inter, sans-serif', fontWeight: 500 } }, legend: { position: "bottom", itemMargin: { horizontal: 20 }, offsetY: 20, fontFamily: 'Inter, sans-serif' }, colors: , plotOptions: { bar: { horizontal: false, dataLabels: { position: 'top' } } } }; var chart = new ApexCharts(document. querySelector("#chart"), options); chart. render; Since Meta's algorithm will only optimize to the signal you tell it to, it will optimize delivery to those who start trials and not necessarily pay. This can lead to wasted spend and poor subscriber quality. Upgrading your signal from trial to 'qualified trial' You’ve probably heard these recommendations before: “Optimize for events that correlate to business goals. ” “Find your app’s ‘aha moment. ’” “Use qualified trial events as proxies for conversion. ” Moving to a deeper 'trial + behaviour event' certainly improves quality and conversion rate. However, it has its challenges: You need to consider the volume of signals for this qualified trial event. But what if this is missing actual converters?   And which event combination do you choose?   This is where many teams get stuck, balancing the need for early signals with ensuring they are meaningful enough to predict revenue. A framework for evaluating which signal is better We covered the value of choosing a 'qualified trial'... --- Highlights from the State of in-app subscriptions 2025 report, with clear tips to improve pricing, retention, and monetization. The in-app subscription market is changing fast. Installs are slowing down, but revenue keeps growing. The difference comes down to how well you convert and retain users. To find out what’s working in 2025, we analyzed $1. 9B in revenue across 11,000+ apps. The result is the State of in-app subscriptions 2025 – the most comprehensive benchmark report on pricing, paywalls, and profitability. This article gives you the full picture in ten minutes: trends, numbers, and how to use them to grow. The market in 2025: still growing, but getting tougher The in-app purchase market is on track to reach $170B in 2025. But that growth is uneven. While installs are flattening, revenue is rising, especially for apps that know how to convert. Here’s what we see: Weekly plans grew by 10%, now making up nearly half of all subscriptions One-time purchases increased by 6%, showing renewed user interest Long-term plans like annual and lifetime dropped, as users leaned into flexibility The gap is growing: apps that optimize pricing and onboarding continue to scale. Everyone else falls behind to monetize. Revenue split by subscription duration (2022-2025) Shorter plans are taking over Weekly subscriptions are now the most popular plan type. They’ve grown 10% since last year and account for nearly half of all in-app subscriptions. Users clearly prefer flexible, low-commitment options. One-time purchases are also up 6%, signaling a shift toward upfront value. Meanwhile, long-term plans like annual and lifetime subscriptions are losing ground. Category trends show the same pattern: Weekly plans dominate in Productivity, Utilities, and Photo & Video: over 50% of revenue Annual plans still lead in Health & Fitness and Education, where users are more goal-driven Lifestyle apps mix it up, with no clear winner If you’re only offering monthly or annual plans, you’re likely missing conversions. Prices are rising, but not evenly Across regions, subscription prices are going up. Weekly plans saw the biggest increases. In Europe, the average weekly price reached $8. 3, up 12. 2% from last year. The US is close behind at $8. 1, after a 12. 5% jump Monthly plans also went up, though more gradually. The US leads with an average of $15. 2, while Europe follows at $13. 3 Annual plans are mostly stable, with $44. 6 and $42 in the US and Europe respectively Categories show different pricing patterns: Utilities and Photo & Video apps charge significantly more for long-term access. Annual plans cost 6x more than weekly Lifestyle apps lean into premium monthly plans, averaging $18 Education and Health & Fitness charge 5x the weekly rate for annual subscriptions If you haven’t revisited your pricing in a while, now’s the time. Use research methods like Van Westendorp, MaxDiff, and Conjoint. Van Westendorp helps you find the price range users consider fair MaxDiff shows which features matter most to your users Conjoint analysis tests different pricing and feature combinations to measure what people are actually willing to pay for Average subscription price by category and duration Geography matters more than you think Users don’t pay the same amount in different countries. In fact, the difference can be 2-3x, and most apps still don’t price accordingly. That’s why we built the Adapty pricing index. It shows how actual subscription payments vary by country, using the US as a baseline. Here’s what it shows for weekly plans: In the Netherlands, users pay 62% more than in the US. In Turkey, they pay almost 3. 5x less. Similar gaps exist for monthly and annual subscriptions If you’re using a flat pricing model or basic multipliers, you’re likely undercharging in high-value regions and scaring away users in lower-income ones. Find the full country list and pricing index for weekly, monthly, and annual plans in the report chart. Users don’t pay the same amount in different countries. In fact, the difference can be 2-3x, and most apps still don’t price accordingly LTV: the plan makes the difference Not all plans bring the same long-term revenue. Some drive much higher lifetime value because they fit how users behave and what they’re willing to pay. 12-month customer LTV by subscription duration and category Weekly plans drive the highest LTV in top-performing categories like Productivity ($53. 2) and Utilities ($58. 4). These plans see the best results across all regions. Annual plans outperform in Health & Fitness ($46. 1), Photo & Video ($42. 4), and Education ($45. 8), where users tend to stick around longer for consistent value. Monthly plans are solid performers in Lifestyle apps ($42. 8) but fall short when it comes to retaining users long-term. The data shows that trials significantly boost LTV. Users who start with a trial have an LTV that’s up to 64% higher. Subscription LTV by trial status For apps growing through paid user acquisition, faster payback means faster reinvestment. A solid LTV strategy helps you scale your growth without burning out. Conversion isn’t always what you expect Free trials don’t always convert better. In most categories, direct paywalls lead to higher conversion than trials. Sometimes the gap is massive. Here’s what the data shows: The Install to Paid funnel without a trial reaches 18-38%, especially in Lifestyle and Productivity apps. Install to Trial rates stay below 12% in most cases. Even in Health and Fitness, where trials are common, full-funnel conversion is under 0. 1%. Trials still play an important role. They don’t improve early conversion, but they do increase long-term value and retention, especially for weekly plans. Conversion funnel by region and renewal stage See the full table of conversion rates by app category, subscription type, pricing tier, and trial setup in the report. What keeps users around Retention depends on the plan, the value you deliver, and how quickly users see it. User retention over time by subscription type Here’s what the numbers say: Weekly subscriptions churn the fastest. 65% of users cancel within the first 30 days. Only 5% are still active after one year Monthly plans perform better. 43% retention at day 90. 17%... --- Hours before facing new EU penalties, Apple introduced its most complicated in-app purchase fee system ever. Should developers switch? Full breakdown. TL;DR: Apple replaced its simple €0. 50 fee with a multi-layered external payment system including 2% acquisition fees, 5-13% store service fees, and a 5% Core Technology Commission – all to avoid additional EU penalties. Apple just beat the deadline. With hours to spare before facing new EU penalties, the tech giant announced sweeping changes to its European App Store in-app purchase fee structure on June 26. But instead of simplifying, Apple introduced what might be the most complicated commission system in App Store history. The changes were designed to satisfy European regulators who fined Apple €500 million in April for violating the Digital Markets Act. Apple's response was to technically comply while creating a system so complex it might discourage developers from using external payments. Is this genuine compliance or strategic resistance? Let's unpack Apple's latest moves and see whether they solve the regulatory standoff or just create more confusion. The new EU App Store fee structure breakdown Apple's new EU external payment fee structure replaces one simple charge with multiple overlapping fees for developers who want to use non-Apple payment systems. Initial acquisition fee: 2% For the first six months after a user downloads your app, Apple takes 2% of any digital sales made through external payment systems. This applies to new users only, existing customers don't trigger this fee. Alternative terms addendum for apps in the EU Core Technology Commission (CTC): 5%  This new 5% fee replaces the old flat €0. 50 charge per install. It applies to apps using Apple's development tools and platform, regardless of where purchases happen. The fee is charged within 12 months of the most recent install, update, or reinstall. Store services fee:  Apple split its app store services into two packages: Tier 1 (5% fee): Basic package including app reviews, manual updates, and fraud protection. This tier is mandatory for any app that promotes external payment options. Tier 2 (13% fee): Full package adding marketing tools, automatic updates, app recommendations, analytics dashboards, and promotional features. Small business program members get a discount, paying 10% instead of 13% for Tier 2 services. Store Services tiers The transition timeline  Developers currently paying the €0. 50 Core Technology Fee have until January 1, 2026 to switch to the new percentage-based system. After that date, everyone moves to the CTC structure. Under the new system, a developer using external payments could pay up to 20% in combined fees (2% + 13% + 5%) compared to Apple's standard 30% App Store commission. However, the math gets complicated depending on timing, user type, and service tier choices. Cost analysis: should you switch?   The new fee structure creates winners and losers depending on your app's business model and user base. Let's figure out which category you fall into: Scenario 1: High-volume apps with established users  Apps with mostly existing users benefit the most from external payments: No 2% acquisition fee on existing customers Can choose Tier 1 services (5%) to minimize costs Total external payment fees: 10% (5% + 5% CTC) You save 20%. Pay 10% instead of 30% App Store commission Scenario 2: Growing apps with new user acquisition  Apps actively acquiring new users face higher costs: 2% acquisition fee applies for first 6 months on new users Need Tier 2 services (13%) for growth features Total fees: 20% (2% + 13% + 5% CTC) You save 10%. Pay 20% instead of 30% App Store commission Scenario 3: Small Business Program members  Developers already in Apple's Small Business Program (under $1M annual revenue) currently pay 15% App Store commission: Reduced Tier 2 fee: 10% instead of 13% Total maximum fees: 15% (10% + 5% CTC) The same 15%.   Platform comparison Apple offers better terms on other platforms. macOS, tvOS, visionOS, watchOS only charge a 3% fee for external payments, making iOS the most expensive platform for alternative payments. When do external payments make sense? External payments are worth considering only if you meet all three criteria:  Most of your revenue comes from existing users (so you avoid the 2% acquisition fee). You can work with basic App Store services instead of premium features. Your team can handle the technical complexity of managing your own payment system. Hidden costs to consider  Apple's fees are just the beginning. You'll also pay payment processor fees (typically 2-3%), need fraud prevention systems, handle customer support for payment issues, and maintain payment infrastructure. These hidden costs can add another 3-5% to your total expenses. So while Apple's new fees range from 10-20%, your actual cost for external payments could be 13-25% when you include everything. The bottom line: Should you switch? For most developers, the answer is not yet. Switch if you're:→ A high-volume app with mostly existing users→ Already handling payment processing infrastructure→ Comfortable with 10-15% total costs vs. 30% App Store feesDon't switch if you're:→ A growing app that needs new user acquisition→ Relying on App Store marketing and discovery features→ A small team without payment processing expertise Apple's complex fee structure successfully discourages most developers from leaving. The 10-20 percentage point savings sound good until you factor in the operational complexity, hidden costs, and reduced App Store benefits. External payments work best for large, established apps that can absorb the complexity and already have strong direct relationships with their users. Technical implementation details Apple created two distinct pathways for developers who want to use external payments, each with different rules and requirements. Option 1: Alternative Terms Addendum  This is for apps that mention external deals but don't include direct payment links. Think of it as the "information only" option. Apps can tell users about promotions, discounts, or subscription offers available elsewhere No clickable links or direct payment processing within the app Developers still pay the Core Technology Commission but avoid some additional fees → Check the official Apple documentation Option 2: StoreKit External Purchase Link Entitlement  This is the full external payment option with actionable links that users can click. Apps can include multiple external payment links with... --- Learn how to monetize a subscription app without falling into the common early-stage traps. This article is based on a podcast with Daniel Layfield (the Subscription Index) and Ben Gholke (Adapty. io) and was written on behalf of Daniel. A lot of early-stage teams get stuck in the same place: people are using the product, feedback is good, usage looks healthy, but revenue doesn’t follow. And when you try to fix that, it’s easy to get lost in pricing tweaks, freemium debates, or half-baked growth loops that don’t deliver. I’ve been through this while running the growth team at Codecademy – back when we had millions of users but very little revenue. Over five years, we figured out what works, scaled ARR from $10M to $50M, and later sold the company for over $500M. Most of that journey was about aligning monetization with product and usage. In this article, I’ll share what I’ve learned about reaching product-market fit, when to start monetizing, how to avoid common traps, and what metrics to track. If you’re building a subscription app and trying to make it sustainable, I think this will save you time and help you focus on what matters. Why should product-market fit come before monetization? The biggest mistake I see early teams make is start optimizing monetization before they’re confident they have product-market fit. And I get it – you want to start earning, prove traction, maybe even raise money. But if you try to capture value before you’re sure you’re delivering it, it just slows everything down. At Codecademy, we didn’t go all-in on monetization until we felt a real pull from users. Not just usage, but retention, feedback, and willingness to pay. One of the tools we used was the Sean Ellis survey. You ask users: “How would you feel if you could no longer use this product? ” You want at least 40% saying “very disappointed. ” That’s a strong sign you’re solving a meaningful problem.   Don’t forget to make the survey statistically significant: you need about 200 filled out surveys, which means sending the form to ~4000 people to get a 5% completion rate. Another method I like is looking at retention curves. If you chart cohorts over time and the line flattens instead of trending toward zero, that’s another good signal. And honestly, even just seeing revenue grow steadily month over month can tell you a lot, especially if you haven’t touched pricing or UA. Pro tip: Don’t wait for perfect data. But don’t start building paywalls and pricing tiers until you’re confident people would actually miss your product if it disappeared. How do I set a price for the subscription app? In the early stages, you’re pricing to learn rather than to maximize revenue. The whole point is to get a signal: is this solving a problem that’s meaningful enough for someone to pay for? That’s why underpricing can be just as dangerous as overpricing. If you charge $1 for something that should cost $20, you’re not testing whether people value the product. You’re just testing whether they’ll say yes to a no-brainer deal.   On the flip side, pricing too high too early can give you a bunch of false negatives. People might pass not because they don’t need your product, but because the price doesn’t match the trust level yet. At Codecademy, we found the sweet spot was somewhere in the average range for our space – not premium, not discount. The signal we wanted was simple: are the right users willing to pay something that feels meaningful to them? If the answer is yes, you’re heading in the right direction. Pro tip: Price high enough to make users think, but not so high that it blocks everyone. You’re not setting pricing forever — you’re just trying to figure out if there’s a business here. What are app monetization requirements?   Once you start thinking about monetization, it’s tempting to treat it as a separate layer you just bolt on. In reality, monetization only works when it’s in sync with how you acquire users and how they actually use the product. Sustainable growth comes from aligning all three: acquisition, product, and monetization, and making sure each one feeds the others. In the early stages, you should always start with the product. But it’s not enough to just build something good, it has to be distributable. That’s what Reforge calls a channel-product fit. If you can’t get the product in front of the right people through a scalable channel, it’s going to be hard to grow, no matter how valuable it is. We made this mistake at Codecademy more than once – trying to build referral loops when our average user didn’t actually know that many other people, who wanted to learn to code. Word of mouth and SEO worked better because that’s how people were already discovering us. The key lesson – don’t waste time over-optimizing tactics that don’t match your audience or your scale. Pro tip: Most growth-stage apps have one channel doing 80% of the work. When you find that channel, double down on it, and don’t try to make five others perform equally well. What to avoid early in app monetization? One of the biggest mistakes I’ve made and seen other teams make is adding too much complexity too early. You may think you’re “leveling up” by introducing new pricing tiers, region-based logic, or clever growth mechanics. But the truth is: every new feature becomes a future tax on your team. At Codecademy, we tried launching things like referral systems and multi-tier plans way too early. Some of it looked smart from the outside, but most of it either underperformed or slowed us down. Worse – it cluttered the product and made every future experiment more expensive to run. Here are a few common traps I’d avoid in the early stages: Multiple pricing tiers. Sounds powerful, but it fragments your user base and slows onboarding. Most B2C apps that scale start with just one plan.   At Codecademy, we stayed with a... --- Get from zero Adapty setup to displaying a paywall and processing purchases in under 60 minutes using Expo and React Native. Prerequisites You have a working React Native app (built with Expo) You’re using EAS Build and Dev Client (not Expo Go) Your app includes at least one in-app purchase created in App Store Connect and synced in the Adapty dashboard You’ve created an Adapty account and your app is added in the Adapty dashboard Project Files To follow along with the written, video, or LLM-based tutorial, download the project files from Github. The branch named starter contains the app without any Adapty integration. The main branch contains the finished project. Install the Adapty SDK Install the Adapty SDK and required helper: npx expo install react-native-adapty tslibnpx expo install react-native-adapty tslib tslib is a runtime dependency of the Adapty SDK. Pre-build your Expo project Because Adapty includes native code, you need to generate native iOS/Android directories: npx expo prebuildnpx expo prebuild This will generate an ios and android folder, and a Podfile. If you already have a prebuilt project, you can skip this step. Add Adapty to your iOS project Open the Podfile inside your ios/ directory and confirm Adapty was added. Then run: cd ios pod install cd . . cd ios pod install cd . . You’ll also need to build a custom development client to run the app locally: eas build --profile development --platform ioseas build --profile development --platform ios Once built and installed, run the app using: npx expo start --dev-clientnpx expo start --dev-client Activate the SDK on app launch Create AdaptyConstants. js to store keys and values you’ll use throughout the project: export default { API_KEY: "your-public-sdk-key", ACCESS_LEVEL_ID: "premium", PLACEMENT_ID: "on_tap_history", };export default { API_KEY: "your-public-sdk-key", ACCESS_LEVEL_ID: "premium", PLACEMENT_ID: "on_tap_history", }; Create a new file called AdaptyService. js in your root directory and add: import { adapty } from "react-native-adapty"; import AdaptyConstants from ". /AdaptyConstants"; export const activationPromise = (async => { try { await adapty. activate(AdaptyConstants. API_KEY); } catch (error) { console. error("Adapty activation failed:", error); } });import { adapty } from "react-native-adapty"; import AdaptyConstants from ". /AdaptyConstants"; export const activationPromise = (async => { try { await adapty. activate(AdaptyConstants. API_KEY); } catch (error) { console. error("Adapty activation failed:", error); } }); This exports a shared activation promise that will be awaited anywhere the SDK is used. It configures and activates the Adapty SDK. The Adapty UI library is built in, allowing you to display remotely configured paywalls with made with Paywall Builder. Load the user’s subscription status It’s important to have up-to-date information on the user’s subscription status. Adapty makes this easy with something called a user profile. In ProfileContext. js, modify your context to include refreshing this profile. Here’s a version showing just the additions: // Add the following imports import { adapty } from "react-native-adapty"; import AdaptyConstants from ". . /AdaptyConstants"; import { activationPromise } from ". . /AdaptyService"; ... export function ProfileProvider({ children }) { ... // Add this useEffect to get a fresh profile from Adapty useEffect( => { let mounted = true; (async => { try { await activationPromise; const profile = await adapty. getProfile; if (profile && profile. accessLevels) { const level = profile. accessLevels; if (mounted) { setIsPremium( ! ! (level? . isActive || level? . isInGracePeriod || level? . isLifetime) ); } } } catch (error) { console. error("Error fetching Adapty profile:", error); } }); return => { mounted = false; }; }, ); ... }// Add the following imports import { adapty } from "react-native-adapty"; import AdaptyConstants from ". . /AdaptyConstants"; import { activationPromise } from ". . /AdaptyService"; ... export function ProfileProvider({ children }) { ... // Add this useEffect to get a fresh profile from Adapty useEffect( => { let mounted = true; (async => { try { await activationPromise; const profile = await adapty. getProfile; if (profile && profile. accessLevels) { const level = profile. accessLevels; if (mounted) { setIsPremium( ! ! (level? . isActive || level? . isInGracePeriod || level? . isLifetime) ); } } } catch (error) { console. error("Error fetching Adapty profile:", error); } }); return => { mounted = false; }; }, ); ... } This code fetches an updated AdaptyProfile object from the SDK with the latest subscription and access level information. It then checks the access level and updates isPremium accordingly. You can use this within the app to determine whether to show premium content or functionality. Show the Paywall The next step is to present a paywall from Paywall Builder where applicable. In HomeScreen. js, when the user taps “View History”, we want to either navigate to the history screen (if they’re premium) or show a paywall using Adapty. In the Home Screen, add these imports: // Add these imports import { adapty } from "react-native-adapty"; import { createPaywallView } from "react-native-adapty/dist/ui"; import AdaptyConstants from ". . /AdaptyConstants"; import { activationPromise } from ". . /AdaptyService";// Add these imports import { adapty } from "react-native-adapty"; import { createPaywallView } from "react-native-adapty/dist/ui"; import AdaptyConstants from ". . /AdaptyConstants"; import { activationPromise } from ". . /AdaptyService"; Before we can show the Paywall Builder paywall, we need to fetch it from Adapty’s servers. We’ll do that and then create and present a paywall view based on that configuration. export default function HomeScreen({ navigation }) { ... // Modify handleViewHistory to look like this: async function handleViewHistory { await activationPromise; if (isPremium) { navigation. navigate("History"); } else { try { const paywall = await adapty. getPaywall( AdaptyConstants. PLACEMENT_ID, "en" ); if (paywall. hasViewConfiguration) { const view = await createPaywallView(paywall); view. registerEventHandlers({ onCloseButtonPress { return true; }, onPurchaseCompleted(purchaseResult, product) { if (purchaseResult. type === "success") { purchasePremium(purchaseResult. profile); navigation. navigate("History"); return true; } return false; }, onPurchaseFailed(error) { console. error("Purchase failed:", error); return false; }, onRestoreCompleted(restoredProfile) { purchasePremium(restoredProfile); navigation. navigate("History"); return true; }, onRestoreFailed(error) { console. error("Restore failed:", error); return false; }, onRenderingFailed(error) { console. error("Error rendering paywall:", error); return false; }, }); await view. present; } }... --- TL;DR: Apple, AI destekli app discovery, 100+ yeni App Analytics metriği, Xcode içinde ChatGPT entegrasyonu, gelişmiş attribution araçları ve App Store Connect’te büyük yenilikler duyurdu. WWDC25; app discovery, build management, monetization analitiği ve development araçları gibi birçok alanda önemli güncellemelerle geldi. İster growth tarafında olun, ister yazılım geliştiricisi, bu duyurularda sizi ilgilendiren bir nokta mutlaka var. Gelin Apple neler açıkladı birlikte bakalım ve bu yenilikler sizin için ne anlama geliyor, beraber anlayalım App Store Tags ve Custom Product Pages App Store TagsApple, uygulamanızın metadata, açıklama, kategori ve screenshot’larından yola çıkarak öne çıkan özellikleri otomatik şekilde belirleyen ve öne çıkaran yeni bir sistem tanıttı: App Store Tags. Nasıl çalışıyor? Apple’ın LLM'ler ile birlikte, uygulamanızın metadata’sından otomatik olarak tag’ler üretiyor. Ardından bu tag’ler review ekipleri tarafından gözden geçiriliyor. Kullanıcılar bir tag’e dokunduğunda, benzer özellikleri paylaşan uygulamaların yer aldığı kişiselleştirilmiş bir listeyle karşılaşıyor. Tag’ler, arama sayfalarında kategori bilgileriyle birlikte ve arama sonuçlarında uygulamanızla birlikte g Analytics ve Monetization: 100+ Yeni Metrik Apple, App Store Connect Analytics tarafında dikkat çeken değişiklikler yaptı. Yeni metriklerin çoğu monetization ve user segmentation odaklı oldu. Custom Product Pages artık daha önemli En dikkat çeken değişiklik: Custom Product Pages ve In-App Events, artık menülerin içinde kaybolmak yerine doğrudan ana ekranda yer alıyor. Bu da Apple’ın bu özelliklere ne kadar önem verdiğini açıkça gösteriyor. Custom Product Pages, farklı kullanıcı segmentlerine özel App Store sayfaları oluşturmamıza imkân tanıyacak. Apple’ın bunu bu kadar ön plana çıkarması, geliştiricilerin artık standart tek bir ürün sayfası kullanmak yerine, daha kişiselleştirilmiş bir yaklaşımı benimsemelerini beklediklerinin sinyali. Yeni Cohort Analytics Apple, geliştiricilerin uzun süredir sorduğu o soruya sonunda net bir cevap verecek bir yenilik ekledi: Hangi özellikler gerçekten gelir getiriyor? Artık sadece bir özelliğin kaç kişi tarafından kullanıldığını değil, hangi özelliklerin doğrudan ödeme ile sonuçlandığını da görebileceksiniz. Kısacası, kullanıcı davranışı ile revenue impact arasındaki bağlantıyı kurmak artık çok daha kolay. App Store Connect’te MRR Takibi Geliştiricilerin uzun süredir beklediği özellik sonunda geldi:Apple, Monthly Recurring Revenue (MRR) takibini doğrudan App Store Connect içine ekledi. Eğer bir subscription uygulamanız varsa, artık tekrar eden gelirlerinizi görmek için ekstra bir araca ihtiyacınız yok. Game Center ve Apple Games App Apple, iPhone, iPad ve Mac cihazlara ön yüklü olarak gelen yeni bir Apple Games App yayınladı. Bu uygulama, oyun arama ve social gaming deneyimi için özel bir alan sunuyor. Apple Games App Neler Sunuyor? Games App, dört ana sekmeden oluşuyor: Home: Oyun etkinlikleri ve arkadaş aktivitelerini gösteriyor Play Together: Multiplayer davetleri ve arkadaşlarla karşılaştırmalar burada Library: Kurulu oyunlarını yönetmeni sağlıyor Search: Yeni oyunlar keşfetmene yardımcı oluyor Oyununuzu Nasıl Hazırlayabilirsiniz? App Store Connect’te Primary veya Secondary Category’yi “Games” olarak ayarlayın. Apple bu bilgiye göre oyununuz için özel bir sayfa oluşturduktan sonra bu sayfada achievements, leaderboards, challenges ve multiplayer aktiviteleri gibi unsurlar öne çıkarılıyor. Game Center’da Yeni Özellikler Achievements, oyuncuların oyundaki ilerlemelerini takip etmelerini sağlıyor. Leaderboards, artık açıklama alanları içeriyor ve belirli oyun bölümlerine deep-link desteği sunuyor. Activities, oyuncuları doğrudan belirli seviyelere ya da oyun modlarına yönlendiren deep-link’lerle özel deneyimlere hızlı erişim sağlıyor. AdAttributionKit 2. 0: Daha Gelişmiş Attribution Apple, AdAttributionKit’te önemli iyileştirmeler yaptı. Yeni sürüm, geliştiricilere daha fazla kontrol ve çok daha detaylı attribution insight’ları sunacak. Gelişmiş Kampanya Takibi Artık birden fazla re-engagement campaign aynı anda çalıştırılabilecek. Uygulamanız, sadece tek bir conversion’ı izlemekle sınırlı kalmayıp aynı anda birden fazla yeniden etkileşim dönüşümünü takip edebilecek. Özelleştirilebilir Attribution Window Artık reklamların ne kadar süreyle attribution için geçerli olacağını siz belirleyeceksiniz. Farklı reklam ağları ve etkileşim türleri (click vs view) için farklı time window’lar da tanımlayabilirsiniz. Conversion Overlap Protection Cooldown süreleri sayesinde attribution çakışmaları engellenecek. Bir dönüşümden sonra tanımladığınız bekleme süresi boyunca Apple yeni reklamları o dönüşüme bağlamayacak. Böylece sonradan çıkan reklamların, aslında önceki kampanyaların getirdiği satın almaların kredisini almamış olacak Bölgesel Performans Verileri Artık country code bilgisi de geliyor, böylece hangi bölgelerin daha iyi performans gösterdiğini analiz edebileceksiniz. Apple bu verileri sadece yeterli hacim oluştuğunda gösterecek ve kullanıcı gizliliği korumaya devam edecek. Development Tools ve AI Entegrasyonu Xcode 26 ve AI Destekli Geliştirme Apple, Xcode 26 ile birlikte AI entegrasyonu getirerek ve kod yazma/düzenleme sürecini kolaylaştırmayı hedefliyor. ChatGPT, artık doğrudan Xcode içinde çalışıyor. Esnek AI Model Seçenekleri Bu yenilikle birlikte geliştiriciler birden fazla AI provider ile çalışabilecek. ChatGPT dışında, örneğin Anthropic (Claude) gibi modeller için kendi API key’inizi ekleyebilir veya Ollama ve LM Studio gibi araçlarla Mac’inizde çalışan lokal modelleri kullanabilirsiniz. Foundation Models Framework Apple, Apple Intelligence’ı çalıştıran on-device Large Language Model’e doğrudan erişim sağlayan yeni bir Swift API tanıttı: Foundation Models Framework. Bu framework; macOS, iOS, iPadOS ve visionOS genelinde çalışıyorTemel Avantajlar Model işletim sistemine gömülü olduğu için uygulama boyutunu artırmıyor. İçerik üretimi, özetleme, kullanıcı girdisi analizi, sınıflandırma ve veri çıkarımı gibi görevlerde optimize performans sunuyor. Geliştirilmiş App Store Connect API’leri Apple, App Store Connect API’lerini genişleterek geliştirme sürecinizi daha da otomatize etmenizi sağlayan yeni özellikler ekledi. Programmatic Build Uploads Yeni Build Upload API, farklı programlama dilleriyle build’leri programatik olarak yüklemenizi sağlıyor. Apple, entegrasyonu kolaylaştırmak için standart hata yönetimi ve iyi formatlanmış mesajlar sunuyor. Gerçek Zamanlı Workflow Güncellemeleri Yeni Webhook Notifications, kritik iş akışı olaylarında size gerçek zamanlı bilgi veriyor: Build upload state değişimleri → Yüklemenin tamamlandığını veya hata verdiğini anında öğrebileceksiniz TestFlight feedback → Test kullanıcıları geri bildirim gönderdiğinde anında bildirim alabileceksiniz App version state değişiklikleri → Uygulamanızın review süreciyle ilgili gelişmelerden haberdar olacaksınız Beta review completion → TestFlight build’lerinizin onaylandığını anında öğrenebileceksiniz Sonuç Bu güncellemelerle birlikte Apple, AI ile çalışan app discovery sistemlerine ve uzun süredir beklenen analytics özelliklerine ciddi şekilde odaklanmış durumda. Özellikle gelen yeni analytics metrikleri fazlasıyla heyecan verici ve geliştiriciler için oldukça önemli olacak gibi görünüyor. --- In this guide, you’ll learn how to personalize your paywalls using HealthKit and Adapty. From detecting user activity to segmenting and showing tailored offers in SwiftUI we’ll show you how to make every paywall feel like it was built just for them. Generic paywalls don't work for everyone. In a fitness app, users have diverse goals: muscle gain, cardio stamina, yoga balance. Why treat them all the same? With Adapty and HealthKit, you can build personalized paywalls based on the user's workout activity type, offering content and offers tailored to their actual fitness habits. This guide walks you through how to: Detect a user's workout type via HealthKit Store it as a custom attribute in Adapty Segment users in the Adapty dashboard Serve different paywalls to each workout segment dynamically in SwiftUI Let's get started. What's wrong with generic paywalls? A running enthusiast might respond better to "speed endurance plans," while a cyclist would benefit more from "road performance packs. " Hardcoding these conditions quickly becomes unmanageable. Firebase Remote Config helps, but lacks strong analytics, A/B testing, or easy paywall editing. With Adapty, we offload this logic to the dashboard, allowing for seamless visual and logical updates without modifying app code. How can I get user workout data from HealthKit? In my own app StrongerMe, I implemented this setup to show targeted offers to runners, swimmers, cyclists, and walkers. This allows each type of athlete to see offers that resonate with their habits and goals. For "Other" we will show the common paywall. What HealthKit permissions are required? Before accessing workout data, add the required HealthKit permissions and entries in your Info. plist: NSHealthShareUsageDescription We use your activity data to personalize your fitness experience and offers. NSHealthUpdateUsageDescription We update your activity preferences based on your workouts. NSHealthShareUsageDescription We use your activity data to personalize your fitness experience and offers. NSHealthUpdateUsageDescription We update your activity preferences based on your workouts. Find more info about the keys: NSHealthShareUsageDescription NSHealthUpdateUsageDescription After that you can request the authorization in your app: let healthStore = HKHealthStore let typesToRead: Set = healthStore. requestAuthorization(toShare: , read: typesToRead) { success, error in // Handle result like store HealthKit flag in UserDefault }let healthStore = HKHealthStore let typesToRead: Set = healthStore. requestAuthorization(toShare: , read: typesToRead) { success, error in // Handle result like store HealthKit flag in UserDefault } How can I detect the most recent workout? We focus on four types for this example: running walking cycling swimming other import HealthKit func getMostRecentWorkoutType async throws -> String? { let store = HKHealthStore let workoutType = HKObjectType. workoutType let predicate = HKQuery. predicateForSamples(withStart: Date. distantPast, end: Date, options: ) let sortDescriptor = NSSortDescriptor(key: HKSampleSortIdentifierEndDate, ascending: false) let query = HKSampleQuery(sampleType: workoutType, predicate: predicate, limit: 1, sortDescriptors: ) { _, samples, _ in guard let workout = samples? . first as? HKWorkout else { return } let workoutType = workout. workoutActivityType let exerciseType: String switch workoutType { case . running: exerciseType = "running" case . walking: exerciseType = "walking" case . cycling: exerciseType = "cycling" case . swimming: exerciseType = "swimming" default: exerciseType = "other" } // Now update Adapty attribute var builder = AdaptyProfileParameters. Builder try? builder = builder. with(customAttribute: exerciseType, forKey: "exercise_type") try? await Adapty. updateProfile(params: builder. build) } store. execute(query) return nil }import HealthKit func getMostRecentWorkoutType async throws -> String? { let store = HKHealthStore let workoutType = HKObjectType. workoutType let predicate = HKQuery. predicateForSamples(withStart: Date. distantPast, end: Date, options: ) let sortDescriptor = NSSortDescriptor(key: HKSampleSortIdentifierEndDate, ascending: false) let query = HKSampleQuery(sampleType: workoutType, predicate: predicate, limit: 1, sortDescriptors: ) { _, samples, _ in guard let workout = samples? . first as? HKWorkout else { return } let workoutType = workout. workoutActivityType let exerciseType: String switch workoutType { case . running: exerciseType = "running" case . walking: exerciseType = "walking" case . cycling: exerciseType = "cycling" case . swimming: exerciseType = "swimming" default: exerciseType = "other" } // Now update Adapty attribute var builder = AdaptyProfileParameters. Builder try? builder = builder. with(customAttribute: exerciseType, forKey: "exercise_type") try? await Adapty. updateProfile(params: builder. build) } store. execute(query) return nil } How can I store workout data in Adapty? Once you have the workout type string, pass it to Adapty as a custom attribute. Of course we need no know about this field before showing the Paywall. You can set the default type early on login or app open: var builder = AdaptyProfileParameters. Builder try? builder = builder. with(customAttribute: "running", forKey: "exercise_type") try? await Adapty. updateProfile(params: builder. build)var builder = AdaptyProfileParameters. Builder try? builder = builder. with(customAttribute: "running", forKey: "exercise_type") try? await Adapty. updateProfile(params: builder. build) What are user attribute limits? Up to 30 custom attributes per user Key name: up to 30 characters (letters, numbers, _, -, or . allowed) Value: string or float, max 50 characters long → Check User Attributes in Adapty Should you identify the user? If your app supports accounts, call identify after login: try await Adapty. identify("user_id")try await Adapty. identify("user_id") Keep in mind: If you've assigned any data to an anonymous user such as custom attributes or tracking parameters from third-party sources make sure to reassociate that data with the user once they are identified. How can I create segments based on exercise type? We now need a criteria - Segment - which will be linked to exercise_type from HealthKit. Segments are available only on a paid Adapty subscription plan. How do you create segments in the Adapty dashboard? In the Adapty Dashboard: Go to Segments, click Create Segment and Create custom attribute. New segment creation Create a Custom attribute. It's better to populate the expected values so we can use it in Segment filtering later. New custom attribute creation Add info and filtering for our attribute Create these segments: "Runners" → Exercise Type == running "Riders" → Exercise Type == cycling "Swimmers" → Exercise Type == swimming "Walkers" → Exercise Type == walking "Other" → Exercise Type == other Each segment can then be tied to unique audiences and personalized paywalls. The list for me is looking like this: All created segments How do you assign paywalls to segments? Creating paywalls Now we need paywalls to split among the segments. Let's create a pack of them to match our exercises. The docs cover the whole creation... --- Apple just rolled out a wave of updates that go way beyond the usual polish. From AI-powered app discovery and keyword-targeted product pages to 100+ new analytics metrics and ChatGPT in Xcode. This article breaks down the updates that matter most and what they mean for your growth strategy. TL;DR: Apple introduced AI-powered app discovery, 100+ new analytics metrics, ChatGPT in Xcode, improved attribution tools, and major App Store Connect upgrades. WWDC25 brought substantial updates across app discovery, build management, monetization analytics, and development tools. Whether you're managing app marketing or building apps, there's quite a bit to unpack here. Let’s walk through everything Apple announced together and figure out what it actually means for you. Note: This article will be updated as Apple releases more WWDC sessions, so check back for the latest info. App Store Tags and Custom Product Pages App Store Tags: AI-powered app categorization Apple introduces App Store Tags to surface relevant features from your app's metadata, description, category, and screenshots. How it works: Apple's large language models generate tags from your app metadata, then human reviewers check all tags for quality. When users tap on a tag, they see a dedicated view with personalized collections of apps sharing similar features. Tags appear alongside app categories on search pages and with your app in search results. What this means for you: Users can now discover apps through specific functionality instead of broad category browsing. Your fitness app might appear through "workout tracking" tags rather than just the general "Health & Fitness" category. You can view your tags on the App Information page in App Store Connect and edit which ones you want to associate with your app. When you deselect a tag, Apple removes it across the App Store. It won't show on your product page and your app won't appear in that tag's collection. Keywords for Custom Product Pages Now let's talk about something that's been a long time coming - keywords for Custom Product Pages. You can now show different versions of your app's store listing depending on what users search for. Key features: Assign keywords from your latest App Store version to specific Custom Product Pages. When your app appears in search for those keywords, your custom product page shows instead of the default. Keyword assignments don't require review - they go live immediately. You can customize keyword selection for each language App Analytics will show search traffic per Custom Product Page How to set up keywords for Custom Product Pages? Navigate to Custom Product Pages in App Store Connect, click into the page you want to optimize (like a "workout tracking" page), and select the keywords you want to assign. Note: Apple suggests making your keyword selections unique for each Custom Product Page so users see the right page for different search queries. Enhanced keyword field During WWDC demos, Apple showed keyword fields with 107 characters (compared to the current 100-character limit). This suggests Apple either increased the character limit or no longer counts commas toward the total. This feature isn't live yet, but it indicates Apple may expand keyword optimization opportunities. Offer codes expand beyond subscriptions Apple expands offer codes beyond subscriptions to include all in-app purchase types - consumables, non-consumables, and non-renewing subscriptions. What you can do now: Generate free and discount offer codes for all types of in-app purchases and subscriptions. Create up to 10 active offers per in-app purchase at a time. Generate codes in batches up to 1 million offer codes per app per quarter. Set redemption eligibility based on customer spending history (never spent, spent but not in last 30 days, or spent in last 30 days). You can now generate offer codes in the sandbox environment for both In-App Purchases and subscriptions. Apple gives you up to 10,000 codes per app per quarter for testing, and sandbox accounts can redeem unlimited codes. How to distribute offer codes: You can distribute codes through deep-links, QR codes, or let customers enter them directly in your app. Apple handles the redemption flow - once someone redeems a code, Apple takes care of the rest, including automatic app installation if the person doesn't have your app yet. How to set up offer codes: Start by creating an offer campaign in the in-app purchases details page, specify your eligibility criteria, then generate your codes using the same one-time and custom code types that Apple makes available for subscriptions. AI-generated review summaries Apple now generates Review Summaries using large language models that combine key information from individual user reviews into short paragraphs. These summaries appear for apps and games with enough customer reviews and refresh regularly. In App Store Connect, you can view the summary that appears on your product page, see when Apple last generated it, and report concerns if the summary isn't accurate. Enhanced age rating system Apple expands age ratings from 2 to 5 thresholds, adding three new rating categories (9+, 13+, and 16+) to the existing 4+ and 18+ ratings. This change provides much more granularity for different age groups and regional requirements. New capabilities you can declare: In-app controls (like parental controls or age assurance) App capabilities that could bring age-inappropriate content New capability types: messaging and chat, user-generated content, and advertising Apple redesigns the developer experience with a new "learn more" section, clearer descriptions, and helpful examples for each question. You can override calculated ratings to assign higher ones if you need them for policy alignment. Apple automatically calculates new age ratings using your existing responses, but you should review and answer new questions to ensure accuracy. Accessibility nutrition labels Apple introduces Accessibility Nutrition Labels that appear in a new section on your app's product page. These labels help people understand which accessibility features your app supports, like Larger Text and VoiceOver. Analytics and monetization: 100+ new metrics Apple has pushed significant changes to App Store Connect Analytics that are already catching attention from developers who've noticed the platform's new focus on monetization and user segmentation. Key new features Custom Product Pages move to center stage The biggest change you'll notice is that Custom Product Pages and In-App Events are now right on the main screen instead of hidden in menus. This tells you everything about how important Apple thinks these features are now.... --- This 10-minute guide walks you through integrating Android in-app purchases with Jetpack Compose, covering everything from SDK setup to paywall implementation. You'll learn to handle purchases, restore transactions, and track premium users with minimal code and maximum reliability. This guide will walk you through adding Android in-app purchases to your app using Jetpack Compose in under 10 minutes. I'll use Adapty to handle in-app purchases and Koin for dependency injection. Quick start option: If you prefer to code along without diving deep into each section right now, you can copy the code blocks directly into Cursor and build as you go. I’ve tested it multiple times, and it just works. Step 1: Set up dependencies First, add the required dependencies to your project. In libs. versions. toml: adaptyBom = "3. 4. 0" adapty-bom = { module = "io. adapty:adapty-bom", version. ref = "adaptyBom" } adapty = { module = "io. adapty:android-sdk" } adapty-ui = { module = "io. adapty:android-ui" } adaptyBom = "3. 4. 0" adapty-bom = { module = "io. adapty:adapty-bom", version. ref = "adaptyBom" } adapty = { module = "io. adapty:android-sdk" } adapty-ui = { module = "io. adapty:android-ui" } In build. gradle. kts (module-level): dependencies { implementation(platform(libs. adapty. bom)) implementation(libs. adapty) implementation(libs. adapty. ui) // Koin for DI implementation("io. insert-koin:koin-android:3. 5. 3") implementation("io. insert-koin:koin-androidx-compose:3. 5. 3") }dependencies { implementation(platform(libs. adapty. bom)) implementation(libs. adapty) implementation(libs. adapty. ui) // Koin for DI implementation("io. insert-koin:koin-android:3. 5. 3") implementation("io. insert-koin:koin-androidx-compose:3. 5. 3") } After adding these dependencies, Android Studio will display a sync notification bar at the top. Click "Sync Now" to proceed. Step 2: Initialize Koin in your Application class Create an Application class if you don't already have one. This will be named something like MyApplication. kt: package com. yourpackagename package com. yourpackagename import android. app. Application import com. yourpackagename. services. SubscriptionService import io. adapty. Adapty import io. adapty. AdaptyConfig import io. adapty. utils. AdaptyLogLevel import org. koin. android. ext. koin. androidContext import org. koin. core. context. startKoin import org. koin. dsl. module class MyApplication : Application { override fun onCreate { super. onCreate startKoin { androidContext(this@MyApplication) modules(appModule) } Adapty. logLevel = AdaptyLogLevel. VERBOSE Adapty. activate( applicationContext, AdaptyConfig. Builder("YOUR_PUBLIC_SDK_KEY") . withObserverMode(false) . withIpAddressCollectionDisabled(false) . withAdIdCollectionDisabled(false) . build ) } }package com. yourpackagename package com. yourpackagename import android. app. Application import com. yourpackagename. services. SubscriptionService import io. adapty. Adapty import io. adapty. AdaptyConfig import io. adapty. utils. AdaptyLogLevel import org. koin. android. ext. koin. androidContext import org. koin. core. context. startKoin import org. koin. dsl. module class MyApplication : Application { override fun onCreate { super. onCreate startKoin { androidContext(this@MyApplication) modules(appModule) } Adapty. logLevel = AdaptyLogLevel. VERBOSE Adapty. activate( applicationContext, AdaptyConfig. Builder("YOUR_PUBLIC_SDK_KEY") . withObserverMode(false) . withIpAddressCollectionDisabled(false) . withAdIdCollectionDisabled(false) . build ) } } Important: You must register this Application class in your AndroidManifest. xml. Add the android:name attribute to your tag: Step 3: Create the Koin module and subscription service A Koin module defines how to create and provide dependencies throughout your app. Create a new file called AppModule. kt in a di folder (di stands for dependency injection): package com. yourpackagename. di // Change to your app's package name import com. yourpackagename. services. SubscriptionService import org. koin. dsl. module val appModule = module { single { SubscriptionService(get) } }package com. yourpackagename. di // Change to your app's package name import com. yourpackagename. services. SubscriptionService import org. koin. dsl. module val appModule = module { single { SubscriptionService(get) } } Create services/SubscriptionService. kt: package com. yourpackagename. services import android. app. Activity import android. content. Context import androidx. compose. runtime. getValue import androidx. compose. runtime. mutableStateOf import androidx. compose. runtime. setValue import io. adapty. Adapty import io. adapty. models. AdaptyPaywall import io. adapty. models. AdaptyProfile import io. adapty. utils. AdaptyResult import kotlinx. coroutines. flow. MutableStateFlow import kotlinx. coroutines. flow. StateFlow import kotlinx. coroutines. flow. asStateFlow class SubscriptionService(private val context: Context) { var paywall by mutableStateOf(null) private set var paywallErrorText by mutableStateOf(null) private set private val _isUserPremium = MutableStateFlow(false) val isUserPremium: StateFlow = _isUserPremium. asStateFlow var showPaywall by mutableStateOf(false) private set private var currentProfile: AdaptyProfile? = null fun getProfile { Adapty. getProfile { result -> when (result) { is AdaptyResult. Success -> { currentProfile = result. value _isUserPremium. value = checkPremiumStatus(result. value) if (_isUserPremium. value) { showPaywall = false } } is AdaptyResult. Error -> { println("Error: ${result. error. message}") } } } } fun getPaywall(placementId: String) { Adapty. getPaywall(placementId) { result -> when (result) { is AdaptyResult. Success -> { paywall = result. value paywallErrorText = null } is AdaptyResult. Error -> { paywallErrorText = result. error. message println("Error: ${result. error. message}") } } } } fun identifyUser(userId: String) { Adapty. identify(userId) { error -> if (error ! = null) { println("Could not identify user: ${error. message}") } } } fun makePurchase(activity: Activity, productVendorId: String) { paywall? . let { currentPaywall -> Adapty. getPaywallProducts(currentPaywall) { result -> when (result) { is AdaptyResult. Success -> { val productToBuy = result. value. find { it. vendorProductId == productVendorId } if (productToBuy ! = null) { Adapty. makePurchase(activity, productToBuy) { purchaseResult -> when (purchaseResult) { is AdaptyResult. Success -> { when (val adaptypurchaseResult = purchaseResult. value) { is AdaptyPurchaseResult. Success -> { currentProfile = adaptypurchaseResult. profile _isUserPremium. value = checkPremiumStatus(adaptypurchaseResult. profile) if (_isUserPremium. value) { showPaywall = false } println("Purchase successful! ") } is AdaptyPurchaseResult. UserCanceled -> { println("User canceled purchase") } is AdaptyPurchaseResult. Pending -> { println("Purchase is pending") } } } is AdaptyResult. Error -> { println("Failed: ${purchaseResult. error. message}") } } } } else { println("Product not found to buy. ") } } is AdaptyResult. Error -> { println("Failed to get products: ${result. error. message}") } } } } } fun restorePurchases { Adapty. restorePurchases { result -> when (result) { is AdaptyResult. Success -> { currentProfile = result. value _isUserPremium. value = checkPremiumStatus(result. value) if (_isUserPremium. value) { showPaywall = false } println("Restore successful! ") } is AdaptyResult. Error -> { println("Restore failed: ${result. error. message}") } } } } fun setPaywallVisibility(isVisible: Boolean) { showPaywall = isVisible } private fun checkPremiumStatus(profile: AdaptyProfile? ): Boolean { return profile? . accessLevels? . get("premium")? . isActive == true } }package com. yourpackagename. services import android. app. Activity import android. content. Context import androidx. compose. runtime. getValue import androidx. compose. runtime.... --- Get from zero Adapty setup to displaying a paywall and processing purchases in under 30 minutes. Pre-requisites You have a working iOS app built with UIKit You’re using Xcode 14+ Your app has at least one in-app purchase product created in App Store Connect You’ve created an Adapty account and your app is added in the Adapty dashboard with at least one product, paywall, and placement. Project Files To follow along with the written, video, or LLM-based tutorial, download the project files from Github. The branch named starter contains the app without any Adapty integration. The main branch contains the finished project. Install the Adapty SDK in your project In Xcode, go to File > Add Packages Enter the URL: https://github. com/adaptyteam/AdaptySDK-iOS. git Select the latest version and add the Adapty and AdaptyUI packages to your app target Initialize Adapty in Your App Add the following constants to your existing constants management system, or just add this file as-is: struct AppConstants { struct Adapty { static let apiKey = "API key goes here" static let accessLevelID = "premium" static let placementID = "on_tap_history" } }struct AppConstants { struct Adapty { static let apiKey = "API key goes here" static let accessLevelID = "premium" static let placementID = "on_tap_history" } } You can find your public SDK key in the Adapty Dashboard > Settings > API Keys In your SceneDelegate, import the Adapty frameworks and add the following task to the end of the scene(_:willConnectTo:options:) method: import Adapty import AdaptyUI func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene. ConnectionOptions) { ... Task { do { let config = AdaptyConfiguration. builder(withAPIKey: AppConstants. Adapty. apiKey). build try await Adapty. activate(with: config) try await AdaptyUI. activate } catch { print("Adapty activation failed: ", error) } } }import Adapty import AdaptyUI func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene. ConnectionOptions) { ... Task { do { let config = AdaptyConfiguration. builder(withAPIKey: AppConstants. Adapty. apiKey). build try await Adapty. activate(with: config) try await AdaptyUI. activate } catch { print("Adapty activation failed: ", error) } } } The above will configure and activate the Adapty SDK as well as the AdaptyUI framework, allowing you to display remotely configured paywalls with Paywall Builder. Check for Purchases on Launch It’s important to have up-to-date information on the user’s subscription status. Adapty makes this easy with something called a user profile. Import the Adapty framework into your ProfileManager class: import Adaptyimport Adapty And add the following property: var customerProfile: AdaptyProfile? { didSet { if let accessLevel = customerProfile? . accessLevels, accessLevel. isActive || accessLevel. isInGracePeriod || accessLevel. isLifetime { isPremium = true } else { isPremium = false } } }var customerProfile: AdaptyProfile? { didSet { if let accessLevel = customerProfile? . accessLevels, accessLevel. isActive || accessLevel. isInGracePeriod || accessLevel. isLifetime { isPremium = true } else { isPremium = false } } } Finally, add the following functions: func refreshProfile async throws { customerProfile = try await Adapty. getProfile } func subscriptionPurchased(with updatedProfile: AdaptyProfile) { customerProfile = updatedProfile }func refreshProfile async throws { customerProfile = try await Adapty. getProfile } func subscriptionPurchased(with updatedProfile: AdaptyProfile) { customerProfile = updatedProfile } Each time the app launches you should check to see if there has been a change in subscription status since the last launch. To do so, add the following as a task at the end of the viewDidLoad method of the HomeViewController: // import the Adapty frameworks import Adapty import AdaptyUI override func viewDidLoad { ... Task { do { try await ProfileManager. shared. refreshProfile } catch { print("Error refreshing profile on launch: \(error)") } } }// import the Adapty frameworks import Adapty import AdaptyUI override func viewDidLoad { ... Task { do { try await ProfileManager. shared. refreshProfile } catch { print("Error refreshing profile on launch: \(error)") } } } The refreshProfile function gets an updated AdaptyProfile object from the SDK with the latest subscription and access level information. Upon setting the property, the didSet will check the access level and update the isPremium boolean flag automatically. You can use this within the app to determine whether to show premium content or functionality. The Adapty SDK is now installed, configured, and activated, and a fresh user profile has been loaded, notifying the app of the user’s subscription status. Learn more about the Adapty profile and access levels. Configure Paywall Builder in Adapty The next step is to present a paywall from Paywall Builder where applicable. In the sample app, we want the journal history view to be available only to paying users, so the button to show it will present either the history view or the paywall, depending on whether the user has subscribed. In the HomeViewController, create a property to store the paywall configuration so it is ready to use when the user triggers the paywall view: private var paywallConfig: AdaptyUI. PaywallConfiguration? private var paywallConfig: AdaptyUI. PaywallConfiguration? Before we can show the Paywall Builder paywall, we need to fetch it and its configuration from Adapty’s servers. Append to the task in the HomeViewController’s viewDidLoad method the following: override func viewDidLoad { ... Task { ... guard ! ProfileManager. shared. isPremium else { return } do { let paywall = try await Adapty. getPaywall(placementId: AppConstants. Adapty. placementID) paywallConfig = try await AdaptyUI. getPaywallConfiguration(forPaywall: paywall) } catch { print("Paywall fetch error:", error) } } }override func viewDidLoad { ... Task { ... guard ! ProfileManager. shared. isPremium else { return } do { let paywall = try await Adapty. getPaywall(placementId: AppConstants. Adapty. placementID) paywallConfig = try await AdaptyUI. getPaywallConfiguration(forPaywall: paywall) } catch { print("Paywall fetch error:", error) } } } The above code uses the SDK to fetch the paywall and its configuration based on the placement ID, and stores the configuration in our config property to use when we actually present the paywall. Now we’re ready to show a real paywall. In the function named showHistory, find the lines in the else clause that create the PaywallViewController and remove them. This was just a mock... --- Learn how top subscription apps use push notifications and targeted messaging to convert trials, reduce churn, and grow revenue without increasing user acquisition. Imagine this: you get 1,000 new downloads... but only a handful convert to paying subscribers. Most apps struggle not because they can’t attract users, but because they fail to guide them at the right moment. The solution isn’t more downloads. It’s mastering how to speak to the users you already have. With the right push notifications and messages at the right time, you can turn trial users into loyal subscribers, stop churn before it starts, and grow revenue without spending a dollar more on acquisition. This guide shows you exactly how. Structure messaging around Day N cohorts When a user installs your app, they immediately enter a cohort – a group defined by “days since install. ” Tracking and messaging based on user cohorts lets you predict behavior patterns and optimize communication at the exact moments that drive revenue. Top subscription teams rely on this model: Day 0-3 → activation & onboarding Day 3-7 → early engagement & value reinforcement Day 7-30 → expansion & upselling Day 30+ → re-engagement & rescue of at-risk users. Cohort timing tells you when to act. Messaging is how you convert that moment into revenue. Day 0-3: Capture user interest early on The first three days after install are critical. Research indicates that the average app loses 75% of users past Day 1. This initial window is your best opportunity to engage users and demonstrate your app's value. 1. Personalize onboarding with progressive profiling Avoid overwhelming new users with extensive forms. Instead, employ progressive profiling: collect essential information upfront and request additional details as users continue to engage.   MoneyCoach prompts users to input basic financial goals initially, gradually introducing more detailed options as they navigate the app. 2. Utilize geo or device-based dynamic content Tailor onboarding experiences and initial push notifications based on the user's location, language, or device type.   For example, display region-specific promotions or adjust onboarding flows according to the user's time zone. Such personalization can enhance user engagement from the outset. 3. Encourage сompletion of account setup Guide users through onboarding checklists, push notifications, or in-app prompts to encourage profile completion, service connections, or preference settings. Data shows that users who complete their account setup are twice as likely to engage with push notifications and remain active in your app.   Shortly after installation, send targeted push notifications to users who haven't completed key onboarding steps. For instance:  Timing is crucial – ensure these messages are sent while user intent remains high. 4. Continuously A/B test your paywalls Your paywalls are the highest-impact screens in your app. Small changes can dramatically affect conversion rates. Test different layouts, messaging, and visual elements to find what drives users to convert. ABBYY FineReader used Adapty’s A/B testing tools to compare two paywall versions: A simple layout with only plan pricing A detailed version featuring key benefits, visual icons, and a bold discount badge on the annual plan The richer, more informative version generated a 58. 5% increase in annual subscription revenue. Day 3-7: Reinforce value and drive subscriptions By Day 3, users have either decided to stick or they’re one step from disappearing. This window is your best shot to turn browsers into buyers.   1. Engage users with behavior-based value push notifications Track what users actually do, then send personalized push notifications. Data shows that personalized push notifications can increase open rates by up to 2x compared to generic messages.   For example, if a user has opened your budget tracker three times in the past week, you can automatically send them a targeted push similar to: This level of personalization feels helpful, not intrusive, and encourages the user to take the next step. You don’t need to manage this manually. With behavioral triggers, these campaigns run automatically based on real-time user activity. 2. Chase abandoned subscriptions Target users who opened your subscription screen but didn’t complete their purchase. These users have already shown intent – they’re interested but not yet convinced. You’re often just one message away from converting them. The right push notification, sent at the right time, can close the gap. Emotional or urgency-based messages work especially well in this scenario. A push like this can prompt a user to act before the offer disappears. Notice the push uses a question? This simple trick can improve CTR by up to 20% because it invites the user to re-engage, reflect on their hesitation, and take the final step toward action – subscription. 3. Rescue trial users before they quit Most apps lose trial users when the free period ends, but you can step in before they disappear. Offer them an extended trial to give them more time to experience premium features, or remind them of what they’ll lose if they leave. A well-timed push notification works especially well in this case. For example: The best way to trigger these messages is by segmenting users by when their trial began. Apps that implement intent-based segmentation see up to 10x higher push notification engagement rates. This makes pre-expiry outreach one of the most powerful retention tactics for subscription apps. Day 7-30: Turn engaged users into subscribers  Users who remain engaged beyond Day 7 are primed for upsell. With the right combination of push notifications, in-app offers, and flexible plan options, this phase becomes the turning point for revenue growth. 1. Tactics to encourage upgrades Giving users the option to personalize their experience – whether through app themes, color palettes, custom dashboards, or display settings – creates emotional investment. Users who have customized their app are far more likely to stick around and upgrade to premium plans to keep their personalized experience intact. Beyond emotional investment, many subscription apps focus on micro-targeted upgrades that feel like personal offers. One highly effective tactic is to offer exclusive access to new features via deep links or promo codes. For example, a fitness app could send a personalized push like: When the user taps, they’re taken directly to a hidden in-app upgrade screen featuring the... --- Get from zero Adapty setup to displaying a paywall and processing purchases in under 60 minutes. This guide walks you through installing the Adapty SDK, initializing it in your SwiftUI app, checking subscription status on launch, and presenting paywalls with Paywall Builder. Get from zero Adapty setup to displaying a paywall and processing purchases in under 60 minutes. Pre-requisites Before you begin, make sure you have: A working iOS app built with SwiftUI Xcode 14 or later At least one in-app purchase product created in App Store Connect An Adapty account with your app added to the dashboard, including at least one product, paywall, and placement Project files To follow along with this tutorial, download the project files from Github. The starter branch contains the app without Adapty integration, while the main branch contains the finished project. Install the Adapty SDK in your project In Xcode, go to File > Add Packages Enter the URL: https://github. com/adaptyteam/AdaptySDK-iOS. git Select the latest version and add both the Adapty and AdaptyUI packages to your app target Initialize Adapty in your app First, add these constants to your existing constants management system, or create a new file: struct AppConstants { struct Adapty { static let apiKey = "API key goes here" static let accessLevelID = "premium" static let placementID = "on_tap_history" } }struct AppConstants { struct Adapty { static let apiKey = "API key goes here" static let accessLevelID = "premium" static let placementID = "on_tap_history" } } Find your public SDK key: Adapty Dashboard > Settings > API Keys Next, add an init function to your SwiftUI @main struct: import Adapty import AdaptyUI @main struct Focus_JournalApp: App { init { let configurationBuilder = AdaptyConfiguration. builder(withAPIKey: AppConstants. Adapty. apiKey) Task { do { try await Adapty. activate(with: configurationBuilder. build) try await AdaptyUI. activate } catch { print("Failed to activate Adapty SDK: \(error)") } } } ... }import Adapty import AdaptyUI @main struct Focus_JournalApp: App { init { let configurationBuilder = AdaptyConfiguration. builder(withAPIKey: AppConstants. Adapty. apiKey) Task { do { try await Adapty. activate(with: configurationBuilder. build) try await AdaptyUI. activate } catch { print("Failed to activate Adapty SDK: \(error)") } } } ... } This code configures and activates both the Adapty SDK and AdaptyUI framework, enabling you to display remotely configured paywalls with Paywall Builder. Check for purchases on launch Keeping subscription status up-to-date is crucial. Adapty simplifies this with user profiles. Import the Adapty framework in your ProfileManager class: import Adaptyimport Adapty And add the following property: var customerProfile: AdaptyProfile? { didSet { if let accessLevel = customerProfile? . accessLevels, accessLevel. isActive || accessLevel. isInGracePeriod || accessLevel. isLifetime { isPremium = true } else { isPremium = false } } }var customerProfile: AdaptyProfile? { didSet { if let accessLevel = customerProfile? . accessLevels, accessLevel. isActive || accessLevel. isInGracePeriod || accessLevel. isLifetime { isPremium = true } else { isPremium = false } } } Finally, add the following functions: func refreshProfile async throws { customerProfile = try await Adapty. getProfile } func subscriptionPurchased(with updatedProfile: AdaptyProfile) { customerProfile = updatedProfile }func refreshProfile async throws { customerProfile = try await Adapty. getProfile } func subscriptionPurchased(with updatedProfile: AdaptyProfile) { customerProfile = updatedProfile } Each time the app launches you should check to see if there has been a change in subscription status since the last launch. To do so, add the following as a task in your app’s @main: ... ContentView . environment(profileManager) . task { do { try await profileManager. refreshProfile } catch { print("Error refreshing profile on launch: \(error)") } }... ContentView . environment(profileManager) . task { do { try await profileManager. refreshProfile } catch { print("Error refreshing profile on launch: \(error)") } } The refreshProfile function gets an updated AdaptyProfile object from the SDK with the latest subscription and access level information. Upon setting the property, the didSet will check the access level and update the isPremium boolean flag automatically. You can use this within the app to determine whether to show premium content or functionality. The Adapty SDK is now installed, configured, and activated, and a fresh user profile has been loaded, notifying the app of the user’s subscription status. → Learn more about the Adapty profile and access levels. Configure Paywall Builder in Adapty The next step is to present a paywall from Paywall Builder where applicable. In the sample app, we want the journal history view to be available only to paying users, so the button to show it will present either the history view or the paywall, depending on whether the user has subscribed. In the HomeView, import the Adapty frameworks to get started: import Adapty import AdaptyUIimport Adapty import AdaptyUI Next, create a state property to store the paywall configuration so it is ready to use when the user triggers the paywall view: @State private var paywallConfig: AdaptyUI. PaywallConfiguration? @State private var paywallConfig: AdaptyUI. PaywallConfiguration? Before we can show the Paywall Builder paywall, we need to fetch it and its configuration from Adapty’s servers. Add a task to the HomeView that will perform this fetching on load: . task { do { if ! profileManager. isPremium { let paywall = try await Adapty. getPaywall(placementId: AppConstants. Adapty. placementID) paywallConfig = try await AdaptyUI. getPaywallConfiguration(forPaywall: paywall) } } catch { print("Error fetching paywall or paywall config: \(error)") } }. task { do { if ! profileManager. isPremium { let paywall = try await Adapty. getPaywall(placementId: AppConstants. Adapty. placementID) paywallConfig = try await AdaptyUI. getPaywallConfiguration(forPaywall: paywall) } } catch { print("Error fetching paywall or paywall config: \(error)") } } The above code uses the SDK to fetch the paywall and its configuration based on the placement ID, and stores the configuration in our state property to use when we actually present the paywall. From the sample project, remove the following sheet presentation, as it was just a placeholder for our real paywall: . sheet(isPresented: $isShowingPaywall) { Button { profileManager. subscriptionPurchased isShowingPaywall = false } label: { Text("Unlock Premium") } . buttonStyle(. borderedProminent) }. sheet(isPresented: $isShowingPaywall) { Button { profileManager. subscriptionPurchased isShowingPaywall = false } label: { Text("Unlock Premium") } . buttonStyle(. borderedProminent) } Now we’re ready to show the paywall. To do this, we’ll use a custom view modifier that unwraps the paywall configuration optional before adding the paywall modal view modifier... --- Ad testing is key to web-to-app growth. Learn how top teams find winning creatives and scale them fast. Most of your ad budget will go into just a few creatives. The tricky part is knowing which ones are worth scaling. Creative ad testing has become a core part of every high-performing web-to-app strategy. If you don’t have a system for testing and improving your ads, you’ll spend more and learn less. In this article, I’m sharing how I approach testing and scaling creatives, based on the same process I’ve used while running 7-8 figure monthly spends at places like Cash App and Calm. These are practical, repeatable tactics that high-performing growth teams use every day. How many ad creatives do I need to test for success? The top 2% of ads now spend ~50% of budget according to Appsflyer's 2025 report. That means 98 of 100 creatives don’t perform well enough to scale or even survive the test. In my experience, it usually takes dozens of tests to find one that really scales. The more concepts you test, the better your chances to hit something that works and is good for scale. According to Facebook research, fast-growing companies test 11x more creatives than average. Not just because they can afford it, but because that’s how algorithms work. Creative fatigue, shifting audience behavior, and platform algorithms make ad testing not optional, but fundamental. What is a good ad testing framework? Creative testing works best when it runs continuously. A simple loop, repeated often, brings better results than occasional campaigns. We’ve seen the best results when new ads go live every week. Even when current creatives perform well, add fresh ones to the mix. That keeps delivery stable and performance strong. Here’s what makes it work: Low-cost production. Modular templates and AI tools help build fast. You don’t need to be perfect. High variation. Test new hooks, formats, visuals, and copy. Small changes can shift results. Steady output. Regular launches prevent performance drops and reduce fatigue. Systematic ad testing. Launch multiple versions and let the audience choose the winner. What are the best performing ad trends in 2025?   Trends come and go. But when you’re testing fast, they open up more room for experimentation. Lo-fi statics. Formats like Post-it notes, Slack chats, iMessage threads, and whiteboard scribbles. They look raw and messy on purpose. And that’s exactly the point – they blend into the feed and don’t scream “BUY ME”. Lo-fi creatives feel raw and real, which helps them grab attention and blend naturally into the feed AI-generated UGC. Tools like Arc Ads, Pulley, or Cify make it easy to spin up testimonial-style videos without actors. Production is cheap enough to run 50 variations and just see what sticks. Even if 9 out of 10 don’t convert, the one that does can carry the spend. AI-generated UGC makes video production fast and cheap, helping teams test more ideas AI visual hooks. Image models like ChatGPT, Midjourney or open-source alternatives (Replicate is also a good starting point) help generate scroll-stopping concepts fast. Add overlays in Canva and test early-stage ideas without sinking time into full creative builds. Podcast-style creative. Voice-over paired with a waveform and some lo-fi visuals. They grab attention without looking like an ad. That’s especially useful for web-to-app flows that rely on storytelling. Feeds are full of noise, but people still stop for voices that feel expert and real. Podcast-style ads feel natural and blend into the feed. That’s why they work so well Some of these are better suited for web-to-app than others. Static Lofi and podcast-style creatives tend to convert best when paired with native-feeling landing pages. AI hooks are great for testing scroll-stopping ideas early in the funnel. You don’t need to chase trends, but knowing them can make your ad testing smarter and more diverse. How to find the right messaging that resonates with my audience? Ad testing starts way before you open Figma or hit “record. ” Before working on any ad, I look at how people actually talk. Here’s how to find it: Start with your app reviews. Export them, drop into ChatGPT, and ask it to pull out 20 concise 5-star ones. These can be turned into static ads: short quotes with high love-of-intent. In one project we tested 50 of them and found 3-5 that consistently performed across video, static, and UGC formats. Dig through Reddit. Search for your app, category, or problem space. Look at how real people talk about their needs, frustrations, and habits. These exact phrases often make the best hooks, better than anything copywriters come up with in a vacuum. Check post comments and ad replies. See how users react to your own ads (and your competitors’). What are they curious about? What language do they use? A single phrase from a comment can turn into a high-performing angle. The point is to listen, extract, and test what your audience wants. A good ad speaks the way your users already do. What does real “creative diversity” look like? Small changes like tweaking the colors or shuffling the headlines can help, but rarely lead to breakthroughs. To find winning creatives, you need fundamentally different ideas. Start by mapping out your options: What you’re exploringIf it’s like this... Try this insteadMotivationGeneric benefits like “save time”Tap into specific pains: “Can’t focus? Try this in your next break”Awareness stageSelling features to users who barely know the problemLead with the problem they do feel – and only then introduce your solutionMessage“Best app for blah-blah” or “#1 on the App Store”Use real testimonials, user quotes, or emotional hooksFormatPolished promo videoLo-fi styles: Post-it notes, text convos, webcam rants, or Reddit screenshotsToneAlways polished and formalTest casual, bold, offbeat, or even annoyed tones. People don’t scroll for perfect You don’t need to hit everything at once. But if all your ads use the same angle and format, you’re leaving better ideas unexplored. Explore different motivators, formats, frameworks, and awareness stages to shape ideas that truly resonate Real creative diversity means testing different ways of seeing rather than different ways of designing. How to structure... --- Learn secure server-side transaction validation with Apple's App Store Server API. Covers JWT authentication, transaction validation, subscription management, and verifyReceipt migration for iOS developers. The App Store Server API provides developers with a modern, secure way to verify in-app purchases directly from their servers. This is the fourth tutorial in our comprehensive series on implementing in-app purchases in iOS applications. What are the complete steps for iOS in-app purchase implementation? If you haven't read the previous articles, I recommend starting with: iOS in-app purchases. part 1: App Store Connect and project configuration iOS in-app purchases, part 2: purchase initialization and processing iOS in-app purchases, part 3: testing purchases in Xcode iOS in-app purchases, part 4: server-side transaction validation iOS in-app purchases, part 5: the list of SKError codes and how to handle them In this guide, we'll explore Apple's latest server-side validation approach, explain how it works, and provide practical implementation examples to help you validate transactions and manage subscriptions efficiently. Why did Apple replace verifyReceipt with App Store Server API? Apple has significantly modernized their transaction validation system. The legacy verifyReceipt endpoint, which required parsing encrypted receipt files, has been deprecated in favor of the new App Store Server API. Key improvements The new API delivers several compelling advantages: Simpler transaction verification: Get clear, structured transaction data without manually parsing receipts. Real-time subscription status: Instantly check user subscription states. Improved fraud prevention: More secure validation with JWT-based authentication. Simplified cross-platform support: Easily manage user subscriptions across devices and platforms. Better analytics and insights: Clearer, more accurate transaction history and user subscription lifecycle events. How does App Store Server API transaction validation work? The typical validation workflow follows these steps: The user completes an in-app purchase on their device. Your app receives the transaction information via StoreKit 2. Your app securely sends transaction data (like transactionId) to your own server. Your server authenticates using a signed JWT (JSON Web Token) and queries Apple’s App Store Server API. Apple returns structured JSON responses containing transaction details and subscription statuses. Your server confirms the purchase validity and grants access to premium features. This architecture keeps sensitive validation logic on your server while maintaining a smooth user experience. How do you set up JWT authentication for App Store Connect API? To interact with the App Store Server API, you’ll first authenticate your requests using JWT. This is more secure than the older “shared secret” approach. You’ll need the following: Your Issuer ID - Found in App Store Connect under the User and Access menu, within the Integrations tab, and the App Store Connect API sub-tab A generated API Key (provide a name and set access to Developer) Once generated, copy the key ID and download the . p8 file Important: Store your . p8 file securely as you cannot re-download it. Apple uses standard JWT tokens. Here's how to generate a JWT token in Swift using JWTKit: import JWTKit let keyId = "ABC123DEFG" let issuerId = "123e4567-e89b-12d3-a456-426614174000" let privateKey = "" let signer = try JWTSigner. es256(key: . private(pem: privateKey)) let payload = AppStorePayload( issuer: issuerId, issuedAt: Date, expiration: Date. addingTimeInterval(60 * 5), // token valid for 5 minutes audience: "appstoreconnect-v1" ) let jwt = try signer. sign(payload, header: )import JWTKit let keyId = "ABC123DEFG" let issuerId = "123e4567-e89b-12d3-a456-426614174000" let privateKey = "" let signer = try JWTSigner. es256(key: . private(pem: privateKey)) let payload = AppStorePayload( issuer: issuerId, issuedAt: Date, expiration: Date. addingTimeInterval(60 * 5), // token valid for 5 minutes audience: "appstoreconnect-v1" ) let jwt = try signer. sign(payload, header: ) Your JWT will be used as a Bearer token in your App Store Server API requests. How do you validate iOS in-app purchase transactions with the API? To validate a transaction, you should call the following endpoint, replacing {transactionId} with the transaction ID you got from your app upon purchase by your user. curl -X GET \ -H "Authorization: Bearer " \ "https://api. storekit. itunes. apple. com/inApps/v1/transactions/{transactionId}"curl -X GET \ -H "Authorization: Bearer " \ "https://api. storekit. itunes. apple. com/inApps/v1/transactions/{transactionId}" Notice the use of the Bearer token we created in the previous step as the authorization header value. Apple’s API should return a payload similar to the following, assuming that it finds the transaction ID you provided in the request: { "bundleId": "com. adapty. sample_app", "transactionId": "2000000112345678", "productId": "basic_subscription_monthly", "purchaseDate": 1628533562000, "originalTransactionId": "2000000112345678", "quantity": 1, "type": "Auto-Renewable Subscription", "inAppOwnershipType": "PURCHASED", "signedTransactionInfo": "", "environment": "Production" }{ "bundleId": "com. adapty. sample_app", "transactionId": "2000000112345678", "productId": "basic_subscription_monthly", "purchaseDate": 1628533562000, "originalTransactionId": "2000000112345678", "quantity": 1, "type": "Auto-Renewable Subscription", "inAppOwnershipType": "PURCHASED", "signedTransactionInfo": "", "environment": "Production" } Responses you’re likely to encounter are: Response code 200 - the request succeeded and the transaction was found Response code 401 - Your JWT is invalid Response code 404 - The transaction ID wasn’t found The 401 indicates you may have created your JWT improperly. Check the related code and ensure it’s working correctly. The 404 could indicate either an issue with how you’ve sent your transaction ID to the server from the app, or that the app has been compromised and the user is trying to access premium content fraudulently. It’s up to you how you wish to respond to this within your system and the app. If you receive the transaction info, you can further confirm the validity of the data by inspecting the signedTransactionInfo key. The value is a JWS, or the JSON Web Signature Compact Serialization format. See this Apple Doc for further information on parsing this value. The presence of the transaction data payload indicates that Apple has validated it, and you are free to unlock premium features for your user. How do you manage iOS subscriptions with App Store Server API? If you’re focused on auto-renewable subscriptions, you can call a different endpoint to retrieve data about all of a customer’s subscriptions in your app. curl -X GET \ -H "Authorization: Bearer " \ "https://api. storekit. itunes. apple. com/inApps/v1/subscriptions/{transactionId}"curl -X GET \ -H "Authorization: Bearer " \ "https://api. storekit. itunes. apple. com/inApps/v1/subscriptions/{transactionId}" You would create and utilize a JWT in the same manner as with the previous endpoint. This will return a payload of data with all the auto-renewable subscriptions... --- Discover how Solarc transitioned from StoreKit to RevenueCat and finally to Adapty for seamless in-app subscriptions. Avoid pitfalls and optimize your strategy. When building a mobile app as an indie developer, finding a sustainable business model is essential. In today's app economy, this typically means monetization through in-app purchases, particularly subscriptions. Despite growing subscription fatigue among consumers, this business model remains viable but only if you can demonstrate ongoing value to compete for those subscription dollars. During development of my weather app Solarc, I've experienced three different approaches to subscription management: Apple's StoreKit, RevenueCat, and finally Adapty. This journey taught me valuable lessons about subscription management that I want to share with other developers. In this article, I'll walk you through why I initially chose StoreKit, the limitations I encountered, and why Adapty proved to be the superior RevenueCat alternative for my specific needs. My goal is to help you avoid some of the pitfalls I encountered, enabling you to integrate subscriptions faster and more smoothly in your own apps. What are the pros and cons of starting with StoreKit? When I first began work on Solarc, it was a different app than it turned out to be. I was initially focused on providing a timezone converter so users could know the time of day and whether the sun was shining in various locations. This was also the beginning of the COVID pandemic and my goal was to build and ship something quickly. As I settled on my monetization plan, I decided to use StoreKit to handle subscriptions. Due to a variety of reasons (and the impact of COVID overall), I didn’t actually ship the app in 2020. I picked development back up in 2021 and by then, Apple had shipped the StoreKit 2 updates that made it much easier to use. I implemented a very plain-looking paywall and used StoreKit 2’s improvements to deliver a straightforward value proposition for users. A coding strategy focused around StoreKit might be right for you if: Your subscription offerings are simple You only want to show one paywall You're only targeting iOS If you use this strategy, I’d suggest creating a persistent manager to keep track of your products and manage the purchase process. This will help prevent IAP-related code from proliferating throughout your views and general codebase. It can also help ease the transition should you later decide you want to move to something like Adapty (more on that later). A look at my original subscription manager class, adapted from some demo code Apple provided. I evolved this into the Adapty-focused one you'll see below. Your needs for subscription management may outgrow this approach, either during development or after launch. Personally, as my app got more complex (I shifted to offering weather data alongside sunrise/sunset times), I wanted to have a more sophisticated approach to showing and managing my subscription options. This led me to researching revenue management software tools. What are the pros and cons of RevenueCat for subscription management At the time I made this decision, RevenueCat was a tool I had heard of and even worked with in my day-job. It seemed to match my needs, and it was simple enough to implement in my day-job project, so I thought I’d give it a try here as well. The main advantages of using a toolset like this over StoreKit are the following: Provides a unified backend for financial and subscriber-lifecycle data across both iOS and Android Utilizes an entitlements system to grant access to premium features which allows for manual adjustments and enablement by the developer for users Gives you deeper analysis than either Google Play Console or App Store Connect on your UA and financial metrics Because I had already built a standardized way to manage my subscriptions in my code, I was able to adapt it to use RevenueCat instead. I converted my native paywall to use products from RC’s SDK and due to the subscription manager, most of my main app code was unaffected by the transition. I shipped version 1. 0 of Solarc in mid-2023 and I was quite happy with what I had built technically. The problem lie in the marketing and the case I was making in the app to convince users to convert. Even great apps are limited by their approach to user acquisition. These limitations led me to research other RevenueCat alternatives that might offer more sophisticated tools for optimizing the subscription experience in Solarc How does Adapty compare to RevenueCat as an alternative? After launch I worked on an update to Solarc throughout most of 2024. The advantage to making all the decisions is that you can judge your work by your own standards. The downside of course is you don’t have anyone to tell you “it’s good enough, ship it now”. The update I had planned for the beginning of 2024 ballooned into a pretty major overhaul of most features within the app. I think Solarc is much better for it, but I did spend quite a bit of time making changes. As the product evolved, I developed new ways to showcase value and try to convince users the upgrade would be worth it. Along the way it became clear that I would need to show paywalls in multiple locations and that they would need different designs to appeal to users in the right way. Creating these paywalls natively would be a lot of work. After researching various RevenueCat alternatives, I learned about Adapty and their Paywall Builder feature. It’s a no-code editor for creating and deploying paywalls instantly, assuming you’ve got the Adapty SDK installed and configured in your app. The SDK looked similar in approach to RevenueCat’s and I knew that my subscription manager would be quite helpful in making the switch since I had already done so when moving from StoreKit to RC. I decided the richer analytics, the easy A/B testing, and the quickly updatable paywalls was something I needed for Solarc, so I got to work with the conversion. A look at Solarc's paywall focused on helping users understand the free trial. It's a design with... --- If you've developed a mobile app, you're familiar with the financial reality: platform commissions of 15-30% significantly impact your bottom line. With Stripe charging just 2. 9% + $0. 30 per transaction, many developers wonder if this could be a viable alternative. But can you actually use Stripe for in-app purchases without violating platform policies? The April 2025 ruling in the Epic Games v. Apple case has fundamentally changed what's possible, making this question more relevant than ever. App Store payment policies: then and now Traditional rules The app payment ecosystem has historically been tightly controlled: Apple's App Store requires using StoreKit for digital goods. Google Play mandates its Billing Library for similar purchases. Both take 15-30% of each transaction. Alternative payment methods were mostly prohibited. For years, the rule was clear: if you're selling digital content used within your app, you had to use the platform's native payment system. Stripe for in-app purchases was generally restricted to physical goods or real-world services. The 2025 turning point The Epic Games v. Apple case brought a profound shift to this landscape. The court ruled that Apple could no longer prevent apps from including links to external payment systems for digital purchases. This opened new possibilities for Stripe for in-app purchases, at least in the United States. Now, developers can include buttons or links directing users to web-based payment options without paying Apple's commission fees. This creates meaningful opportunities for integrating Stripe for in-app purchases into iOS apps. → Read more on New U. S. ruling on external iOS payments When can you use Stripe for in-app purchases? The answer depends on several factors: the platform, your app category, and the specific use case. Let's break it down: 1. Physical goods and real-world services Yes, you can use Stripe for in-app purchases. If your app sells physical products (clothing, electronics, books) or real-world services (rides, cleaning services, food delivery), you're free to use Stripe or any other payment processor. These transactions have always been exempt from the App Store's payment requirements. Take food delivery apps like DoorDash and Uber Eats. They use external payment processors without issue, since they're delivering physical goods. 2. Digital content for external use Yes, with some conditions. Google Play allows you to use Stripe for in-app purchases if you're selling digital goods meant to be used outside of your app. For example, if you're selling a subscription to a magazine, you could use Stripe to process these in-app purchases. Consider whether users will primarily consume your content outside your app. If yes, Stripe may be an option worth exploring. 3. Cross-platform subscriptions (the web + app model) Yes, but with strategic implementation. In many cases, developers sell subscriptions both in-app and on the web. You can use Stripe for in-app purchases to process payments on the web and then unlock access to the subscription or digital product on every device where the user is logged in. This approach requires users to leave your app and make the purchase via a web browser, but the recent ruling makes this flow much more seamless. 4. U. S. apps after April 2025 Yes, with proper implementation. Following the April 2025 court decision, Stripe has shared documentation that shows iOS developers how to avoid the Apple commission by accepting payments using Stripe for in-app purchases outside of their apps. Apps on the U. S. App Store can now include a button or link to their own website's checkout page, and Apple can't take a cut. The key question to consider: Are you willing to build and maintain your own payment infrastructure to save on platform fees? For many developers facing significant commission costs, this trade-off makes financial sense. Implementing external payment options Many developers are now integrating Stripe through a three-part strategy: Technical implementation Below is a basic SwiftUI view that demonstrates the flow for creating a personalized checkout experience on the web. This example is a starting point and does not include comprehensive error handling or UX refinements, so you’ll need to adapt it for your specific use case. Swift import Foundation import SwiftUI import StoreKit struct SubscribeView: View { @State var serverMgr: ServerManager = ServerManager @State var paymentComplete = false @State var checkoutURL: URL? = nil var body: some View { content . task { do { checkoutURL = try await serverMgr. createCheckoutURL } catch { // Handle error more gracefully print(error) } } . onOpenURL { url in // Handle the universal link from Checkout. if url. absoluteString. contains("success") { // The payment was completed. // Show a success page and fetch the latest // customer entitlements from your server. paymentComplete = true } } } @ViewBuilder var content: some View { // Check if payments are blocked by Parental Controls or MDM on this device. if ! AppStore. canMakePayments { Text("Payments are disabled on this device. ") } else { if paymentComplete { Text("Payment complete! ") } else { Button { if let checkoutURL { UIApplication. shared. open(checkoutURL, options: , completionHandler: nil) } } label: { Text("Subscribe Now") } } } } }Swift import Foundation import SwiftUI import StoreKit struct SubscribeView: View { @State var serverMgr: ServerManager = ServerManager @State var paymentComplete = false @State var checkoutURL: URL? = nil var body: some View { content . task { do { checkoutURL = try await serverMgr. createCheckoutURL } catch { // Handle error more gracefully print(error) } } . onOpenURL { url in // Handle the universal link from Checkout. if url. absoluteString. contains("success") { // The payment was completed. // Show a success page and fetch the latest // customer entitlements from your server. paymentComplete = true } } } @ViewBuilder var content: some View { // Check if payments are blocked by Parental Controls or MDM on this device. if ! AppStore. canMakePayments { Text("Payments are disabled on this device. ") } else { if paymentComplete { Text("Payment complete! ") } else { Button { if let checkoutURL { UIApplication. shared. open(checkoutURL, options: , completionHandler:... --- Here are the top monetization strategies for the free, freemium, and paid mobile app monetization models. Shifting digital privacy lines, evolving macroeconomics, and changing user behavior have deeply impacted the mobile app industry in recent years. Increased focus on data privacy led to stricter regulations and provisions like opt-in tracking, directly impacting apps monetizing via advertising and data brokerage. The fear of an "imminent" recession got users looking for expenses they could cut out – with many considering their ongoing mobile app subscriptions. Users, too, are seemingly shifting from commiting to subscriptions to favoring ad hoc purchases. This explains why subscriptions saw a slump in recent times – even if this might only be a temporary trend. Adapting to this new landscape is essential for sustained app growth. And using the right monetization model and strategies is a key part of this mix.   In today's article, we'll look at the top app monetization strategies that work for different app monetization models like free, freemium, and paid. We'll also discuss their key benefits and limitations and a few best practices. Here goes. Monetizing with in-app purchases In-app purchases (IAPs) refer to purchases that app users make inside an app to unlock additional features/functions, content, or benefits. In-app purchases are the most effective monetization strategy for mobile apps, accounting for about 48. 2% of all mobile app earnings. IAPs broadly fall into two categories. 1. One-time in-app purchases One-time in-app purchases are products that a user pays for just once. Within one-time in-app purchases, you have two types of products: Consumables Non-Consumables Consumables are in-app purchases that users can "consume" and once they do so, the products' stock expires. For instance, a gaming app user can purchase an extra "life" which gets consumed once a user loses the extra life in the game.   Non-consumables, on the other hand, are in-app purchases that users can use any number of times. These products don’t expire, so a user can access a non-consumable purchase as many times as they want. For example, a gaming app user can purchase an extra "level", which is not a consumable product and doesn’t expire.   When a user makes a non-consumable in-app purchase, it gets tied to their Apple App Store or Google Play store account. And if they reinstall the app, they can restore such in-app purchases. Google Play store automatically restores them, while Apple users can restore them manually.   However, consumables may not always be restorable. 2. In-app subscriptions Subscriptions are a special kind of an in-app purchase where a user pays a fixed subscription fee every week, month, or quarter (or according to a set subscription cycle) for continued access to the benefits, features, and content that the subscription offers. Subscriptions are an increasingly popular monetization method for app makers, thanks to the predictable revenue they bring. In fact, a major share (82%! ) of the revenue that non-gaming apps make on the app stores actually comes from subscriptions. In-app subscriptions, too, come in two forms: Auto-renewable subscriptions Non-renewable subscriptions Auto-renewable subscriptions are subscriptions that renew automatically. Here, you ask your users – “subscribers” – to agree to your billing terms, which include charging them an automatic payment in line with the subscription plan they subscribe to. Renewal subscription payments are charged automatically and don’t need any user authentication. Non-renewable subscriptions – which the Google Play store refers to as “prepaid” subscriptions – are subscriptions that don’t automatically get renewed. For example, a health app can launch a non-renewable one-month subscription plan that unlocks the entire app for a user for a month. But the plan doesn't auto-renew after the subscription period ends. You could also loosely call a lifetime subscription plan a non-renewable one. Let’s now see how apps actually monetize with in-app purchases. Three models of monetizing a mobile app with in-app purchases Requiring users to make a payment upfront – the “paid-to-download” – app monetization model In this paid app monetization model, your users need to pay to download your app. These sales technically happen on the app store – and not inside your app. About 3. 1% of apps in the Google Play store and 5. 8% apps in the App Store follow the paid-to-download monetization strategy. Here’s a wallpaper app using the paid-to-download model: Some app makers even launch two versions of their apps when using this model. They offer a free or a freemium version (which is monetized via ads or in-app purchases) and a paid version that’s only available after making a payment upfront. The free version here helps build a user base for the paid version. ABBYY, an app business in the productivity niche, does this well. It offers both free and paid versions of its PDF reader app. ABBYY also offers a one-time purchase option (via its lifetime plan) and monthly and annual plans to its users in the free version and prompts them to migrate over to the paid app. FineReader: Mobile Scanner app - A freemium app. The free version's paywall prompting users to buy the premium version! FineReader Pro: PDF Scanner app - You must pay to download. User acquisition can be a problem with the paid download app model as users can be reluctant to download paid apps, especially paid apps that don’t offer trials. However, this can improve if you offer a free trial, as you can make the decision relatively risk-free for your users. Alternatively, you can offer a "lite" or free version like ABBY does. Requiring users to pay payments for accessing premium features, benefits, or content We’re talking about the standard freemium mobile app monetization model here. With this model, you give your users a basic version of your mobile app for free while making premium features, functionalities, and content available only in the “premium” version.   The premium version can either be available as a one-time purchase (as we saw above with the app from ABBY) or via subscriptions. minimalist, a freemium productivity mobile app, gives its users three subscription plans to move over to its more powerful premium version. The... --- A complete guide to setting up, optimizing, and scaling Google App Campaigns in 2025 In 2025, Google App Campaigns (GAC) (formerly Universal App Campaigns) continues to be a cornerstone for mobile UA growth. With Google's AI-driven automation, these campaigns simplify ad placements across Search, Play Store, YouTube, Display, and Discover. This guide provides a step-by-step approach to setting up, optimizing, and scaling your app campaigns effectively. As of today, April, 2025, it has been approximately 10 years since Google App Campaigns introduction. Yet they continue to remain “black box” because of these three primary reasons: 1. Algorithm-driven automation GAC is built to automate everything: Ad creatives Audience targeting Bidding strategies Placement decisions This means you don’t choose keywords or placements manually like in traditional Google Ads. Google uses machine learning to optimize based on signals across Google Search, YouTube, Display Network, and Play Store. 2. Limited reporting granularity Google restricts: Creative-level performance insights (you don’t get breakdowns by asset clearly like in Meta) Audience data (you can’t see exact user segments or interest groups) Placement data (you can’t choose or even see full lists of where your ads appear) This is intentional to preserve the algorithm's integrity and prevent “over-optimization” by humans, but it creates a data-blind experience for marketers. P. S. : Google does allow you to see third-party app placement data based on impressions, but it’s still fairly limited. 3. Google’s incentive: Trust the AI Google wants advertisers to trust machine learning, not tweak manually. Their bet is that aggregated, high-signal user data is better leveraged by AI than by humans. So, GAC is designed to optimize outcomes, not explain them. And that tradeoff frustrates marketers who want clarity and control. Let’s see how we can tame this black box monster. A. Campaign setup Choose the right campaign type Google offers three campaign types for mobile apps: App installs: Focus on acquiring new users. App engagement: Re-engage current users (beneficial for inactive or lapsed users). Pre-registration (Android only): Build hype for upcoming app launches. Align campaign types with business goals: For growth: Start with App Install + "Users likely to perform in-app action. " For monetization: Use App Installs optimized for in-app purchases. For retention: Leverage App Engagement with deep links. Based on my 11+ years of UA experience and working with Google App Campaigns, I’ve rarely seen install campaigns bringing quality traffic. So I would caution you to stay from Install campaigns. Questions to ask before launching your Google App Campaigns: What’s the right conversion event to optimize for? Is the event deep enough (e. g. , purchase, not just install)? Do we get enough volume (~30-50/day) for the algorithm to learn? Which bidding strategy makes the most sense? tCPI for installs? tCPA for conversions? tROAS for revenue? What’s the acceptable cost per event? Based on CAC or payback window? Budget Ensure you keep 50x CPI as the budget for install campaigns 10x CPA budget for in-app action campaigns Do you have a robust MMP or Firebase SDK setup? Are all in-app events mapped and tested? Is real-time data being passed to Google? Why conversion tracking matters in GAC Google App Campaigns use conversion data to train the algorithm. If your event data is: missing, delayed, misfiring, or irrelevant... The system won’t know what a “good” user looks like, and you’ll waste budget attracting low-quality installs. Core conversion tracking stack LayerToolPurposeSDKFirebase or MMP (e. g. , Appsflyer, Adjust, Singular)Track events inside the appAds platformGoogle Ads accountIngest events and optimize based on them Google App Campaigns events you MUST track There are 3 tiers of conversion events: ? Tier 1 – Basic first_open install (Only enough for tCPI bidding, not quality users) ? Tier 2 – Mid-funnel sign_up onboarding_complete tutorial_complete login start_trial (Better signal for tCPA optimization — 10–50+ per day needed) ? Tier 3 – High-value (End funnel) purchase add_to_cart level_complete (for gaming) subscribe renewal add_payment_info Custom: hero_user_achieved (e. g. , completes 3 sessions & spends $10) (These are ideal for tROAS bidding – but you need volume) Event mapping between Firebase & Google Ads You must import Firebase events into Google Ads or set up MMP postbacks: Firebase path: Link Firebase to Google Ads In Google Ads: → Tools > Conversions > Import from Firebase Select key events you want to optimize for Make sure the event is set as "primary" for optimization ? Tip: Use event parameters (e. g. , revenue value, currency) for ROAS targeting. MMP path (e. g. , Appsflyer, Adjust): Configure postbacks from MMP to Google Ads Whitelist Google Ads as an ad partner Ensure each event is marked with: Attribution window (7-day click recommended) Postback mode: all events, not just attributed ones Many errors in UA come from misconfigured or delayed postbacks. Why we recommend Google Firebase for Google App Campaigns (GAC) Audience signals and exclusions Firebase is the only platform that allows you to create and sync audience segments directly with Google Ads for App Campaigns. This enables precise audience exclusions and targeting signals that are not possible through third-party MMPs. Priority access to betas and features Google prioritizes Firebase-linked apps when rolling out new features, campaign types, or beta programs. If you're working with a Google rep, using Firebase significantly increases your chances of being included in early experiments and feature testing. Real-time conversion syncing Events tracked in Firebase sync directly and instantly with Google Ads, ensuring that your campaigns optimize on the most up-to-date data. This helps improve learning phases and campaign stability compared to delayed MMP postbacks. Seamless Google ecosystem integration Firebase integrates deeply with the Play Store, Google Analytics, and GA4. This ecosystem-level connection provides a unified view of user behavior from acquisition to post-install engagement, all within Google’s native stack. Account, campaign & ad group structure 1. At the campaign level Structure your campaigns based on platform, optimization goal, and geo/language grouping. A. Platform: Android vs iOS Keep Android and iOS separate due to: Different user behavior Different store ecosystems iOS requiring SKAdNetwork support Separate event tracking schema Campaign examples: GAC - Android - Installs - US GAC -... --- On April 30, 2025, the judge in Epic v. Apple banned Apple from charging any commission on purchases made outside the App Store. Let's break down what this ruling means for your app – the good, the bad, and everything in between. TL;DR: The 30% savings are real, but so are the new responsibilities.   After a deep hibernation, the mobile market has been shaken awake. On April 30, 2025, the judge in Epic v. Apple banned Apple from charging any commission on purchases made outside the App Store.   At first glance, it looks like a clear win for app developers. Finally breaking free from the Apple tax. While this ruling does create exciting new opportunities, especially around external iOS payments, it also introduces challenges that aren’t getting nearly enough attention. Is external payment processing really as transformative as everyone thinks it is? Or are we missing something important that could change the math? Let's break down what this ruling means for your app – the good, the bad, and everything in between. The seeds of rebellion: how this all began Remember that time in 2020 when Fortnite suddenly disappeared from the App Store? That wasn't an accident. Epic Games deliberately picked a fight with Apple by adding their own payment system to Fortnite, bypassing Apple's 30% cut.   https://twitter. com/Wario64/status/1293984511022084096 Apple kicked them out, and Epic was ready with a lawsuit the same day. Pretty obvious they planned the whole thing, right? The first U. S. court battle had mixed results. The judge rejected Epic's claim that Apple was a monopoly but ruled Apple couldn't block developers from telling users about other payment options. Apple made very few changes in the US. In Europe, regulators pushed harder with the Digital Markets Act. Apple allowed external links but add a 27% fee. They also added warning screens to discourage users from leaving the App Store.   → Read about alternative payments in the App Store Epic filed a new U. S. case in March 2024, claiming Apple was violating the original order. The judge agreed and ruled in Epic's favor. https://twitter. com/TimSweeneyEpic/status/1917716512347152499 The new ruling: what Apple can’t do anymore The court's ruling takes effect immediately with no grace period. Here's what Apple can't do anymore in the U. S. : No more fees on external purchases. They can't charge you a penny for transactions that happen outside the app, period.   No more design restrictions. Remember those bland, generic links Apple forced developers to use? Now you can design your payment buttons however you want. Bright colors, animated arrows, whatever gets users to click. No more "scare screens". Apple loved throwing up those ominous warnings about the dangers lurking outside their ecosystem. Now they can only show a neutral message when users leave the app.   No more link limitations. Previously, Apple restricted how many links you could add and where. Those restrictions are gone. No more tracking requirements. Apple can't force developers to report external purchases or audit their sales outside the app.   Dynamic links are allowed. This is huge for user experience. You can now use links that bring customers directly to a specific product page with their account info already loaded. Apple has updated their App Store Guidelines to reflect these changes, stating they "strongly disagree with the decision" and will appeal. Apple updates U. S. App Store rules The good, the bad, and everything in between The good stuff Complete payment freedom. No more forced commissions means you keep significantly more revenue from each transaction. For subscription apps especially, this could transform your profit margins overnight. Direct customer relationships. You'll finally own the complete customer journey and data. No more mysterious subscribers who you can't email directly or understand fully. Flexible pricing models. Want to offer annual-only plans? Special bundles? Introductory rates? You can implement pricing strategies that were impossible within Apple's system. Cash flow advantages. With services like Stripe or Paddle, you'll get paid within days instead of waiting 60+ days for Apple's payment cycle. This means quicker reinvestment into growth. Independence from dev accounts. If Apple ever suspended your developer account, your existing customers and revenue stream would remain intact, since subscriptions wouldn't be tied to the App Store. The bad stuff You're on your own for everything. Apple handled tax compliance, fraud prevention, chargebacks, currency conversion, and customer payment support. Now that's all your responsibility.   Tax compliance nightmare. You'll need to handle sales tax in every U. S. state where you sell (each with different rates and rules), not to mention international VAT requirements if you sell globally. Payment processing costs. Though you're saving on Apple's commission, you'll pay 2. 9%+ for payment processing, plus additional fees for international transactions and disputed charges. Lower conversion rates. Apple's in-app purchase flow is incredibly smooth – just two taps with Face ID and you're done. External payments add friction that will inevitably reduce conversion rates.   Increased fraud and chargebacks. Payment processors like Stripe may shut down accounts that have high refund or chargeback rates, which are much more common with external payments than with Apple's protected system.   The good vs. the bad of external iOS payments. More freedom, but more responsibility too. Everything In between Attribution challenges remain unsolved. If you rely heavily on paid user acquisition, this ruling doesn't solve the attribution problem. It's still difficult to connect ad spend to revenue when using external payment systems.   Apple will adapt their strategy. Don't assume Apple is just going to accept losing billions in revenue. They'll likely revamp their entire business model, potentially: Lowering overall commissions to make external payments less attractive Creating new premium developer tiers with special benefits Implementing revenue-based fee structures (higher earnings = higher fees) Tightening app review criteria for apps using external payments Trust and security perceptions. Users trust Apple's payment system. Moving them to external payments means they need to trust your brand enough to enter payment details on a website. This could particularly impact smaller, lesser-known apps. New moderation challenges. Apple may find other ways to control the ecosystem, potentially through stricter moderation on other grounds or by creating new review guidelines targeting apps that use external payments.   The merchant of record question.... --- Apple’s rules make A/B testing free trials tricky. This guide breaks down three workarounds that help you compare trial lengths and boost LTV As a mobile developer, you’ve probably been asked by your marketing or app growth team to help run trial duration testing at some point. The problem for iOS apps is Apple only allows one introductory offer per subscription group. That makes it difficult to run A/B tests comparing like 3 days vs. 7 days free trials. There are workarounds though that let you get the information you need to determine the best strategy for your app. We’ll take a look at some of those workarounds to help you find the sweet spot that maximizes your conversions and your LTV. The one-intro-offer-per-subscription-group problem Apple has designed its subscription infrastructure to simplify the user experience, but that means sometimes it’s at odds with the needs of developers who want to experiment. A place where these restrictions come into play is that you can only define one introductory offer per subscription group. A subscription group is a collection of subscriptions defined in App Store Connect that unlock the same functionality. For example, a premium subscription that has both a monthly price and a yearly price. These two subscription products, when added to the same subscription group, allow the user to purchase either one and get the same functionality. This also allows them to cross-grade their subscription to the other option without losing functionality or accidentally subscribing to both durations. A great feature for users, but this design restricts the kind of testing you can do around free trials. Let’s say you’ve set up a 7-day free trial for your monthly plan, but you think a 14-day trial might actually work better after collecting some initial conversion data. You can’t assign both trial lengths to products in the same subscription group. And even if you could, once a user accepts (or even sees) an intro offer, they’re locked out from redeeming any others, even if you were to change it later. This limitation presents a real challenge to optimizing trial durations through testing. You can’t A/B test different lengths in a clean and native way. You risk burning your only opportunity to show your user an offer using a suboptimal trial length. And it limits your ability to iterate based on real user behavior. It can be quite frustrating for teams focused on conversion optimization. Thankfully there are some ways around it. Let’s see what we can do next. Creating multiple subscription groups A way to allow for testing of trial lengths while remaining inside the confines of Apple’s infrastructure is to create multiple subscription groups in App Store Connect, each with a different introductory trial. You could create a group with a subscription product that has a 3-day trial for example. Then you’d create a second group with a similar product that instead has a 7-day trial. The obvious advantage is that you can use these two subscription options to run an A/B test to see which converts better with your audience. The easiest way to do this would be to use Adapty’s Paywall Builder to design two paywalls that show each subscription separately but are otherwise the same. Paywall Builder allows you to quickly design a paywall and then duplicate it to build the other variant, keeping everything the same except which product is offered. Then you can set up an A/B test pitting those two paywalls against each other. You can make a data-driven decision about which trial length is best and even promote the winning paywall to be used for everyone after the test is complete. Create a new subscription group in App Store Connect to run A/B tests with different trial durations. Each group can have its own introductory offer configuration. Using two subscription groups and Adapty’s paywall and A/B testing lets you effectively test trial durations while staying within Apple’s rules. It’s not a perfect solution, however. You want to keep in mind these downsides: Users can’t switch between groups. Once assigned they’re locked into that group. You need to manage the subscription groups independently in App Store Connect. Because the subscriptions exist in different groups, a user can subscribe to both concurrently. This will require some extra diligence on your part to not present both to the same user to prevent over-subscribing. Despite the added setup and complexity, this approach is powerful because it preserves the “Free Trial” label in the App Store purchase screen, which users are trained to look for and is a key factor in conversion rates. Running country-based free trial testing Another option is to leverage the fact that Apple allows you to assign introductory offers on a per-country basis to test what might convert better. The advantages to this approach are that you don’t have to create or manage multiple subscription groups, and that it’s pretty simple to configure in App Store Connect. The downside is you will need to compare trial start and conversion data between the regions you’ve set up and differences in behavior could skew the results. This is not a pure A/B test so it will be hard to isolate the trial length as the only variable. For example, you may need to adjust the copy and design on your paywalls a bit to fit local cultural norms for each region. Create an introductory offer, but choose a small subset of countries to isolate the test of the free trial. You can create multiple introductory offers on the same subscription with different countries for each. To set this up, you could do something like the following: A 3-day trial for users in the U. S. A 7-day trial for users in Canada. No trial at all in another region if you want a control group. Then you could compare behavior across those regions in a tool like Adapty’s analytics dashboard to see which trial lengths drive better conversion, retention, and long-term revenue. This approach works especially well when you’re early in the experimentation phase and want to determine what’s directionally correct for your conversion strategy. If you see... --- Japanese app users think differently from US users. They value clarity, trust, and proof. Here's how to adapt your ASO creatives for Japan. In today’s saturated app marketplace, App Store Optimization (ASO) is a battlefield for user attention. Nowhere is this more apparent than in Japan, where ASO creatives must earn instant trust, explain complex features, and visually communicate cultural familiarity. For Western companies used to designing for the US App Store, the Japanese market presents a surprising and often misunderstood challenge: screenshots, icons, and preview videos that work in the US can fail spectacularly in Japan. Based on Hofstede’s Country Comparison Culture Analysis, Japan and the United States hugely differ in Motivation Towards Achievement (Japan: 95 vs. US: 62), Uncertainty Avoidance (Japan: 92 vs. US: 46), Long-Term Orientation (Japan: 100 vs. US: 50), and Low Indulgence (Japan: 42 vs. US: 68). This is what makes ASO in Japan difficult for those who are not familiar with the culture. Source: Why one-size-fits-all doesn’t work: paywall & onboarding strategies for Japan In this article Jamie Lou Borile from aix compares US and Japanese ASO creative standards and unpacks the strategic implications for global teams looking to enter Japan successfully. For this article, she'll focus more on screenshot creatives to show the difference between US and Japan ASO creatives preferences and expectations. Visual language: From minimalism to information density US screenshots often emphasize: Simplicity and white space Short taglines (“Send money instantly”) Large UI visuals with minimal annotation Cash App focusing more on visual impact and short taglines Venmo with simple layout, easy-to-grasp captions focusing on emotional resonance In contrast, Japanese screenshots favor: Information-rich layouts with layered captions Explanatory labels, annotations, and callouts PayPay Japan preferring text-heavy captions, multiple lines and varying fonts sizes. Highlighting benefits (like percentage of point-back), social proof (number of registered users), and security (in cooperation with financial institutions) Rakuten Pay Japan featuring explanatory labels and annotations, explaining features of the app. As well as percentage number of the point-back Japanese users are accustomed to consuming dense information quickly, and they expect screenshots to act as a tutorial, ad, and trust signal – all at once. Strategic Advice: Design Japanese screenshots as visual infographics. Every frame should answer: “What is this? How does it help me? Can I trust it? ” Copy strategy: Clarity > Emotion In the US, app visuals often aim for emotional resonance: “More than a calendar” ”Scan your food” But Japanese users tend to favor direct, actionable copy: “Because you can personalize your plan in colors, it’s easy to understand! ” ”Calculate calories just by taking pictures! ” Literal explanations convert better than abstract inspiration. Fantastical (US) aimed for more emotional resonance with “More than a calendar”, while Lifebear (JP) opted to focus the “Why? ” catchphrase My Fitness Pal (US) made it simple and fast to understand the feature, while Asuken Diet (JP) took it further by stating out the benefit you can get out of the feature Why? Japanese consumers have lower tolerance for ambiguity in UX. With thousands of alternatives available, they often seek function-first clarity – even at the expense of design elegance. Strategic advice: Localize headlines to be clear, specific, and benefit-driven. Translate the function, not just the feeling. Use of social proof and cultural symbols In the US, social proof is often subtle (e. g. , a review star in the corner). In Japan, it’s a conversion engine. While the top matching apps in the US opted for short but impactful taglines, top-performing matching apps in Japan featured track record data like number of downloads and “No. 1”. The example above are the top 3 matching apps in Japan, all claiming to be No. 1! Pairs: No. 1 Utilization Rate Tapple: No. 1 Satisfaction Rate with: No. 1 Number of Users Strategic advice: Don’t hesitate to include badges, download stats, and limited-time markers in your Japanese creatives. They’re persuasive design elements. Conclusion: ASO Localization in Japan is about full adaption In Japan, app store creatives must be reimagined from the ground up to match user expectations and cultural context. Key takeaways: Treat ASO creatives as cultural products Build creatives that teach, reassure, and convince Use local design standards to stay in tune with Japanese users Entering Japan? Start by speaking their visual language. If you're interested in launching your app in Japan, check our previous posts: How Japanese apps onboard users What Japanese paywalls look like How to optimize ASO for Japan To discover more about Japan's visual preferences and even get some assistance, explore aixpost. com or reach out to Jamie on LinkedIn! --- Most apps lose 77% of their users by day 3. And it’s not just about retention, it’s about the second session. Let's break down five tactics to activate the second session and make users come back, based on real lessons from Brilliant app. So, your app has got new users. They breeze through onboarding, love their first session, and then... churn. Like, ghosted-you-after-one-date gone. That’s Death Valley, the spot where subscription apps crash, burn and churn users. I talked to 50+ app product leaders in early 2025. Four out of five confirmed: "2 sessions completed within the first week" is their critical activation metric. Hit that, and users retain longer, trials convert better, and subscription apps make more realized LTV.   Yet most apps see 77% of their users churning by day 3. Day 3! All that ad money, all that effort that went into creative strategy, organic and ASO to acquire users, iterating onboarding to increase trial starts or conversions: gone for most users you acquired. You might think: “But I can hit $3M ARR just by focusing on user acquisition, onboarding and the first session! ” Sure, maybe. But that plan is going to hit a wall, be sure about that. CAC goes through the roof because your user acquisition machine will get less effective over time.   The bridge from the first to second session doesn't start after users leave your app. It starts within that crucial first session. Brilliant (Duolingo for computer science & math) mastered the bridge. Here are five easy tricks from them to reduce churn and keep your users coming back. Make the first session quick, valuable, and fun to stay ahead of churn Getting more users back into the second session starts with the first session. First sessions aren’t what they used to be. Way back, you could make people spend 10-15 minutes in the first session and still see high completion rates. Needless to say that those good days are over in the fast-dopamine-hunting world we live in (thanks, TikTok). The magic is balancing this triangle: Short enough to feel quickly to accomplish (Brilliant’s took me 2min 14sec; done before my coffee is cold) Valuable enough to provide real learning (proof users get what they signed up for, for Brilliant → become a problem solver) Fun enough to enjoy the process (never forget: as a health/education app, your app feels like work to users; so make that work fun; Brilliant is a math app but doesn’t feel like homework) Brilliant's first session is just 2 minutes long It might take a couple iterations to get it to work. But it’s definitely worth it. Metrics to watch: 1st lesson start rate (if it’s below 60%, simplify your first home landing) 1st lesson completion rate (aim for >60%) Obsessively celebrate them This is the most crucial part. So let’s pay extra attention to it. We’ve all read Hooked by Nir Eyal, and know about the habit loop. If you don’t, here’s a recap of the framework that you should never forget if you’re serious about building sticky apps. The framework describes how habits are formed and maintained. It includes:  Trigger: starts the habit, can be external (push, notification) or internal (boredom, anxiety). Example: a push by Duolingo’s Duo makes you anxious to lose your streak Action: behavior you perform in response to the trigger (open Duolingo) Variable Reward: keeps users hooked (=wanting more). Streaks, animation, haptic feedback, makes your brain swim in dopamine and crave more. Better if not predictable, that’s why Duolingo adds so much variety to their celebrations. Investment: make users invest time, effort or data to increase the odds of the next trigger (complete the next lesson). What we want is to make users feel accomplished, and make them want to feel this more often. Good dopamine, reward state of the habit loop. Brilliant throws a party every time you finish. It’s a 3-part celebration: Nice work: we all love a good tap on the shoulder, and a buzz in your hand with haptic feedback Recap learning: makes progress visible; reminds you what you’ve just learned Streak counter: shows you the streak count, nudges you to the next mini-milestone (day 3, to boost activation), and taps into identity (become a problem-solver) Such a strong flow, Brilliant’s product growth team kills it here. Because identity-based goals (become a problem solver) trigger behavior change stronger than outcome-based goals (reach 3-day streak). It’s a 20-second experience for Brilliant. You don’t have to go as sophisticated as they went. Free Lottie files (lottiefiles. com) does the job already. Use Rive (rive. app) if you want to step up. Brilliant celebrates first win like it's your aunt's birthday “Is consciously triggering a user’s dopamine evil? ”, you might ask yourself. It’s not. Your users want to spend more time in your health/education app instead of wasting hours on TikTok. It’s your duty to help them stay on track to something that’s worthwhile for them. If you’re in gaming, social networks, or entertainment, this doesn’t apply to you (you’re most likely already aware of these dynamics). Remind them why they’re here At this point, your users are pumped and feel hyped. They’ve just learned something new (education app), feel calmer (meditation/prayer app), or feel exhausted but in a good way (fitness app). It’s a state we love.   Think back to the last time you were in that state. Completed a 5k run, and a good feeling rushes to your body. Imagine your running buddy now asks you: “Want to run in two days again? ”. You’re likely to say yes. In fact, you’ll probably never be more likely to say yes. Let’s use the high user psych to help them feel this again, and start building a habit. The app won't let you go until you commit to a goal Brilliant strengthens the habit loop (investment) by making users commit to a streak-goal. Users have to do that, there’s no way to skip this screen. Smart. They tap into the goal gradient effect here: we’re more motivated to complete a task as we get closer to a goal. The 3-, 7-, and 14-day goals are broken up into incremental milestones (“Great”, “Amazing”, “Phenomenal”). Once users select a goal,... --- Web-to-app funnels can seriously boost your revenue, but they’re hard to build and easy to break. Here’s how to avoid the common pitfalls and fix what’s broken. Web-to-app funnels should scale your growth. They bypass platform fees, fix attribution, and give full control over the user journey. But many fall apart quickly. This guide breaks down what’s actually going wrong, and how you can fix it.   Let’s start with the first breakpoint: your ad. Ad creatives: where web-to-app funnels break before they even begin Your ad is the first touchpoint in the funnel. If it fails, everything else fails too.   Here are the most common creative mistakes and how to avoid them. Funnel killer #1: Misleading or mismatched messaging How it shows up:High click-through rates, but users bounce as soon as they reach onboarding or land in the app. Why it happens:The ad overpromises or advertises something the onboarding and the app doesn’t immediately deliver. Think: “Free 7-day plan” in the ad, but after clicking – no mention of it. This breaks trust. How to fix it: Stick to one promise across the whole funnel: ad → onboarding → paywall Use real screenshots or actual app footage – not overpolished renders. Show exactly what the user will get after clicking. Don’t optimize for CTR – optimize for relevance. Funnel killer #2: No clear value How it shows up:Low CTR. Your ad gets ignored. Or people click out of curiosity, not real interest – and drop off fast. Why it happens:The value prop is too vague. Buzzwords instead of benefits. Features instead of outcomes. Sometimes users don’t even realize it’s an app being advertised. How to fix it: Lead with the outcome: “Learn Spanish in 10 minutes a day” > “Immersive language experience”. Show that it’s a mobile app: phone mockup, install icon, app UI. Use CTAs that set expectations: “Start my free 10-min lesson” > “Learn more”. Funnel killer #3: One-size-fits-all creatives How it shows up:Your creatives burn out fast. They underperform on some platforms, or stop converting after a few days. Why it happens:You reuse the same ad everywhere. But TikTok ! = Instagram ! = Google Ads. Each channel has its own style, rhythm, and audience expectations. How to fix it: Treat creatives like a product: prototype → test → kill losers → scale winners. Adjust for channel: ○ TikTok: selfie-style, authentic, snappy. ○ Instagram: strong professional visuals + bold copy. ○ Google: intent-based, text-driven. Refresh creatives before fatigue hits. Pull inspiration from competitor ads, and adapt it to your flow.   Web onboarding: why users bounce before they see value The ad worked – users clicked and entered your web-to-app funnel. But most of them don’t make it to the next step. Here’s what usually goes wrong and how to fix it. Funnel killer #1: The onboarding breaks the promise Why it breaks the web-to-app funnelThe ad sets a specific expectation – a plan, a benefit, a transformation. But the first screen doesn’t follow through. That disconnect is enough to lose the user before they begin. How to fix it Make the onboarding continue the ad – same language, same value Echo the promise the user clicked for Start with a soft entry: one line, one question, one confirmation ? Onboarding must continue the ad! Funnel killer #2: No personalization, just a form Why it breaks the web-to-app funnelA static, same-for-everyone flow makes users feel unseen. They answer questions, but it doesn’t affect the flow. And if there are too many questions with no clear purpose – they quit. How to fix it Focus on pain-based questions, not generic demographics Use branching logic – make answers influence what comes next Make the tone human and contextual Funnel killer #3: No early value Why it breaks the web-to-app funnelThe user shares data but gets nothing in return. They expected a payoff and got a block. How to fix it Show personalized output before asking for anything Make it visual: timeline, insight, plan preview Deliver something real based on user input Funnel killer #4: Weak or unclear CTA Why it breaks the web-to-app funnelEven if the experience was good, a bad CTA can kill the momentum. Vague text, wrong placing, generic wording – and users hesitate or drop. How to fix it Use one strong, visible CTA tied to the outcome Make the copy action-driven and personal Don’t add distractions, this is the final push Great results come from volume: diverse creatives, flexible onboarding, constant testing. And volume works only when you can control every step. Many teams launch their web funnels with funnel tools like FunnelFox. It helps you: Build onboarding and paywall with no-code drag-and-drop builder Integrate ready-to-use checkouts A/B test every step from landing page to checkout Track drop-offs and optimize in real time Auto-sync subscribers with your app Paywall: why users don’t convert on the spot The user finishes the quiz, sees a personalized result, but still closes the tab. Even with a strong onboarding, the wrong paywall kills intent in seconds. Here’s what breaks conversions at the most critical step. Funnel killer #1: Paywall appears too early Why it breaks the web-to-app funnelThe user hasn’t seen enough value yet. It feels like a bait-and-switch. How to fix it Show sneak peek before asking for money Anchor the value: make it feel like they’re almost there Use a soft gate: preview + blur, or partial access Funnel killer #2: One-size-fits-all paywall Why it breaks the web-to-app funnelSame price, same message, same design – no matter what the user answered. It kills personalization and makes the quiz feel like a trick. How to fix it Adapt the headline to the user’s goal Tie pricing to what was promised (“Your 30-day sleep plan”) Reflect the language and tone of ad and onboarding Funnel killer #3: No trust in the payment Why it breaks the web-to-app funnelWeb payments feel riskier. The design looks generic. No known brand, no visible protection, no context = no trust. How to fix it Add credibility markers: testimonials, media mentions, star ratings Display security icons (SSL, Stripe, Visa, Apple Pay logos) Include money-back guarantee Use real faces or... --- ASO in Japan is different. Search behavior, loanwords, and abbreviations change everything. Direct translations won’t work. So how do you get it right? Leverage Edu, a company that supports students studying abroad, has ranked the Top 10 most difficult languages to learn, placing Japanese as the 4th hardest language. While multiple factors contribute to its complexity, the biggest challenge lies in its writing system. Japanese incorporates three distinct scripts: Hiragana, Katakana, and Kanji – each with different roles and usage. Hiragana: A syllabic script used for native words and grammatical elements. Katakana: Used primarily for foreign words, loanwords, and onomatopoeia. Kanji: Logographic characters borrowed from Chinese, often carrying multiple readings. Understanding how these scripts function is key to mastering Japanese and crucial for app store optimization (ASO) when targeting Japanese users. Understanding the Japanese writing system Hiragana Hiragana consists of 46 characters, each representing a syllable. It is used for native Japanese words, grammatical elements (e. g. , particles, suffixes), and words with complex or rarely used Kanji forms. Image source: Tofugu Since Hiragana is the simplest and most commonly used script, Japanese users often type search queries in Hiragana when looking for apps. Hiragana usage examples Katakana Katakana, also composed of 46 characters, is visually distinct from Hiragana but follows the same phonetic structure. It is primarily used for foreign loanwords, names, and onomatopoeia. Image source: Tofugu For ASO, loanwords written in Katakana can serve as important keywords, as many foreign concepts are more commonly searched in their Katakana form rather than their direct Japanese translation. Katakana usage examples Kanji Kanji is the most challenging part of the Japanese language. Unlike Hiragana and Katakana, which are phonetic, Kanji represents meanings rather than sounds. Kanji is an adopted version of Chinese characters, so it shares similar looks and linguistic characteristics. Yet different from Chinese characters, each Kanji can have multiple readings, categorized into: Onyomi (音読み): Based on the original Chinese pronunciation. Kunyomi (訓読み): The native Japanese reading. Kanji example On the other hand, certain Kanji forms have the same Kunyomi but different meanings. Once you get used to Japanese, you will be able to distinguish what the discloser tries to say by the context most of the time, but it still can cause confusion. Example of Kanji meanings Japanese high school students master around 2,000 Kanji, but over 50,000 Kanji exist. This vast number makes the language challenging for both learners and localization efforts. How Japanese users search for apps The complexity of Japanese writing affects not just localization but also app store optimization (ASO). Many assume that translating keywords into Japanese is sufficient, but the reality is far more nuanced. Typing starts with Hiragana Regardless of whether the intended word is in Kanji or Katakana, users must first type in Hiragana before selecting the appropriate conversion from the keyboard suggestions. However, most users skip this step and leave their search queries in Hiragana, as conversion does not significantly impact search results. This behavior impacts ASO because search suggestions and autocomplete results in app stores are often in Hiragana. Therefore, when optimizing for Japanese keywords, it is crucial to consider not just the standard Kanji or Katakana form but also how users spell the term in Hiragana. Japanese keyboards & suggested searches Japanese smartphone keyboards come in two main formats: Japanese keyboards Kana keyboard: Users tap or slide on Kana characters. Romaji keyboard: Users type using Latin letters, which convert to Hiragana. Regardless of the input method, suggested search results appear mostly in Hiragana, reflecting common user behavior. Loanwords as essential ASO keywords While Hiragana dominates general search queries, Katakana is crucial for loanwords. Some foreign words have replaced native Japanese terms entirely, making their Katakana versions the dominant search keywords. Example: “Camera” The word "camera" exists in both native Japanese and loanword forms: 写真機 (shashin-ki) – Native Japanese カメラ (kamera) – Loanword Although 写真機 is the accurate translation, カメラ is overwhelmingly more common. In fact, searching for 写真機 on an app store generates fewer suggested keywords, while カメラ yields multiple relevant results. Results for loanword and native "camera" search For ASO, using Katakana loanwords instead of direct translations can improve search visibility. Example: “Photo” Unlike "camera", the word "photo" is commonly used in both native and loanword forms: 写真 (shashin) – Native Japanese フォト (foto) – Loanword Results for loanword and native "photo" search Search results for 写真 often include app-related suggestions such as "photo editing" or "photo album", whereas フォト tends to appear in branded searches like "Photoshop" or "Google Photo". Source: ASO Index Analyzing these keywords using ASO index, it also shows that the keyword 写真 is more frequently searched in the market than フォト. Understanding these distinctions can help optimize app metadata with more effective keyword choices. Loanwords in abbreviation A unique characteristic of Japanese is the frequent abbreviation of loanwords. Unlike English, where abbreviations often use acronyms, Japanese abbreviations modify foreign words into shorter versions, which then become more commonly used than the original. Examples of abbreviated loanwords: パソコン (Personal computer) – Instead of コンピュータ (konpyu-ta), Japanese users prefer パソコン (pasokon). スクショ (Screenshot) – Shortened from スクリーンショット (sukuri-nshotto). フリマ (Flea market) – Shortened from フリーマーケット (furi-ma-ketto). Example: "Computer" in Japanese While the full Katakana loanword for "computer" is コンピュータ (konpyu-ta), it is rarely used in everyday language. Instead, Japanese speakers prefer パソコン (pasokon), a condensed form of パーソナルコンピュータ (paasonaru konpyu-ta, "personal computer"). Looks like newspeak from 1984, isn't it? This preference is reflected in search behavior. When users look for computer-related apps or content, they overwhelmingly type パソコン (pasokon) instead of コンピュータ (konpyu-ta). App Store search suggestions confirm this, as パソコン generates more relevant search predictions than コンピュータ. App Store search results for abbreviated and native "personal computer" Interestingly, machine translations like Google Translate still favor コンピュータ as the translation for "computer", despite its limited usage. This highlights the importance of understanding actual user behavior over direct translation in ASO. Google Translator results for computer in Japanese Thus, for app store optimization, パソコン should be prioritized as a keyword over コンピュータ, as it aligns better with how Japanese users search. This pattern applies to many foreign words, making... --- Thoughtful paywalls from women-led apps, with best practices worth learning from. This is the 20th issue of the Paywall Newsletter by Adapty! This time, we are spotlighting paywalls from apps created by women. From bold design choices to clever pricing strategies, these apps show how thoughtful monetization can be both user-first and highly effective. We analyzed five paywalls from different categories with revenues ranging from $10K to $2M last month. Natalia breaks down their strengths and key takeaways. Let’s dive in! Foodvisor - Calorie Counter Health & Fitness, MedicalLast month revenue — $500K What works well: Instead of a trial, the app uses a mobile-first money-back guarantee — a smart way to build trust and reduce hesitation. The paywall comes in two steps: First, an upsell screen shows off the app’s benefits, features, and user reviews. Then, a clean and simple pricing screen closes the deal. Takeaway: A structured two-step funnel ensures only engaged users reach the payment screen, boosting CR and enabling more A/B testing. Pure: Anonymous Dating App Lifestyle, Social NetworkingLast month revenue — $2M What works well: Paywalls adapt based on the selected gender during onboarding — a personal touch that improves relevance. Feature previews are clear and direct, making the value of upgrading obvious. Pricing is designed to gently nudge users toward longer commitments: Moving from weekly to monthly and monthly to yearly nudges users toward long-term plans. Higher-tier plans offer real discounts and feel like the best value. Takeaway: Personalization and pricing psychology work hand in hand. When upgrades feel logical and fair, users are more likely to go all in. Rootd: Panic Attacks & Anxiety Health & Fitness, EducationLast month revenue — 10K What works well: 1. Rootd’s mission aligns with its paywall strategy — keeping things simple to reduce friction for users dealing with anxiety. 2. The value is crystal clear: here’s how it helps, here’s how it works. 3. Bold move: the cancellation process is explained upfront. That builds trust right away. Takeaway: When you lead with clarity and honesty, users focus on the value and not the fine print. Water tracker Waterllama Health & Fitness, Food & DrinkLast month revenue — $100K What works well: Clear pricing with an upfront discount — easy yes. A flexible setup to different user preferences: discounted trial or a clean lifetime option. Strong social proof is everywhere: media mentions, Apple Awards, and high ratings. The flow is smooth: A subtle animation on the Continue button draws attention. The trial option stays visible without overshadowing the main offer. The lifetime option is available. The cancellation policy is easy to find without disrupting the experience. Takeaway: Strong UX and clear pricing go a long way. Visuals matter, but strategy matters more. Workout Tracker Gentler Streak Health & Fitness, LifestyleLast month revenue — $70K What works well: They turn their Apple Design Award into a reason to celebrate and offer a discount. That fosters an emotional connection with users. Features appear both visually and in a list. No guessing what you’re getting. Social proof done right: they highlight just the 5-star reviews. The app promotes family sharing at the highest tier, making it a unique selling point. Takeaway: Don’t be shy about your wins. Celebrating them with users builds loyalty and boosts conversions. Final thoughts: This month’s paywalls showed strong monetization comes from clarity, structure, and trust. These paywalls are proof of that. Whether it’s offering a refund instead of a trial, personalizing the paywall, or turning a product win into a moment worth celebrating, there’s always room to optimize. We hope these examples sparked new ideas. Keep experimenting. Keep growing. See you in the next issue, The Adapty Team --- Web-to-app is taking over. And it rocks. Lower fees, better tracking, higher conversions. Want to see how it works and why it’s worth trying? Let’s dive in Mobile marketing is broken. IDFA restrictions, rising ad costs, and poor tracking have made it harder than ever to acquire and retain users. Sending traffic straight to app stores no longer works as effectively as it did before. Instead of losing users in app stores, web-to-app funnels keep the entire process on the web. You guide users through the entire journey from personalized onboarding to seamless payment. This approach restores full attribution, reduces fees by at least SIX TIMES, and increases user LTV through a better onboarding flow. In this guide, we'll explain web-to-app funnels, how they differ from traditional online funnels, and how they can significantly boost your app’s marketing performance. What is a web-to-app funnel? A web-to-app funnel is a marketing approach that first brings users to a dedicated funnel website before guiding them into a mobile app. Here, users engage with interactive content, complete a personalized onboarding flow, subscribe, and only then install the app. Direct-to-app approach does the opposite. It pushes users straight to the app store, where you lose control. Attribution breaks. Conversion rates drop. Users leave without installing. A web-to-app structure Key benefits of web-to-app Web-to-app funnels help app businesses reduce platform fees, improve tracking, and create a smoother user journey. Here’s why more apps are choosing this approach: 1. Better tracking and attribution Since Apple’s ATT update, tracking user behavior has become much harder. Web-to-app funnels fix this by collecting first-party data on a landing page before sending users to the app. This gives better attribution and more control over ad campaigns. 2. Lower platform fees App stores take 15–30% of every in-app purchase. With web-to-app, payments happen on the web, cutting fees down to just 2-5%. This means more revenue and more budget to reinvest in growth. 3. Faster access to revenue App store payouts can take up to 60 days, which slows down reinvestment. Web payments arrive within 1–2 days, so you can immediately scale campaigns and test new strategies. 4. Higher user engagement and lifetime value Web-to-app funnels allow you to personalize onboarding, making users more likely to convert, subscribe, and stick around. Real apps are already seeing the impact of web-to-app. In just three months, one subscription app increased its ROAS by 80% by adding this model. See how they did it in this case-study. How a web-to-app funnel works A web-to-app funnel guides users from initial engagement to app installation and subscription. Here's a detailed breakdown: 1. Attracting users with compelling ad creatives Getting users into your funnel starts with ads that work. Here's what it takes: Creatives at scale. You need hundreds of ad variations: static, video, interactive. Only 1 in 100 will be a winner. No iterations = no profit. Diverse platforms. Facebook, TikTok, Pinterest, Google – test broadly, double down on what delivers the cheapest conversions. Serious budget. Testing a web-to-app funnel properly takes at least $15,000–$30,000. No budget = no meaningful data, no scaling. 2. Engaging users through personalized onboarding experiences BetterMe onboarding Web onboarding is where users decide to convert or drop off. What makes it work: Quizzes that sell. A great quiz filters high-intent users, delivers instant value, and moves them toward the next step. A fitness app can predict weight loss goals, making the user more likely to commit. Content that matters. Though you may use ChatGPT for ideating quizzes, generic info won’t work. Web onboarding should provide real insights that build trust and increase conversions. Nutrition tips, financial strategies, or progress tracking make the experience feel valuable. Personalization that hooks. Users engage more when onboarding feels tailored. Dynamic quizzes, adaptive content, and custom recommendations make the experience relevant and increase conversion rates. 3. Seamless payment flow Checkout examples A frictionless payment process is vital for conversion. Key considerations include: Multiple payment options. Offer various payment methods, such as Apple Pay, credit cards, and PayPal, catering to user preferences. Pro tip: If Apple Pay is set as a default payment method, CR is 20% higher. Optimized checkout experience. Ensure the checkout process is smooth and intuitive to minimize drop-offs. This includes clear pricing, minimal steps, and reassurance about payment security. 4. Redirecting users from web to app A seamless transition keeps users engaged. Here’s how to match them with their subscriptions: Email-based matching captures user data during onboarding for instant login after install. Requires backend setup. Auto-login via deep link takes users straight into the app without a login screen. Can fail if deep links break. Magic link login sends a password-free login link to email. Doesn’t work for invalid addresses. Account creation in the funnel ensures user data is stored before install. Adds a login step and backend complexity. 5. Continuous optimization and scaling A web-to-app funnel is an ongoing process of testing, analyzing, and scaling. Test relentlessly. A/B test ad creatives, onboarding flows, and payments. Small tweaks can drive massive gains. Analyze every step. Track drop-offs, conversion rates, and user feedback. Fix weak spots before they break your funnel. Scale what works. Double down on winning strategies. Cut losers. The fastest optimizers win. Who benefits the most from web-to-app funnels? Web-to-app funnels are most effective for products that offer some level of personalization. The ability to provide immediate value to the user significantly increases conversion rates. Here’s which categories perform best with this approach: 1. Health & Fitness apps MadMuscles defines transformation strategy and predicts a personalized timeline for achieving results Web-to-app works best when users need a personalized experience. Health & Fitness is a perfect fit. Quizzes pre-qualify users. Asking about fitness level, diet, or weight loss goals makes recommendations feel tailored. Solution sneak peek. Show users a preview of the app’s value. Custom meal plan or a sample workout builds urgency and increases install rates. Building trust before install. Featuring success stories, expert recommendations, or before/after results reassures users they’re making the right choice. Instant value. Personalized plans make users more likely to commit. Best fit: Weight loss, home workouts, fasting, and nutrition tracking apps. 2. Astrology... --- February brought exciting improvements to Adapty, from richer paywall customization to enhanced revenue tracking. Ch the key updates. February brought exciting improvements, from richer paywall customization to enhanced revenue tracking. Let’s dive into the key Adapty updates. Rich text formatting in Paywall Builder Now Adapty Paywall Builder supports bold and italic text. Use different fonts and styles within a single label to create more engaging and conversion-friendly paywalls. Additionally, rich text formatting is now available inside custom tag fallbacks. This means that even if a dynamic value isn't available, your paywall’s fallback text will maintain its formatting. → Everything about paywall building Wow! So easy! More accurate tax calculations We’ve updated how tax_amount_local is calculated. Now it’s taken from the full price before platform fees. This adjustment provides a more accurate representation of taxes, helping you track revenue more precisely. Adapty SDK updates Our latest SDK releases bring important improvements. Make sure to update if you’re using one of them to benefit from the latest enhancements. Adapty React Native 3. 3. 1. Stability and performance enhancements. Adapty iOS 3. 4. 0. Full compatibility with iOS 18. 2+ and Vision OS, ensuring seamless purchases on the latest Apple platforms. Adapty Flutter 3. 3. 2. Bug fixes. Refund Saver: $3M saved Our Refund Saver has now helped subscription apps recover $3M in lost revenue. $1. 2M saved in February alone! Refund Saver automatically handles refund disputes, saving both your revenue and your time. → How to earn 400% ROI in 7 days with Refund Saver Yes, this could be you New ebook: Roadmap from $1K to $10K MRR Most marketing guides are either too complex, too theoretical, or simply not designed for app developers. Our new free ebook simplifies monetization and growth strategies. We made it clear and practical so it can become your go-to resource. Refer to it anytime, it's designed for that. What’s inside: A step-by-step roadmap to reaching $10K MRR Simple, proven monetization strategies Growth tactics tailored for non-marketers Actionable insights to attract users and boost retention Grab your copy here: Roadmap from $1K to $10K MRR Already using Adapty? Check the latest updates! If you’re not — schedule a demo with our team to see how Adapty can handle monetization while you focus on growing your app. --- Japanese users expect transparency, detailed explanations, and clear value justification in paywalls. Discover why Western strategies fall short and how to adapt for success. When expanding an app into the Japanese market, many developers assume they can apply their existing Western paywall design and expect similar conversion results. However, Japan’s approach to app paywalls is fundamentally different from what’s commonly seen in Western markets. From the visual hierarchy to pricing transparency and user psychology, Japanese paywalls cater to a distinct consumer behavior that prioritizes trust, clarity, and perceived value. In this article by Jamie Lou Borile from aix Inc. , we’ll explore the key design differences and why adopting a localized strategy is essential for success. The role of trust and clarity in Japanese paywalls Unlike Western paywalls, which often employ aggressive upsell tactics with prominent free trials and countdown timers, Japanese paywall screens focus on building trust. Key features: Detailed explanations. Instead of a brief summary, Japanese paywalls tend to provide thorough descriptions of premium features, ensuring users fully understand what they’re paying for. ABEMA uses a six-page scroll to introduce its Premium OTT service before showing the payment screen Transparency in pricing. Western apps often push free trials with hidden auto-renewal details. In contrast, Japanese paywalls clearly outline subscription costs, renewal terms, and cancellation policies upfront. Timetree and ABEMA clearly state when charges will apply if users don’t cancel in time Minimal hard-sell tactics. While Western paywalls may use urgency tools like limited offers and timers, Japanese paywalls often take a softer approach, focusing on value rather than pressure. Timetree highlights user pain points and provides solutions Text-heavy vs. concise paywalls: providing information matters Tapple’s paywall presents detailed plans, comparisons, and feature breakdowns across multiple screens Japanese users expect comprehensive explanations before making a purchase decision. Western apps often rely on minimal text and visually compelling graphics. Japanese paywalls contain more text, often including FAQs, step-by-step usage details, and even testimonials. Visual differences: simplicity vs. boldness A stark contrast between Japanese and Western paywall screens lies in visual presentation. Western paywall design trends: Emphasis on immediate action. Western paywalls often focus on getting users to subscribe quickly, using persuasive messaging and limited-time offers. High-contrast CTA buttons. Calls-to-action like "Start free trial" or "Subscribe now" are prominently displayed in bold colors to grab attention. Trial-first approach. Many Western apps heavily push free trials, sometimes with auto-renewal enabled by default, making it easier to convert users into paying customers. Psychological triggers. Strategies such as FOMO (fear of missing out), social proof (e. g. , "Join over 40,000 couples"), and risk minimization (e. g. , "Cancel anytime") are commonly used. Western paywalls focus on simplicity, trial-first strategies, and psychological triggers to encourage conversions Japanese paywall design trends: Long-form layouts. Japanese paywall screens tend to be longer, providing extensive information before asking users to commit. They often include detailed descriptions, FAQs, and multiple supporting visuals to ensure clarity. Japanese paywalls prioritize clarity with long-form layouts, comparison tables, and step-by-step reasoning to justify upgrades Use of tables or comparisons. Subscription tiers are frequently displayed in a table format with precise feature breakdowns. Step-by-step justification. Many Japanese paywalls provide a logical step-by-step explanation of why upgrading is beneficial rather than simply listing features. Tapple breaks down premium features step by step, guiding users through the value of upgrading with detailed explanations and visuals Why you need a Japan-specific paywall strategy The nuances of Japanese paywall design reflect deeper cultural and consumer behavior differences. A one-size-fits-all approach that works in Western markets won’t yield the same results in Japan. Developers looking to optimize conversions should invest in localized UI/UX, pricing models, and communication strategies that align with Japanese user expectations. Key takeaways: Japanese users value transparency, structured layouts, and detailed feature breakdowns. Aggressive upselling techniques are less effective than trust-building strategies. A thoughtful, localized approach to paywall design will maximize engagement and conversions in Japan. By treating Japan’s paywall experience as a unique challenge rather than a simple adaptation, app developers can significantly improve their market success. If you're considering expanding your app into Japan, investing in a Japan-specific paywall design is a strategic must, not an afterthought. This is the second article about Japanese app market. In the previous article, we explored how Japanese apps onboard users. If you want to know more about Japan marketing insights, visit aixpost. --- TikTok is everywhere. Big brands, indie developerseveryone’s jumping in. And it’s not just hype. More and more apps are using TikTok ads to grow, and it’s working. Want to know how subscription apps do it? Read on. TikTok is everywhere. Big brands, indie developers — everyone’s talking about it. And it’s not just hype. The demand for TikTok ads and organic growth keeps growing, and for a good reason. We’ve seen apps pull in millions of users. And you don’t need a massive following to make it happen. TikTok doesn’t care how many subscribers you have. Its algorithm and native ad formats can push even your first video into the spotlight, sometimes on day one. More installs, more engaged users, and a real shot at going global — that’s what makes TikTok so appealing to app developers. So, let’s break it down. How do you make it work? Let’s dive in. Why TikTok ads? Ever seen someone post their first video and wake up to thousands of views? It’s really TikTok doing its thing. Here’s why this platform is so good for app growth: 1. Insane growth potential TikTok reached 100 million users in just nine months. Meta took almost five years to do the same. Today, the platform has 1. 7 billion monthly active users, and another 200 million join every quarter. Your future users are probably downloading the app as you read. Source: Business of Apps 2. Engagement like no other TikTok isn’t one of those platforms where people just scroll mindlessly. Users like, comment, share, and duet at crazy high rates. More engagement means more reach. More reach=more installs. 3. Not just for teens anymore Nope, it’s not all teens lip-syncing to Doja Cat. Over 75% of TikTok users are 24 or older, which means they have jobs, disposable income, and money to spend on subscriptions. 4. An algorithm that works in your favor TikTok’s algorithm is designed to push content, not just reward big accounts. Even a brand-new video can get traction if it performs well with a small test audience. No need for a massive follower count to start seeing traction. TikTokInstagramLikes when you post 3 times a dayLikes when you post once a dayDoesn’t care about storiesLoves storiesBoosts new accounts to test content with new peopleBoosts content to followers first to test engagementPrefers simple, easy-to-make videosPrefers high-quality, polished videosHarder to go super viral, but views are more relevantEasier to go viral, but views are less targetedAudience has lower purchasing powerAudience has higher purchasing powerComments are usually positive - great for promoting appsComments can be more negative and criticalPeople are more important than brandsPeople are more important than brandsTikTok vs. Instagram marketing: key differences 5. Ads that don’t feel like ads TikTok ads blend right into the feed. Nobody wants to sit through a generic ad, but a funny, relatable video? That works. If you get the content right, people engage without even realizing it’s a promotion. A few things to keep in mind TikTok has its quirks, so here’s what to watch out for: Strict content moderation. If your app is in health, finance, or dating, be extra clear with your messaging. TikTok’s filters can be unpredictable. Fluctuating performance. Some days, your CTR is 5%. Other days, it’s 0. 3%. TikTok constantly experiments, so be ready to test new creatives. Fast-moving platform. New features roll out all the time. Staying up to date is key to making the most of them. SDK growing pains. The TikTok Ads SDK is still evolving, so developers may run into occasional issues with integration. Even with these challenges, TikTok remains one of the most effective platforms for app marketing. Many apps have gone from unknown to viral success here, and it’s still one of the best places to reach new users. Choosing your TikTok ads strategy TikTok ads might feel overwhelming at first, but you’re not alone. Whether you’re launching a brand-new app or trying to breathe life into an existing one, TikTok gives you plenty of ways to reach the right audience. The key is finding an approach that fits your goals (and your style). Here are 5 strategies to consider: All-in on organic. This is the “let’s see what happens” method. You focus solely on organic content, relying on TikTok’s algorithm to serve your videos to the right people. It’s a slow burn but can build a loyal community without spending a lot of money. TikTok ads only. Perfect if you’ve already nailed your creatives elsewhere (like Meta) and want quick installs. With TikTok Ads Manager, you can target your ideal audience, track performance, and optimize your campaigns. The power combo: organic + paid ads. Post organically, see what resonates, and then boost the best videos with Spark Ads. It’s the sweet spot between reach and cost-efficiency. Collaborate with influencers. They know their audience better than anyone. Partner with them to tap into their audiences and grow faster. Creator-generated content + ads. Hire small creators to make content, then run it as paid ads. Authentic, scalable, and usually cheaper than influencer marketing. StrategyCostSpeed of resultsBest forOrganic onlyFree (time investment)SlowBuilding a community from scratchPaid ads onlyMedium-highFastQuick reach and installsOrganic + paid adsMediumMedium-FastBalanced growth & engagementInfluencersMedium-HighMediumBuilding trust and app credibilityCreators + paid adsHighFastRapid growth with trust factorTikTok marketing strategies: cost, speed, and best use cases No matter which strategy you go for, TikTok is all about creativity, fun, and authenticity. Let’s break down each one and find what works best for you. Organic TikTok growth strategies Growing organically on TikTok starts long before you post your first video. Before you even create an account, you need to set yourself up for success. 1. Set your target audience from day one TikTok’s algorithm doesn’t just rely on your content. It looks at your phone settings, SIM card, IP address, and even your App Store region to decide which audience sees your videos. If you’re targeting users in the U. S. , but you create an account from another country, your content will be pushed to the wrong audience from the start. Here’s how to do it right: Use a phone without a SIM card. Avoid linking your account to a local phone number that could affect... --- Product matrices—and mobile app product matrices, in particular—come in many forms, each designed to address a specific aspect of your product strategy. For example, a product feature matrix for your app helps you visualize its upgrade paths by mapping out the differences in features across its different subscription plans. A monetization matrix, in contrast, enables you to assess different revenue streams and create a balanced approach to monetization. Meanwhile, a competitor research matrix provides a comprehensive view of how your app stacks up in your target market. But what exactly is a product matrix? And how do you create one? And why does it matter? Let’s now see what a product matrix is and how you can build your own. We’ll also see how you can put these to use. Here goes. What is a product matrix? A product matrix is essentially a grid or a table that allows for side-by-side comparisons of your different product dimensions.  In general, your product matrix's rows represent the comparison or evaluation criteria, while the columns represent the different entities across which you're making the comparisons. These entities can be anything from competitors in a competitive matrix to user segments in a user segmentation matrix and product versions or subscription plans in a product feature matrix. Let's dive straight into the different types of product matrices now, and all this will get even clearer. Types of product matrices  Brand product matrix A brand product matrix aligns your product offerings with your overall brand identity. In this matrix, the rows represent key branding dimensions—such as visual identity, messaging, and tone—while the columns represent the entities you want to evaluate. For example, you can assess how your messaging changes across different stages of the buying journey, evolves between your various product plans or user segments, or even compares to the messaging of your competitors. Ultimately, this matrix lets you see how consistently your branding is applied across all touchpoints. This matrix is highly flexible. For instance, a user segmentation matrix can also serve as a type of brand matrix if you’re looking to compare how your brand is perceived across your different target user groups.   Similarly, a customer journey matrix can be viewed through a brand lens if you evaluate how well your brand elements—like visual design, messaging, and tone—are maintained from the discovery phase through retention.   Additionally, a competitive benchmarking matrix can also function as a brand matrix by comparing your brand’s visual identity and messaging (among other factors) against those of your competitors, helping you identify areas where your brand stands out and where it might need further refinement. However, the core idea remains the same: You are measuring how consistently and effectively your brand is communicated and identifying areas where it can be strengthened. Product value matrix A product value matrix helps you determine whether your product’s features, benefits, and overall offering justify its price. It provides a clear, side-by-side comparison of different plans or versions, enabling you to assess value from the customer's perspective and make informed decisions about product optimization and pricing strategies. It helps you determine if each upgrade is truly worth the extra cost by addressing questions such as:  Does the additional set of features or benefits justify the upgrade?   How do the features, benefits, and overall user satisfaction compare across various subscription plans?   Is there a clear incremental value that motivates users to upgrade from a free or lower-tier plan to a more premium option?   Additionally, the product value matrix reveals whether your pricing structure is competitive and aligned with market expectations, while also indicating if the overall user experience is perceived as valuable compared to industry benchmarks. A sample product value matrix would look like this: Value metricFree planStandard planPremium planFeaturesBasic analytics, limited integrationsAdvanced analytics, more integrationsFull analytics, priority support, AI insightsBenefitsTry the platform for free, no commitmentAccess to core features for growing businessesFull access to all tools for scaling enterprisesPricing$0/month$19. 99/month$49. 99/monthCustomer satisfactionGood for testing, limited usabilityHigh satisfaction for growing businessesExcellent for enterprises & high-volume usersPerceived value alignmentBest for individuals & small startupsIdeal for SMBs & mid-size businessesDesigned for large businesses & power users Product feature matrix A product feature matrix allows you to visually compare the core functionalities and benefits of your mobile app across different versions or subscription plans. In a product feature matrix, the rows represent individual features or functionalities while the columns represent the various product tiers, like free, basic, and premium. This layout lets you quickly see which features are included, included in a limited or "lite" capacity, or absent in each plan, helping to inform decisions on how to optimize your upgrade path. Using a product feature matrix can help answer key questions such as: Is there a clear progression of value from one plan to the next that encourages users to upgrade? Are there any critical features missing from lower tiers that need to be introduced? How do the feature sets align with user needs and competitive benchmarks? This matrix not only clarifies your current feature distribution but also serves as a roadmap for product improvements. By visualizing these comparisons side by side, you can decide about which features to prioritize in upcoming development cycles, ensuring that each product plan delivers a clear and compelling value proposition to your users. Monetization matrix A monetization matrix for your mobile app provides a detailed view of how different revenue streams are doing or can do for you. You can use it to evaluate monetization channels—such as subscriptions, in-app purchases, ad placements, and more—against their revenue potential, user acceptance, ease of implementation, market alignment, and more. A monetization product matrix can help inform your long-term revenue strategy by pinpointing your optimal monetization mix. It helps you answer questions like:  Which revenue streams best align with your business model?   Are you capitalizing on emerging trends that suggest a shift in consumer behavior?   How are users responding to your monetization methods? Pricing strategy matrix A pricing strategy... --- Western app onboarding won’t cut it in Japan. Here, details, trust, and structure matter. Instead of quick, minimalist screens, users expect step-by-step guides, dense explanations, and even mascots to walk them through. Want to get it right? Read more. When launching an app in Japan, companies often assume that global best practices for onboarding will apply seamlessly. However, Japanese apps follow a different digital culture, user behavior, and expectations for UI/UX create a unique onboarding experience that differs significantly from Western norms. Understanding these differences is critical for international app developers looking to maximize engagement and retention in the Japanese market. We made this article in collaboration with Jamie Lou Borile from aix Inc. How Japanese apps build trust through detailed onboarding Japanese users tend to be more detail-oriented and cautious when adopting new digital services. Unlike Western onboarding, which often emphasizes speed and minimalism, Japanese app onboarding screens are typically more detailed, providing extensive information upfront. This reflects the broader cultural preference for thoroughness and clear expectations before committing to a new service. Detailed walkthroughs. Many Japanese apps include step-by-step guides, ensuring users fully understand functionality before proceeding. Cash App ー one of the leading finance app in the US ー goes straight to account setup after splash screen PayPay ー one of the leading finance app in the ー presents a detailed walkthrough on how to use the app after splash screen PayPay’s walkthrough screens on how to enjoy the app Emphasis on credibility. Screens often include company credentials, security assurances, and even links to privacy policies. クラシル immediately informing users about their privacy policy right after splash screen Expectation for full transparency. Rather than allowing users to explore features organically, onboarding in Japan tends to be structured and information-heavy. Preference for text-rich UI over visual simplicity Western app onboarding often relies on visual cues, illustrations, and animations with minimal text. In contrast, Japanese apps often use text-dense interfaces that provide reassurance through detailed explanations. More text, less white space. While Western apps focus on a clean, minimal aesthetic, Japanese onboarding screens often have text-packed layouts with bullet points, labels, and multiple sections explaining features in detail. Multiple confirmation steps. Users are typically required to acknowledge key app functions, permissions, or agreements before proceeding, adding layers of security and trust. ANA Pocket ー Asking to approve permission for camera and activity tracking right after the splash screen, and ask for other tracking permissions throughout the onboarding Familiarity and cultural cues. Many apps incorporate manga-style illustrations or mascots to soften the information-heavy approach. トリマ (right) and 助太刀 (left) using character as guide during the onboarding Gamification and personalization in the Japanese market Another unique feature of Japanese onboarding is the frequent use of gamification elements and early-stage personalization. Interactive tutorials. Rather than passive swiping, some apps engage users with quizzes, interactive demos, or character-driven guidance. クラシルリワード using interactive mascot character to guide users during onboarding Nickname and avatar selection. Many apps, especially in gaming, social, and community-based platforms, allow users to personalize their experience from the start. Reward-based motivation. Loyalty programs and point-based rewards are often introduced during onboarding to immediately reinforce app engagement. ANA Pocket ー giving away 3,000pt for creating a profile during the onboarding, and explaining how to earn more points through the app during the onboarding Handling of permissions and registration differences Western apps typically ask for permissions upfront in a single step, whereas Japanese apps often introduce them gradually or justify each request in detail. Gradual permission requests. Rather than prompting all permissions at once, Japanese onboarding screens introduce them contextually to avoid overwhelming users. トリマ gradually asking permissions throughout the onboarding after explaining what they can benefit through allowing such tracking Alternative login methods. Unlike Western apps that prioritize Apple, Google, or Facebook logins, Japanese apps often emphasize LINE as the primary login method. LINE, being Japan’s dominant messaging platform, is deeply integrated into user habits, making it the preferred authentication choice. Many apps also offer email or phone number registration for those who prefer traditional login methods due to privacy concerns. Top Social Media apps ー Pairs, with, Tapple, GRAVITY ー prioritizing LINE as primary login method ‘Skip’ option rarity. Unlike Western apps that often allow skipping onboarding, many Japanese apps make onboarding a required step to ensure users fully understand features. Conclusion: Adapting strategy for the Japanese market For international companies entering Japan, understanding these onboarding differences is crucial for success. A strategy that assumes universal UX principles will likely struggle with adoption and retention in Japan. By embracing Japan’s emphasis on transparency, detailed explanations, personalization, and a structured onboarding flow, global app developers can build trust and enhance the user experience. When localizing an app for Japan, simply translating text is not enough—adapting onboarding design and flow to align with local expectations will significantly impact user retention and long-term success. If you want to know more about Japan marketing insights, visit aixpost. --- The first month of the year flew by, and while you were busy fine-tuning your app and watching subscription numbers roll in, we were making sure your revenue data is rock solid. Adapty updates bring smarter web purchases, better profile management, and updates for React Native, Flutter, and iOS SDKs. Let’s jump in. Smarter subscription tracking for web If you have users subscribing through your website, good news — you can now manage web transactions with Adapty’s Web API, just like you do for apps. With this update, you can: Create user profiles on the web. Set attribution to know where subscribers come from. Retrieve paywalls dynamically for personalized offers. Log transactions — even from non-Stripe payments. Track paywall views to optimize conversions. No more scattered data — your web and mobile transactions now live in one place. → Check out the Web API guide. AI translation in Paywall Builder Translating your paywall used to be slow and tedious — copy-pasting, checking every word, and hoping nothing got lost in translation. But now, instead of doing all the work yourself, you can use AI Translation. Here’s how it works: Add a locale. Mark it for translation. Hit “AI Translate”. A few things to note: AI Translation only translates text — images and links stay the same (because translating a URL would be... awkward). If you update a translated text, we’ll flag it so you don’t lose your changes. Available for Pro+ users only. Want even more control? Import/export builder configs to handle translations externally. One more thing! While we’re on the topic of localization, importing/exporting remote configs is now available as well. It’s a small addition, but if you’re managing settings externally, it can be a real time-saver. Just another way to make localization a little smoother. PostHog & Tenjin integrations Your data should work for you, not the other way around. That’s why Adapty now integrates with PostHog and Tenjin, giving you deeper insights into your users and ad performance. PostHog → Adapty now sends subscription, cancellation, and paywall event data straight to PostHog, so you can track everything in one place Tenjin → Adapty pushes real revenue data to Tenjin, so you can see exactly which ads are bringing in paying users → Set them up in a few clicks: PostHog | Tenjin. Access levels in profiles Managing user access just got a whole lot clearer. Now, you can see exactly where an access level was shared or acquired from — making subscription tracking more transparent. This is especially useful when: A subscription gets transferred between profiles, and you need to trace its origin. Users switch accounts or devices, and you want to confirm how they retained access. → Learn more about access levels Adapty SDK updates: React Native, Flutter & iOS We’ve also released updates across our SDKs to keep everything running smoothly: Adapty React Native 3. 3. 0 Adapty Flutter 3. 3. 1 Adapty iOS 3. 3. 2 If you’re using any of these SDKs, make sure to update for better performance and more accurate data. MRR & ARR reporting adjustments We made a minor adjustment to how we calculate MRR, ARR, and active subscriptions, aligning them more closely with industry standards. That’s a wrap — what’s next? These updates are all about giving you more control, better insights, and an easier way to manage subscriptions. Already using Adapty? Try out the new features and let us know what you think! Your feedback helps us keep improving. Not using Adapty yet? Now’s the perfect time to see it in action. Book a demo and let’s find the best way to grow your app’s revenue together. Schedule a demo --- TikTok diğer sosyal medya platformlarından ayrılan kendine has özellikleriyle mobil uygulama geliştiricilerin ve pazarlamacıların ilgisini çeken bir platform. Telegram topluluğumuzda özellikle bu konuda çok fazla soru aldığımız için mobil uygulamalarda TikTok marketing ile ilgili özel bir canlı yayın gerçekleştirdik. Canlı yayının tamamını linke tıklayarak izleyebilir ve altta özetlediğimiz tüm detayları bulabilirsiniz. TikTok ile ABD kullanıcılarına organik olarak nasıl erişebilirsiniz? Bildiğiniz gibi TikTok sizin telefonunuzun konumu ve sim kartınız gibi birçok detaya bakarak içeriklerinizi belli bölgelerde gösteriyor. Özellikle ABD dışında yaşayan geliştiriciler bu ülkedeki kullanıcılara erişmekte zorluk yaşıyor. ABD kullanıcılarına TikTok hesabınızla erişmek için şu adımları takip etmeniz çok önemli: Öncelikle cihazı tamamen sıfırlayıp, App Store ülkesi ABD olan yeni bir Apple ID ile giriş yapın. Kesinlikle sim kartınızı kullanmayın. Telefonun konum servislerini kapatın. Sadece konum olarak ABD seçili bir VPN servisi ile kullanın. E-sim ya da ABD sim kartı kullanmak zorunda değilsiniz. Videoda hedef kitlenize özel hashtag kullanın. Akışta herhangi bir Türkçe hesapla etkileşim kurmayın. TikTok reklam türleri nelerdir? Webinarda öne çıkan konulardan biri TikTok reklam türleriydi. TikTok’ta mobil uygulamalar için App Install ve Retargeting kampanyaları gibi iki ana reklam formatı bulunuyor. App Install Kampanyaları Kullanıcılara doğrudan uygulama indirme çağrısı yapar. Smart kampanyalar, daha az manuel ayar ile daha iyi sonuçlar almanıza yardımcı olan otomasyon kampanyası çözümüdür. Manuel kampanyalar, bütçe ve hedeflemeye daha fazla kontrol sağlamak isteyenler için idealdir. Retargeting Kampanyaları Android kullanıcıları için sunulan bu model, uygulamanızı daha önce indirmiş ancak etkileşime geçmemiş kişilere ulaşmayı sağlar. iOS 14. 5 güncellemesi nedeniyle iOS kullanıcıları için sınırlamalar içermektedir. TikTok’un MMP (Mobile Measurement Partner) entegrasyon gereksiniminin kaldırılmasıyla, artık SDK entegrasyonu olmadan da kampanya başlatılabilecek. Bu, özellikle bağımsız geliştiriciler ve küçük stüdyolar için büyük bir kolaylık sağlıyor. Daha önce MMP entegrasyonu olmadan TikTok reklamı vermek imkansız gibiydi, ancak bu güncelleme ile artık herkes hızlıca kampanya başlatabiliyor. Bu da pazarlamacılar için yeni fırsatlar demek. TikTok’ta başarılı reklamlar için kreatif stratejileri TikTok reklamlarının başarısında kreatiflerin rolü büyüktür. Platformun dinamik yapısı nedeniyle, kullanıcıları hızla yakalayacak ve onları uygulama indirmeye teşvik edecek içerikler üretmek gerekiyor. Hook (İlk 3 Saniye): Kullanıcıyı anında içine çeken ilginç bir giriş yapılmalı. Body (Ana İçerik): Uygulamanın en güçlü yönleri kısa ve net bir şekilde aktarılmalı. CTA: Kullanıcıyı aksiyona yönlendiren net bir mesaj içermeli. Güncel trendleri takip etmek ve TikTok’un açık reklam kütüphanesinden rakip analizleri yapmak çok önemli. Ayrıca CapCut gibi TikTok’un yerel araçlarının, hızlı ve etkili reklam içerikleri oluşturmak için kullanılması da tavsiye ediliyor. TikTok kullanıcılarını uygulama içinde tutma stratejileri TikTok’tan gelen kullanıcılar genellikle sabırsız ve hızlı tüketim alışkanlıklarına sahip. Bu yüzden, onboarding sürecini iyi planlamak ve kullanıcıya mümkün olan en kısa sürede değer sunmak büyük önem taşıyor. Long Onboarding Modelleri: Kullanıcının kendine özel bir içerik oluşturduğunu hissettiren kişiselleştirilmiş onboarding süreçleri önerildi. Hızlı Fayda Sunma: Kullanıcıyı uygulamanın değerini en baştan hissettirecek özelliklerle tanıştırmak. Sonuç Odaklı CTA’ler: Örneğin, bir sağlık uygulaması için “30 gün boyunca kullandım, sonuç inanılmaz” gibi reklam içerikleri test edilebilir. Mobil uygulamalar için TikTok, yüksek etkileşim oranları ve uygun maliyetlerle büyük fırsatlar sunuyor. Ancak başarı sağlamak için doğru reklam formatlarını seçmek, yaratıcı içerikler üretmek ve kullanıcı deneyimini sürekli iyileştirmek gerekiyor. Eğer bu alanda başarılı olmak istiyorsanız: TikTok trendlerini yakından takip edin. Doğru hedefleme ve kreatif stratejileri kullanın. Onboarding sürecini optimize ederek kullanıcıyı elde tutun. Adapty ile refund sorunlarına kesin çözüm Webinarda ayrıca, Adapty’nin yeni Refund Saver özelliğinden bahsedildi. Bu özellik sayesinde, subscription bazlı uygulamalarda refund oranlarını %70’e kadar düşürmek mümkün. Mobil uygulama geliştiricileri için, gelir kaybını azaltan bu özellik büyük önem taşıyor. Büyük ve küçük ölçekli stüdyolar ve bireysel geliştiriciler için refundlar büyük kayıp anlamına geliyor. Refund Saver ile refund süreçleri otomatikleştirilerek büyük oranda kaybın önüne geçmek mümkün. Adapty’yi kullanarak A/B testleri yapmak, farklı fiyatlandırma modelleri denemek ve kullanıcı davranışlarını analiz etmek de oldukça kolaylaşıyor. Adapty’nin uygulamanızın büyümesine nasıl yardımcı olacağını merak ediyorsanız hemen bir kişisel demo planlayın. --- In this article, we’ll break down how Refund Saver works, why refunds are a bigger problem than they seem, and how real apps are using it to cut refund rates by up to 50%. How to make Adapty free with Refund Saver Refunds hurt. They mess with your numbers, drain your revenue, and create stress you don’t need. And when Apple controls every decision, it can feel like the odds are stacked against you. Unless you automate the process. In Part 1, we broke down the basics of navigating in-app subscription refunds. Now, let’s take it a step further. Today, we’ll show you how Refund Saver can help you: Stop losing revenue to unfair refunds. Save hours of manual work. Cover the cost of your Adapty subscription (yes, really). Here’s what’s coming up: Why building your own refund system might not be worth it. Real cases of Refund Saver working its magic in just a few days. How to set it up in just a few clicks. What makes subscription refunds so complex to solve? They hit harder than one-time purchases Every refund shrinks your recurring revenue and throws off metrics like lifetime value and churn. Even a small spike can mess up your growth plans and make scaling a lot harder. They can happen at any time (and for any reason) Subscription apps thrive on auto-renewals and free trials, but those come with risks: Users forget to cancel free trials before they convert to paid plans. Some claim renewals were unauthorized, even when terms were clear. Others use your app for a year and still request a refunds. These long-term refunds alone can account for up to 30% of total refund losses (based on internal data and industry trends). Apps with high refund rates may struggle with App Store compliance, leading to potential issues like delayed updates, more frequent app reviews, or even removal from the store in extreme cases. Scaling means more refunds The math is simple: the bigger your user base, the more refund requests you’ll get. For example, with 100,000 users and a 5% refund rate, that’s 5,000 refund requests. Apple expects you to process these within 12 hours, pulling and submitting data for each one. For small teams, this quickly becomes unmanageable. Is building your own refund system worth it? At first, building your own system might seem like a great idea. Until you realize what it takes. Step 1: Integrate Server Notifications V2 Apple’s refund system requires you to support their Server Notifications V2 protocol. You’ll need to: Create a secure HTTPS endpoint for refund notifications Handle multiple notification types (e. g. , CONSUMPTION_REQUEST, DID_RENEW). Verify security tokens for data authenticity. Build a backup plan for when Apple’s notifications fail to deliver. Stay ready for updates, since Apple often changes the rules. Step 2: Collect consumption data Gather consumption data like user activity, account tenure, and playtime. Pull data from tools like Firebase, Amplitude, or custom trackers. Step 3: Stay compliant with Apple’s changing policies Apple updates its refund policies frequently. Your system must adapt to new requirements, often on short notice. Step 4: Develop custom reporting and analytics tools Track refund trends across acquisition channels and subscription tiers. Build dashboards or integrate with third-party tools to stay on top of refund behavior. For most teams, the time, cost, and complexity simply don’t add up. Why most teams choose Refund Saver instead No coding, no stress Refund Saver works directly within your Adapty dashboard. Once enabled, it starts handling refund requests automatically. Note: Some setup steps, like accepting Apple’s refund policies and allowing data processing, may be required depending on your app’s terms. Built for growth Refund Saver handles refunds at any scale, whether you have 10,000 users or 1 million. It’s also always up to date with Apple’s policies, so you never have to worry about compliance. Proven results Here’s what Refund Saver can do for you: Recover 80% of unfair refunds. Our clients regularly win disputes for users who consumed their services or made fraudulent claims. Cut your refund rate by up to 50%. Reduce unnecessary revenue loss. Make Adapty free. Recovered revenue often outweighs your Adapty subscription cost. Refund Saver makes Adapty free Refund Saver can recover enough lost revenue to make Adapty free for most apps. Say your app generates $10,000 in monthly revenue and is on Adapty’s Pro Plan ($99/month). If your app has a 5% refund rate, that’s $500 lost to refunds each month. With Refund Saver winning 80% of your refund disputes, you recover $400 of that potentially lost revenue. That’s more than enough to cover your Adapty subscription and still take back $301 — a 300%+ ROI. Now, let’s look at how this played out for some of our clients. Real results from real clients Fotorama cut refunds by 40% within 2 weeks Fotorama, an AI photo generator app, was losing revenue to high refund rates. By implementing Refund Saver, they: Reduced their subscription refund rate by 40% in just two weeks. Increased daily revenue by $2,500+ without gaining additional users. Saved over $75,000 per month by cutting down refunds. → read the case study Pepapp recovered 96. 7% of lost revenue in 7 days Pepapp is a female health app with over 5 million users run by a small indie team. To scale their refund management system, they used Refund Saver. In the first seven days: They recovered 96. 7% of potentially lost revenue to unfair refunds. The money saved was nearly triple the cost of their Adapty’s subscription. → read the case study How to use Refund Saver Setting up Refund Saver is simple. Here’s how to do it: Step 1: Get user consent for refund data sharing Before using Refund Saver, make sure your app’s terms allow for refund data processing. Apple requires explicit user consent to send refund-related information. Update your terms of service and privacy policy to mention refund data handling. Collect user consent before sharing refund-related data with Apple. Step 2: Enable Server Notifications V2 Once consent is in place, enable Server Notifications V2 to start processing refund requests automatically. Step 3: Turn on Refund Saver in Adapty Log into your Adapty account and... --- Refunds take your revenue. Refund Saver takes it back. It recovers 2-3% of lost revenue, wins 80% of disputes, and cuts refund rates by 50%. In this article, we break down how it works and why it pays for itself. How to recover 2-3% of lost revenue for subscription apps Every dollar lost to refunds is a dollar you’ll never get back. For subscription apps, those dollars add up fast, eating into your MRR, and making it harder to scale. In the first two parts of this series, we uncovered the hidden costs of refunds and showed how Refund Saver offsets the cost of your Adapty subscription. If you’ve missed them, here’s a quick way to find them: Part 1: Navigating in-app subscription refunds Part 2: How to use Refund Saver to make Adapty free Now, in this final part, we’ll show you how Refund Saver can help you recover 2-3% of your total revenue. You’ll learn: Why refunds are a major part of lost revenue How Refund Saver consistently recovers 2-3% of your total revenue with minimal effort. The key metrics to track once it’s enabled. Why refunds are a major part of lost revenue What lost revenue means for subscription apps Unlike one-time purchases, subscription revenue is designed to be predictable. It relies on recurring payments that build over time. For subscription apps, lost revenue comes from: Canceled subscriptions or users who churn before you’ve covered their acquisition cost. Abandoned trials from potential subscribers who sign up but never convert. Refunds basically undoing revenue you’ve already booked. Refunds hit harder as they affect multiple parts of your business at once. They reduce your MRR and directly impact your LTV. When these metrics drop, it becomes difficult to forecast growth, justify spending on acquisition, or reinvest strategically. Apple offers an API for refunds, but that doesn’t mean it’s hands-free. You still need to pull user data, verify details, and submit it on time. For apps processing hundreds of refunds, even a small inefficiency can add up to serious revenue loss. How much do refunds actually cost your app? Let’s put some numbers behind this. For this section, let’s say your app generates around $50,000 MRR with a freemium model 20% of the free users. 80% of the users are paid subscribers: Monthly subscriptions: 70% on a $10/monthly plan. Yearly subscriptions: $100/year plan ($8. 33/month). How it looks: Monthly revenue: 3,500 monthly users × $10 = $35,000. 1,800 yearly users × $8. 33 ≈ $15,000. Now factor in Apple’s 30% fee and you get $35,000/month With a 5% refund rate: $35,000 x 5% = $1,750 lost monthly Net revenue after refunds: $35,000 - $1,750 = $33,250/month In the end, your app actually generates $33,250/month. That’s 33. 5% of revenue lost each month, even though refunds are just 5% of your total subscription sales. If your app scales, that problem doubles. Refund Saver recovers at least 2-3% of total revenue Refunds only become a financial black hole if you let them spiral out of control. With Refund Saver, they don’t have to. It turns refunds into recoverable revenue with almost no effort on your part. The real recovery potential Refund Saver typically reduces refund rates by 50% and wins up to 80% of disputes, meaning it can recover 2-3% of total revenue *— sometimes even more. Let’s apply this to our previous example. The app makes $50,000 MRR, but after Apple’s 30% cut and a 5% refund rate, the team only takes home $33,250/month. Without Refund Saver: They lose $1,750/month to refunds monthly. Refund handling still requires pulling the right data and ensuring it’s submitted correctly — without it, they lose revenue by default. If refund rates spike, it’s extra work for the team to monitor and respond effectively. They consider building an in-house solution, but it requires ongoing development resources. With Refund Saver: They enable it in one click from their Adapty dashboard and let it handle the process. Refund Saver automates refund disputes, ensuring accurate, timely submissions. It wins 80% of disputes, recovering $1,400 in the first month. They recover $1,400 in the first month, which is: 2% of gross MRR. 2. 86% of net revenue. 40% of total lost revenue. Completely covering their $619 Adapty Pro+ subscription. At first glance, 1% of revenue might seem small. But for scaling apps, it’s a difference that compounds. Month after month, it frees up cash flow to reinvest into growth, whether that’s launching retention campaigns, improving features, or scaling acquisition strategies. → explore more real use cases It scales with your app Refund Saver scales with your app, no matter how big your user base gets. Whether you’re processing 10 refund requests or 10,000, it works automatically. And since it’s always up to date with Apple’s latest policies, you don’t have to worry about compliance issues. Use refund insights to improve your retention strategy As Refund Saver recovers your lost revenue, it also gives you the space and tools to solve the bigger problem: why are users requesting refunds in the first place? Since the process is automated for you, you can now shift your focus from reacting to refunds to proactively improving retention. Identify the common reasons for refunds Refund data is a great opportunity to better understand your users. You can access it via your Adapty dashboard and track 18 subscription events along with user cohorts, LTV, Retention, and much more. Here are a few things you can to keep an eye on: Which subscription plans see the most refunds? Your refund rate is the percentage of total purchases refunded. They often vary by pricing tiers. Are some subscription tiers underperforming? Maybe users don’t see the value they expected. Maybe users don’t see the value they expected. Are some acquisition channels refund-prone? If users from TikTok refund more often than those from Google Ads, you might need to adjust your messaging. When do refunds peak? Refunds often spike during auto-renewals or free trial conversions. A high refund rate at these stages might indicate users got caught off guard by the renewal or didn’t find enough value to continue. You might want to adjust your communication then. Do refunds overlap with churn? Refund requests can be a warning sign of... --- We broke down the paywalls of App Store Award finalists to see what works. From smart pricing to trust boosters — here’s what makes them convert (and how to use these tricks yourself). It’s the 19th issue of the Paywall Newsletter! This month, we’re exploring the paywalls of App Store Awards finalists. We handpicked five paywalls from different categories, each with an MRR between $10K and $600K. Murat breaks down their strengths and key takeaways. BetterSleep: Relax and Sleep MRR $600kHealth & Fitness  What stands out: Users know exactly when their trial ends — this builds trust. A free trial paired with an annual discount to drive conversions. Highlighting immediate, tangible outcomes like better sleep and relaxation.   Takeaway: Keep it calm, keep it clear, and always show users what they’re getting upfront. Flighty – Live Flight Tracker MRR $600kTravel  Their strategy: Unique features like unlimited historical flight data, presented as a premium benefit. Subtle but effective savings cues like “Save 75%” for annual plans. Takeaway: Unique value propositions deserve the spotlight — make them hard to miss. Travel Planner Guide: Tripsy MRR $50kTravel  What’s working: A clean paywall showcasing three product options. Smart pricing strategy — breaking costs down into weekly comparisons makes decisions easier. The “What’s included” reveals a detailed feature list, ensuring users know exactly what they’re getting. Takeaway: The clearer the offer, the easier the conversion. Show value upfront. LookUp: English Dictionary MRR 10kReference What’s working: The free trial and yearly cost are displayed upfront, so users know exactly what they’re signing up for. Eye-catching word cards make learning feel fun and premium. Takeaway: Pair engaging visuals with clear, user-focused messaging to stand out and convert. Learn English: EF Hello Ingles MRR $100kEducation What’s working: Personalization with an AI tutor, making the offer feel tailored to the user. Emotional testimonials that build trust and highlight real results. Takeaway: Add a human touch to your paywalls to create stronger emotional connections. That’s all for now!   Keep experimenting, keep growing. See you next month! --- Apple’s refund process is a headache, but it doesn’t have to be. Learn how Refund Saver automates the process, recovers lost revenue, and helps you focus on growing your app. What refunds are and why they matter Refund requests. If you’re an app developer, you’ve probably had to deal with them. They’re frustrating, no doubt — lost revenue, bad reviews, and the headache of trying to make sense of it all. The worst part is that you don’t even control the process. Apple does. But refunds don’t have to be the enemy. They’re part of the ecosystem, and understanding them can help you spot opportunities to make your app better. So let’s break it down, plain and simple. This article kicks off a series on in-app subscription refunds. Today, we’ll cover: What refunds actually are. How they affect your app’s revenue and growth. Why handling refunds manually is such a pain. What are app refunds? App refunds happen when someone buys something in your app — whether it’s a subscription or a one-time purchase — and then asks for their money back. Some refunds make sense. Maybe they clicked “buy” by accident, or the app didn’t work as it should. But let’s be honest: not all refund requests are that straightforward. For example: Use-and-refund. Someone buys a VPN subscription, uses it for one task, and requests a refund. “Accidental” purchases. A user enjoys your app but insists they bought the subscription by mistake. Trial abuse. They sign up for a free trial, use premium features, and request a refund the moment they’re charged. Refunds hit harder than they seem. They mess with your metrics, like customer lifetime value. And when refund requests turn into bad reviews, your app’s reputation takes a hit too. → see what’s a good in-app subscription refund rate The history of refunds in the App Store Apple’s refund policies have changed over time, but one thing hasn’t changed: developers still follow Apple’s rules with little control over payments or refunds. 2008. The App Store launched with one-time purchases. Refunds were informal, handled case by case. 2009. In-app purchases, primarily for games, became available, leading to more refund requests. 2014. Apple introduced a 14-day no-questions-asked refund policy to comply with EU regulations, leaving developers with no say in the process. 2019. Apple began sending server-to-server refund notifications, but only for in-app purchases. April 2024. Apple finally expanded the refund system to include subscriptions. Developers could submit data to contest refunds. That last change was a big one. Subscriptions make up a huge part of many apps’ revenue, and having a chance to contest refunds is a step forward. But Apple being Apple, 12 hours to gather and submit all the data? That’s tight. Apple owns the payment system (and the refunds) Here’s the deal: when users make purchases in your app, the transaction goes through Apple. They collect the money, take their cut (15% or 30%), and handle all refunds. You don’t touch the payments or get to influence much of the process. Here’s how it works: Step 1. A user requests a refund They go to Apple’s Report a Problem page, write a quick explanation, and submit their request. Apple’s Report a Problem page Step 2. You get notified Apple sends you a CONSUMPTION_REQUEST. This is your chance to prove the user actually consumed the purchase. You have just 12 hours to respond using Apple’s API. Required data includes: How long the user’s had an account. How much they used the app (playtime, features, etc. ). Whether the subscription was delivered properly. Your stance on the refund — approve, deny, or no preference. Pulling all this data together isn’t exactly a quick task. If you miss the deadline or mess up, the refund is approved automatically. Step 3. Apple makes the final call Even if you provide all the data on time, Apple’s decision is final. Their system leans heavily toward keeping users happy, so refunds often get approved. Apple refund flow presented at WWDC21 Developers do have the option to implement an in-app customer portal where users can view subscriptions and purchase history. Yet, few bother to do so. It’s complex to set up and still routes users back into Apple’s system, offering no real control. Why refunds are so frustrating Refunds go beyond lost revenue. They disrupt your entire workflow. Take your revenue, for example: If your app makes $10,000 in a month and has a 10% refund rate, you’re losing $1,000. It doesn’t stop there. Refunds lower your LTV, inflate churn rates, and skew your marketing ROI. It makes planning campaigns and product updates much harder. And don’t forget the ripple effects: Dissatisfied users often leave negative reviews, which hurt your visibility and downloads. Your team ends up spending hours handling refunds instead of focusing on building features or acquiring new users. Recover up to $700 for every $1,000 lost to refunds with Refund Saver! Why managing refunds manually is tough Handling refunds without automation is a huge time suck. You’re expected to gather consumption data from different sources, clean it up, and submit it to Apple — all within 12 hours. For smaller teams, this can feel impossible. Every minute spent on refunds is time taken away from improving your app or acquiring new users. And even if you do everything perfectly, Apple’s decision-making is out of your hands. What can you do? Handling refunds doesn’t have to be this overwhelming. Tools like Refund Saver automate the process, pulling the required data and submitting it to Apple on time. Here’s what Refund Saver helps with: Cut your app’s overall refund rate by 40%. Win 70% of your refund disputes with accurate consumption data. Completely offset the cost of your Adapty subscription with a 400% ROI. Stay away from legal consequences. The bottom line If it feels like Apple’s system is stacked against developers, that’s because it is. You don’t own the payments, you don’t control refunds, and you have to jump through hoops to contest anything. But there’s a silver lining: tools like Refund Saver can help. By automating data collection and submission, Refund Saver ensures you meet Apple’s tight deadlines without wasting... --- Happy New Year! While everyone was counting down to 2025, we were busy rolling out updates to make your life easier. From refund management to auto-translating paywalls, these improvements are here to help you kick off the year with more control, better insights, and faster workflows. Happy New Year! While everyone was counting down to 2025, we were busy rolling out updates to make your life easier. From refund management to auto-translating paywalls, these improvements are here to help you kick off the year with more control, better insights, and faster workflows. Let’s take a quick look at what’s new. Refund Saver Remember when we introduced Refund Saver? Since launch, it’s helped many of you cut refund rates significantly — and the numbers back it up. (Spoiler alert: It’s working really well! ) Here’s how Refund Saver works now: Decline by default – This option delivers the best results, with an average decline success rate of 70%. Accept automatically – A smoother option if you prioritize customer experience over revenue impact. No preference – If you’d rather let Apple handle refunds without intervention. Read more in our documentation. Refunds directly affect revenue, and with this feature, you’re in the driver’s seat. Looking ahead: We’re considering ways to handle individual refund requests manually. Stay tuned for early 2025 updates! Paywall Builder: New ways to boost conversions Video templates A static paywall is good, but a video paywall? Even better. With our new video templates, you can create paywalls that grab attention and explain your app’s value in seconds. Whether it’s a quick demo or a holiday promo, you can now add video without touching a single line of code. Rich text coloring Sometimes, a little color makes all the difference. Now, you can color specific parts of your paywall text to emphasize key points — like discounts, key benefits, or deadlines — without needing any design tweaks. This small change can have a big impact on clarity and conversions, making your paywalls not just functional but also visually engaging. Remote Config auto-translation Manual translations can be slow. With ChatGPT-powered auto-translation, you can now translate paywalls in just one click. Exclude specific strings (like IDs) or manually handled locales to keep things under control. Simple, fast, efficient. Cohort analysis: custom periods by days Tracking short trials or daily user behavior has always been possible, but now you have even more flexibility. You can set custom periods for cohort analysis, allowing you to adjust timeframes as needed. This is especially useful for apps with non-standard trial lengths, such as 3-day trials, or for those who want a more granular view of user behavior over specific periods. Post-timer action: Smarter paywall flows You can now trigger specific actions when a paywall timer ends. Here’s what that means: Close the current paywall and automatically show a new one. Build multi-step paywall flows that guide users through a dynamic experience. This gives you more control over how users interact with paywalls, helping boost engagement and conversions. That’s it for now! We’ve designed these updates to give you more control, more flexibility, and better insights to kick off 2025 on the right note. Got questions or need a hand? Just reach out - we’re always happy to help. New to Adapty?  Sign up and explore how these features can grow your app! --- Running a mobile app business means navigating a sea of metrics—revenue insights from Adapty, engagement trends from Mixpanel, crash reports from Firebase, to name just a few sources! Each one tells part of the story, but on its own, it doesn't do much. This is where the North Star metric comes in. Think of it as a central metric that 1) consolidates your data, 2) steers your focus toward growth, and 3) aligns every team effort with your core business goal. So let’s see what the North Star metric actually is, how it does all of this, and the steps you can follow to identify yours. We'll also look at its key characteristics and if you can have multiple North Star metrics. Here goes. What is a North Star metric? Let’s expand on what we just introduced. As a mobile app business, you likely have multiple analytics solutions as part of your tech stack. While each of these solutions offers valuable insights into specific aspects of your app’s performance, they only provide a fragmented view of your overall performance. For example, with Adapty, you can assess your app’s performance from a revenue perspective, but that’s all.   Additionally, while each metric offered by these analytics solutions—take Adapty’s reporting on your lifetime value (LTV) metric, for instance—provides a piece of the puzzle on how your app is doing, by themselves, the metrics might not always point to the bigger picture. Said another way, these metrics, though valuable, often operate in isolation and have gaps, making it difficult to understand what truly drives long-term success for your app. Without a unifying metric that helps you make sense of everything that's going on in your business, it's challenging to align your teams around what truly matters. Enter: Your North Star metric.   By defining a singular, overarching metric that truly reflects your app's overall performance, you get a clear idea of how you’re doing. In general, when your North Star metric improves, it should be clear that users are experiencing more of your app’s promised value. This implies that all teams, including design, development, product, marketing, and service, are doing well. Before we dive into how to identify your app’s North Star metric, let’s first understand the characteristics of a good North Star metric so you’ll know it when you see it. For example, many businesses default to using revenue metrics as their North Star metric—meaning if revenue is going up, everything is going well. But it’s not that simple. Revenue may or may not be a good North Star metric. (We’ll return to this in a later section. ) Characteristics of a good North Star metric The most important characteristic of a good North Star metric is that it directly reflects the value users get from your app. It captures the core outcome users seek from an app—like better productivity from productivity apps, overall wellbeing from lifestyle apps, or improved fitness from health apps. In other words, it truly aligns with your app’s value proposition.   So your North Star metric should reflect the main promise of your product. To get to this, answer this: “What’s the single most important thing users come to our app for? ” Avoid picking broad, generic metrics that don’t reflect your app’s unique value proposition (like “total active users” for a niche app). Other than that, a north star metric needs to be: Actionable. It’s important that your team can act on your North Star metric. So avoid metrics that are purely reflective (like lifetime value) without any levers for improvement. Predictive. Your metric should be able to signal future growth or retention and not just be about historical performance. Look for behaviors that predict long-term success. Avoid lagging indicators like churn rate, as they reflect past issues, not opportunities for proactive action. Simple and understandable. Overly complex or multi-layered metrics that confuse stakeholders won’t make good North Star metrics. Leading. Your North Star metric should provide early warning signs of success or failure. Early signals allow for faster intervention. Don’t rely on delayed metrics like lifetime value (LTV) that have long feedback loops, making it difficult to iterate quickly. (This is along the same lines that your North Star metric should be predictive and not reflective. ) Meaningful. With your North Star metric, focus on meaningful user behaviors and not vanity surface-level numbers like the “total downloads” or the “number of accounts created. ” Aligned with company goals. Ensure your North Star metric aligns with your company's mission and long-term goals. It should support both user and business success. Don’t choose metrics that look good to stakeholders but don’t actually tie back to the company’s strategic direction. Measurable in real time. Pick a metric that can be tracked and reported in near real-time to enable quick course correction. Avoid metrics that take weeks or months to materialize, like “quarterly retention rate,” which makes it hard to act in the moment. While we're at it, let's also talk about why you should or shouldn't use revenue as your North Star metric for your app. Revenue as a North Star metric...   While revenue is a clear indicator of your app's “business” performance, it doesn't directly measure how well your app is serving its users. In a lifestyle app, for example, the value users gain—such as health improvements, habit formation, or personal growth—matters more for long-term engagement than immediate financial gain. Focusing on user experience and engagement metrics (e. g. , challenges completed, health goals achieved, etc. ) is typically a better indicator of success. Focusing on revenue here can push your team to focus on quick monetization strategies, which could actually hurt user engagement. Also, revenue could be a lagging indicator in many contexts, meaning it shows the outcome of past efforts, but it doesn't offer insights into how to drive long-term engagement (which would be the key to success for such an app). Besides, as users realize more value from an app, in-app purchases will... --- 2024 has been a milestone year, and so have your achievements. Behind every number lies your hard work, and every stat tells a unique story about your journey. 2024 has been a milestone year, and so have your achievements. Behind every number lies your hard work, and every stat tells a unique story about your journey. Your Adapty Wrapped is here, and it’s all about celebrating you. Let’s take a look at how far you’ve come. How to find your Adapty Wrapped Accessing your recap is simple: Step 1. Log in to your Adapty account. Step 2. Click the Adapty Wrapped button at the top of your dashboard. Step 3. Dive in and enjoy exploring your year! Your recap includes: Key metrics. From total revenue to installs and subscriptions, see your big wins. Growth comparisons. Measure your progress compared to last year (available for users active since early 2023). Milestones reached. Celebrate the major milestones you’ve crossed. Achievements. If you’re among the top Adapty users, your success will be featured here. Announcing a giveaway To show our appreciation, we’re offering something special — win 4 app growth mentorship sessions with an expert! Here’s how to enter: Share any card from your recap on social media. Tag Adapty & use #adaptywrapped. That’s it! We’ll randomly select a winner on January 6. Good luck! Your growth, your journey, your story — it all matters. Adapty Wrapped is our way of saying, “Look at what you’ve accomplished! ” Take a moment to explore your recap, share your wins, and inspire others with your progress. Here’s to you — and an even bigger 2025! --- November brought exciting updates to make your app better and your work easier. From more advanced paywall builder features to smarter analytics and refund automation, here’s everything you need to know. Refund Saver Managing refunds is a natural part of running an app, but it can quickly become overwhelming. Adapty Refund Saver automates the process to protect your revenue. Apps using it have reduced refund rates from 4% to 2. 3%, saving thousands of dollars every month. Here’s how it works: We send consumption data to Apple in real-time, meeting the tight deadline. Apple gets detailed user behavior data, helping them deny unjustified refunds. Apps using our automated refund management can save you up to 40% of revenue previously lost to unjustified refunds. Simply put, Adapty saves you money and practically pays for itself, all while giving you peace of mind. Check the documentation for more details. Paywall builder updates Flutter support for a new paywall builder Our new Paywall Builder is now supported in the Flutter SDK, with Unity support arriving later this month. “View more plans” button The new “View more plans” button allows you to feature a single plan while keeping others neatly tucked away. It’s perfect for guiding users toward the plan you want to highlight while still offering fallback options. Content tabs widget Content tabs let you group plans by types (weekly/monthly/yearly) or tier (Basic/Premium). You can even add feature lists to showcase what makes each plan unique. It’s a simple way to help users find the right plan without overwhelming them. Timer modes for paywalls Previously, every paywall timer reset to the same starting value. Now, you have more options: Always start fresh. Keep the timer value for the session. Maintain the timer across sessions. Fully control the timer with the SDK. Perfect for limited-time offers, trials, or discounts. Underline and strikethrough text formatting Strike-through: ideal for highlighting discounts or displaying old prices. Underline: adds emphasis to important text. Both formats can be applied to product and custom tags like or , giving you more flexibility in designing paywalls and promotional text. Hint: more exciting updates on rich text features are coming your way in the next few weeks :) Adapty iOS SDK 3. 2. 0 The latest version of Adapty’s iOS SDK is here, and it’s a big step forward – so much so, it could be called version 4. 0. This update includes: Full StoreKit 2 support: it handles nearly all purchase types with ease. Swift 6 compatibility: fully supports the latest version of Swift. Win back offers now fully supported Re-engaging users just got easier! With the latest SDK update (version 3. 2. 0), you can now add win-back offers directly in Adapty and display them on your paywalls. We’ve also reworked the UX and UI for adding products and offers, ensuring a smoother, more intuitive experience. Thank you for being part of Adapty’s journey this year – we couldn’t have done it without you! Here’s to making your app even better in the new year. Got questions or ready to try these updates? We’re here to help! New to Adapty? Sign up and explore how these features can grow your app! --- Yazılım şirketleri ve özellikle mobil uygulama geliştiren şirketlerden vergi ödemeleri, teşvikler ve istisnalar ile ilgili Telegram topluluğumuzda ve sosyal medyada düzenli olarak çok soru alıyoruz. Bu soruların cevabını en net olarak ve bu konuda uzman bir konuktan alabilmek için Özmen Müşavirlikten Evren Özmen ile bir canlı yayın düzenledik.   Canlı yayının tekrarını linke tıklayarak izleyebilir veya aşağıda konuşulan konu başlıklarınının tüm detaylarını öğrenebilirsiniz. Yayında konuşulan konu başlıkları ve detaylı bir özet: Mobil uygulama gelirlerim için şirket kurmak zorunda mıyım? Şirket türünün kararını verirken kendinize uyan ve en mantıklı seçimi yapmanız gerekiyor. Belki de şirket kurmadan da faaliyetlerinize devam edebilir misiniz bunun da araştırılması gerekebilir. Örneğin abonelik ve reklam gelirleriniz için yıllık 3 milyon TL gelire kadar sadece %15 peşin vergi ödeyip şirket kurma maliyeti olmadan gelirlerinizi hesabınıza alabilirsiniz. Özetle: 2024 için 3. 000. 000 TL sınırını aşmazsanız sadece hesabınıza gelen paradan %15 kesiliyor ve ayrıca bağkur ödüyorsunuz. Şirket kurmuyorsunuz, fatura kesmiyorsunuz, KDV ödemiyorsunuz. Bu 3. 000. 000 TL sınır 2025 de en az 4. 350. 000 TL olacak. Yani seneye de bu tutara kadar bu basit yöntem ile vergilendirilebileceksiniz. Temel bir bilgi vermek gerekirse Limited ve Anonim Şirketleri için kurumlar vergisi oranınız %25 olacaktır. Şahıs şirketlerinde de %15 - 40 arasında değişiyor. Burada karar verirken önemli konu sizin gerlirlerinizin ve giderlerinizin detaylı olarak hesaplanıp seçim yapılmasıdır. Burada şöyle bir ayrıntı var. Eğer ileride şirketinizi satmayı planlıyorsanız Anonim Şirketi olması sizin için daha faydalı olacaktır.   Herhangi bir iş yerinde sigortalı olarak çalışırken vergi istisnasından gelir elde edersek tekrar bağkur ödemesi yapmamız gerekiyor mu? Bu da güzel avantajlardan bir tanesi. Eğer ki siz bir yerde düzenli olarak çalışıyorsanız şirketiniz sigortanızı ödediği için tekrar bir bağkur ödemesi yapmanıza gerek kalmıyor. Belirlediğiniz banka hesabınızda %15 vergi kesintiniz yapıldıktan sonra tekrar bir sigorta ödemesi yapmadan kazanç elde etmeye devam edebilirsiniz. Admob gibi mobil uygulama reklam platformlarından elde ettiğimiz gelirler %80’lik yurtdışı vergi istisnasına dahil midir? Ne yazık ki hayır. Özellikle şirket kuruluşundan başlayan bir araştırma yapmanız gerekiyor. Örneğin şirketiniz reklamcılık adıyla kurulduğunda ne yazık ki bu vergi istisnasından faydalanamıyorsunuz.   App Store ve Play Store subscription gelirleri için %80’lik yazılım vergi avantajından yararlanabilir miyim? 05. 02. 2021 Tarih ve 96620903-120-E. 11527 Numaralı özelgeye istinaden eğer; Hizmet Türkiye’de yerleşmiş olmayan kişilerle, iş yeri, kanuni ve iş merkezi yurt dışında bulunanlara verilmiş ise, Yapılan hizmet ile ilgili olarak düzenlenecek faturanın, yurt dışı mukimi kişi ve/veya kurum adına düzenlenmiş ise, Yurt dışı mukimi kişi ve/veya kurum için Türkiye’den verilen hizmetin, bu kişilerin ve/veya kurumların Türkiye’deki faaliyetleri ile ilgisinin olmaması, verilen hizmetten yurt dışında yararlanılmış olması, koşullarını sağlıyor iseniz elde ettiğiniz mobil uygulama gelirleri kapsamında % 80 yurtdışı yazılım vergi avantajını kullanabilirsiniz. Bu arada hem reklam hem de in app purchase geliriniz var ise reklamı dışarıda tutarak hesaplama da yapabilirsiniz. Adapty ile kazancınızın arttırın aynı zamanda devlet teşviklerinden yararlanın Adapty’nin gelişmiş segmentasyon ve A/B testi özellikleri ile kullanıcılarınıza özel paywallar gösterip farklı fiyat testlerini kolayca yapabileceksiniz. Ayrıca Paywall Builder ile kodlamaya ihtiyaç duymadan kolayca paywallar oluşturun, inceleme sürelerini beklemeden anında yayına alın. Aynı zamanda Adapty’nin farklı analitik araçları ile LTV’nizi hesaplayın, retention, trial start rate, refundlar ve cancellation rate’e kadar onlarca metriği kolay bir şekilde analiz edebilirsiniz. Adapty’nin karlılığını arttırmanıza ve uygulamanızı büyütmenize nasıl yardımcı olacağını ve teşvik avantajlarının daha fazlasını öğrenmek için hemen bir kişisel demo planlayın. --- Refunds can feel like a leak in your revenue boat. Each one cuts into your profit, and worse, some refunds may not even be justified. But there’s good news: you can regain control with the right tools and strategies. Refunds can feel like a leak in your revenue boat. Each one cuts into your profit, and worse, some refunds may not even be justified. But there’s good news: you can regain control with the right tools and strategies. Here’s everything you need to know to turn refund challenges into an opportunity to protect your bottom line. Why handling refund right can make or break your app A refund request is never just about the money. It affects your app’s reputation, and your ability to scale. For many apps, especially those with subscriptions, refunds can: Mess up your revenue predictions. Upset loyal users. Create unnecessary friction with platforms like Apple. Now, imagine reducing your refund rate by 40-60% without lifting a finger. That’s the promise of automated refund management. How Apple App Store refund system works When a user requests a refund, Apple sends developers a CONSUMPTION_REQUEST notification through its App Store Server API. This notification asks for details like: The user’s activity in your app. How much of the purchase they’ve used. Their spending and refund history. You have just 12 hours to respond. If you miss the window, Apple usually approves the refund. Apple refund flow presented at WWDC21 Until recently, this process applied only to in-app purchases. However, as of April 2024, Apple expanded this to include all types of app transactions. This means developers now have the opportunity to respond to any refund request with user activity data. Staying on top of refund requests is no longer optional; it’s critical to protecting your revenue. Automate your refund management Handling refund requests manually is time-consuming, error-prone, and costly. Now Adapty can automate this process with Adapty Refund Saver, ensuring Apple receives the necessary information instantly. Here’s how it works: We send consumption data to Apple in real-time, meeting the tight deadline. Apple gets detailed user behavior data, helping them deny unjustified refunds. Apps using our automated refund management solution have seen refund rates drop from 4% to 2. 3%, saving thousands of dollars monthly. What about real results: a case study Fotorama was struggling with refund rates that ate into their revenue and slowed growth. Managing refunds manually was time-consuming and frustrating. The team enabled Adapty Refund Saver and in just a few weeks, things started to change. The refund rate was reduced by 40%, instantly easing the pressure on their revenue. Without increasing installs or making major adjustments, they saw a daily revenue boost of over $2,500. Over a month, this added up to more than $75,000 in savings – money they could reinvest into growing the app. How to get started Here’s how you can set up Adapty Refund Saver: Go to your Adapty dashboard. Turn on Adapty Refund Saver. Let Adapty connect with Apple’s API and take over. Why it’s worth it With Adapty, you can successfully decline 60-70% of refund requests. For an average refund rate of 4%, that means cutting refunds by 1. 7% – saving thousands of dollars every single day. Beyond this, you will also get: Consistent revenue that’s easier to count on. A better understanding of your users – what they do and what they need. Less stress - Adapty handles refunds for you. In other words, Adapty doesn’t just save you money – it practically pays for itself while giving you peace of mind. ? Sign up now and start saving today! --- If free apps don’t charge users, how do they make money? Well, while the core features of these apps are free, many offer premium experiences for fees. That’s how they monetize. Free apps also bring in revenue from other players—advertisers, brands, affiliates, sponsors, or even donors. On top of that, free apps also use data monetization to make revenue. Monetizing free apps is all about balancing user value with revenue generation to ensure they evolve into a sustainable business. So, let’s break down how free apps make money—with examples of apps that do it well. But before that, here’s a quick overview of the three kinds of apps you’ll find in the app stores. Here goes. The marketplace: Free apps vs. freemium apps vs. paid apps market According to Statista, as of October 2024, nearly 97% of apps in the Google Play Store are free, while 95. 27% of apps in the App Store are also free. This means that free apps make the majority on both the app stores, and that less than 5% of apps on both stores are paid. Note that app stores don’t have separate categories for free and freemium apps, but they are different. Free apps These apps deliver exactly what they promise in their descriptions, with no charges—either at the time of download or afterward. Freemium apps Like free apps, freemium apps, too, are free to download. But freemium apps also carry premium features, functionalities, or content that users need to pay to access. These apps offer users something valuable for free while giving them the option to pay for more. Common monetization strategies include in-app purchases and in-app advertising. Paid apps Paid apps are the simplest model in some ways—you pay a flat fee upfront to download the app or sign up for a subscription, and that's it. There are no ads, no upgrades, and you get access to everything the app has to offer from the get-go. While this model has fewer opportunities to scale compared to free or freemium apps, it can be a good choice for apps that offer high value or niche functionality that users are willing to pay for upfront. Are free apps the same as freemium apps? No and yes. Ideally, a free app should never require you to pay for anything because, well, it’s a “free” app. With such apps, you don’t or shouldn’t: Hit any paywalls. Have to make any in-app purchases to access anything inside the app. Get bombarded with ads pushing you to the paid version. These apps are free in the true sense.   And as you can tell, these are different from freemium apps. With freemium apps, you usually get the base features for free, but certain premium features, ad-free app experiences, or content are locked behind a paywall.   That said, freemium apps are still technically free. In that sense, freemium apps aren’t that different from free apps. For this article, we’re going to treat freemium apps as free apps! As noted above, even app stores don’t separate free and freemium apps into different categories. With that out of the way, let’s see how free or freemium apps make money before seeing the actual monetization strategies in detail. Zooming in on the free app model: How do free apps make money The core idea behind the free app model is to offer the app at no cost to users, focusing on building a large user base quickly.   And then once the app gains traction and a solid user base, monetization happens through methods like advertising, affiliate marketing, or in-app purchases.   Here are some common monetization strategies that free apps use:  Paid upgrades: Offering premium features or removing limitations for a one-time fee or subscription. Advertisements: Displaying ads to users, with revenue coming from advertisers. Affiliate marketing: Monetizing through affiliate commissions. Sponsorships: Collaborating with other companies to promote products or services. Donations: Receiving financial support from sponsors or donors. Data monetization: Selling user data (though this approach often raises privacy concerns). Most free apps combine several of these strategies to maximize revenue. How do free apps make money: The top free app monetization strategies Let’s now explore how free apps make money through these monetization strategies in more detail. In-app purchases This is when users download a basic free app but can buy extra features, content, or virtual goods from within the app. While the core app is free, users can enhance their experience with these additional purchases. In-app purchases can range from anything from new levels or extra lives in a game to premium filters in a photo app. As such, you’ve two types of in-app purchases that offer different monetization opportunities: Consumables: These are items that can be used up within the app, such as in-game currency, extra lives, or boosts. The strength of this model lies in its ability to drive repeat purchases, as users need to buy these items frequently. The downside, though, is that this can lead to user fatigue if the purchases feel like a constant requirement to enjoy the app. Non-consumables: These items are permanent upgrades, such as unlocking a new feature, level, or exclusive content. Non-consumables provide a more stable revenue stream because users only need to purchase them once. However, the monetization potential is lower compared to consumables, as the revenue from these items is typically a one-time payment per user. Creating a seamless value ladder is the best way to maximize in-app purchases in free apps. Here, you start by offering free features that genuinely solve a problem or deliver value and then introduce premium options as natural extensions to enhance the experience. Imagine a lifestyle app designed for fitness and wellness enthusiasts. Here’s how your value ladder could work here: Free tier (entry-level value): You start by offering an app that offers basic features like workout tracking, a few guided meditation sessions, and a water intake tracker. These tools are enough to help your users build healthy habits... --- In the 18th issue our expert shares tips on how to use paywall length, multiple plans, trial toggles, and other features to boost your paywall. We know it’s been a while, but Paywall Newsletter is finally back! Welcome the 18th issue with tips on how to use paywall length, multiple plans, trial toggles, and other features to boost your paywall. Paywall analysis provided by: Nathan Hudson, a 2x formerHead of Growth & CEO at Perceptycs We handpicked 5 paywalls from different categories with MRR between $100k - $2M. Nathan outlines their strengths and suggests areas for improvement. 1. When length matters What’s good The paywall highlights the wealth of available content. It adeptly addresses the questions users are likely pondering. It’s very similar to a strong web landing page. Potential for testing Try shortening the paywall to focus on user-selected onboarding use cases. Customize content and headlines to align with specific user needs for a clearer value proposition. 2. Drawing users to the annual plan What’s good This hard paywall directs users to the annual plan well. They have to scroll to see the monthly plan, where it’s obvious that the annual plan is over $7 per month cheaper. The ‘Try free and subscribe’ button on the annual plan stands out in purple compared to the unselected 'Select this plan' button. The listicle view on the annual plan emphasizes the longer trial and total yearly savings. Potential for testing It’s worth trying to highlight a core benefit in the headline instead of ‘Choose your plan’. Maybe using ‘Unlimited access to 1000s of video lessons’ from the listicle as the headline. 3. Can’t get enough of social proof What’s good This paywall offers 3 subscription variants, each with 2 options, and leverages social proof well with 9 points of social proof in total. It’s clear how much a user can save with the annual plan, both in monetary amount and percentage. Potential for testing It’s good to test moving the headline ‘strengthen your friendship through training’ higher up to reinforce the value proposition for those who don’t scroll. The number of plans and subscription types can overwhelm users. But it seems to be effective for this app. 4. Trial toggle at its best What’s good iScanner's paywall presents two subscription variants based on GB number, each with 2 options. It features an animated slider with premium features. Few apps use the 'Enable Free Trial' toggle, but it can decrease the payback period effectively. Potential for testing Making the feature carousel more obvious and improving contrast in the paywall design for better readability and copy legibility could be beneficial. 5. Wise choice of the exit copy What’s good This paywall demonstrates how concise feature comparison paywalls can be leveraged for functional apps. It effectively highlights additional security features available with the paid plan compared to the free plan. The exit copy 'Stay Unprotected' is compelling and creates internal friction in users' minds, which could be advantageous. Potential for testing The CTA ‘Turn on Now’ is unique but a little unclear. Experimenting with alternatives like 'Protect your passwords' could improve clarity. --- Apple Search Ads kendine özgü yanları, avantajlı ve dezavantajlı yönleriyle diğer reklam platformlarından farklı özelliklere sahip bir reklam platformudur. Apple geçtiğimiz ay Search Ads’in Türkiye ve 20 diğer ülkede daha yayına gireceğini duyurdu. Peki Search Ads’in Türkiye’de ve diğer ülkelerde yayına girecek olması ne gibi yenilikleri beraberinde getirecek? Bu güzel gelişmeyi duyar duymaz OtherWayAround ekibinden Co-founder & CEO Kevser İmiroğulları ile birlikte Search Ads ile ilgili başlangıçtan ileri seviyeye kadar bilmeniz gereken tüm detayları incelediğimiz bir webinar düzenledik. Webinarın tüm kaydını linke tıklayarak izleyebilir ve aşağıda konuşulan konu başlıklarınının tüm detaylarını öğrenebilirsiniz. Apple Search Ads diğer platformlardan farklı olarak kampanyaların öğrenme maliyeti gerektirmemesi, görece düşük maliyetli bütçelerle bile başlangıç eşiği yüksek olmayan bir platform özelliği sunuyor. Aynı zamanda Meta, Google Ads gibi diğer platformların sunmadığı ölçüde kampanya analitiği imkanı da sunuyor. Apple’a göre Search Ads reklamları %60’a varan daha yüksek dönüşüm oranı ve 2 kat daha fazla impression sunuyor. Search Ads kampanyalarına genel bir bakış Apple Search Ads kampanyaları oluşturmak istediğinizde karşınıza 2 seçenek çıkıyor: Basic ve Advanced.   İlk seçenek basic kampanyalarda ülke, kampanya bütçesi ve install başına maliyet hesabı gibi temel metrikleri girerek kampanyanızı kolay bir şekilde başlatabiliyorsunuz. Fakat bu kolaylık bazı sınırlılıkları beraberinde getiriyor. Örneğin keyword düzeyinde bir filtreleme yapıp analiz yapamıyorsunuz. Açıkçası bu kampanya türünü önermiyoruz. İkinci seçenek ise Advanced kampanya türü. Advanced kampanyalarda ise tüm kontrol sizde oluyor, keyword düzeyinde metrikleri analiz edip kampanyanızı optimize etme şansına sahip oluyorsunuz. Burada da semantik kampanya dediğimiz yapı çok önemli. Kısaca özetlemek gerekirse keywordlerinizin semantik yapısına göre kampanyanızı gruplayarak oluşturduğunuz bir yapı. En çok karşılaştığımız hata markaların ve hatta büyük ekiplerin bile bu yapının doğru kurgulanmaması oluyor. Search Ads diğer platformlara göre daha mı avantajlı? Search Ads’in bana göre diğer platformlardan ayrılan en büyük avantajı, diğer platformlarda herhangi bir içeriği tüketen kullanıcıyı ikna etmek yerine bir uygulamaya direkt ihtiyacı olan ve arama yapan kullanıcının karşısına çıkıyorsunuz. O yüzden de Search Ads reklamlarının dönüşüm oranı diğer platformlara göre çok daha yüksek. Tabii ki olumlu yönlerinin yanı sıra sınırlılıkları da yok değil. Ne yazık ki Search Ads’te demand generation dediğimiz ekstra bir talep yaratma imkanımız yok. Yani uygulamanız çok yüksek arama hacmine sahip keywordleri direkt hedefliyorsa Search Ads sizin için harika bir platform. Ya da uygulamanız ile daha yenilikçi ve mağazada bulunmayan örnekler için bir çözüm getiriyorsanız veya kullanıcıların yaptığı aramaların hacmi düşükse yapabileceğiniz ne yazık ki bir şey yok. Müşterilerden şu sorunu çok duyuyoruz, “Apple Search Ads çok iyi dönüşüm getiriyor, bütçemizi artırıp daha çok harcamak istiyoruz ama harcayamıyoruz”. Bunun ne yazık ki bir çözümü yok çünkü yeni bir talep yaratma şansınız yok. Search Ads’te en çok yaşanan sorunlar ve çözüm stratejileri nelerdir? Bizim en çok karşılaştığımız hatalardan birisi bir kampanya oluşturulduğunda çok az keyword girerek kampanyayı başlatmak. Search Ads’ten bu şekilde performans almanız çok zor. Örneğin biz müşterilerimizle çalışırken App Store Optimization ve Search Ads kampanya optimizasyonlarını birlikte yapıyoruz ve ilk önce keyword araştırması ile işe başlıyoruz. Çok basit bir app olmayan bir senaryoda keyword araştırmanız sonucunda en azından 200 keyworde sahip olmanız gerekiyor. Ve bu keyword havuzunu Search Ads kampanyalarınızda kullanmanız gerekiyor. Genellikle yeni başlayanlar 10 ya da 20 adet arama hacmi en yüksek kelimeyi girerek kampanya başlatıyorlar. Ve haliyle CPI değerleri çok yüksek oluyor ve gösterim almakta zorlanıyorlar. Yine bu hacmi ve rekabeti yüksek keywordler için teklif miktarını yükseltmeden gösterim almakta zorlanan müşterilerle karşılaşıyoruz. İşte keyword araştırması bu noktada işinizi çok kolaylaştıracak. Long tail ve rekabet oranı daha düşük keywordleri tespit ederek CPI oranınızı düşürüp gösteriminizi de arttırabileceksiniz. Kampanyalarınızda bu metriklere mutlaka dikkat edin Öncelikle büyük bir kullanıcı kitlesine sahip bir uygulamaysanız new downloads ve redownloads kırılımını kesinlikle takip etmenizi öneririm. Bunun dışında kampanyanızın gidişatı için TTR(Tap-through rate) ve CR(Conversion Rate) değerlerini takip etmeniz çok önemli. TTR ve CR değerleri sizin uygulamanız için çok önemli, çünkü bu metrikler uygulama sayfanızın reklam verdiğiniz keywordlerle olan alaka düzeyini gösteriyor. Özellikle %6'nın altında bir oran varsa bu alanlarda iyileştirme yapmanız gerekiyor. Bunun dışında MMP kullandığınız senaryolarda sizin uygulama türünüzle alakalı olarak takip edebileceğiniz trial başlatma oranı veya uygulamanızın içinde bir eventi başlatma oranı gibi önemli eventleri de takip etmeniz büyük önem taşıyor. Custom Product Page kullanarak reklam performansınızı arttırın Custom Product Page, uygulamanızın farklı özelliklerini ya da içeriğini öne çıkaran ekran görüntüleriyle kendine ait bağlantısı olan ürün sayfaları oluşturma imkanı sağlıyor. Bu sayfalar ile hedeflediğiniz kitlelere uygulamanızı daha iyi anlatıp daha doğru kitlelere tutarlı bir şekilde ulaşma şansınızı arttırıyor. Strava gibi birçok özelliği içinde barındıran bir uygulama düşünelim. Örneğin “hiking” keywordü ile arama yapan bir kullanıcılara tüm özellikleri anlatan bir screenshot seti ile gitmek yerine “hiking” keywordünü öne çıkaran ve bu özellikleri vurgulayan bir screenshot seti ile çıkmanız reklamınızdan çok daha iyi performans almanızı sağlayacaktır. Subscription tabanlı uygulamalar için en iyi stratejiler nelerdir? Subscription tabanlı uygulamalar için öncelikle başta belirttiğimiz gibi keyword havuzunun çok iyi hazırlanmış olması ve bu keyword setlerine göre Custom Product Page’ler oluşturulması gerekiyor. Bunun yanı sıra yine uygulamanızdaki spesifik özelliklere göre de deep linkler oluşturup kullanıcıları direkt alakalı bölümlere yönlendirmek gerekiyor. Bu ayarlamalar sonrasında ise yine Search Ads kullanıcılarınızın geldikleri keywordlere özel farklı paywallar test etmeniz gerekiyor. Her kullanıcıya aynı paywallu gösterme hatasına kesinlikle düşmeyin. Yine aynı örnek üzerinden gidersek “hiking” keywordünden gelen bir kullanıcıya bu özelliklerin çok iyi ifade edildiği ve farklı planların test edildiği bir paywall göstermek dönüşümlerinizi arttıracaktır. İşte bu noktada Adapty gibi bir abonelik yönetim platformu işlerinizi çok kolaylaştıracaktır. Reklam platformu, ad group ve keyword bazlı segmentasyon imkanı sayesinde Search Ads kullanıcılarınıza özel paywallar gösterip farklı fiyat testleri yaparak LTV'nizi kolayca arttırabilirsiniz. Adapty ile MMP’ye ihtiyaç duymadan Apple Search Ads kampanyalarınızı analiz edin Apple Search Ads’in bir diğer avantajı da herhangi bir MMP aracına ihtiyaç duymadan direkt Adapty ile entegre ederek keyword seviyesinde tüm analizleri yapma imkanı veriyor. Aynı zamanda Adapty’nin segmentasyon ve A/B testi özellikleri ile kullanıcılarınıza özel paywallar gösterip farklı fiyat testlerini kolayca yapabileceksiniz. Aynı zamanda Adapty’nin farklı analitik araçları ile keyword ve ad group bazında LTV’nizi hesaplayın, retention, trial start rate, refundlar ve cancellation rate’e kadar onlarca metriği kolay bir şekilde analiz edebilirsiniz. Adapty’nin Apple Search Ads kampanyalarınızdan daha fazla kara geçmenize ve uygulamanızı büyütmenize nasıl yardımcı olacağını... --- Taking the funding route isn’t for all mobile apps, but if you’re approaching your mobile app more like a “mobile app startup,” then you’ll have to learn how to pitch your app idea to investors.   That’s because funding can play a big role in how you start, grow, and scale your app—after all, you’re not just building an app; you’re building a business.   But to connect with investors, your pitch needs to do more than present your vision; it must show how your app can thrive in the market, scale, and deliver solid returns. You’re looking at things like market fit, unit economics, revenue models, and more. So let’s see how you can craft a compelling investor pitch that combines your app’s unique value with its potential for growth, so investors get on board. Here goes. Preparing for your pitch Marketing research for a mobile app investment pitch deck will vary depending on the stage of funding you're targeting—seed, Series A, or later rounds. Each stage requires a different focus to meet investor expectations and demonstrate how the app aligns with their goals for growth, scalability, and return on investment. So let’s see how preparing for your pitch differs for each funding stage. 1. Pre-seed and seed funding: Validating your mobile app idea At the seed stage, your goal is to show your investors that there’s a genuine market need for your app and that your app addresses that need effectively. So your focus areas are market need and potential here. Here are some pointers to keep in mind for researching for your seed funding pitch: Target market: Define your target audience clearly. Here’s our complete guide to TAM (Total Addressable Market), SAM (Serviceable Addressable Market), and SOM (Serviceable Obtainable Market) analyses to help you with this.   Define the problem: Provide insights into the problem you're solving and why your app is the right solution. Competitor analysis: Identify existing competitors and show how your mobile app is different or better. Investors will want to know if the market is already saturated or if your app can carve out a niche. Customer validation: Include data or surveys that show early interest from potential customers, indicating demand for your app. Product-market fit: Demonstrate early traction, such as beta test results or user feedback, to show that your app resonates with your intended users. Let’s look at Blush.   Although the invite-only dating app Blush launched in a highly saturated market, it successfully spotlighted a common problem with the mainstream dating apps—that they stop at the swipe.   Blush wanted to “bring back the nostalgia where you spent time courting and getting to know someone. ” Addressing this gap by adding offline junctions to the online dating journey, Blush demonstrated its potential to disrupt the dating app space and bring lasting value to users, ultimately winning over investors. Blush secured 7M in seed funding by convincing investors of the unique niche it could carve out for itself. This underlines how, with early funding, it's important to prove that a problem exists which your app aims to solve. 2. Series A: Growing your app development team and improving it For a series A funding round, your potential investors want to see that your app has passed the early validation phase and that you're ready to scale. They need to understand how the product is improving and how it can reach a larger audience. Your focus areas for this round are scalability, monetization, and early traction. Keep these considerations in mind when researching for your Series A funding pitch: Customer acquisition: Show how you’re acquiring users (e. g. , organic growth, paid marketing, partnerships). Include metrics like customer acquisition cost (CAC), lifetime value (LTV), and growth rate. Market size and segmentation: Provide a deeper analysis of your total addressable market (TAM), serviceable available market (SAM), and serviceable obtainable market (SOM), demonstrating how you plan to capture more of the market. Monetization strategy: Explain how you plan to monetize your app, whether through subscriptions, in-app purchases, or ads. Include data on early revenue, conversion rates, and other monetization metrics. If you use a revenue management solution like Adapty, this part becomes fairly easy. Marketing channels and strategy: Outline the marketing channels you're focusing on (social media, influencer marketing, paid ads, content marketing, etc. ) and why they are effective for your target audience. Product improvements: Detail improvements you’ve made based on user feedback and your plan for ongoing product enhancements. 3. Later rounds (Series B and beyond): Expanding marketing efforts For Series B funding rounds and beyond, investors are looking at some solid evidence of market fit, consistent growth, and your ability to expand and scale sustainably in the long term.   So your focus areas are market expansion and dominance here. At this stage, your marketing research revolves around: Market penetration: Provide data on your current market position and outline your strategy for expanding into new regions, demographics, or verticals. Advanced analytics: Investors will expect more sophisticated data on user behavior, marketing effectiveness, and return on investment (ROI) across different channels. This includes churn rate, user retention, and user engagement metrics. Brand positioning and awareness: Focus on your brand’s market presence and how it’s evolving. Include data on brand recognition, media coverage, social proof, and partnerships. Customer acquisition and growth optimization: Discuss how you plan to optimize customer acquisition efforts—whether through better targeting, referral programs, or data-driven marketing initiatives. Long-term marketing strategy: Outline your long-term marketing strategy, including potential future partnerships, influencer collaborations, and strategies for user retention as your app scales. Global expansion: If applicable, provide insights into international markets and how you plan to tailor your marketing efforts to different regions and cultures. Once you’ve researched for your pitch, it’s time to translate your findings into your actual pitch copy. Crafting your pitch The research at each stage of funding will directly inform how you craft your pitch. Here’s how the data from each research stage translates into specific sections... --- Getting traction with your app isn’t easy, especially when you’re starting with no downloads or paying customers. We sat down with Steve Young, founder of App Masters, to dive into practical steps for indie developers aiming to grow their app into a sustainable, revenue-generating business. Getting traction with your app isn’t easy, especially when you’re starting with no downloads or paying customers. We sat down with Steve Young, founder of App Masters, to dive into practical steps for indie developers aiming to grow their app into a sustainable, revenue-generating business. https://www. youtube. com/watch? v=N3ryapNHVaU The App Hack That Brought 100k Downloads & $10k in Revenue The hardest part of starting out The biggest challenge is getting from zero downloads and subscribers to your first dollar. It’s easy to feel overwhelmed when you see competitors with big user bases and slick features.   Focus on building awareness. Don’t get lost in feature-building – getting downloads first is essential. 3 steps to attracting early subscribers If you’re just getting started, Steve’s got a simple action plan: Build the basics first. Don’t try to match every feature you see in big apps. Start lean. Focus on one valuable feature and get it in front of users. Make that first sale count. A single paying subscriber validates your app and motivates you to keep going. This initial win is crucial. Test small ad budgets Start with Apple Search Ads or Google Ads, but keep your budget low ($1,000 or less). Find keywords that drive conversions and double down on what works. Pro tip: Check out App Masters on YouTube for Steve’s expert advice on growing a successful app from scratch. Make your onboarding count Your onboarding experience is your first chance to show users why they need your app. Here’s how Steve recommends optimizing it: Simple, guided start: Focus on the core value of your app and avoid overloading users with details. Get them to the “aha” moment quickly. Pick the right paywall: • Hard paywall: Requires users to subscribe before using the app, effective for specific tools (like a photo editor or VPN). • Soft paywall: Let users explore first - this works well for apps that need to show value before converting users. If you’re looking to design a paywall that balances seamless monetization with App Store approval, check out this guide on app paywall design. It covers best practices for creating a paywall that meets both user expectations and App Store guidelines. Paywall mistakes to avoid The paywall can make or break your success. Here’s what to watch out for: No call-to-action button Users need guidance. A clear, easy-to-see button like “Get Started” or “Continue” makes a big difference. Charging too little Indie developers often worry about pricing, but don’t undercharge. A higher price can make your app look more valuable. If you’re getting positive feedback, consider testing a higher price point. If you’re unsure where to start or need benchmarks to guide you, check out this report on the state of in-app subscriptions. It’s packed with insights that can help you set competitive pricing. Track the metrics that matter For subscription apps, these are the metrics to focus on: Cost per Trial  Look for users willing to test the app. Free trials drive higher conversions, making this a key metric. LTV Different markets respond to different prices. Test lower prices for markets outside the U. S. and measure the effect on renewals and overall LTV. If you’re looking for a powerful way to track these metrics and more, Adapty’s performance analytics provides detailed insights to help you optimize your app’s revenue strategy. Q&A with Steve P. Young What’s your largest subscription check that you ever paid? Calm’s lifetime subscription! They got me with a clever deal – 50% off the lifetime plan after I’d already paid for a yearly subscription. It was one of those “last chance! ” sales. So I ended up paying around $210 in total, and they reeled me in. How many subscriptions do you have going right now? Probably about 8! And that’s not even counting the streaming services. Apps have definitely got me hooked. What’s the fastest-growing app you’ve ever worked on? I’d say the one we took to six figures ARR in just a few months. We used the “hard paywall” strategy, which really paid off. It was doing around $1,000 a month, and after some tweaks, we had it hitting $10,000. Just goes to show – a little optimization can go a long way! Any advice for indie developers trying to get to six figures? Get around 100 downloads a day, and you’re on your way! With consistent downloads and smart optimizations, you can hit that six-figure mark. It’s all about testing, tweaking, and sticking with what works. --- With the holiday season just around the corner, we’re bringing you exciting updates to make the most of this high-traffic season! From detailed analytics for promo offers to dark mode paywalls, these new features are ready to help your app thrive and keep users engaged. Let’s dive into what’s new and how these updates can work for you. With the holiday season just around the corner, we’re bringing you exciting updates to make the most of this high-traffic season! From detailed analytics for promo offers to dark mode paywalls, these new features are ready to help your app thrive and keep users engaged. Let’s dive into what’s new and how these updates can work for you. 1. Track revenue from promo offers in Adapty Analytics The holidays are prime time for special offers! Now, you can easily see how each promo impacts revenue and user engagement. With our new analytics filters, tracking the success of holiday deals has never been simpler. Here’s what’s possible: See revenue by offer type. View results from introductory offers, win-back deals, and promo codes.   Understand your audience. Discover which groups of users respond best to each type of offer and fine-tune your strategy. New filter options: Offer Type – introductory, promotional, win-back, or promo code. Offer Discount Type – free trial, pay-as-you-go, pay upfront. Offer ID – unique IDs from stores or custom promo codes. Note: Google’s restrictions currently prevent tracking promo codes on Android. 2. React Native support for a new Paywall Builder Our new Paywall Builder is live for React Native users, with Flutter support expected by November 15th and Unity support in early December. These expanded options mean you can bring holiday magic to your app across multiple platforms! 3. New Paywall Builder features Our latest updates make paywall customization even better, helping you create visually engaging experiences. Dark mode for paywalls  Give users a sleek, dark mode option – perfect for a modern, immersive look. Switch easily between normal and dark styles without needing separate designs. Read more. Currently available for iOS SDK version 3. 1. 0 and higher, with other platforms coming soon. Video in Paywalls Create a dynamic holiday experience by adding videos to your paywalls. Read more details in our documentation. Available for iOS – Android and React Native support will follow soon. Holiday templates Brighten up your paywalls with our ready-to-use holiday templates. They’re designed to make setup fast, so you can focus on driving revenue during the busiest season. 4. New prediction model for smarter planning We’ve upgraded our prediction model to make it more accurate, faster, and easier to use. Here’s how it helps you: You’ll get up to 50% more precision in the first month and 30% improved accuracy overall. You need just 100 subscriptions (down from 10,000) to get results within a week. You can get revenue predictions for up to 24 months! These predictions update instantly, so you’ll always have the latest insights at your fingertips. You can also export these results in CSV format for any timeframe you like – 6, 12, or 18 months. 5. Free LTV prediction model template  We just launched the LTV prediction model template! It can help you forecast your users’ potential lifetime value and find the perfect balance of price and duration for subscription options. Just plug in your data, and our model calculates revenue potential and pinpoints the best subscription options. Get the LTV prediction model With these updates, Adapty is here to make the holiday season your best yet! Try out the new features, see what works for your app, and enjoy the benefits. Need help? Our support team is always here for you. --- Your App Store conversion rate is a powerful tool, providing insights into your listing’s effectiveness, your app’s alignment with user expectations, and the quality of your user acquisition.   These insights can guide all your optimization efforts—for example, A/B testing a listing with different copy or visuals for better conversion rates. But to draw these insights, you need some context. Comparing your conversion rate against others in your category can offer some valuable perspective here. So, let's do that today. But before we dive into the specific conversion rate metrics across different categories, let’s look at app store conversion rates from a broader lens. Specifically, let's try to understand what a good conversion rate is. Here goes. What’s a good App Store conversion rate? The US App Store saw an average conversion rate of 25% percent in the US over the first half of 2024, with the business apps category seeing one of the highest conversion rates at 66. 7% and the broad games category seeing the lowest conversion rates at 1. 2% (according to AppTweak data). Do you see how much conversion rates can vary across different categories?   In a phrase: It depends. We know this isn’t a helpful answer... but the truth is that the conversion rate varies greatly across different categories.   If you’ve a business app, you should have a fairly high conversion rate (most analyses peg the average conversion rate for business apps at over 65%! ). But if you’ve a gaming app, in contrast, you’d be typically looking at a conversion rate around 3. 5%.   That said, this too varies greatly based on your gaming app’s subcategory—for example, music gaming apps convert much higher than your general puzzle or card gaming apps. Said another way: Meaningful conversion rate analysis comes from benchmarking at the subcategory level. Only this allows you to get a more accurate picture of your current performance and set realistic goals. App Store conversion rates by category on the App Store Books Within the Books category on the App Store, you’ll typically find eBook readers, apps for audiobooks, and general “library-kind” apps that provide access to reading materials like novels, educational texts, and reference work.   The Books category consistently ranks among the highest when it comes to conversion rates on the App Store. In 2022, Statista reported an impressive 74. 2% conversion rate in this category for the US App Store.   However, more recent data from AppTweak for January to June 2024 reported a mere 7. 3% conversion. There seems to be some discrepancy here. Here are the top free apps in the Books category: Reference If you look at the apps available under the Reference category, you may find them to overlap with the Books category.   But the key difference is that the Apps category primarily focuses on eBooks, audiobooks, and reading materials, offering users access to literature and educational content.   In contrast, reference apps offer “reference”—for some quick information retrieval, like the Google Translate app. According to Statista, the US App Store reference apps had a conversion rate of 52. 6% in 2022, while AppTweak reported a significantly higher rate of 67. 2% for the first half of 2024.   If you review the paid apps in the niche, you’ll see they offer material on some very niche subjects: Business The business apps category includes all kinds of apps you could use for all kinds of business operations—from project management, task management, communications, collaborations, invoicing, and accounting to documentation and everything in between. Business apps rank among the top converters on the App Store. According to Statista, business apps had a 39. 4% conversion rate in the US App Store in 2022, while AppTweak reported a significantly higher 66. 7% for the first half of 2024. This stark difference may likely be due to the different research methodologies. Anyway, if you study the top free apps in the category, you'll see that enterprise apps like Microsoft Teams and ADP lead the space. In contrast, the top paid apps are primarily private offerings that provide specialized solutions for common business themes, such as productivity, skill development, or business cards: Education Education apps on the App Store are solutions for learning anything and everything from languages to astronomy. You also have test preparation apps here. Plus, educational game apps.   Education apps, too, enjoy decent conversion rates—16. 8% from AppTweak’s US App Store research for the first half of 2024. (For some more context, education apps converted at 30. 4% in Google Play in the same study. ) If you analyze the top paid apps in the education category, you’ll see that they not only target a specific subject but also offer a new way to learn. Take Wagotabi, the 7th most popular education paid app on the App Store, for example. Wagotabi teaches you Japanese, but in a very different way than Duolingo does: Finance When it comes to the Finance category, you’re looking at apps for everything from mobile banking apps and personal finance managers to cashflow solutions. (It’s worth noting that cash flow apps often overlap with accounting tools, which can sometimes fall under the Business apps category—so some overlap is expected. )  According to AppTweak, the Finance category had a 32. 8% conversion rate in the US App Store during the first half of 2024. For Google Play, on the other hand, this was 19. 7%.   App categorization differences are worth noting here—some finance apps may fall under the Business category on the Play Store but appear in the Finance category on the App Store. Keep this in mind when comparing conversion rates across platforms. Food & Drink According to Statista, the Food & Drink category had a 31. 2% conversion rate in the US App Store in 2022, while more recent data from AppTweak shows a lower conversion rate of 12. 1% from January to June 2024. For additional context, on Google Play, this category’s conversion rate came out... --- Did you know that both the App Store and Google Play offer several ways to launch new apps or app updates “progressively? ” You got it: We’re talking about app store soft launches. Soft launches bring progressive delivery to mobile apps. With soft launches, instead of launching your mobile app or its new features to everyone at once, you can release them in phases.   Soft launches let you loop back any initial feedback on your app and its new features to your development, performance, and QA teams, ensuring that the full-scale release is received well. So let's see how both the app stores support soft launches, what all's possible with each, and how you can make the most of them!   Here goes. What is a soft launch? Soft launch vs. hard launch explained The best way to understand a soft launch is to contrast it with a hard launch. So, let’s say you’ve just built a new iOS app. With a hard launch, you’d simply release your app in the App Store, making it available to everyone at once. With a soft launch, on the other hand, you’d introduce your app to a limited audience, starting with users from, say, Australia.   Doing so allows you to gather real-world insights to refine your app and ensure it aligns with your users’ needs and preferences before expanding to a larger market, such as the US.   Taking the soft launch route can significantly improve your chances of a successful full-scale release.   Note that this is just one way to use a soft launch. You can use soft launches in many strategic ways, including testing, market research, and more. Three ways app developers use soft launches Here are three ways app developers use soft launches to test, optimize, and perfect their apps before going big. Testing No matter how thorough your testing is, issues can still slip through to production—your live app. This explains why even well-established apps receive negative reviews after an update, with users pointing out how the new version broke their app experience. Here’s where soft launches provide you with a sort of safety net. With soft launches: You might start by inviting your top 100 power users to try your new features first. These are your loyal users who love your app and want to be the first to try your new stuff and give feedback. It’s a good idea to build an email list with them in advance, by the way. Next, you could release your new features to your beta users, who signed up for your app’s experimental features, allowing them to test all the new stuff.   You can also invite third-party reviewers.   And finally, when everything looks good, you can release your newest features to all your users. Conducting market research Soft launches can help with market research too. Here are a few ways how. Get real-world user behavior analytics If your target market is the US, you can start by doing a soft launch in smaller markets like Canada or New Zealand first. Many app developers underline how these countries serve as ideal soft launchpads before the big US debut. These markets are similar to the US in many ways but have a smaller user base, making them a less risky environment for testing apps. Releasing your app to them can help you gather some real-world behavior analytics. Learn (or confirm) who your real users are When you plan an app, you’ve a fair idea of your target, serviceable, and obtainable markets. However, it’s only when you launch your app that you’ll truly know if you’ve indeed connected with your intended audience. Soft launches help with this assessment. Gather performance metrics Tracking key performance indicators (KPIs) such as user retention, engagement rates, and conversion rates during soft launches helps gauge market readiness and forecast potential success upon full release. Evaluating marketing effectiveness Soft launches allow developers to test different marketing messages, channels, and promotional strategies on a smaller scale. This means when you go after your key market, you know what marketing will work for you. With soft launches, you can even test your app listings to see which ones convert the best. In addition to these, soft launches also help you optimize your resources. For example, one way to approach soft launches is to launch directly in your key market. This allows you to focus all your marketing efforts on building a solid user base where it matters most, like the US. By concentrating your resources on growing your app in your primary market first, you can then expand into other countries as your revenue grows, ensuring a more strategic and efficient rollout. So, how do you get started with soft launches on the App Store and Google Play? Well, both the app stores support soft launches, it’s just that their soft launch capabilities are available under an umbrella of features. Let’s look at how you can go about with soft launches on both the stores, starting with the App Store. How to do a soft launch on the App Store Here’s a breakdown of how you can create and manage soft launches on the App Store. TestFlight TestFlight is the App Store's soft launch solution. With TestFlight, you can invite up to 10,000 users to try your app before it launches on the App Store. Here’s how TestFlight works: You upload a beta build of your app to App Store Connect. (You can upload multiple builds too. ) Depending on your soft launch strategy, you can invite up to 100 users from your team as beta testers. You can also assign different builds to different user groups so each group can focus on a particular aspect of the app for testing purposes. Next, Apple provides you with a public link to your downloadable/installable beta build that you can have up to 10,000 users use to test your app. Alternatively, if you’ve built an email base of testers,... --- September flew by, didn’t it? This month, it’s all about updates that make your work smoother. From better ways to bring back lost users to gaining more control over how installs are tracked, these improvements are here to make managing your app with Adapty easier. Let’s jump into what’s new and why it matters for you. New Paywall Builder on Android Big news – the paywall builder is now live for Android! This no-code tool lets you create paywalls more easily and intuitively. You don’t need any technical or design experience – just drag and drop to build paywalls that fit your needs. Expect React Native support by mid-October and Flutter support by the end of the month.   Win-back offers support Apple’s new win-back offers, now available with iOS 18, are a great way to re-engage users who’ve drifted away. You can set these up in App Store Connect, and they’ll be shown in-app or directly in the App Store – giving you more chances to reconnect with users who’ve stopped using your app. Adapty X account Getting a lost user back is often easier (and way cheaper) than finding a brand-new one. They already know your app, and with the right offer, they might be ready to give it another shot. The Adapty SDK supports these offers, ensuring they are accurately processed in analytics and providing users with the correct access. Currently, you can run win-back offers directly from the App Store, but adding them to custom paywalls in Adapty is still a work in progress. We’re working on this feature to let you personalize how and where these offers appear. You can already start testing win-back offers now while we finalize these additional options to make the experience even better. Counting Installs: Device ID mode Previously, every new profile was counted as an install. This meant that events like logouts or platform limitations sometimes caused duplicate profiles, inflating the actual number of installs. Now, there’s a new default mode: “new device_ids”: A device ID is created only once per app install. It doesn’t change with logouts, giving you more accurate install data, similar to what you see in other analytics tools. Another option available is “new customer_user_ids”: This mode counts only identified users and treats installs based on when those users were first created. It’s helpful for apps with mandatory sign-ups or family-shared accounts where you want to track installs tied to specific users. These changes improve install charts, funnels, cohort analysis, and conversions, giving you accurate data for better decision-making. Paywall Builder enhancements Custom action buttons with button placements: You have more flexibility with button placements: Move buttons where they work best. Place default buttons like close, restore, or login on your paywall wherever it makes the most sense for your users. Build custom flows. Create paywall flows that guide users through multiple screens, improving engagement and increasing conversions. Hide paywall elements You can hide or show elements within your paywalls without uploading new versions each time. This change makes A/B testing easier and quickly identifies what works best for conversions, all without the need to upload new versions each time. New holiday paywall templates We’ve added new holiday-themed paywall templates to make your life easier during the busiest season. Right now, we’ve prepared templates for Halloween, but stay tuned – more are on the way for upcoming holidays and events. FlutterFlow integration With the new Adapty plugin for FlutterFlow, create paywalls, handle purchases, and track analytics – all without writing any code. It’s fully integrated, easy to update, and you can get started with three months free. That’s it for September! We’re focused on making retention easier, installs more accurate, and paywall customization more powerful. If you want to dive deeper into any of these updates or need help getting started, just reach out – we’re always here to support you. --- What if you could boost your app’s conversions across all your segments, channels, and campaigns? With custom product pages from the App Store, you can do just that! With custom product pages, the App Store lets you have one-on-one conversations with all your key user segments. Custom product pages also help you leverage channels like paid advertising better by helping you match your app copy with the ads users see. They even help you get more conversions from your different growth campaigns—by helping you match your listing to the marketing message that users saw. So let’s see what custom product pages are, how they work, and how you can add them to your app marketing mix. We’ll also see how custom product pages differ from product page optimizations— another App Store feature they’re commonly confused with.   Here goes. What are custom product pages? With custom product pages, the App Store lets you publish “additional versions” of your App Store product page (which is your “main” app listing). So you have a main product page and can create about 35 additional versions. Below is an example of an app using three different versions for its product page. Here, you have the app talking to three kinds of users that may be interested in it. The first version speaks to hikers. The second one caters to biking enthusiasts, while the third will excite climbers: Use cases for App Store’s custom product pages Improving conversions at the segment level The most important use case for App Store’s custom product pages is boosting conversions across your key user segments. That's because regardless of the type of app you offer, chances are you're marketing to several distinct user segments. Let’s say you have a productivity app. And within your broader “users looking to become more productive” audience, you have several key segments. For this example, let's focus on three:  Professionals looking to strike a better work-life balance Homemakers looking to win back some time of their days Freelancers wanting to manage their work more efficiently using your app All these segments have different productivity goals, and so they may respond to personalized messaging better. Professionals, for instance, will appreciate how the app helps them reclaim their day. They’ll respond well to features like separate work and personal spaces, integrations with their calendars to clearly distinguish between professional tasks and personal time, and stress-management tools like meditation reminders. Features like reusable housekeeping checklists, meal-planning tools, and family task delegation will be invaluable for homemakers. And freelancers will connect with features like time tracking, reusable project templates, task management, etc.   Because these segments have different motivations, they’ll respond to your app better if: You write personalized copy that resonates with their unique needs and goals Highlight app functionalities and features that directly speak to them Showcase personalized app previews that show how the app can add value to their lives. And so on. With App Store’s custom product pages, you get to do precisely this—create personalized landing pages for all your key user segments. On a side note:  While we’re at it, let’s also keep in mind that you want to set up custom product pages only for your most important user segments. Just because you can set up 35 custom product pages doesn’t mean you have to. Optimizing channel performance  Another use case for custom product pages is improving channel performance.   For example, if you’re using influencer marketing to grow your app, you might want to create dedicated custom product pages for it. For example, if you’re engaging influencers in all your key segments, you might want to give your influencers unique URLs to your personalized app listing pages for each segment. Any referral traffic they send will see exactly what the influencers promised. For instance, freelancers will see the app’s utility for their freelance businesses. Homemakers will see how the app helps them run their home ops productively. And professionals striving for a better work-life balance will see how it helps them reclaim their time. With custom product pages, you get to shift from generalized marketing to personalized marketing across all your channels. You get the drift. Let’s also talk about paid campaigns here.   The App Store lets you run paid ads for your custom product pages. This means your custom product pages show as ad results when your potential users perform relevant in-store searches.   Naturally, when you match your ad to your product copy, your conversions improve. Marketers have used this forever—matching ad copies to landing pages.   Your ad partners, too, might support ads to custom product pages—but you'll need to confirm this. Improving ROI from campaigns Finally, you can use custom product pages to improve your ROI from your different campaigns.   For example, if you’re running a holiday-themed marketing campaign, which most apps do during this part of the year, you can create a custom product page that reflects the theme—such as featuring festive graphics and special holiday content. By matching the content of your custom product page to the theme of your campaign, you create a seamless experience for users who land on it from your holiday ads or promotions. This ensures users see exactly what they expect based on the marketing message they clicked, leading to higher conversion rates. Once your campaign ends, you can simply disable your custom product page, and any users clicking links to it will land on your default app listing. In addition to custom product pages, especially for campaigns like holiday marketing, you can also customize your main product listing because that’s where the bulk of your traffic will land anyway.   In line with this, if you have an app that uses seasonal content, you can use custom product pages to host your seasonal content. With such recurring themes, you can see the performance of your custom pages year on year and make adjustments as needed. Let's now see how you can add custom product pages to your... --- August may be the time for sun and relaxation, but that doesn’t mean we’ve stopped delivering! Let’s dive into the latest from Adapty, including our webinars, new features, and more. August may be the time for sun and relaxation, but that doesn’t mean we’ve stopped delivering! While our team enjoyed a bit of the vacation season, we still have some exciting updates and news to share with you. Let’s dive into the latest from Adapty, including our webinars, new features, and more. Funnels load speed improved Continuing our diligent work of improving the load speed of our analytics charts, this time we gave a boost to our Funnels dashboard, which now loads 20 times faster! Such an improvement now makes the work with segmenting and filtering much more efficient and convenient. Here are the results you are sure to appreciate: The median request duration changed from an average of 2. 5 seconds to about 100 milliseconds. The 80th percentile figure jumped from an average of 9 seconds to around 400 milliseconds. ASO and ASA: creating a perfect synergy In August, we hosted the webinar “ASO and ASA: How to create the perfect synergy” where our experts dove deep into optimizing the App Store visibility and maximizing ad performance. With a marvelous contribution from Kevser Imirogullari, the CEO of OtherWayAround, we covered key strategies to leverage both ASO and ASA to drive app growth. Make sure to catch the recording – just fill in the form on the webinar page here. Adapty Deep Dive webinar Another truly special webinar was led by our Head of Sales, Mike Gorokhov, where he provided an in-depth look at Adapty’s most popular features and use cases. Mike walked attendees through the ins and outs of how Adapty’s tools can help unlock app revenue potential. If you want to learn how to make a smooth migration, make informed decisions based on Adapty’s analytics, or create top-notch paywalls with no code – check out the recording here. How and when to go indie: Expert tips from Antoine van der Lee With indie app development being so popular in 2024, many developers working full-time jobs seek to find solace in going solo and reaching financial independence. But failing as an indie developer is an easy task if you’ve chosen the wrong time for the transition. That’s exactly what Antoine van der Lee, an experienced iOS indie developer and industry expert, warns about in the fresh article for Adapty’s blog. Antoine shares the most important aspects one needs to bear in mind when contemplating leaving their full-time developer job in exchange for the freedom of being your own boss. Check the article to find out when the time is right to go indie and how to make this transition the most effective and safe. Thanks for being with us, see you next month with new hot updates! --- Mobile app makers who use predictive analytics compare it to having "a crystal ball for future growth. " And rightly so. If analytics tells you what's happening in your mobile app business right now, predictive analytics shows you what's likely to happen in the future. And by offering insights into the future, predictive analytics empowers you to make more proactive decisions today. For example, if you've got a subscription app, and if predictive analytics signals a cash flow issue in the next six months, you can try to redistribute your current user base (by pushing a specific subscription plan). This way, you can better navigate or even avoid potential financial challenges before they arise. So, let's see how predictive analytics actually works and how it helps you make better decisions today by offering a sneak peek into your app growth's upcoming challenges and opportunities. What is predictive data analytics? Simply put, predictive data analytics uses historical data to predict the likelihood of future events. For mobile apps, this translates to: Using past user behavior data to predict future user behavior. Using past in-app sales data to predict future sales. Using past cash flow data to predict future cash flow. And so on. But how does predictive analytics actually do all this? Let’s understand how predictive analytics works before seeing how it applies to mobile apps. How predictive data analytics works Predictive analytics applies complex algorithms, machine learning, statistical modeling, AI, and more to your historical data and analyzes its patterns to generate predictions about future outcomes. The best way to understand how predictive analytics works is to see where it fits within the business intelligence spectrum. See the graphic below for reference: As you can see, on one end, you’re looking at what has happened in the past or is currently happening in your business. For instance, for your mobile app, this data is your past user, sales, or revenue data.   And, on the other end, you've got predictive analytics showing you what might happen in the future, essentially telling you what your user base, sales, and cash flow might look like in the future. (By the way, the part where you analyze what's happened so far is descriptive analytics. ) Also, once you know what's most likely to happen, you enter into prescriptive analytics, meaning that you start thinking about what you can or should do NOW based on things you foresee. Here's how this works: Let’s now see how all of this comes together for mobile apps. How does predictive analytics work for mobile apps Applying predictive analytics to user data Applying predictive analytics to your user data can help you identify your most profitable user segments. It can also help you spot the users who are likely to have the highest lifetime value (LTV). Predictive analytics can also pinpoint users who are at a high risk of churning. As you can imagine, these insights on your user segments can help you work on your retention strategies. For example, if you see that your weekly subscribers are the most valuable, you can plan feature releases using a weekly cadence. This way, your weekly subscribers will consistently experience the value your app provides... and stay. Applying predictive analytics to in-app sales data Applying predictive analytics to your in-app sales data allows you to forecast sales for all your in-app products. It also helps you identify the products that will be the most profitable in the long run. Additionally, predictive analytics can highlight products that may perform poorly, allowing you to address potential issues early. For example, when you learn how your products will likely do, you can hypothesize ways to maximize their sales. For example, for products that aren't doing well or won’t likely do as well as you would have liked, you can try A/B testing their pricing to see if it makes a difference. Applying predictive analytics to revenue data Applying predictive analytics to revenue data helps you predict your app's cash flow. If your revenue data foretells cash flow issues on the horizon and you know which products can bring the most revenue in the short term—both these insights can be drawn with predictive analytics—you can run targeted offers to boost their sales and generate some quick capital.   Likewise, you can plan for your app’s long-term financial health using predictive analytics and finetuning your current sales and marketing efforts.   Now, before we see how you can add predictive analytics to your mobile app, let’s quickly look at some models that power predictive analytics. Types of predictive analytics models There are many types of predictive analytics models. The one you choose for your forecasting depends on 1) the nature of the data you’re analyzing, 2) the kind of business problem you’re trying to solve, and 3) the type of insights you’re trying to draw. Let’s explore how some of the most popular predictive analytics models work. Time series models Time series models are designed to identify patterns like seasonality, trends, and cyclic behaviors in data collected at consistent time intervals. For example, if you have a subscription mobile app with revenue data collected weekly, biweekly, and monthly, you can use time series models to uncover all the patterns that exist in it to predict your future weekly, biweekly, or monthly revenue predictions. In this case, your subscription lenghts are the "time series. "  Because seasonality, trends, and cyclic behaviors are standard features in revenue data—especially for businesses using the subscription model—time series models are commonly used in revenue forecasting.   At Adapty, we use gradient boosting for our predictive analytics for subscription apps. Gradient boosting is a popular time series modeling technique.   While we’re talking about time series models, let’s discuss forecast models too. Forecast models are predictive models that can use various data types to forecast future values. Unlike the time series model (where the data is collected across consistent time intervals), the forecast model can offer predictions even when it’s fed data... --- Learn about when the time is right to go indie and how to make this transition the most effective and safe in this fresh guide by Antoine van der Lee. Antoine van der Lee is an iOS indie developer and industry expert, founder of SwiftLee, and creator of RocketSim. Having more than 15 years of experience in iOS development, he shares his wisdom on working with Swift and Xcode, approaches to coding, and many aspects of indie app development based on his course “From Side Project to Going Indie. ” Antoine made a stellar career as an indie developer after transitioning from a full-time job at WeTransfer and is ready to share the important aspects of such a journey with those who are only thinking of going solo. In 2024 indie app development is as popular as ever. The feeling of being your own boss, financial independence, and the satisfaction of the job done the way you want attract app developers of different levels and backgrounds to go solo. However, to fail as an indie developer is an easy task if you’ve chosen the wrong time for the transition. Let’s talk about when the time is right to go indie and how to make this transition the most effective and safe. I’ll touch on the peculiarities of being an indie app developer compared to hired labor based on my own experience, and, most importantly, highlight several vital aspects one should consider before going indie. 1. Make sure your background is enough The first thing that you should bear in mind when contemplating going indie is your professional background. The more experience you have, the easier it will be to work independently. It’s vital to understand the full cycle of app development, so working at an app development company as a software engineer or developer is the best way to quickly grasp it.   Going through all the popular problems and issues at every stage of development is easier as a hire: you have senior colleagues to help you, and bug fixing is usually included in your work time. A perfect scenario would be to work your way through to the senior level and get a record of team leading. This way you will not only upgrade your development skills but also learn proper planning and time management. Besides, your experience is your Plan B in case your project doesn’t work out eventually. If the financial situation becomes an issue, an experienced senior developer is sure to find a well-paid full-time job in no time. I started my app developer journey in 2009 at an agency where I had an internship. I quickly transformed into a full-time engineer there but soon switched to another agency because they did more native development. I was a junior developer, got promoted to a senior developer, and eventually became a team lead. The next natural step for me was the team lead position at WeTransfer, where a few years later I transformed into a Staff iOS Engineer. So by the time I realized that I wanted things to be done my way, I felt more than ready to go on my own. 2. Assess your motivation and reasons for going indie Stories of developers leaving behind companies they worked at for several years and then making millions as solo developers seem very tempting. But it’s great to have more valid reasons for going on your own, otherwise, you may end up with a ton of frustration and dissatisfaction. Before making the leap, try to be clear on why you want to go indie. Is it the desire for creative freedom, financial independence, or something else? Knowing your motivation will help you stay focused and committed when challenges arise. There’s nothing wrong with the idea of getting rich from your app but having more work-oriented goals will help you get more motivated and interested in the process. Back in the day, working for an agency, I was paid for the hours. It meant I had to finish the job within a limited time frame and there usually was no time for testing, which was frustrating. Additionally, after my work on one project was done, I had to start a new one and it felt like I was throwing away all the work I had done. So working as an indie developer does bring more satisfaction in terms of what approach to coding you want to take and how you want to regulate your time. 3. Set clear goals and define what success means to you Define what success should look like to you as an indie developer. Whether it’s a certain income level, a specific number of app users, or just the satisfaction of working on your own projects, having clear goals will guide your decisions. And since you’re the boss, you are to determine yourself what the requirements should be to get there. It’s always a great idea to start with smaller goals and limit your appetites at the beginning of your journey. For example, the goal of earning enough to pay the bills can easily be your first form of success. Once this point is reached, adding 30% extra to that sum is another clear and more ambitious objective. But remember, the most important part is that you should enjoy the process of reaching your goals and not work yourself to burnout. 4. Start working on your app as a side project Leaving your full-time job with just an idea in your pocket may turn into a disaster. There are many questions you should answer before delving into development: “Do you know the target audience of your app? Are you sure the monetization approach you have in mind is the right one? ” But spending an hour every day on your side project will be enough to get a proper vision and come up with a decent prototype.   Once you feel sure that your first iteration of the app is working and you’ve got a small but steady number of recurring downloads, it’s a great start. But I’d recommend spending a bit more time validating your vision before fully committing. Use platforms like... --- When it comes to converting, onboarding, and retaining mobile app users (especially new mobile app users), few channels are as effective as push notifications. Did you know that users who receive push notifications within the first 90 days after their initial app open have retention rates three times higher than those who don’t? By letting you connect with your users with personalized offers, relevant content, and essential reminders, push notifications serve as a key driver for your app’s success across the entire app journey. Not only do about 60% of app users opt in to receive push notifications (81% on Android and 51% on iOS), they also engage with them. Push notifications have reaction rates ranging from 3. 4% to 4. 6% across Android and iOS users. So let’s see how push notifications work, their different types, how to set them up in your app, and some of the best services to do the same. We’ll also see how push notifications can help grow your app and how you can use your users’ buying behavior to make your push notifications even more personalized and relevant so they’re more effective. Here goes. How do push notification services work? Adding notifications to an app takes quite a bit of tech wizardry. But at the high level, here’s how push notifications work: First, you create a push notification on your app’s server. Next, your server sends this notification to a push notification service like Apple’s APNs, Google’s Firebase Cloud Messaging (FCM), or third-party options like OneSignal or Pushwoosh. Finally, your push notification service delivers your push notification to your user’s device. If you’re looking to build your own push notifications infrastructure, note that this simple process translates to a lot of development and maintenance work.   Take creating and managing tokens, for instance. Both the app stores need you to work with tokens to identify the client devices that your push notifications should reach. And managing tokens involves several tasks: Retrieving tokens from client devices. Tying tokens to users (and user devices) to ensure that your notifications reach the intended recipients. Enabling secure communications to your push notification services as needed. Storing and accessing tokens securely on your server. Updating the status of your tokens as it can change due to events like reinstalls or device restores. You also need to work on the other parts of your push notifications infrastructure, like building an interface to manage your push notifications, generating your notification payloads, and setting up connections to your native platforms’ push services, to name some. Given all this work, the better solution to adding push notifications to your mobile app is using a third-party push notification service. If you go with a third-party push notification service, a lot of this work is already done for you. Before we see the best push notification services for your mobile app, let’s quickly go over the most common types of push notifications. Types of mobile app push notifications Broadly, mobile app push notifications fall into three kinds. Push notifications for boosting conversions. These notifications encourage users to make in-app purchases. For example, you might send an exclusive offer to users who hit your paywall. These push notifications also work to boost repeat purchases, upsells, and cross-sells. They tie directly to your app revenue. Push notifications for driving engagement. These notifications aim to keep your users engaged with your app and can take many forms. These can be reminders, updates on new features, or personalized recommendations.   For instance, if you have a new feature release, you can design a cadence of push notifications to boost your feature's discovery, activation, and adoption. In general, the purpose of these mobile app push notifications is to help users unlock value from your app and boost your app's stickiness in the process. Push notifications for driving retention. These notifications are to make your app users stay with your app. Although they overlap with engagement and conversion notifications, the primary goal here is user retention.   For example, you can create campaigns targeting users who have been inactive for a certain period, offering them special discounts or rewards to encourage them to return. Alternatively, you can reward your loyal users with exclusive offers or bonuses, such as free access to premium in-app features.   The purpose of these push notifications is to drive retention by boosting loyalty. Let's now explore the top push notification services that you can add to your app and implement push notifications. The five best push notification services for mobile apps 1. OneSignal An omnichannel customer engagement solution, OneSignal works across all your app's growth channels and brings “everything” you need to engage your users across their entire app journey. With OneSignal, you get push notifications (mobile and web), emails, SMSes, live activities, and in-app messaging.   With OneSignal's journey feature, you can schedule push notification sequences that automatically deliver to your users at the right time. For example, when a new user signs up for your push notifications, you can set OneSignal to deliver your onboarding push notification sequence to them automatically. To complement your push notifications, you also get in-app messaging. So, if there are features a new user must try, you can prompt them to do the same using in-app messages.   OneSignal also offers in-app carousels, a feature that allows you to create visually appealing messages (with up to 10 screens of content in a scrollable carousel format) for your users that you can use to show them their way around your app.   OneSignal's journey can use user activities, too, so you can plan your user engagement journeys based on their actions. For example, if a user hasn’t been active in your app for a week, you can trigger a re-engagement sequence to bring them back to your app. All these features, coupled with OneSignal’s advanced personalization, segmentation, and reporting, give you everything you need to execute an effective push notifications strategy. If you’re just looking to get started with... --- Son düzenlediğimiz, Yazılım şirketleri için devlet teşviği nasıl alınır? , webinarında konuğumuz Arif Esen ile birlikte mobil uygulama şirketleri için son derece önemli ve faydalı bir konuya odaklandık: devlet teşvikleri. Mobil uygulamaların rekabet ortamının ve maliyetlerin sürekli arttığı bir ortamda, bu teşvikleri anlamak çok kritik bir öneme sahip. Mobil uygulama ve oyununuz için bu teşviklerden faydalanarak işletmenizin karlılığını sağlamanın yanı sıra global pazardaki konumunuzu bir üst seviyeye taşıyabilirsiniz. Webinarın tüm kaydını linke tıklayarak izleyebilir, aşağıda konuşulan konu başlıklarınının tüm detaylarını öğrenebilirsiniz. İşte yayında konuşulan konulardan en önemli satır başları ve detaylı bir özet: Teşviklerle ilgili önemli noktalar (2025 yılı güncel rakamlar): Reklam harcamalarınız için 15. 000. 000 TL’ye kadar destek alın: Uygulamanızı yurtdışı pazarlarda tanıtmak için yaptığınız harcamaların %60 - %70 oranına kadar geri iadesini alabilirsiniz. Ayrıca bu ödemeleri başvuru tarihinden 6 ay öncesine kadar alabilirsiniz. Raporlama araçlarına ödediğiniz bedelin 1. 800. 00 TL’ye kadarını geri alın: Bakanlık uygulamanızın gelirlerini arttırmasına yardımcı olacak toolara ödediğiniz tutarların %60’ına kadarını size geri ödüyor. Google Play ve App Store’a yaptığınız komisyon ödemelerinin yarısını iade alabilirsiniz: Uygulama ve oyunlarınızın yurt dışı satışlarından oluşan komisyon ödemelerinin 3. 800. 000 TL’ye kadar olan tutarını uygulama başına geri alabilirsiniz. Personel ve yazılım harcamalarınızın 1. 400. 000 TL’ye kadar kısmını geri alın: Bakanlık personel ve yazılım giderlerinizin %50’sine kadarını geri ödüyor. Bu desteklerle ilgili başvuru yapmadan önce şirketinizin taşıması gereken bazı ön şartlar olduğunu unutmamak gerekiyor.   İşte kontrol etmeniz gereken bazı şartlar: Şirketinizin kuruluş tarihi ve türü önemli bir kriter: Teşviklerden yararlanmak için belki de en önemli şartlardan birisi şirketinizin Limited ya da Anonim Şirketi olması. Ne yazık ki şahıs şirketi sahipleri desteklerden yararlanamıyor. Şirket türünüzün şartları sağlamasının yanı sıra İhracatçı Birliği’ne üye olma, e-imza ve KEP şartları bulunuyor. Harcamaların yapıldığı ülkeler çok önemli: Teşvik alınabilmesi için harcamaların yurtdışı kanallara yapılması gerekiyor. Uygulamanızın yayınlandığı hesabı kontrol edin: Destek alınabilmesi için uygulamaların şirket hesabından yayınlanması gerekiyor. Vergi ve SGK borcunuzun olmadığını kontrol edin: Şirketinize ait herhangi bir vergi ve SGK borcu bulunmamalı ya da yapılandırılmış olması gerekmektedir. Bu webinarın yazılım şirketleri için devlet teşvikleri alma konusu hakkında faydalı bilgiler içerdiğini umuyoruz. Adapty mobil uygulamalar için hepsi bir arada çözümler içeren bir platformdur. Uygulamanızdan para kazanmanızı sağlayacak birçok araçla birlikte Adapty, entegrasyon sürecinizden, paywall oluşturmayı ve A/B testlerini kolaylaştıran çözümleri ve ayrıntılı analitik araçları ile eksiksiz bir çözüm sunar. Adapty'nin uygulamanızı büyütmenize nasıl yardımcı olacağını ve daha fazlasını öğrenmek için hemen bir kişisel demo planlayın. --- In July, we rolled out several new features, including enhancements to cohort calculations and a handy feature for testing paywalls on your devices. View the article for more details! Welcome to our July updates! We’re excited to share the latest developments from both our product and marketing teams. In July, we rolled out several new features, including enhancements to cohort calculations and a handy feature for testing paywalls on your devices. Plus, we’re thrilled to highlight a new success story in our latest case study. Dive in to see more details. New calculation approach for the Cohorts chart The Cohort analysis chart received several updates that should make calculations much more convenient and transparent. The load speed and overall stability have also been improved. First of all, transactions with no user profile are now included in the cohorts, with the original purchase date used as the profile install date. As a result, revenue numbers have increased by an average of 10%. ARPU, ARPPU, and ARPAS are now calculated in a cumulative way for both “by renewals” and “by days” visualizations. Before, when viewing each period, you’d see the numbers for the aforementioned metrics related to the particular period only. Now, they add up and build up the final numbers. For example: ARPU P4 = ARPU P1 + ARPU P2 + ARPU P3. Thanks to the cumulative calculation, the last period numbers for ARPU, ARPPU, and ARPAS now coincide with the ones in the main columns Another important update is the ability to sort the cohorts by “Payers”, which enables you to see the number of unique users that own the subscriptions.   This can be useful in figuring out the number of payers in two cases: When your users can have multiple subscriptions, When they have subscriptions and one-time purchases. When switching to the "by renewals" mode, it's now easier to see how many of your paying users are actually still paying as the cohort is deteriorating. On top of that, it’s also worth mentioning that data export to CSV now has predicted values as well, which many of you who like to use 3rd-party analytics services will appreciate.   Test devices can be added for CDN bypass Changes to paywalls or placements may take up to 20 minutes to appear on the device due to caching, which speeds up regular user access but can be inconvenient during testing. To test changes instantly, you can now assign test devices and bypass caching.   Adding a new test device To add a new test device, you need to specify its name, choose what kind of ID should be used to identify the device, and enter the value for the corresponding ID. The following values and identifiers can be used for device identification: IDFA (iOS) IDFV (iOS) Advertising ID (Android) Android ID Customer User ID Adapty Profile ID Follow our documentation to find out which identifiers you should use and where to obtain them. The feature is currently available on: iOS – 2. 11. 1 or 3. 0. 0, Android – 2. 11. 3, React Native – 2. 11. 1. Flutter and Unity support is coming soon. New case study: From $0 to $2M ARR in 6 months In our latest case study, we explore how Josh Mohrer, a former business executive, transitioned into indie app development and turned his AI-powered app, Wave: AI Note Taker, into a $2M ARR success story in just six months. Discover how Josh leveraged Adapty's tools to optimize his app's performance and scale his revenue. Read the full story here. Webinar on "State of in-app subscriptions 2024": Recording is here! If you've missed our prolific discussion of Adapty's "State of in-app subscriptions 2024" report, there's still a chance to get the latest expert insights. Fill in the form and get the recording of the event that featured useful commentaries and vital market observations. Adapty offers cost-efficient migration for Glassfy users Another reminder that Glassfy services will be ending in December 2024, and Adapty comes first to help its users with convenient migration options. We’re offering 6 free months of our Pro+ plan, so you can settle in, try the platform, and focus on scaling your app. Learn more about the offer and migration process. Thanks for being with us, stay tuned for more exciting and useful updates next month! --- We have some important news to share: Glassfy services will be ending in December 2024. We’re working closely with Marco Pifferi and the Glassfy team to help their customers move to Adapty. It’s always a bit bittersweet to part ways with a respected competitor, but we’re here to make your transition as smooth as possible. To help you move seamlessly, Adapty is introducing a special offer: get the first 6 months for free on our most powerful Pro+ plan. We believe this will help you transition smoothly, settle in, try the platform, and focus on scaling your app. Get 6 months free Moving to Adapty Every second Adapty customer moves from another subscription provider, so we know how to do this well and smoothly. Follow these steps to make your migration: Sign up and configure the Adapty dashboard. You need to create a placement, products, and a paywall. Optionally, activate your free 6-month offer here. Install the SDK and replace the Glassfy SDK. Make your first sandbox purchase, and once everything looks good, release an app with the Adapty SDK. Migrate historical data from Glassfy to Adapty (read below). Read the detailed, step-by-step guide on how to migrate the SDK. Migrate subscribers' data to Adapty You need to ask the Glassfy support team to give you an export of subscribers' receipts (iOS) and user data. To do this, write a message to support@glassfy. io. Here's an email template; feel free to copy it as is: Subject: Export historical data for Body: Hey there! I want to export my customers' data to a CSV file. Please include receipts and apple_original_transaction_id along with all customers attributes and third-party service IDs such as AppsFlyer ID. Thank you! Then, reach out to the Adapty support team via website chat inside the Adapty dashboard or support@adapty. io, and we'll import your data within one day. Read more in our migration guide. Glassfy, thank you for being in the game The Adapty team likes long games, and we love being in a highly competitive environment. While we compete, it's a little sad to keep racing without Glassfy and see a great product leave the market. However, we’re also excited about the future opportunities this change brings. Congratulations to Glassfy on their acquisition, and good luck with all your new projects! We look forward to seeing what amazing things you’ll accomplish next. If you’re a Glassfy customer, feel free to reach out to us — we’re here to help you continue your success with Adapty. Thank you, Glassfy, for your dedication and the positive impact you’ve made in the app world. Here’s to new beginnings! --- What is one common element in high-converting websites, app marketing plans, and landing pages? Interstitial ads! This relatively new ad format has grown quite quickly in the app industry, allowing marketers and app developers to curate an app marketing strategy that boosts conversions and engagement rates without annoying users in the process.   To help you make the best of your app advertisements, we’re covering all the basics you need to know to get started on your very own interstitial ads in mobile apps! Read on to find out everything there is to know about interstitial ads: What are interstitial ads? Interstitial ads are full-screen advertisements that pop up within an app during navigational moments or content transitions. These ads are designed to take up the entire visual space of your screen to offer a high-impact advertising experience by utilizing, full-screen pop-ups, overlays, or modal windows.   In recent years, the trend of interstitial ads has grown exponentially, and they can be implemented in various forms, including:  Static images Videos Animations Interactive elements But why are interstitial ads all the rage suddenly? And should you be concerned about it, now? Why use interstitial ads? There are many reasons why app marketers and app developers alike and running into interstitial ads like a moth to flame. And for the statistic lovers out there (such as me), this is where the fun really begins: 1. Increased revenue Interstitial ads contribute significantly to revenue generation due to their high engagement and effective monetization strategies. Adnimation’s recent study found that interstitial ads offered a 4094% higher eCPM than banner ads.   Hence, they provide a lucrative opportunity to capitalize on user attention and interaction. This revenue boost is further enhanced by their ability to combat "banner blindness," ensuring ads stand out more effectively within apps. 2. Higher CTRs than other ad types According to Propeller Ads, that interstitial ads achieve an impressive click-through rate of 4-5% on Android. This is significantly higher compared to desktop interstitials and banner ads which highlights their effectiveness in driving user interaction and action.   Higher CTRs indicate that users are more likely to engage with interstitial ads, making them a powerful tool for advertisers aiming to maximize campaign performance. 3. Greater app install rates One of the key benefits of interstitial ads is their ability to boost app install rates. They allow advertisers to showcase app features or gameplay directly within the ad, providing users with a preview that encourages downloads.   This approach leads to higher quality installs, as users are more informed and engaged before committing to download the app. With conversion rates exceeding 20% in Android and 15% in iOS, interstitial ads prove to be highly effective in driving app installations and user acquisition. 4. Improves engagement levels Interstitial ads excel in capturing user attention and fostering deeper engagement compared to traditional ad formats. Their full-screen format and interactive elements such as videos or playable demos create immersive ad experiences that resonate with users.   Interstitials enhance user experience without interrupting the flow which results in increasing overall engagement and user satisfaction by presenting ads at natural breaks in app usage, such as between game levels or content transitions. Key types of interstitial ads Interstitial ads are one of the most creatively diverse types of in-app advertisements any app marketer can choose from. Here are 5 types of interstitial ads that you can display within an app, all with their unique characteristics: Text interstitial ads Text interstitial ads primarily use text to convey the advertising message. These ads are typically less visually intrusive and can be effective for delivering detailed information quickly. They are often used for promoting content, services, or offers where the main appeal lies in the message rather than the visuals. Static image ads Static image interstitial ads use a single image to capture user attention. These ads are straightforward and can be visually appealing if designed well. They are commonly used for branding, promotions, and announcements. Static image ads are easy to implement and generally load faster than other rich-media formats. Video interstitial ads Video interstitial ads use video content to engage users. These ads are highly effective for storytelling, product demonstrations, and creating an emotional connection with the audience. Video interstitial ads usually last between 15 and 30 seconds and can include sound, making them more immersive compared to static ads. Rich-media ads Rich-media interstitial ads are interactive and often combine multiple elements like text, images, video, and animation. These ads can engage users through interactive features, such as swiping, tapping, or shaking the device. Rich media ads are effective for creating a memorable user experience and encouraging user interaction with the brand. Playable interstitial ads Playable interstitial ads allow users to interact with a mini-version of a game or app within the ad itself. These ads provide a hands-on experience, making them highly engaging and effective for driving app installations. Playable ads give users a taste of the app's features before they decide to download it, leading to higher-quality leads and installations. Interstitial ads vs banner and pop-up ads Of course, any smart app marketer will first weigh the pros and cons of interstitial ads with other ad types. But to make your analysis easier, I’ve gathered all the differences between interstitial ads, banners, and pop-up ads: AspectInterstitial AdsPop up adsBanner AdsFormatFull-screen ads covering the interfaceSmall windows appear over contentRectangular image or text-based adsSizeFull screen or large overlay (e. g. , 320x480)Typically smaller windowsVarious sizes (e. g. , 728x90, 300x250, etc. )PlacementShown during transitions (e. g. , between pages)Appear on top of the webpage contentPlaced within the webpage contentVisibilityHighly visible, interrupts user flowHighly intrusive, interrupts user activityPassive visibilityEngagementHigher engagement due to full attentionOften closed immediately, low engagementModerate, depending on placement and contentPricingHigher cost due to higher engagement ratesMedium costGenerally lower costUse casesHigh-impact campaigns, app installs, conversion transitionsImmediate call-to-action, lead generationBrand awareness, promotions, informational Average rate for mobile interstitial ads in 2024 If the other ad formats aren’t pleasing in... --- If you want to answer questions like how many users might be potentially looking for a mobile app like yours, how many of those you could actually cater to, and just how many of them you can actually convert, you'll find your answers with market sizing.   And at the core of market sizing lie TAM (Total Addressable Market), SAM (Serviceable Addressable Market), and SOM (Serviceable Obtainable Market) analyses. TAM, SAM, and SOM analyses give you insights that can help you: Set realistic goals for your mobile app. Plan sales and marketing strategies. Adjust them as needed for sustainable growth.   So let's understand TAM, SAM, and SOM analyses, how they apply to mobile apps, and how to calculate them! Here goes.   What is TAM? TAM – Total Addressable Market or Total Available Market – represents the market or “opportunity” available for your mobile app. For example, if you’re looking to launch a meditation mobile app, then your target market comprises people going through all kinds of conditions like stress, anxiety, and depression. You’re also looking at people looking for better mental health or mood. Finally, you’ll also cater to users specifically seeking help with mindfulness therapies like meditation. As you can see, you zoom out when you look at TAM. For example, the revenue potential for a meditation mobile app, if it captures the whole TAM, would be 7. 25 billion U. S. dollars by 2033, according to Statista. Because that’s how big the market for meditation apps is projected to get. On a side note, when you want to perform TAM analysis, tapping resources like Statista and industry publications can help a lot. They offer the latest data and projections, which is enough at the TAM stage. Back to TAM... So, as you can see, you aren't very concerned about any granular details when working with TAM. In general, TAM tells you three things: TAM tells you your app’s overall opportunity. When planning a new app, you want to be sure there’s a market for it. TAM tells you just that. When performing TAM analysis, it’s important to remember that TAM doesn’t use any filters, so the market size it suggests isn’t your actual market. SAM helps define the actual market, as we’ll see in the next section. TAM, by itself, is too broad. Because TAM looks at the market theoretically, it's crucial to consider SAM along with it, which provides a more realistic view of your app's potential market .   TAM tells you how your target market could look if your app evolved into a more mature solution. Adding PAM – Potentially Addressable Market – analysis on top of your TAM analysis can give ideas as to how your app could have a bigger target market than you initially estimated. For example, if, at some point, this meditation app from our example expanded to include online therapy, then this app could target even more users.   What is SAM? SAM – Serviceable Addressable Market or Serviceable Available Market – represents the market that you can actually target. To arrive at SAM, you apply filters to your TAM analysis and eliminate user populations that TAM included in your addressable market, but that don't really belong to it. Let’s return to our meditation app example. Here are a few considerations we'd use for deducing the actual Service Addressable Market from its Total Addressable Market: Suppose this app is to be available only in the U. S. This means the app's TAM shrinks to represent the market available in the U. S. alone. Since this app only offers meditation, filtering at the feature level makes sense. For example, SAM would be the subset of the total U. S. population actively seeking or using a meditation app. So you might want to consider 12% of the total U. S. population to be your SAM, as this population uses a mobile app to help with meditation.  (Note: Again, resources like Statista help with SAM analysis. ) Next, let’s say this is an iPhone app. This further excludes Android users from the growth calculations. You get the drift.   Your SAM is always a small percentage of your TAM. And in one way, your SAM is actually your TAM, because, in reality, it is the one that truly represents the available market. Also, while there’s no industry standard, some resources claim SAM to be generally about 1-10% of TAM.   Depending on your app, you can have a small or big SAM, but a small SAM isn’t necessarily a problem. A niche app will naturally have a much smaller SAM than apps targeting broader populations.   SAM helps you frame your monetization model. If you have a niche app, you’re looking at a significantly small addressable user population or SAM. This means even if you reach a respectable user base, you’ll still not be looking at hundreds of thousands of users. If you use a strictly subscription-based monetization model for such an app, then you may limit your revenue potential. A hybrid monetization model could offer a better average revenue per user... and increase revenue.   SAM evolves as your app evolves. As you start offering your app through additional channels (for example, adding your app to the Play Store, too, after initially only launching it in the App Store), regions, or languages, your SAM expands. Not just that, even if your app evolves into something bigger – for instance, if you start as a meditation app and eventually grow to become a full mindfulness app – you’ll see that your addressable market increases, too. What is SOM? SOM – Serviceable Obtainable Market – represents the market that you can actually expect to target to convert. To calculate your SOM , you would need to consider factors such as market trends, the competitive landscape, and potential customer interest in your specific app. Unlike SAM, SOM considers your business's realistic constraints and limitations, such as budget, resources, and capabilities. By understanding your... --- So far, summer’s been a pretty busy time for the whole Adapty team. Apart from the Adapty Conf that took place on June 13th in Warsaw, both product and marketing teams had been working on important projects that were released at the very beginning of July: Paywall Builder update – a new, drastically improved version of our popular paywall-creating tool. State of in-app subscription 2024 – a fresh report on the current state of the mobile subscription market.   Let’s take a close look at each of these projects and see how you can benefit from them. What’s new in Paywall Builder Adapty’s Paywall Builder has been helping hundreds of developers quickly and easily create high-quality paywalls for more than a year now. Over this period, we’ve been constantly improving it by adding new features and enhancing its UI. The latest update takes paywall creation to the next level of convenience and creative freedom. Let’s take a look at what this update consists of and why it's high time you started using it. A new approach to building paywalls The previous version of the Paywall Builder brought a bunch of game-changer features including localization, preview for devices, and, most importantly, a library of paywall templates that could be further customized to your needs. The fresh version takes the step even further by enabling you to create paywalls basically from scratch. The core feature of the update is the free deeply customizable layout that allows creating the very paywall you have in mind. The layout is composed of native system elements which overall result in a 100% native paywall.   A new vertical layout hierarchy The vertical hierarchy of components directly corresponds to the paywall preview and allows you to quickly and easily navigate the layout. New elements are added by clicking the “+ Add element” button and then can be dragged up and down the vertical to the desired spot.   The overall look of the new Paywall Builder It’s still possible to choose among the pre-composed paywall templates, which are based on those of the most popular and profitable apps, and edit them to your liking. However, if you want to have more of a blank canvas experience, we recommend selecting one of the “clean” templates (for a white or black theme) with only a basic structure you can start with.   Paywall Builder offers numerous popular paywall templates It’s worth noting that the builder now supports long paywalls and scrolls. So if you wanted to create a landing page-inspired paywall that would mention all the app premium features, social proof, store awards, customer reviews, and anything else you can think of – it’s now just a matter of your creativity. A scrollable paywall Widgets to build with The new free layout system allows you to add multiple widgets and even nest them to compose more complex elements. The basic elements remained the same – text, images, lists (of features), products, legal links, buttons – only now you can add more than one and freely move them up and down the vertical. However, a few new widgets have been added, and they deserve a little more focus on: Card – adds an entity that can be filled in with images, text, list, or timer. It’s the best way to add a unique block of information, like social proof or app awards. A social proof example: the card has an image nested inside Timer – adds a countdown timer that may be used to show the limited time of a special offer on your paywall. This widget has flexible adjustment possibilities and can be placed in any part of your paywall. Easily align, style, and set the format of the timer display Toggle – adds a switch element that you can use to enable or disable the free trial offer on your paywall. From the monetization perspective, using toggle switches may drastically improve your revenue and conversion rates, so it’s a great element to experiment with. Example of a free trial toggle Carousel – adds a slider element that can combine images and text, best used for placing user reviews. Each slide consists of a separate card element. The carousel supports auto-scroll with precise timing adjustments.   User review slider made of a carousel with several cards nested inside Migration and versioning The updated version of the Paywall Builder is currently available for iOS and requires the newest Adapty SDK 3. 0. 0. Note that there's no backward compatibility, so once you switch to the latest SDK version, all the paywalls created using earlier versions of Paywall Builder must be migrated. But don't worry, this can be done in just one click. Find more information on new features and improvements of the Paywall Builder in our documents section. The “State of in-app subscriptions 2024” report Another important update comes from the marketing perspective – we’re proud to share our fresh report on the state of mobile in-app subscriptions for the period 2023-2024.   This comprehensive research dives deep into the latest benchmarks and trends in mobile subscriptions, providing the insights you need to stay competitive and optimize your app’s growth strategy. Here’s a quick look at what you’ll find inside: The US remains the largest market for in-app subscription sales In 2024, the US holds more than half of the whole mobile subscription market - 50. 5%. The weekly subscription market share is now over 55% It grew more than 15% in comparison with 2022 when the share for the weekly subscription was 36. 8%. 2- and 3-product paywalls are the most popular ones Both of these paywalls show almost identical numbers, while the 1-product paywall is almost 10% less popular. The report features only must-have data in 2024: iOS Subscription Benchmarks: Get the latest data on LTV, retention, renewals, refund rates, and price changes across the US, EU, LATAM, and APAC regions. Top-Performing Paywalls: Discover which paywalls are driving the most revenue and why. Cheat Sheets: Access summarized information... --- Apps are a business — and a great one at that. Games are a stand-alone industry, responsible for more than a half of all revenue generated in App Store and Google Play Store combined. Even compared to PC gaming, the market is enormous — it’s already valued at more than $ 100 BLN in 2024, and is about to double in the next 10 years.   All this moneyshake brings a lot of developers to the yard. But creating a game is one thing — making it profitable is a whole other level (pun intended). In this guide, we present top 7 monetization strategies for mobile games and advise on which one is better suited to your needs. Keep on reading to learn more! What is mobile game monetization? There are many strategies to convert player engagement into revenue, ensuring the game's financial success. As a developer, you can explore different methods such as in-app purchases (IAPs), where players buy consumable items like power-ups or permanent upgrades, and subscription models for ongoing benefits. Another popular approach is incorporating advertisements, including banner ads, interstitial ads, and rewarded video ads that offer in-game rewards for watching short videos. Each method has its unique advantages and challenges, and we will discuss most of them later in the article. A well-chosen strategy not only covers development costs but also supports future updates and projects. That’s why you need to align the monetization method with player preferences to maintain a balance between generating revenue and ensuring a positive experience. Paying for the game (or in-game) should come naturally to the players and not feel like a chore. Mobile game monetization models 1. In-app purchases In-app purchases (IAPs) are a popular monetization strategy where players can buy virtual goods within the game. These purchases range from consumable items, such as extra lives, power-ups, and in-game currency, to non-consumable items like permanent character upgrades, new levels, and cosmetic enhancements. Players often make these purchases to enhance their gaming experience, progress faster, or customize their avatars. By offering a variety of items, developers can cater to different player preferences and spending behaviors. With this approach, you can: provide a steady revenue stream as players continually purchase items to enhance their gameplay; allow the game to be free-to-play, attracting a larger audience and reducing the barrier to entry; enhance player engagement and retention by offering valuable and desirable in-game items. Of course, there are challenges: you need to balance the game to avoid a pay-to-win scenario, which can lead to player dissatisfaction and attrition; you also need to ensure non-paying players still enjoy the game while providing enough incentives for others to make purchases. Among successful games that use IAPs, you will definitely recognize Clash of Clans and Candy Crush Saga. Clash of Clans offers in-game currency and various resources to accelerate building and training times, while Candy Crush Saga sells extra lives and power-ups to help players progress through difficult levels. These games demonstrate how well-implemented IAPs can drive significant revenue while maintaining player engagement and satisfaction. 2. Subscriptions The subscription model involves players paying a recurring fee to access premium content or features within a game. This model offers exclusive benefits, such as additional levels, characters, or ad-free experiences, enhancing the player's overall enjoyment and engagement. By opting for a subscription, players can unlock a richer and more immersive gaming experience. Advantages: Recurrent payments provide a steady and predictable income stream, allowing developers to plan and invest in future updates and improvements. Subscriptions can foster a sense of commitment and loyalty among players, as they are more likely to stay engaged with the game to get their money's worth. Subscribers often receive exclusive content and features, leading to a more satisfying and comprehensive gaming experience. Offering a free tier with the option to upgrade to a subscription can attract more players initially, increasing the potential subscriber base. Challenges: Convincing players to transition from free to paid subscriptions requires a lot of work and clear value propositions. You need to constantly keep subscribers interested with regular updates and new content Many games offer similar models, so players will inevitable choose between them An example of this is Apple Arcade: not necessarily a game, but a gaming service that offers a wide range of premium games for a low monthly fee, providing an ad-free experience with exclusive titles. Clash Royale, a pure game, offers a season pass, which grants players exclusive rewards and progression boosts, enhancing their gameplay experience. Managing subscriptions is a hustle — and a lucrative one if done right. Adapty helps subscription game app developers maximize their revenue through advanced tools and analytics.   With insights into user behavior and preferences, Adapty allows developers to optimize pricing strategies, enhance customer retention, and increase lifetime value. Our robust platform supports A/B testing of subscription offers, personalized promotions, and seamless integration with App Stores and UA services, enabling developers to effectively manage and grow their subscription revenue. Try it out today! 3. In-app ads This is the most common monetization strategy: developers display ads within their games to generate revenue. Different types of ads can be utilized to suit various gameplay and user engagement scenarios. Types of In-App Advertisements: Banner Ads: Small ads displayed at the top or bottom of the screen. They are less intrusive but often generate lower revenue compared to other ad types. Interstitial Ads: Full-screen ads that appear at natural transition points within the game, such as between levels. These ads are more engaging and can generate higher revenue, but they can also be more disruptive if not timed correctly. Rewarded Videos: Players watch short video ads in exchange for in-game rewards, such as extra lives, currency, or power-ups. This type of ad is highly effective because it provides value to the player and can increase engagement. Native Ads: Ads that blend seamlessly with the game's content, often appearing as part of the game environment. These ads are less intrusive and can be more... --- What if your product was designed to promote itself? No extra nudges, whatsoever. Marketing 101 has taught us the tried-and-tested recipe for a successful app. Build an excellent product, market it via different channels, and optimize them according to the results. But what happens when you’ve done all the optimization you could? How do you keep your growth... growing?   That’s where the secret sauce comes in. If you’ve ever bought something because your friend recommended it, you’re already familiar with what growth loops are— the smart marketer’s tool to success. But not everyone knows about it!   In this blog, discover how to use cohort analysis to drive your growth loop to success. If you’re looking for retained, engaged, and money-making users for your app, this read is for you. Let’s start with the fundamentals: What are growth loops? Growth loops are a strategic marketing framework designed to become a self-sustaining engine of growth. They operate on the principle of self-perpetuating cycles, where the output from one cycle becomes the input for the next, resulting in compounding growth over time.   There are three main types of growth loops in 2024, such as: Virality loops: Making your app go viral amongst a targeted audience. Content loops: Sharing user-generated content to attract similar new users. Engagement loops: Constantly providing value to keep the engagement rates high.   So how does it work?   Each loop begins with an initial input, which could be new user acquisition, content creation, or any other action that drives value. This input leads to specific actions taken by users, such as engaging with the product, generating more content, or inviting friends.   These actions produce outputs that not only deliver immediate value but also create new inputs that feed back into the system, thus perpetuating the cycle. Here is what the cycle looks like: Growth loops versus traditional growth strategies Many marketers will often underestimate the true power of growth loops, especially when compared to a traditional growth strategy. While the latter relies on linear, one-time efforts through advertising or marketing campaigns, growth loops are designed to become inherently self-sustaining.   Their effect on your app’s success and engagement keeps compounding without constant external investment, which a traditional strategy can not offer. Instead, you’ll have to invest in it repeatedly to maintain the growth.   Furthermore, growth loops exploit user activities to create an organic growth mechanism that doesn’t cost more money and also has the capacity for exponential growth. And that’s why I call growth loops a smart marketer’s tool! Why are funnels not enough for product growth? If you want product growth like no other, you can’t rely on marketing funnels anymore. In 2024, app growth comes from different types of growth loops, and we’ll tell you why marketing funnels are no longer the “it girls” of the marketing dynamic.   1. Linear and finite in nature Funnels are inherently linear and finite. They represent a one-way journey from awareness to conversion, often neglecting what happens after a customer makes a purchase or completes a desired action.   Once users reach the bottom of the funnel, they are no longer part of the active growth mechanism. And that brings us to stagnation. For instance, a subscription service can see a spike in sign-ups after a marketing campaign. However, if the funnel doesn’t have a mechanism to keep the subscribers engaged, the initial growth will give birth to high churn rates and poor engagement.   2. Limited feedback and adaptability Funnels often lack mechanisms for ongoing feedback and adaptation. They are designed to optimize the conversion process but do not inherently facilitate learning from user behavior after the initial conversion. This limits the ability to make data-driven improvements and adapt to changing user needs or market conditions. If we compare this to growth loops, the latter integrates continuous feedback mechanisms, allowing businesses to iteratively improve their products based on real user data!   For example, a SaaS company could implement growth loops where user behavior and feedback during the trial period inform product improvements, which in turn make the product more appealing, reducing churn and driving more referrals. 3. Lower ROI Traditional funnels have reportedly returned lower ROIs than growth loops. As you keep investing more and more money into marketing campaigns and funnel optimizations, your return is not as grand as it should be.   On the other hand, growth loops tend to require minimal investments and yield higher returns since they’re focused on word-of-mouth techniques (as well as a few other tricks) from existing users. That in turn, results in a higher ROI, compared to traditional funnels! The benefits of using growth loops Growth loops can yield a lot of unique benefits if done correctly. While you can’t enjoy a successful growth loop for a less-than-mediocre product, there are a few benefits of growth loops you can get if you have a potential product: Continuous growth Growth loops foster a self-perpetuating system where each completed loop feeds into the next, enabling continuous growth. Unlike traditional linear growth strategies— where progress may stagnate after initial gains— growth loops ensure that every new customer or piece of content contributes to further expansion. This creates a compounding effect, where growth accelerates over time as more cycles are completed. Improved retention By design, growth loops often incorporate elements that enhance user engagement and retention. For instance, user-generated content or network effects can create value that keeps users returning to the product.   When users see increasing value as more people join and contribute, they are more likely to stay engaged. Improved retention rates lead to a larger, more active user base, which in turn fuels further growth. Scalability Growth loops are inherently scalable. As the system grows, the inputs and outputs increase proportionally, enabling the business to handle higher volumes without significant incremental costs.   This scalability is particularly advantageous for digital products and platforms, where the cost of serving additional users is relatively low compared... --- Another Adapty Conf is past us, and we’re thrilled to share a recap of this exclusive app growth event. let’s take a look at the highlights and re-live the events of that day once again! Another Adapty Conf is past us, and we’re thrilled to share a recap of this exclusive app growth event. This summer, we hosted our conference in the beautiful city of Warsaw. It was a remarkable day filled with insights, networking, and exciting discussions that brought together some of the brightest minds in the mobile app industry.   Here’s Adapty Conf Warsaw in numbers: 150+ attendees, 5 sessions, 2 workshops, 1 panel discussion, 11 speakers from Adapty, FunnelFox, Paddle, Meta, NordVPN, Blinkist, Aperture, Feeld, Perceptycs, and Weewoo. Let’s take a look at the highlights and re-live the events of that day once again! Engaging sessions and announcements The event kicked off with a series of enlightening sessions focused on mobile growth strategies, subscription models, and user retention techniques. 150 attendees had the opportunity to learn directly from industry leaders and experts who shared their insights and best practices.   The speakers shared their knowledge on the latest trends and effective strategies for app growth. The sessions covered a range of topics from advanced paywall strategies to the future of mobile app subscriptions.   Vitaly Davydov, the CEO of Adapty, shared the latest Adapty updates and fresh insights on the state of the subscription market in 2024 Vitaly Davydov, the CEO of Adapty, gave the opening word by mentioning Adapty’s latest accomplishments and product innovations, like Paywall Builder 3. 0 that’s becoming available in July. The new version gets full native support and offers a free layout with numerous widgets to compose the paywall just the way you want to. Available on all plans in July (currently for iOS only)  Vitaly also shared the latest insights on the app subscription market in 2024. This year, Adapty traditionally made a thorough market research having analyzed $1B in subscription revenue, 193M transactions, 55M users, and 110k paywalls. The full "State of In-App Subscriptions 2024" report is already available! Grab your free copy here! A sneak preview of a cheat sheet for the LATAM subscriptions A lot of focus at the conference was put on the web-to-app approach in user acquisition. Volha Samoilava, the Head of Marketing at Adapty, explained the importance of web-to-app and web-to-web funnels in the current state of the mobile market. Apps have been scaling their marketing spend to the web since Apple’s release of IDFA. By directing web users to the app, companies can offer a more personalized and feature-rich experience, increasing user engagement and retention. So 2024 seems like a great moment to try web funnels for your app.   Volha Samoilava, the Head of Marketing at Adapty, explained the importance of web-to-app and web-to-web funnels With the help of Robbie McCartney, the Head of Sales at Paddle, we also explored the critical differences between app stores and web-based payment solutions. Promoting an app via a web presence can be more cost-effective than traditional app store marketing. It allows businesses to leverage existing web traffic and convert it into app users without incurring high acquisition costs. Robbie McCartney, the Head of Sales at Paddle, gave a detailed presentation on web-to-app UA and web-based payment solutions Apart from discussing web-to-app funnels, the conference saw a couple of stellar mobile app marketing presentations. Hannah Parvaz of Aperture shared the best practices for creating onboarding flows that convert. She provided insights and real-world examples of what approaches work best for potential subscribers. Insights and advice shared during the presentation received keen interest and a wide response from the audience, making it one of the most discussed topics. The founder of Aperture, Hannah Parvaz, talked about the importance of having a decent app onboarding We also got lucky to experience the insides of one of the popular dating apps - Feeld. Divya Gundlapalli, the Growth Product Manager of the app, gave a talk about the importance of paywall experiments and the bias challenges dating apps have to face. Apart from most dating apps, Feeld focuses on individuals, instead of relationships, and places curiosity in the center of its driving force. Divya Gundlapalli, the Growth Product Manager at Feeld, gave a talk about curiosity experiments in their dating app Workshops One of the most anticipated parts of the day was the hands-on workshops, where participants could dive deep into paywall optimization and real-time web funnel creation. Nathan Hudson, CEO and founder of Perceptycs, reviewed and critiqued live paywalls submitted by attendees, offering real-time feedback and suggestions for improvement. This interactive session provided invaluable insights into how small changes can significantly impact conversion rates and user engagement. The Founder and CEO of Perceptycs, Nathan Hudson, “roasted” several app paywalls  Another impressive workshop involved building a ready-to-use web funnel in real time. Sergey Muratov, Product Lead for Adapty and FunnelFox, demonstrated how you can create and launch a web funnel in about 30 minutes using FunnelFox. With the web-to-app approach soon becoming a new standard, it’s important to have the tools that will have your UA needs covered in this field. Sergey Muratov, the Product Lead at Adapty & FunnelFox, showed how to easily create a web funnel in 30 minutes Panel discussion The highlight of the official part of the event was the panel discussion that concerned app market trends and predictions for 2024-2025. The lineup of experts featured representatives from some of the biggest and most influential IT companies: Meta, NordVPN, Blinkist, Weewoo, and Aperture. We discussed the popularity of AI and Machine Learning in mobile apps, talked about the current state and trends in subscription models, and touched on AR/VR relevance. Panel experts (left to right): Hannah Parvaz, Vasyl Sergienko, Kristian Pechovski, Evelina Gruzdzevičiūtė, and Maike Berndt.   Networking Opportunities  Adapty Conf provided a platform for app developers, marketers, and growth hackers to connect, share experiences, and build valuable relationships. The exclusive nature of the event allowed for meaningful conversations and collaborations that will undoubtedly lead to future innovations and partnerships. Chatting with each and every one of you was a delight! Looking ahead Adapty Conf Warsaw 2024 was a testament to the... --- In 2024, there are only two genders: Android and iOS. Just kidding — but not really. In this guide we talk about the key advantages and obstacles the development for each mobile operating system entails. Explore the pros and cons, uncover market trends, and determine the best fit for your app development journey. Don't miss out—get the insights you need to succeed! App development market trends After 15 years on the market, both iOS and Android are well-known. Let’s talk about the more recent insights: iOS continues to dominate in terms of revenue, generating significantly higher app and in-app purchase earnings compared to Android. Apple customers tend to spend more on apps, which can lead to higher returns on investment for developers targeting this platform. This is partially caused by the fact that iOS has a strong presence in affluent markets such as North America, Western Europe, and Japan. The users in these regions generally have higher incomes and are more willing to spend on premium apps and in-app purchases.   Just like everywhere else these days, iOS app development now includes the rise of AI-powered services and IDEs. While there’s no AI support in XCode yet, Microsoft Copilot is more than capable to help you program in Swift. Android, on the other hand, holds a larger global market share, particularly in emerging markets such as Asia, Africa, and Latin America. This broad reach provides a vast potential user base, making Android a preferred choice for those aiming for mass market penetration. Android’s open-source nature allows for greater flexibility and customization, enabling developers to create unique app experiences for unique devices. There is now a significant rise of foldable and Android dual-screen devices, which give more screen real estate for the app, but also require more attention to usability in different modes. What’s the difference between Android and iOS development? Now let’s compare what it’s like to develop for iOS and Android.   Learning curve For iOS development, you'll primarily work with Swift, Apple's modern and user-friendly programming language. Although Xcode can be overwhelming at first due to its extensive features, it offers excellent tools and debugging capabilities. The consistency of the iOS ecosystem simplifies the testing process, and the abundance of learning resources makes it easier to get up to speed. However, you’ll need to familiarize yourself with Apple's Human Interface Guidelines and navigate the stringent App Store review process. On the other hand, Android development involves either Java or Kotlin, with Kotlin being the more concise and approachable option. Android Studio, the official IDE, is powerful but complex, requiring a good grasp of Gradle for build automation. A significant challenge is dealing with device fragmentation due to the variety of Android devices and OS versions.   Programming languages Swift is the language of choice for iOS development. Designed by Apple, Swift is known for its clean and modern syntax, making it relatively easy to learn, especially if you have experience with other programming languages. Swift emphasizes safety and performance, with features that prevent common coding errors and enhance efficiency. Apple’s extensive documentation, tutorials, and active developer community provide excellent support for newcomers.   Kotlin is the preferred language for Android development, developed by JetBrains. Kotlin is designed to be concise and expressive, reducing boilerplate code and improving readability. It’s fully interoperable with Java, allowing you to leverage existing Java libraries and frameworks while enjoying Kotlin’s modern features. Kotlin’s learning curve is gentle, making it accessible for both beginners and experienced developers. You can also read Flutter or Java: learn about the differences in these languages by reading our guides. Target audience iOS users tend to be more affluent (given the iPhone prices, it comes as a no surprise) and are often willing to spend more on apps and in-app purchases. They are typically found in regions like North America and Western Europe. iOS users also tend to upgrade their devices and operating systems more frequently, ensuring a more uniform user base with the latest software capabilities. This can simplify development and support efforts, making it easier to deliver a consistent user experience. Android users are more diverse and are mostly found in emerging markets like Asia, Africa, and Latin America. This diversity includes a broader range of device capabilities and operating system versions, presenting both opportunities and challenges. Android’s larger global market share means a potentially larger user base, but it also requires careful consideration of device fragmentation and varying user preferences. Just remember this: iOS users spend more money in-app, and Android users bring more installs. Development budget iOS development generally requires a higher initial investment due to the need for Apple hardware (Macs for development and various iOS devices for testing). Additionally, the App Store has a high annual developer fee of $99. However, the more uniform hardware and software environment can lead to lower testing and maintenance costs.   Android development can be more cost-effective initially, as it allows for development on a wider range of hardware, including Windows, macOS, and Linux systems. The Google Play developer fee is a one-time payment of $25, making it cheaper than Apple’s annual fee. However, the diversity of Android devices means you might need a larger budget for testing across various models and OS versions. Ongoing maintenance costs can also be higher due to the need to support a wide range of devices and operating systems.   Development environments, IDE iOS development relies on Xcode, Apple’s official integrated development environment (IDE). Xcode is available only on macOS, so you’ll need an Apple computer to develop iOS apps. It offers a comprehensive suite of tools, including a code editor, debugger, and interface builder, all seamlessly integrated. Xcode’s Interface Builder simplifies UI design with drag-and-drop elements, and the simulator allows you to test apps on various iOS devices.   Android uses Android Studio, the official IDE provided by Google. The app is available on Windows, macOS, and Linux, offering more flexibility in terms of hardware. Android Studio includes robust tools for... --- If your app is your business, your pricing model is your business model — plain and simple. By correctly understanding the needs of your customers and dividing them into segments with similar purchasing power, you can conquer the market in no time. You essentially create several products out of thin air — and all you need is just a good strategy. We wrote this guide to help you do just that. We discuss the features and benefits of different pricing approaches, give you several examples and share our own experience and case studies. By the end of this guide, you should be fully versed in app pricing. Let’s go! What is tiered pricing? Tiered pricing is a strategy where you offer different levels of your product or service at varying prices. As an app developer, this means you can create several versions of your app, each with its own set of features and prices, to appeal to different types of users. Here's how it works: you start with a basic version of your app that includes essential features at a lower price. Then, you create higher-priced versions that offer more advanced features or greater usage limits. For example, a basic plan might be $10 a month for limited access, while a premium plan could be $50 a month with all features and unlimited access. This way, users can choose the plan that best fits their needs and budget, and you can attract a wider audience. The main benefit of tiered pricing is that it helps you reach different segments of the market. Beginners might start with the basic plan, while power users opt for premium features. This approach not only increases your revenue by encouraging users to upgrade, but it also provides flexibility, allowing customers to find the right balance between cost and value. Benefits of using tiered pricing models Implementing tiered pricing models offers several key advantages for app developers. First, tiered pricing can significantly increase revenue. By offering multiple price points, businesses can attract a broader range of customers, from budget-conscious buyers to those willing to pay more for premium features. This approach not only brings in more customers but also encourages existing customers to upgrade to higher-priced tiers as they see the value in the additional features or services offered. Second, tiered pricing helps with customer segmentation. By creating different tiers, businesses can cater to the specific needs and preferences of various customer groups. For instance, a basic tier might appeal to casual users or small businesses, while a premium tier attracts power users or larger organizations. This segmentation allows businesses to better understand their customers and tailor their marketing and development efforts accordingly. Lastly, tiered pricing enhances the perceived value of your product or service. When customers see a range of options, they can compare features and benefits more easily, which helps them appreciate the value of higher-priced tiers. This comparison often makes the premium options seem more attractive and worthwhile, leading to higher customer satisfaction and loyalty. How to calculate tiered pricing for your app? Analyze Your Costs and Value Proposition. Start by understanding the costs involved in running your app, including both fixed costs like development and server maintenance, and variable costs such as customer support and transaction fees. Additionally, clearly define the value your app provides to users. Segment Your Market. Identify different user segments based on their needs and willingness to pay. Consider what features or services each segment values the most, such as essential features for basic users, additional features for standard users, and comprehensive features for premium users. Define Your Tiers. Create different pricing tiers that cater to these segments. For example, you might have a Basic Plan with only essential features, a Standard Plan with more features and moderate usage, and a Premium Plan with all features and high usage limits. Set Pricing Based on Value and Costs. Determine the pricing for each tier by considering the value provided to users and your costs. Make sure each tier is profitable by including both the fixed and variable costs, along with a desired profit margin. Test and Adjust. Launch your pricing tiers and monitor user feedback and sales data. Be ready to adjust your pricing and tiers based on how users respond and how well each tier performs in the market. Communicate Value. Ensure that users understand the value they get at each pricing tier. Use clear descriptions and comparisons to highlight the benefits of upgrading to higher tiers, making it easy for users to see why they should choose a more expensive option. With Adapty, you can write, design, and adapt paywalls with no hustle and extra code. A/B-test your paywalls to get the better converting ones. Try Adapty now! Types of tiered pricing models As an app developer, you can use various tiered pricing models to appeal to different user segments. Each model offers unique features and pricing to match the needs of various customers. Here’s a simple overview of the common types of tiered pricing models: Starter The 'Starter' tier is usually designed for new or casual users who need basic features. This tier typically includes essential functionalities at no price, making it accessible to individuals or small businesses with limited budgets. The goal is to attract users with a no entry cost, encouraging them to try your app without a significant financial commitment. The Starter tier helps build your user base and provides an opportunity for upselling to higher tiers later. Standard The 'Standard' tier is aimed at regular users who need more features and higher usage limits. It strikes a balance between cost and value and is often the most popular choice. This tier usually includes additional features and better support, catering to small to medium-sized businesses or more serious individual users. The Standard tier is often seen as the best value for money, providing a comprehensive set of features without the premium price tag. Premium This tier targets users who need the full range... --- View the recap of the most important updates relating to in-app purchases, app promotion, and mobile development: App Store Connect and StoreKit updates, Swift 6, Xcode 16, and more. Apple's Worldwide Developers Conference (WWDC) 2024 showcased a range of remarkable updates and innovations across its ecosystem. This year's event emphasized advancements in AI, developer tools, and software capabilities, aiming to empower developers to create more powerful and efficient applications.   A lot of focus was put on software updates for Apple devices, new features for visionOS, design, and gaming. But in this article, we’ll make a recap of the most important updates relating to in-app purchases, app promotion, and mobile development. Make yourself a cup of tea, because there’s a lot to uncover! App Store Connect App Store Connect received several updates aimed at improving app discovery, testing, and customer reach. The updates don’t seem to revolutionize the process of working with your iOS apps, yet with every year App Store Connect does become more versatile and willing to be convenient for its users. Featuring nominations Developers can now nominate their app content for potential featuring on the App Store. This process allows developers to highlight significant updates or new features in their apps, increasing the chances of being showcased on the App Store's Today, Games, or Apps tabs . 3 types of nominations: New content, app enhancements, and app launch New TestFlight updates TestFlight has received several enhancements to improve the beta testing process: Invitations now include the app description and category, and you can optionally add screenshots to highlight new features. Developers can set criteria for external testers, such as device and OS specifications, ensuring relevant feedback. New metrics provide insights into how successful public links are at enrolling testers, including views and acceptances. Deep links in custom product pages Custom product pages can now include deep links, directing users to specific in-app content from the App Store. This feature allows for more targeted marketing campaigns and improved user engagement by linking to relevant app content directly from ads or other promotional materials. Deep linking to a particular landing page of your app Promote Your App feature The new "Promote Your App" feature in App Store Connect provides tools for creating and sharing marketing assets. Developers can generate promotional images and videos to use in social media, ads, and other channels. One of several visuals for a shareable promo asset Win-back offers Apple has introduced win-back offers to help developers re-engage former subscribers. These offers can be customized to provide incentives, such as discounted subscription rates, to users who have previously canceled their subscriptions. Developers can configure the eligibility criteria and incentive types, such as offering a reduced subscription price for a set period.   A win-back offer ad These offers are displayed across the App Store, including on product pages and in editorial selections, providing a broad reach to potential returning users . The newly added Streamlined purchasing feature, which is enabled by default, allows users to make a purchase right away by clicking the “Subscribe” button on an offer ad. StoreKit and in-app purchases Not much attention at WWDC24 was paid to in-app subscriptions, but the few updates look rather interesting. Apple still seems to be invested in providing developers with more native instruments for working with transactions and offers.   Original StoreKit deprecation First and foremost, Apple has officially deprecated the original StoreKit APIs. This means that while existing apps using these APIs will continue to function for now, developers should transition to the new StoreKit 2 APIs to take advantage of ongoing updates and support . It’s high time you transitioned to StoreKit 2 to ensure your apps remain up-to-date with the latest features and security enhancements. New Offer model Transaction and RenewalInfo now include a new member called offer which is a new type containing all offer-related information, such as ID, offer type, and payment mode. This addition allows developers to better track and manage different promotional offers and understand their impact on user subscriptions . New offer model In-app purchase transaction history API The new in-app purchase history API provides a detailed history of all transactions associated with an app. This API supports pagination and uses JWT authentication for secure communication, allowing developers to manage purchase data efficiently and securely. The transaction framework now also provides transactions for all consumables Testing enhancements StoreKit Testing in Xcode has been improved for more comprehensive testing scenarios. Developers can now test subscription offers, manage transactions, and simulate various purchase conditions directly in Xcode. This includes debugging and testing in-app purchases across multiple devices and simulators simultaneously . StoreKit views customization Enhancements to StoreKit views offer more flexibility in how subscription options are presented within apps. Developers can create compact, informative layouts that better communicate the value of subscriptions to users . Apple added 3 new paywall styles that differ in the way the product section is presented. On all of them, it occupies less than half of the bottom part of the screen and allows side-scrolling, instead of scrolling vertically, which should leave more space for useful content.   One of the 3 new paywall styles New localization features Apple also introduced several key updates aimed at making app localization and multilingual support more efficient and powerful for developers. The inability to provide high-quality app localization still remains a huge problem for many developers as it leads to higher churn and bounce rates in foreign markets. Apple comes closer to solving it by adding a few updates: Text input and display Apple added a few UI/UX fixes which, if integrated into your app, should significantly ease the experience for multilingual users. For example, they can now type and view text without needing to switch between keyboards frequently. Fonts and styles tailored to different languages are now handled properly. The same goes for formatting personal names and using localized formatting for numbers and dates. String Catalogs Advances in the String Catalogs, which were introduced last year, simplify the localization process, making it easier for developers to manage and translate text strings within their apps. They now detect common validation issues and let you fix them... --- The conventional wisdom states that native apps are always better. So why is it that all the top retailing apps are hybrid? Smart tech companies like Amazon, Etsy, Groupon, and Walmart are moving speedily towards a hybrid app model, and proving that this is surely the best possible approach. For one, it was found that a hybrid approach to app development resulted in a 234% ROI increase compared to native apps! In this blog, we’ll explore what a hybrid mobile app is, why it works better than the other options, and everything else you need to know about it. If you want your app development to deliver great savings, better results, and cut-throat competition to other apps in your space, maybe a hybrid mobile app is all you need! What is a hybrid app? A hybrid app is a software application that combines elements of both native and web applications. It is built using web technologies like HTML, CSS, and JavaScript, and then embedded within a native app shell, enabling it to be deployed across multiple platforms such as iOS and Android.   This approach allows hybrid apps to access native device features, such as the camera and GPS, through plugins and APIs, providing a user experience similar to native apps. How does a hybrid application work? A hybrid application combines elements of both native and web applications, offering the benefits of cross-platform compatibility and access to device features. At its core, a hybrid app is essentially a web app embedded within a native app shell.   This shell allows the web app to access the device's native features and functionalities, which are typically inaccessible to standard web applications. The native container is built using platform-specific programming languages such as Swift or Objective-C for iOS, and Java or Kotlin for Android.   This container houses a WebView, a component that renders web content within a native app. Popular frameworks like Apache Cordova (formerly PhoneGap), Ionic, and React Native facilitate the development of hybrid apps by providing a suite of tools and libraries that bridge the gap between web technologies and native functionalities. When a user installs and opens a hybrid app, the native container launches and displays the web content through the WebView. This web content is typically developed as a single-page application (SPA) using modern JavaScript frameworks such as Angular, React, or Vue. js.   The WebView functions as a browser instance within the native app, rendering the HTML, CSS, and JavaScript content. To access native device features like the camera, GPS, or file system, hybrid apps rely on plugins. These plugins act as intermediaries, providing JavaScript APIs that interact with the native code! Features of hybrid applications Because a hybrid app combines native and web apps, it offers a diverse range of features that make it an excellent choice for many app development projects. Here are a few main features of a hybrid application you can expect:  1. Cross-platform compatibility Hybrid apps are designed to run on multiple platforms (iOS, Android, etc. ) using a single codebase. This cross-platform capability significantly reduces development time and costs by over 80%. 2. Unified development Developers use web technologies such as HTML, CSS, and JavaScript to build hybrid apps. This unified development approach simplifies the process, as the same code can be deployed across different operating systems. 3. WebView-based rendering Hybrid apps use a WebView, a browser-like component embedded within a native container, to render web content. This allows web pages to be displayed as part of the app, making it possible to leverage existing web development skills. 4. Access to native features Through the use of plugins and frameworks like Apache Cordova, Ionic, and React Native, hybrid apps can access native device features such as the camera, GPS, accelerometer, and contacts. These plugins provide JavaScript APIs that bridge the gap between web code and native functionalities. 5. App Store distribution Hybrid apps can be packaged and distributed through app stores (Google Play, Apple App Store, etc. ), providing the same visibility and reach as native apps. This also allows users to easily find and install the app on their devices. 6. Consistent user interface Hybrid apps can maintain a consistent user interface across different platforms, ensuring that users have a similar experience regardless of the device they are using. Frameworks often provide UI components that adhere to native design guidelines, enhancing the overall user experience. 7. Offline capabilities Many hybrid apps offer offline functionality, allowing users to access certain features and content without an internet connection. This is typically achieved through local storage mechanisms and caching strategies. 8. Rapid development and updates Due to the single codebase and use of web technologies, hybrid apps can be developed and updated more quickly than native apps. Changes made to the codebase can be instantly reflected across all platforms, streamlining the maintenance process. Examples of hybrid apps Today, hybrid apps make up over 74% of the top 50 retail apps in the App Store. But they’re also heading other app categories as well! Let’s take a look at some of the top examples of hybrid apps and how they’re achieving greater heights than their native app counterparts: 1. Gmail It’s impossible to mention examples of hybrid mobile apps and not mention the largest email provider on the planet right now. The app has also garnered millions of downloads from the App Store and Play Store while offering multiple account supports, free data storage, and a robust spam filter. \ With an organized inbox view, Gmail uses HTML5 to create a functional experience for users. The hybrid features of this app are achieved using web technologies and frameworks like Angular.   2. Uber Perhaps the most popular cab-booking app across many continents, Uber runs on m. uber. com and provides a simple yet intuitive interface with easier navigation within the app. You can successfully run the app across multiple devices, screen sizes, and OS without sacrificing the quality of service provided.   The app... --- Check out Adapty May updates: New features for paywall CDN caching and ARPU and Installs added to the Cohorts chart. The Adapty team dedicated May to the spring cleaning with minor fixes and improvements that should make the overall experience with Adapty much more enjoyable. However, we also released two rather important and handy updates we’d been planning for a while: Adding more scenarios for CDN caching, Adding ARPU and Installs to the Cohorts chart. Let’s dive into the details of these updates and see how you can benefit from them. Improved CDN for paywalls With Adapty SDK 2. 11. 0, we made a few improvements in the work of CDN that we use to cache paywalls. The most notable improvement is the use of CDN in paywall A/B testing. Before the update, the variation was assigned on our server, now it's done on the device, which should result in much quicker paywall loads. On average paywall requests take less than 1 second if a user has a decent internet connection, so the experience is quite seamless. But for some users who live in regions that are far from our servers and have rather slow internet, this may cause delays in the process of paywall visualization.   Now all the information about new paywalls will be stored on the CDN servers all over the world. This means reducing the load times of the paywalls to 300-500 milliseconds on most devices! The use of CDN should greatly enhance conversion in the apps that display paywalls early on in the user flow. Data distribution through CDN. Courtesy Cloudflare. ARPPU and Installs in cohorts Using the Cohorts got even more convenient with the chart now displaying ARPU and the install numbers for every user cohort. In the Cohort column, you can now check the number of installs for each cohort along with the total number of users. This helps easily view cohort sizes and assess their significance without having to hover over each one. ARPU for every cohort is displayed as a new column, which can be enabled or disabled in the Columns menu. ARPU is a crucial metric for evaluating marketing performance that can be compared to CPI (cost-per-install) for ROI analysis. Tracking ARPU over time is essential for understanding marketing effectiveness and making informed decisions about ad spend. Check the recently refreshed documentation on Cohorts to find more details and stay tuned for more updates next month! --- What do 15% of the top 100 grossing apps on the Play Store have in common? They all use offerwalls! Chances are that you’ve already experienced an offerwall within one of your favorite apps if you’ve had to watch a video advertisement, take a survey, or simply register a username for yourself. But on the app publishing side, there’s a whole new story.   If you’re new to offerwall ads and don’t know what they are, this ultimate guide will help you. Read on to learn what an offerwall can offer you, how to implement it, and much more in this blog.   What is an offerwall? An offerwall is an app monetization strategy that’s prominently popular within mobile app games. The offerwall functions as a platform, allowing users to engage with 3rd party tasks, offers, and advertisements for in-app rewards.   Basically, it’s a wall in your app with a handful of offers to choose a task and be rewarded for it! If you’ve ever played mobile games like Candy Crush or Rush Royale, you’ve already bumped into an offerwall strategy. Some popular cases of offerwalls look like these:  Watch a 30-second video to gain an extra life, Play a branded third-party mini-game within the app before you can get to the next level, Take a quick survey to get extra coins or gems, Complete a “hard” level for extra points or leveling up. Of course, these aren’t the only ways offerwalls are optimized, but this surely gives you an idea of how offerwall is integrated into apps.   How does an offerwall work? Imagine offerwalls as a tiny market within your app. Found mostly in high-traffic parts of your app (the main menu, between two levels, or in-app purchase store), offerwalls pop up at users when they need a virtual benefit within your app. This can be an extra hint, undo, extra life, gems, or any other virtual currency of importance. When a user is motivated and engaged with your app, they will opt for those rewards. And as soon as they do, you’ll get some fresh ad revenue straight into your pocket. Offerwalls work best based on two basic principles, and we’ll talk about that now: User interaction When users access an offerwall within an app or game, they are presented with a selection of offerwall tasks, offers, or ads to choose from. Users have the freedom to browse through the available options and select those that align with their interests or preferences. Once a task or offer is chosen, users proceed to complete it according to the specified instructions.   Reward system Once you’ve successfully had the user interact and complete a task, it’s time to reward them with the promised incentive. Rewards are typically distributed instantly or after a short verification process to ensure task completion.   Common rewards can include:  In-app currency — Unlocks features or makes purchases within the app or game, Premium content — Exclusive levels or items, Virtual goods — Discounts on in-app purchases, or redeemable gift cards. How to monetize your app with offerwall rewards Offerwall monetization is a charmer for many app and game developers. But how do you start? And what do you do? In-app purchases Integrating offerwalls can effectively drive in app purchases by providing users with a taste of premium features. When you allow users to earn rewards through simple tasks or offers on the offerwall, you incentivize them to explore and engage with premium content or features that may otherwise require a direct purchase.   To maximize revenue without undermining sales, you can implement strategies such as offering exclusive discounts or bonuses for direct purchases, as well as rewarding users with in-app currency or special items through offerwalls.   Interactive advertising If you’re not sure if traditional ads will keep your users engaged, it’s time to welcome interactive advertising into your app. Often shown as playable ads or interactive videos, interactive ads allow users to have a memorable experience as they can interact with the ad itself.   In other words, less pushy and more interesting.   The benefits of interactive ads extend to increased user engagement and potential revenue generation, as users are more likely to interact with ads that offer interactive elements or experiences.   Premium subscriptions Offerwalls can be used to promote premium subscriptions through trials or unlocking special subscription-only content. By integrating offers that reward users with trial periods or exclusive access to premium features, developers can incentivize users to explore the benefits of a subscription.   Conversion tactics such as offering extended trial periods or bundling subscription rewards with other offerwall tasks can help convert users from free to paid subscriptions.   Banners Integrating banner ads within or around the offerwall can increase visibility without being too intrusive. Placing banner ads strategically within the offerwall interface ensures that they are noticeable without disrupting the user experience.   While banner ads may not offer the same level of engagement as other ad formats, they still contribute to revenue generation by providing additional opportunities for advertisers to reach users. Full-screen ads Full-screen ads can be treacherous waters to navigate but with the right approach, your boat will float. All you have to do is carefully consider the placement and timing of full-screen ads so they’re not causing disruption and user dissatisfaction.   Full-screen ads are best when they’re being offered in between levels with some nice space apart. Or you can offer them as a chance to redeem an extra life or get extra coins for that next purchase! Benefits of using offerwalls Offerwall monetization is one of the most popular choices for freemium apps, all because of the benefits they yield. If you’re not sure what offerwall ads can do for your app, here are the three main benefits of using offerwalls: Increases user engagement and retention Offerwalls are powerful tools for enhancing user engagement and retention within apps. They provide clear incentives for users to engage with the content by... --- When it comes to mobile app monetization, some types of apps tend to make the most money. This is so for several reasons. To start with, these apps target lucrative markets like gaming. Mobile gamers are projected to increase by 8%, reaching 137 million users by 2027. When it comes to mobile app monetization, some types of apps tend to make the most money. This is so for several reasons. To start with, these apps target lucrative markets like gaming. Mobile gamers are projected to increase by 8%, reaching 137 million users by 2027. High download rates in the segment translate to substantial revenue (sometimes simply through ads alone). These apps also mostly use the hybrid monetization model, which involves tapping multiple monetization methods. Take lifestyle apps, for instance. Lifestyle apps can generate revenue through in-app purchases, subscriptions, and partnerships with other companies, in addition to monetizing via ads. This model allows for a diversified revenue stream and better overall profitability. Lastly, these apps keep their target consumer behavior in mind, catering to users willing to spend money on apps. For example, a good share of users of healthcare apps are prepared to pay to achieve their fitness goals. So, let's see the types of mobile apps that make the most money and the different monetization strategies they use. (Even if your app serves a niche market, you can still apply monetization ideas from these top-grossing app segments to monetize your app better. ) Here goes. The types of apps that make the most money Mobile games The average revenue per user (ARPU) in the mobile gaming app segment is expected to hit US$57. 64 this year (and US$64. 26 by 2027). And given that a gaming app, on average, has about 160 monthly active users, there’s definitely money in the niche. So, how do mobile gaming apps monetize? The majority of mobile gaming apps follow the free-to-play (FTP) model, so they’re free to download. The most popular monetization methods are ads and in-app purchases, with progressing in the game being the most effective driver for in-app purchases. Other reasons driving in-app purchases across the three main spender categories — high-value spenders, mid-value spenders, and low-value spenders — include in-game currencies/gems, limited-time offers/deals, and extra energy/lives/hints, among others. In general, subscriptions aren’t gaming apps’ primary monetization model: Also, as such, there are no “most popular” subcategories in the mobile gaming apps segment, as hypercasual apps across all kinds of subcategories tend to do well. This means you've got the opportunity to choose pretty much any subcategory for building your gaming app. However, gaming user behavior across the app funnel varies greatly between subcategories. For example: Casual games can find users more easily, but you’ve to rely mostly on ads for monetization. Acquiring (and converting) casino game app users, on the other hand, can be expensive. Lifestyle games also come with a high cost per install. It's important to factor all these in when planning your gaming app. Social apps Social media apps too make a lot of money. However, like the entertainment apps we’ll see in the next section, the social media app space is extremely competitive, and the most popular titles take the majority of the revenue. That said, the social media app landscape isn’t just about the most popular social networks. There's a place for niche apps connecting all kinds of communities. You've niche social media apps for connecting communities like political enthusiasts, those belonging to the same religion, or those leading a certain kind of lifestyle (digital nomads, for instance). Think of these loosely as niche "interest-based social networks. " Such social apps can be profitable through various revenue methods, such as ads, subscriptions, or in-app purchases, depending on their target audience and purpose. Many social apps also let users monetize their content/digital products. You also have many "hybrid" social apps in this segment. While these apps target a specific area (stargazing, for example), they make "community" a big part of their app. By striking a balance between their core features and their general social networking features, they let users pursue their interests while connecting with like-minded individuals as part of a broader community. Such apps attract a diverse user base and can generate a good revenue through a combination of different monetization methods. To succeed, however, these apps need to know how to effectively monetize their user engagement. Subscription-based entertainment apps When it comes to subscription-based entertainment apps, you're mainly looking at content streaming apps. However, while these apps generate some of the highest revenues in the mobile app space, building one may not be for most developers or even for many of the established app studios, for that matter. That's because of how their business model works. You're looking at content production, licensing, and other complex logistics.   In addition to all that, the most popular apps that take away all of the niche's revenue already have loyal users. Think Netflix, Spotify, and Hotstar, to name a few. So you can understand why this segment doesn't see that many new entrants.   But even though this segment isn't for everyone, any app that uses subscriptions for monetizing can learn from these apps’ monetization strategies. E-commerce and marketplace apps Yet another app segment that sees good revenue is eCommerce. As new audience segments emerge, you're getting to see several new entrants in the space. In fact, identifying underserved niches and catering to specific interests or demographics are how the new entrants are actually differentiating themselves from the existing mainstream apps and attracting and retaining dedicated user bases for themselves. Because otherwise, this, too, like all the other profitable niches in this list, is saturated with many big players. The newer entrants basically tap trends that are likely to hold. One such trend is opting for clean, sustainable, and socially-conscious choices. More and more new eCommerce apps are carving out a place for themselves by targeting this lifestyle, offering curated selections of all-natural, organic, and sustainable products, catering specifically to consumers who are looking for clean and sustainable options. By focusing on this niche market, these new entrants are able to differentiate themselves from larger etailers and appeal to a dedicated customer base seeking environmentally friendly products. Clean beauty/skincare is just one example. These... --- View the most important updates from Google I/O 2024 regarding Play Market and in-app subscriptions. At Google I/O 2024, the company announced several key updates for Google Play that are particularly relevant for developers in the mobile app subscription space. These updates are designed to help developers optimize subscription models, improve user retention, and enhance security. Let’s look at those updates that will be the most useful for app subscription growth. Refreshed Play Store UI and Engage SDK A lot of focus on the presentation was put on fresh ways of engaging users. First, Google presented a new more engaging user interface of the Play Store that provides more surfaces for promo content from your apps. Examples of new promo surfaces The surfaces work in two ways: Showcase features and content from the already installed apps to re-engage the user. In this case, developers can use deep links to guide the user to check a certain piece of content or make a purchase right in the app. Present the user with promo materials from the not-yet-installed apps. For these purposes, the surfaces may still display certain app features, content, and offers. Surfaces are on-device generated, meaning they are organized exclusively for each user depending on their interests and behavior. Resume your previous app session right from Google Play This brand new approach becomes possible after integrating Engage SDK which currently is not available to everyone, but you can try to get access by joining the developer preview. By tailoring experiences based on user preferences and behaviors, such a feature can significantly boost user engagement and improve app retention rates. Expanded payment options To increase global reach, Google Play has introduced new payment options, making it easier for users worldwide to subscribe to apps. A huge amount of attention is paid to collaboration with local banks and payment providers. Fresh numbers on growing payment options Apart from the usual family sharing, Google has also introduced the ability to pay for family members and friends at their request. The user can now choose the option of asking someone else to pay and then share the generated payment link with any person. This option is currently available only on the Indian market and requires Billing Library 6. 0 or higher. It’s too early to say how this feature can affect the revenue situation of a particular app when it gets scaled (if it ever does), but it seems like an interesting option to test on your paywall. Optimized pricing strategies Google Play now offers optimized pricing strategies, enabling developers to test different pricing models and identify the most effective approach for their target audience. One of the notable features is the automatic update of the user price ranges that reflects the currency fluctuations against the US dollar.   The user will see an inbox notification at any time a price adjustment is recommended Another “pivotal” update is the increased pricing flexibility with the ability to price your products as high as $999. 99. Google suggests that such flexibility should open new horizons for offering ultra-premium experience. Though still not premium enough compared to the App Store’s limit of $9,999. 99. Expanded badges Google Play can now encourage customers to complete a purchase by showing how products are trending with the help of new badges, such as Trending, Popular, and Best-selling. However, it’s unclear how exactly such badges will be assigned to products and what the threshold for earning them is. Installment subscriptions Probably one of the most notable updates concerns the ability to pay for subscriptions by installment. It’s worth noting, however, that it’s not an option on the user side, it’s a developer-provided feature. This means that users will only be able to choose installment payments if the developer has configured their subscription model to support this payment method. If the option is provided, the user can divide the payment for a subscription into several monthly payments, e. g. provide 12 monthly payments for an annual subscription.   There are 3 main aspects to note here: All installment subscriptions are paid in monthly intervals; users and developers cannot adjust the frequency or timing of payments.   Developer payouts will happen as users make their monthly payments.   Developers are not paid upfront when the user signs up for the subscription. From the looks of it, such an approach is basically a variation of an ordinary monthly subscription, at least from the revenue-generating perspective. Although it may be potentially more profitable in the long run as paying for an annual subscription should keep people more engaged with the product, thus increasing LTV and retention rates. Might be a good idea to test “a monthly subscription” vs “an annual by installments” on your paywall to see which one will look more appealing to the user. The option is currently available only for Brazil, France, Italy, and Spain.   Custom store listings Google Play developers can now create up to 50 different store listings that will feature different icons, descriptions, screenshots, and videos. Tailoring your app page for different audience segments will provide the best first impression and should significantly increase user acquisition rates.   Play Market allows targeting custom store listings by Country, Pre-registration status, Deep links, Inactive users, Google Ads campaign, and Search keywords. Basing custom store pages on the keywords for your app’s features and benefits is likely to attract the right audience. Worth pointing out that you can customize your store listings for every device type, including tablets, watches, Chromebooks, and more. Your store listing will now feature screenshots along with ratings and reviews that are tailored to each form factor, providing users on various devices with a clearer understanding of the app experience they can expect. Additionally, incorporating device-specific details will enhance your app's discoverability for users who search by device type or explore a newly dedicated page for other devices. Deep links patching A small yet valuable update concerns the use of deep links. To make managing deep links even more efficient, Google introduced deep links patching in Play Console. This feature enables experimenting... --- POV: you have decided to develop for Android. What now? You need to decide between using Flutter and Kotlin for your next project.   Each language offers distinct advantages and drawbacks. In this guide, we'll explore their differences in performance, scalability, and community support; and just so you have the full picture, we also have comparison guides on Flutter vs React Native and Kotlin vs Java. Let's find out which one suits your needs best. What is Flutter? Flutter is an open-source software development kit (SDK) developed by Google, aimed at creating natively compiled applications for mobile, web, and desktop from a single codebase. Launched in May 2017 at the Google I/O conference, Flutter has quickly gained popularity for its ability to deliver high-performance user interfaces and accelerate development cycles. Flutter uses the Dart programming language, also created by Google. Dart is a statically typed language optimized for building UIs and mobile applications, offering a reactive and declarative programming model. This model simplifies the creation of complex UIs and efficient handling of user interactions. As a cross-platform framework, Flutter allows developers to write code once and deploy it across Android, iOS, web, and desktop platforms. This broadens the reach of applications and significantly reduces development time and effort. Companies like Alibaba, Google Ads, and BMW have successfully used Flutter to develop their apps, which should give you a hint about its capabilities. What is Kotlin? Kotlin is a statically typed programming language developed by JetBrains, the creators of IntelliJ IDEA and Android Studio. Officially released in 2016, Kotlin has quickly become popular, particularly among Android developers, due to its modern features and concise syntax. Kotlin was designed to overcome common challenges in Java, such as verbosity and null pointer exceptions, while being fully interoperable with Java. This compatibility allows developers to use existing Java libraries and integrate Kotlin into their current codebases seamlessly. Kotlin is versatile, suitable for Android apps and web applications, and it supports multi platform development. This allows shared code to run on Android, iOS, web, and desktop, reducing duplication and enhancing maintainability. Kotlin offers a modern development experience and enables efficient and high-quality application development across multiple platforms. Flutter vs. Kotlin comparison So, what are the key differences? Let’s talk about them step by step. Learning Curve For beginners, Flutter offers a moderate learning curve. The Dart language has a relatively easy to pick up syntax for those with experience in JavaScript. However, since Dart is not widely adopted outside of Flutter, this might pose a slight challenge. Flutter compensates with excellent documentation and a wealth of learning resources, including tutorials, sample projects, and an active community. The hot reload feature is particularly beneficial for beginners, as it makes it easier to understand how code changes impact the application in real time. Kotlin is generally easier for beginners. Its syntax is concise and expressive, reducing boilerplate code and simplifying complex tasks. Kotlin's design can make learning smoother and less frustrating. There are extensive resources available for learning Kotlin, including official documentation, online courses, and community forums. Google's official support for Kotlin in Android development also means there's a robust ecosystem and plenty of tutorials. Language Support Flutter uses Dart, a language designed by Google. Dart's syntax is easy for developers familiar with Java or JavaScript, but its limited adoption outside of Flutter can be a drawback. The choice of Dart impacts development by providing a reactive and declarative programming model, which simplifies UI creation and state management. However, developers need to learn a new language, which might require extra time and effort. Kotlin runs on the Java Virtual Machine (JVM) and is fully interoperable with Java. This makes it easy for developers with a Java background to transition. Kotlin's concise syntax and modern features reduce boilerplate code and enhance productivity. Its widespread use, particularly in Android development, ensures extensive library support and community resources. Choosing Kotlin means leveraging a familiar ecosystem with robust tooling and interoperability. Platform Compatibility Flutter is highly praised for its cross-platform capabilities, allowing developers to build mobile, web, desktop, and embedded applications from a single codebase. It compiles to native code, which improves performance on mobile devices compared to other cross-platform frameworks that rely on bridges or interpreters. Flutter supports iOS, Android, Windows, macOS, Linux, Google Fuchsia, and the web. Kotlin itself is platform-agnostic but is widely recognized for its strong support in Android development. Multi platform is a feature of Kotlin that allows developers to share logic across platforms (iOS, Android, Web, Desktop) while still allowing for platform-specific implementations where necessary. However, the support for platforms other than Android is not as mature as Flutter's, especially in terms of UI development, where developers might need to rely on other technologies or frameworks to achieve full cross-platform functionality. Both Flutter and Kotlin are open-source and free to use. Flutter is more cost effective for developing an app for all platforms, Kotlin — exclusively for Android. Graphic Interface Flutter excels in creating rich, customizable UIs using its own Skia-based rendering engine. This makes it platform-independent and highly versatile, allowing for smooth, animated UIs on both iOS and Android. Flutter's extensive widget library and layered architecture enable full customization, perfect for visually distinctive applications. Kotlin relies on the platform's native UI toolkit, which works well for Android but can be limiting for cross-platform needs. For iOS and other platforms, Kotlin developers often need to use native UI tools or additional frameworks, complicating the process and potentially reducing UI consistency across platforms. While Kotlin/Native and Kotlin/JS offer UI options for other environments, they aren't as unified as Flutter's approach. Standard library functions Flutter, using Dart, has a robust standard library focused on building UI and handling asynchronous operations. While it covers essential functions, developers often rely on third-party packages for more advanced needs, which are readily available through the Pub package manager. Kotlin boasts a rich standard library, enhancing Java's capabilities with modern features like extension functions and comprehensive collection processing. This makes it powerful... --- Receive recurrent summary reports on all of your apps and enjoy a faster-loading Conversion section. Learn more about Adapty updates in April. In April, our team focused on two key enhancements aimed at refining your Adapty experience. Firstly, the refinement and optimization process for our analytics charts keeps going with significant improvements made to the Conversion section. Additionally, we're excited to introduce a highly anticipated feature: recurring email reports. Now, Adapty will send you regular email updates containing all the essential app data. Let's dive deeper into how these updates will streamline your interaction with Adapty. Conversion chart enhancements April was dedicated to enhancing the Conversion section, a beloved feature among our users. Through a series of updates, we made significant improvements to ensure a smoother user experience. Quicker chart loading We’re continuing to improve the load speed of our analytics charts with Conversions receiving the long-awaited upgrade. Following thorough refactoring, the chart now loads approximately 20 times faster than before – a noticeable improvement that we're confident you'll appreciate. Refined incomplete data handling Our Conversion charts now highlight periods where data is incomplete, recalculating averages accordingly. Let's illustrate this with an example using the trial-to-paid conversion chart. Previously, you may have noticed the chart flatlining at zero during periods where there wasn't enough data to generate conversions. Additionally, these zero values skewed conversion rate calculations. For example, if your app has a trial of 3 days, you’d always see the conversion value as 0 for the most recent 3 days as well. Before the update Now, the chart clearly identifies these "incomplete" periods with dashed lines, excluding them from conversion rate calculations. After the update This refinement applies to all conversion metrics except for Install to Trial and Install to Paid. Conversion charts added to the Overview The Overview dashboard now features the most pertinent and popular conversion charts, providing you with immediate access to valuable insights. Here are the conversions now available for viewing: Install to Trial  Install to Paid Trial to Paid Regular email reports Another significant addition to the Overview dashboard is the introduction of recurrent email reporting. You can now receive daily, weekly, or monthly email reports for all your apps or select individual apps of interest.   An email report example Simply head to your account settings to customize your reporting preferences. You can also choose between receiving a summary report or detailed data for specific apps. The content, timezone, order, and revenue type in these email reports are tailored according to your Overview configuration. For more information on adjusting your reporting settings, refer to our documentation. Apple Search Ads attribution data is more reliable with our newest SDK Finally, a minor but impactful update concerns how Adapty handles Apple Search Ads (ASA) attribution. Previously, ASA attribution was collected on our SDK's side, but we've now transitioned to server-based collection. This change enhances data reliability and enables Adapty to gather more comprehensive attribution data. Be sure to update your SDK to the latest version to leverage these improvements effectively. --- More people than ever are now aware of the fact that their in-app data and activities could be monitored and used for marketing purposes. While some still choose to ignore it, many users now explicitly opt out of even using certain apps and social media services to avoid this. To address this concern, Apple introduced (and others followed) a dedicated privacy feature: App Tracking Transparency. In this short guide, we will explain what is the ATT prompt, what are its benefits and effects on app developers and marketers, and how you can still gain your users’ trust. Let’s get started. What is App Tracking Transparency? App Tracking Transparency (ATT) is a privacy feature designed to give users more control over their data and privacy. It was introduced in iOS 14 and requires apps to get permission before tracking their activities across other companies' apps and websites. With ATT, when users download or update an app on their Apple device, they are presented with a prompt asking if they permit the app to track their data for targeted advertising purposes. There, users can choose to allow or deny the tracking. Together with the rundown of data types collected and reasons for collecting them in the App Store, the feature enhances transparency and empowers users to make more informed decisions about their privacy and data usage.   How does App Tracking Transparency work? ATT framework requires apps to get the user's permission before tracking their activities across other companies' apps and websites for advertising or data brokers. Here's how it works: Technical Aspects: ATT centers around the use of an Identifier for Advertisers (IDFA), which is a unique identifier assigned to each device. Previously, apps could access this IDFA to track users across different apps and websites to target ads and measure ad effectiveness. With ATT, access to IDFA now depends on user approval. Developers must use the AppTrackingTransparency framework to request tracking permission. The framework provides a standardized API through which the app requests permission to track the user or to access their device's advertising identifier. Apps must also declare their tracking intentions in the App Store’s privacy section before submission. They need to outline what type of data they intend to track and for what purposes, which helps maintain transparency before the user even downloads the app.  User Interface Aspects: When a user first launches an app after installing it if the app intends to track the user across other apps and websites using IDFA or similar identifiers, it must present an ATT prompt. This prompt is standardized to ensure consistency across all apps. The prompt clearly states that the app would like permission to track the user across apps and websites owned by other companies. The message can include a brief explanation provided by the app developer about why they are requesting this permission. The users have two options. By choosing “Allow”, they agree to let the app track their activity using IDFA. The app can then access the identifier and use it as intended for ad targeting or measurement. If a user selects "Ask App Not to Track," the system restricts the app from accessing the IDFA. Apple also advises developers to respect this choice for any other forms of cross-app tracking. Once the choice is made, the apps must honor it. If the user decides later to change their tracking preferences, they can do so in the iOS settings under Privacy -> Tracking. Apple requires all apps that engage in what it considers "tracking" to use the ATT framework to request permission and correctly disclose all the data types and the purposes for its collection. Failure to comply can lead to app rejections during the review process or app removal from the App Store, so be sure to be transparent and straightforward. What are the uses of App Tracking Transparency (ATT)? For Users The key beneficiaries of this new policy are, of course, the users. They get: Control over data sharing: ATT allows users to decide whether they want their activity tracked across apps and websites and gives direct control over what data is provided to third parties. The choice to explicitly opt in or opt out of tracking empowers users and fosters a sense of control over their phones, building trust in the apps they use. Reduced unwanted tracking: By enabling users to deny tracking, ATT effectively reduces the amount of data collected about them without their explicit consent, protecting them from invasive data practices and hyper-targeted marketing campaigns. Clear disclosures: Now that apps must clearly state their tracking behavior and intentions, users understand how their data is being used and for what purposes before giving consent to it. Informed decision-making: With detailed information available through both the prompt and the app's description in the App Store, users can make more informed decisions about the apps they choose to download and the permissions they grant. For Developers That being said, app developers and publishers might also indirectly benefit from this feature: Less legal hustle: By following ATT guidelines, developers ensure compliance with global privacy laws and regulations, such as GDPR (for the EU) and CCPA (for California), which have set standards for user consent and data handling. This helps avoid legal complications that can arise from unauthorized data collection and misuse. Enhanced user trust: By respecting user decisions about data tracking, you can build stronger relationships with your audience, which can lead to higher engagement and loyalty. Showing a commitment to privacy can also improve the brand’s image and appeal to privacy-conscious consumers. Understanding true user engagement: When you can’t track user data for ads as much, you might better understand user engagement by directly interacting and getting feedback. Restrictions like ATT can push developers to be creative and engage users without relying too much on tracking data. Adapting to new advertising models: Similarly to innovating in user engagement, publishers and marketers might need to explore alternative advertising models that respect user privacy while still delivering... --- The Average Revenue Per Unit (ARPU) metric, which is often mistakenly used interchangeably with the Average Revenue Per User (also ARPU! ) metric, tells you the average revenue you make when you sell a unit or an in-app product. When properly analyzed, the Average Revenue Per Unit metric can reveal your most revenue-generating product. At Adapty, we’ve seen numerous customers leverage this data to realign their marketing strategies, optimize their spending, and ultimately increase their profitability in the long run, while also meeting their short-term goals and future-proofing their monetization models. So, let’s see what the Average Revenue Per Unit metric is, how it can be calculated for your in-app products, how it differs from your Average Revenue Per User metric and the many ways you can use it to grow your mobile app.   Here goes. What is Average Revenue Per Unit (ARPU)? The average revenue per unit metric gives you the average revenue you make from selling a “unit. ”  Here’s what this metric means for a mobile app business: Suppose you’ve got a subscription app with weekly, monthly, and annual plans. So, each of your plans is a product or a “unit. ” If you do an Average Revenue Per Unit analysis for all your products, you’ll easily see how much revenue you make when you sell a weekly, monthly, or annual plan. Comparing the revenue you make from your different plans shows you the profitability for each so you can make more informed decisions. For example, if your annual subscription brings you the most revenue but sees fewer sales than your weekly or monthly plan, you’d want to promote the sale of your yearly plan over the other options. Let’s now see how you can calculate your Average Revenue Per Unit metric for your in-app products.   How do you calculate Average Per Unit Revenue? To calculate your Average Revenue Per Unit metric, simply divide your revenue from the total sales of a unit for a period by the number of units sold: Average Revenue Per Unit = Total Revenue / Number of Units Sold If you generate $5,000 in revenue from selling 100 annual subscriptions, your ARPU for your yearly plan can be calculated as follows: ARPU = $5,000 / 100 = $50 That means, on average, you earn $50 from each annual subscription you sell. As you can see, ARPU is a valuable metric as it provides insights into the profitability of your different products (units). A few caveats to keep in mind when working with the Average Revenue Per Unit metric Zoom out for a better perspective.  In the example we just saw, we calculated the average revenue for the annual plan, which came out to be $50, meaning that you make $50 with the sale of each plan. Assuming this is a new user, this would be their first payment. If you truly want to understand the revenue potential of your annual plan, the ARPU metric alone may not suffice. You’d need to factor in the lifetime value for the annual user segment, too. Likewise, the ARPU for the monthly plan might be significantly lower than that of the annual plan on the surface level, but then the monthly plan is also priced lower, and you’d, again, need to factor retention into your calculations to get better insights.   It’s essential to consider promotional offers.  Subscription apps often push their higher-end plans with significant discounts on the first term. Such introductory offers can skew ARPU analysis, so factor those in. Watch out for trends.  As you reorganize your marketing and sales ops to promote your more profitable product(s), keep re-evaluating your ARPU. It can fluctuate as your spending changes and also due to external conditions impacting the volume of sales. Three key use cases for ARPU analysis for mobile app businesses  Redistributing user base for long-term growth One of the most important use cases for performing Average Revenue Per Unit analysis is to see if you’re getting more of your users to buy your most profitable products. For example, if your ARPU analysis shows that you make the most revenue from selling annual subscriptions, you should see what percentage of your paying users subscribe to them. If your users seem to prefer your monthly or weekly plans, you may want to prompt them to purchase your annual plan. When ABBYY, a business apps maker, saw that its annual plan was a winner when it came to revenue, it decided to pitch it aggressively over its monthly plans. Below, you can see how ABBY tested two versions of the paywall, with the second one going all out to make the annual plan a natural choice for subscribers. You can see how it uses a mix of a heavy discount offer, a free trial, and strong visual cues to get more users to choose the annual plan over the monthly plan. As a result of this experiment, users ended up selecting the yearly plan twice more often than the monthly option, increasing the revenue from annual subscriptions by 58. 5%. This same analysis can work for short-term growth, too. Sometimes, you may need to prioritize your immediate financial goals. For example, you may need to generate some quick capital to fuel your growth. If you’ve got a subscription app, one way to do this could be to pitch your annual offer with a heavy discount or maybe even launch a lifetime plan. If you do your ARPU analysis for all potential options, you'll already know how much revenue you’ll make from your sales. You might even just hike your price, offer a better discount, and still generate decent revenue per sale. Getting your product mix right (pricing-wise) Analyzing your Average Rate Per Unit metric also helps you get your product mix right. How? Performing Average Rate Per Unit analysis for all your products tells you your revenue potential for all, which means you can easily tell which one you should be selling more of. But sometimes, the price... --- People are spending 4 hours a day using different apps on their phones. Wouldn’t you like your app to be one of those? If you said yes, you’d want to dive into user stickiness. And if that sounds like a foreign word, it’s all the more reason for you to keep reading. User stickiness is one of the most critical aspects of app usage that can indicate the performance of your app and help you build success that is stable and sustainable. What it is, why it’s important, how to calculate it and what impacts user stickiness... we’ll discuss all of that today!   What is user stickiness? User stickiness refers to the degree to which users engage with an app or digital platform over time. It measures the frequency and depth of user interactions, indicating how well an app retains and engages its user base. And what exactly does it mean if your app is sticky?   A sticky app attracts users to:  Return regularly,  Spend more time within the app, and  Engage with its features or content consistently.   Now onto the real question here. Why is user stickiness important, and why should you keep your eye on it? Importance of user stickiness for your app marketing User stickiness plays a pivotal role in the success of app marketing strategies and much more. Here are 3 key reasons why user stickiness is important: Increases app growth User stickiness directly impacts app growth by contributing to customer acquisition and retention efforts. A sticky app attracts new users through positive word-of-mouth referrals and organic sharing by existing users.   Satisfied and engaged users are more likely to recommend the app to others, leading to increased downloads and installations. Additionally, user stickiness helps in retaining existing users over time, reducing churn rates and maximizing user lifetime value. Improves user engagement User stickiness is closely linked to user engagement, as it reflects the frequency and depth of user interactions with the app. A sticky app fosters a compelling user experience that keeps users coming back regularly to engage with its features, content, and community. Engaged users spend more time within the app, explore its functionalities, and interact with other users, leading to higher levels of satisfaction and loyalty.   Fosters a loyal user base A sticky app cultivates a sense of loyalty and attachment among users, who feel invested in the app and its community. Loyal users are more likely to continue using the app regularly, advocate for it to others, and provide valuable customer feedback and insights for improvement.   Moreover, a loyal user base serves as a foundation for sustainable growth and profitability, as it generates recurring revenue through in-app purchases, subscriptions, or advertising.   User stickiness vs user retention While user stickiness and user retention are related concepts, they measure different aspects of user behavior. User stickiness refers to how often users engage with an app or platform over time, indicating the level of ongoing user engagement. In the table comprised below, I’ve gathered all the main differences between user retention and user stickiness that you should know of: User StickinessUser RetentionMeasures the frequency and depth of user interactions over timeMeasures the percentage of users who return to the app after their initial visit or installationIndicates the level of ongoing user engagementReflects the app's ability to retain users over timeCalculated based on metrics such as daily active users, session duration, and stickiness ratio. Calculated as the percentage of users who remain active within a specified time periodFocuses on how often users engage with the appFocuses on the overall percentage of returning usersProvides insights into the app's ability to maintain a loyal and active user baseHelps identify factors influencing user retention and effectiveness of retention strategies Difference between churn and stickiness Churn rate and stickiness are complementary metrics that offer insights into user behavior from different perspectives. But don’t be fooled because they’re not the same! Here are some main differences between user stickiness and user retention: User StickinessChurn RateMeasures user engagement and retentionMeasures user attrition over timeIs based on the frequency and depth of user interactionsPercentage of users lostAssessed continuously or at regular intervalsTypically measured monthlyHigh stickiness reflects strong engagement and retentionHigh churn indicates user lossReflects the app’s ability to retain and engage usersIdentifies issues affecting user retention How to measure user stickiness? Imagine user stickiness as a large umbrella. Underneath this umbrella are different varieties of metrics, logic and approaches. So measuring the customer stickiness is spanned out to multiple ratios and metrics! In this part of the blog, I want to talk to you all about understanding these metrics. And if you’re not sure how you can gather these analytics, Adapty can help. Trusted by over 7,000 apps like Genesis and Bumble, Adapty provides real-time insights to you about your app’s performance.   1. Daily Active Users (DAU) Daily Active Users (DAU) is the number of unique users engaging with the app on a daily basis. For example, if your app has been installed 10,000 times and out of them, 4,000 users are interacting with it regularly, your DAU will be 4,000. And as you can probably tell, this metric is instrumental in measuring daily user engagement levels, reflecting how frequently users interact with the app. It shows a reflection of user engagement as well as the experience they’re having. A high DAU indicates strong product stickiness, suggesting that users find the app valuable enough to return to it regularly, which is essential for maintaining a loyal user base and driving consistent engagement.   2. Monthly Active Users (MAU) Let’s carry the same example to understand MAU now. Consider your app has 4,000 daily users consistently— multiply that by 30 days of the month. That’s your Monthly Active Users (MAU)! Monthly Active Users (MAU) count the number of unique users engaging with the app within a monthly period. MAU provides a broader view of user engagement over time, offering insights into the overall size and stability of... --- If you have a subscription app on iOS, App Store Connect is probably one of your most visited pages — after the Adapty blog, of course ? . This official Apple service has a plethora of possibilities, features, and data points, that make managing your app almost as important as actually developing it. Setting everything up for the first time might be a hustle, but the information you get in return is invaluable for the long-term success of your app. Given the importance of the tool, we developed a thorough guide that explains it in detail. We wrote this mostly for publishers and marketers: those who deal mostly with the app’s presentation and performance rather than the code itself and whose actions influence their app’s profits as much. The guide is quite long. Make sure to save this article in your bookmarks so you can refer to it when necessary. Let’s go! What is App Store Connect App Store Connect is a platform provided by Apple that allows developers to submit and manage their apps on the Apple App Store. Developers can use App Store Connect to upload their apps, view analytics and sales data, manage in-app purchases, and more. It is a central hub for developers to manage all aspects of their apps on the App Store. To access App Store Connect, go to https://appstoreconnect. apple. com and sign in with your Apple ID and password. To access the dashboard, you need to be enrolled in the Apple Developers program, and to see your app’s data, you need to be a part of your company team.   Once logged in, you can utilize the platform’s array of tools and resources for managing your apps, such as app analytics, sales data, and app submissions. Don’t worry if you do not see all the features at once: their availability depends on your role in the company (developer, publisher, marketing, finance), which we will discuss a bit later. Now that we are in, let’s look at this comprehensive tool part by part. App Store Connect: the main dashboard The main dashboard of App Store Connect serves as the central hub for marketers and publishers. It offers a streamlined overview of your app's status and activities on the App Store. The first screen you see after you’ve logged in is the dashboard, which already should provide you with the most relevant data points and trends about your app. The dashboard layout is designed for efficiency, with sections dedicated to different aspects of app management. Key information displayed includes the current status of each app, such as whether it's in review, ready for sale, or requires attention due to issues like submission errors or compliance notifications. Recent notifications are prominently displayed, alerting developers to any actions they need to take or updates they should be aware of. On the main screen, you can also find the overall app performance metrics. This includes data on app downloads, revenue, user engagement, and feedback through ratings and reviews. These metrics help you to understand how their app is performing in real time and enable you to make informed decisions on marketing strategies, feature updates, and App Store optimization.   On the top, you will see six key parts of the App Store Connect. Here they are: My Apps In this part, you can find all the apps you have published on the App Store. Each app is displayed with essential information such as the app name, app icon, bundle ID, app version, and current app status. You can dive deeper into each app to access detailed analytics and performance data, including download and revenue numbers, active devices, user engagement metrics, and more. This data can help you track your app’s success and identify areas for improvement. This section of the App Store Connect is also where you can manage app versions and updates by submitting new versions for review, setting release dates, and managing app metadata such as descriptions, screenshots, and keywords. This allows you to keep your app content fresh and relevant for users. You can also respond to customer reviews and engage with users to address feedback or issues related to your app. App Analytics The App Analytics section of App Store Connect stores valuable insights about the performance of your apps. Here you can track key metrics such as app downloads, app store views, installs, and in-app purchases. You can also monitor user engagement and retention rates to gain a better understanding of how users are interacting with their app over time. With these metrics, marketers, and publishers can make data-driven decisions to optimize their app's performance and user experience. This section also allows you to create custom reports with specific data points, if you are looking to gain deeper insights into certain aspects of an app's performance. You can segment users based on various criteria such as demographics, location, or device type to identify trends and patterns that can inform their marketing and product development strategies.   Sales and Trends In the "Sales and Trends" part, you can find a financial overview of your app's performance on the App Store. Developers can track their earnings from app sales, in-app purchases, and subscriptions, with detailed reports on revenue trends over different periods. This section provides a breakdown of sales and downloads by region, allowing developers to understand their app's global reach and identify key markets. Information on promotional efforts, such as the effectiveness of marketing campaigns or price adjustments, can also be gleaned from this data.   Unlike Analytics, this section focuses only on financial insights. For example, if you have an app that offers auto-renewable subscriptions, you can easily assess its business performance by examining subscription data on the summary, retention and churn rates, state, and event pages. Better yet, you can access this data in your Adapty dashboard: it connects directly to the App Store Connect, ensuring 99. 99% accuracy, and links financial performance to specific paywalls or A/B tests you have... --- Check out Adapty March updates: Remote Config got many JSON improvements, the Stripe integration is now free, iOS SDK now supports visionOS, and more. March was a busy time for the Adapty team in terms of preparation for major updates and improvements that are going to be released later this spring. Nevertheless, this month we released some helpful updates and even published a fresh case study on migration to Adapty from a competitor's solution. So check out what was new with Adapty in March and stay tuned for bigger updates in the following months! The Stripe integration is available on the Free plan One of the main updates of the month is the Stripe integration becoming available for everyone using Adapty, even on the Free plan. Check out our previous post to see what this integration is about or dive right into the docs to learn how you can connect Stripe to Adapty right now. Remote config UI/UX updates We keep on making the interface of Adapty more convenient and user-friendly for everyone. This time we focused on enhancing the remote config feature, which received a handful of updates. Here’s what was added: Auto-completing strings and dictionaries (e. g. symbols like {, , "). Auto-indentation for nested objects (e. g. when you type { and press Enter, you not only switch to the next string but also add a new indent before the cursor). Object and array folding is now available. The keys are no longer sorted alphabetically. Before, the key ordering in the final JSON file could differ from the order in the remote config field. The daily view limit increased  The capabilities of our analytics dashboards allow for advanced filtering, including setting custom date ranges. Many of our customers prefer using segmentation by Day to see the most detailed graph for the selected date range. Due to the popularity of this segmentation method, we decided to double the limit of the days that can be viewed at once from 92 to 184. So now you can view how this or that metric changed from day to day for up to 6 months. Vision OS and StoreKit 2 support for iOS SDK We’re continuing to update and improve our SDKs for every platform. The new version of iOS SDK (2. 10. 0) can now boast even more profound support of StoreKit 2, as we’re steadily moving away from supporting StoreKit 1. Two important things need to be pointed out: The storeKit2Usage parameter has been removed from the . activate method.   Adapty SDK now utilizes the StoreKit 2 method for introductory offer eligibility checks if available. Another awesome news is that Adapty SDK for iOS now supports visonOS! This functionality is currently in beta, but you can already try it out with your visonOS apps and leave your feedback for future improvements. Courtesy of Apple New case study on migration to Adapty We’re planning to dedicate this year to covering more interesting and helpful cases of our clients growing and achieving new heights with Adapty. To start off, we’re sharing a story of Impala Studios who decided to migrate to Adapty from a competitor’s solution they weren’t satisfied with. Learn about their reasons for migration, how the whole process was handled by the Adapty team, and which results the Impala team managed to achieve after integrating Adapty. Check the case study here. --- What happens if your friend sends you a link on iMessage and you click it? The app opens right? Well, what if you don’t have that app downloaded to your phone? Can you never see whatever was on the other side?   Nope, we have deferred deep links now! Unlike standard deep links, deferred deep links are one level up, allowing you to view content later even if you don’t have the app yet. From an app developer’s point of view, it’s a superpower to increase engagement, user acquisition, and ultimately... profits! So in this blog, let’s delve into what deferred deep linking means, why they’re important, and how they work. But we’ll also track down some case examples on how you can use deep links in your mobile app and top it all off with a few best practices to never miss out on. Ready to learn everything about deep linking?   What is deferred deep linking? Deferred deep linking is a marketing technology that directs users to specific content within a mobile app, even if it’s not installed on their device. Present in both iOS and Android devices, these links act to increase user acquisition and are often part of an app’s marketing strategy.   While standard and regular deeplinks require the app to be already installed on the device to work, deferred deep links don’t. Instead, these deep links intelligently wait for the app to be installed on the user’s device before taking the action.   And that’s exactly why you should know how you can implement deferred deep links for your mobile app marketing plans! Why are deferred deep links important? Of course, one of the first questions you’ll naturally have is about why deep linking is important in the first place. Here are 3 critical reasons why almost every successful app is enriching its marketing strategy with deep linking now:  1. Improved user experience Deferred deep links allow users to seamlessly transition from a web link or advertisement to specific content within an app, bypassing any generic welcome pages or sign-up screens. I don't know about you, but I’ve never been a fan of those screens! This reduces friction in the user journey, making it easier for users to access the content they are interested in directly. A smoother user experience increases satisfaction and encourages repeat usage of the app. 2. A data-focused marketing tactic Deferred deep links are a powerful tool for app marketers as they allow for precise targeting and tracking of user interactions. Marketers can create personalized campaigns with deep links that direct users to specific content or promotional offers, enabling them to measure the effectiveness of their marketing efforts accurately.   Plus, when you analyze the performance metrics of deferred deep links, you can make data-driven decisions to optimize your campaigns for better results and ROI! 3. Increased app installs  What do we want? Increased app installs! How can we do that? By letting deep links provide direct access to relevant app content to potential users! This math is super simple but let me explain this regardless... When users are directed to specific content that aligns with their interests or needs, they are more likely to download the app to explore further or access additional features. This targeted approach to app promotion enhances conversion rates and boosts overall app installs. How does deferred deep linking work? Deferred deep linking operates through a series of technical processes to seamlessly direct users from a link to specific content within an app, even if the app is not installed. Here's how it typically works: When a user clicks on a deferred deep link, the URL contains metadata that identifies the specific page or content within the app that the user intends to access. The link routing mechanism detects whether the target app is installed on the user's device. If the app is installed, it can directly open the appropriate content within the app. However, if the app is not installed, the routing mechanism redirects the user to the appropriate app store to download and install the app. Since the app is not installed at the time of clicking the link, the deep linking process is deferred until after the app installation is complete. Information about the original link and its intended destination is stored temporarily, often through a combination of technologies such as cookies, device identifiers, or cloud-based services. The user proceeds to download and install the app from the app store. Once the installation is complete, the user may open the app for the first time. Upon opening the app, the app initialization process checks for any stored information related to deferred deep links, such as the content that should open once the app is installed. The app retrieves the stored information about the deferred deep link and attributes the installation source to the user's interaction with the original link.   With the information from the deferred deep link, the app successfully navigates the user to the specific location or content! Deferred deep linking use cases It might take a lot of work to figure out just how to use deferred deep linking in your mobile app. And you won’t be alone in that. It takes a long time to figure out the right deep linking strategy if you’re only looking inwards.   But I’ll make this solve easy for you and delve into 6 common deferred deep linking use cases that you can easily implement into your mobile app today. Grab your notebook for some notes— or just bookmark this page for future reference! Referrals Referrals are one of the strongest marketing tools that can boost your results, no matter what you’re marketing. All you need is a good amount of “word-of-mouth” recommendations! Similarly, a mobile app marketing strategy almost always does well with a referral strategy at play. And yes, you can and should be using deferred deep links in this part of your marketing.   When existing app users share... --- Flutter and React Native are two of the most popular cross-platform mobile app development frameworks.   Backed by Google and Meta, these open-source frameworks let you use a single codebase to deliver native app experiences across Android, iOS, and the web ecosystems. By letting you reuse your code across your different app environments, they reduce your development costs. They also let you ship new features more quickly to all your target platforms as they need less coding than native app development. As a result, your ongoing maintenance reduces, too.   But which is the better platform between Flutter and React Native? There are several considerations when choosing between Flutter and React Native for building a cross-platform app. In this guide, we'll explore these in detail. But first, here are quick overviews of both the frameworks. What is Flutter? Launched in 2017, Google's open-source multiplatform mobile app development framework, Flutter, wants to enable you “to deliver high-performance apps that feel natural on different platforms, embracing differences where they exist while sharing as much code as possible. ” Flutter has come a long way to become the cross-platform framework of choice for developers who want to build apps that feel native everywhere: On phones (even foldable phones! ) running any OS (Android or iOS) Across the web (inside any browser and even when it's cast to a large HD TV monitor) On desktops running any OS (Windows, MacOS, or Linux) Because Flutter is a multiplatform framework, you only need to write a single codebase, and delivering native app experiences across all these ecosystems becomes possible directly from it. However, because as a mobile app maker, Android and iOS are two of your most essential target platforms, Flutter offers built-in support for both Material and Cupertino design systems. The keyword when talking about the Flutter Framework is "adaptive. " Flutter lets you build apps that adapt to any device they’re accessed on. From publishers like the New York Times to eCommerce giants like Alibaba and SaaS businesses like Square, all kinds of companies use Flutter to power their apps. While over a million apps use Google’s Flutter framework, Google’s own Google Pay app might just be the framework’s most popular app.   What is React Native? Launched in 2015, React Native is Facebook's open-source multiplatform app development framework. It was built on top of its React project to help deliver native app experiences on iOS and Android devices using a single codebase. React Native is the second most widely used cross-platform development Framework after Flutter.   Like Flutter, you can use React Native to deliver apps that feel natural on a host of ecosystems (mobiles, desktops, and the web). While Flutter has grown in popularity in the past few years, React Native has maintained its hold too. In fact, the React Native community is excited about the framework’s much-awaited “New Architecture. ” Currently available experimentally, this update has the framework moving away from its legacy bridge-based way of working to a more modern bridgeless mode. Facebook uses React Native to power parts of its mobile app. Like Flutter, React Native is popular in all kinds of industries. Everyone from etailers like Amazon and Flipkart to consumer apps and tech businesses like Microsoft uses React Native to power their cross-platform apps. Let’s now see how Flutter and React Native compare in different areas, such as their programming languages, approaches to UI, ease of learning and adoption, performance, security, and more, so you can choose the best option for your project. Flutter vs. React Native Programming Languages React Native uses Javascript, a language that all mobile developers are familiar with and love. Familiarity with Javascript has, in fact, been one of the main drivers pushing React Native’s adoption for cross-platform apps.   Flutter, in contrast, uses Dart – a programming language from Google. Many developers considering the Flutter framework see learning and using Dart as a challenge. However, learning Dart is more accessible than most realize, as Dart is similar to C# and Java.   Google went with Dart for Flutter because it wanted a language that could deliver high performance. And Dart is designed for performance with features like strong typing. Also, Dart is a compiled language in contrast to Javascript, which is an interpreted language, meaning Dart will generally outperform Javascript every time in performance parameters like speed. By the way both iOS and Android support compiled languages (Swift and Kotlin, respectively) as their official languages for reasons like speed and performance. Ease of learning Javascript is ubiquitous, and that reflects when mobile teams choose their cross-platform framework. For example, suppose you’ve got a team of expert Javascript developers onboard and want to migrate to a cross-platform framework. In that case, you might just go with React Native. You have all the expertise you need. Also, if you’re familiar with Javascript, you’re familiar with the entire ecosystem of frameworks, libraries, SDKs, and other stuff that works seamlessly with it. This means building a native app by tapping the Javascript ecosystem is already easy for you. Choosing Flutter would mean investing time and resources in learning Dart. When Google decided to try Flutter for its Google Pay app, it had to make more hires in addition to retraining its engineers. Also, because Flutter doesn’t come with a rich ecosystem like Javascript, you might also need time for building workarounds when you fail to find ready-to-use stuff. So, there’s a learning phase here. That said, this process should be expedited if you can find the right building blocks for your app in the Flutter ecosystem. Cross Platform-ness UI rendering To a large extent, UI rendering determines whether your cross-platform app feels native on your target platforms. Both React Native and Flutter do well here.   With React Native's bridge architecture, an app's Javascript code runs in a separate Javascript engine and communicates with a native platform's components over a bridge (a sort of a communication layer). React Native uses this bridge architecture to use native... --- We’ve analyzed the new App Store terms for the EU and found out which conditions will be the most profitable for the EU developers. January 25, 2024, unexpectedly became a historic day for the mobile community as Apple announced numerous (and long-awaited) updates to iOS, Safari, and the App Store in the European Union. The long list of updates is caused by Apple having to comply with the DMA induced by the European Union. The changes are mainly aimed at developers finally getting new options for app distribution and payment processing in the EU. The number of changes and new conditions may seem overwhelming, so we’ve analyzed the new terms, paying attention to the most significant peculiarities, and found out which conditions will be the most profitable for the EU developers. Alternative marketplaces for iOS One of the main changes for the EU is the possibility of creating and using alternative app marketplaces for distributing iOS apps. Apple introduces a new framework and APIs for creating alternative stores to be used by marketplace developers (a brand-new role), as well as new APIs and tools for app developers who may want to publish their apps on such marketplaces.   It seems kind of too nice of Apple to release all the frameworks and tools that are needed to create direct competitors to the App Store and it fairly is too good to be true. According to Apple, the new possibilities create new risks for the EU users that Apple cannot be responsible for, nor cannot eliminate them. So the only way out is to reduce them, i. e. have control of the whole process.   Here’s what alternative app stores and app developers willing to publish apps there will have to deal with:  iOS app Notarisation – an obligatory review applicable to all apps, regardless of their distribution channels, emphasizing platform integrity and user protection. Notarization implies both automated checks and human reviews. App installation sheets that leverage data from the Notarization process, offering concise app descriptions, developer details, screenshots, and other vital information for users to review before downloading. Authorization for marketplace developers – which means they must be approved by Apple and meet certain requirements. Additional malware protection that prevents the launch of iOS apps containing malware after installation on a user's device. Sheet for alternative payments So to cut a long story short – you can create and use alternative stores but they must be approved and moderated by Apple. As the icing on the cake, Apple stresses that due to safety concerns, App Tracking Transparency will continue to work even with apps distributed outside of the App Store, which is a huge letdown for the marketing community. And of course, all the App Store features like Family Sharing and Ask to Buy will not be compatible with apps installed from alternative stores. And in case you still plan to build your own indie store with iOS apps – take a look at the full list of requirements to qualify as a marketplace developer (spoiler: it requires €1,000,000 in your bank account).   Important notes for future users of alt stores: You won’t be able to install an alternative market outside the EU. If you use an alternative store and decide to leave the territory of the EU, your apps will stop receiving updates 30 days later. You’ll still be able to use and manage your installed apps, but to update them or install new ones, you’ll have to go back to the EU. The apps installed from an alt market may stop functioning if you delete the store app or it ceases to operate in general. App Store third-party payment options The developers are finally given opportunities to use different payment service providers (PSPs) within their apps to process payments for digital goods and services. They’re also given new options for processing payments via link-out (completing transactions on an external website) with the possibility to promote discounts and special offers available outside their apps. Such freedom of course comes with a few unpleasant necessities app developers have to abide by due to safety concerns: App Store pages of such apps must have labels informing users that the app uses alternative payment processing. The app must have a special in-app disclosure sheet to let the user know they are being redirected to transact with an alternative payment processor and not Apple. The developers must accurately communicate that the app uses alternative payment methods when submitting the app for review. As in the case of the alternative stores, alternative payment methods do not support the aforementioned Family Sharing, Ask to Buy, and other App Store-only features. The same goes for refunds and customer support. Moreover, dealing with third-party external payment processors requires users to use their credit card, which can be not as safe as purchasing directly from the App Store. If all the mentioned shortcomings don’t scare you off and you still think you can gain the advantage in the field of external payments, get ready for the biggest downfall that comes with the new business terms you need to consent to use such payments.   New business terms for app developers in the EU This is the trick no one’s been prepared for. To use all the aforementioned innovations, the app developer needs to agree to new business terms applicable only to the EU region. The emphasis in these terms is put on the fact that Apple, being a kind provider of alternative stores and alternative payment methods, still needs to keep on creating the best in the world mobile infrastructure, regardless of which channels and payments iOS users utilize. That’s why, using new technologies requires fees and commissions paid by app developers.   The commission for purchasing any digital goods and services in iOS apps on the App Store will be reduced to either 10 percent (for most developers and subscriptions following their first year) or 17 percent. However, using the App Store’s processing will require you to pay an additional 3 percent Payment processing fee. Such an approach encourages developers to use third-party payment service providers or link users... --- Customer Lifetime Value (LTV) is one of the key metrics you should know if you want your app to grow strong and last long. It's not just about making quick money; it's about building lasting relationships with your customers. LTV shows how much a customer will spend with your product over time — and how much you will learn. Of course, knowing the metric is one thing. Making sure it constantly grows is a completely different skill. In this guide, we go through the nitty-gritty of the LTV for SaaS products in general and subscription apps in particular: how to calculate it, how to benchmark it, and how to grow it. We hope to arm you with actionable insights and inspire you to work on your product. Let’s get started!   Customer Lifetime Value (LTV) Customer Lifetime Value (sometimes abbreviated as CLV, but LTV is a more common term) is all about how much money a business will make from a customer over time. It's not just about one sale or subscription but the total cash a customer brings in while they are with your product: from the registration to the day they delete the account. It's important to look at how long customers stay and how much they pay during that time. Aiming for long-term relationships means focusing on good customer experiences and constant improvements. Happy customers stay longer, meaning more money for the business. That’s why in most companies, LTV guides decisions on how to make the product better, where to spend money on marketing, and what keeps the customers around (or makes them leave and stop spending). Knowing this crucial metric helps you spend money wisely, making sure you're investing in things that keep customers paying. For Software as a Service (SaaS) companies (and that’s what subscription apps are to the end customers, essentially), knowing their LTV helps see the big picture. It's not enough to just get new customers; keeping the existing ones engaged and returning to the app is key. Unlike traditional sales models, where a product's value is realized in a single transaction, SaaS models thrive on ongoing subscriptions and customer engagement over time. LTV shines a spotlight on the long-term value of each customer, measuring not just what they spend today, but what they will contribute financially throughout their relationship with the service. Why is LTV important for subscription apps? Understanding LTV for subscription apps helps publishers grasp the true value of their customers beyond the initial sign-up or monthly subscription fee. It encourages companies to focus on long-term customer satisfaction, product improvement, and service excellence. And this long-term perspective is the key: retaining a customer in a subscription model is often more cost-effective than acquiring a new one. High LTV signals a healthy, sustainable business model where customers find continuous value in the service, leading to ongoing revenue streams. Lifetime value should also inform strategic decisions regarding your app. For instance, if analysis shows that improving customer support or adding certain features can significantly increase LTV, developers can allocate resources more effectively to these areas. By focusing on increasing the lifetime value of each customer, developers can ensure a steady income flow and invest in future expansion with greater confidence. This emphasis on customer retention over mere acquisition helps build a loyal customer base, which is crucial for long-term success in the competitive app marketplace. That’s why LTV is not just another industry metric; it's a guiding principle. It underscores the importance of viewing customers as long-term partners rather than one-time buyers. In a business model reliant on subscriptions and customer loyalty, understanding and optimizing LTV is fundamental to nurturing customer relationships, making informed strategic decisions, and achieving sustainable growth. What metrics do you need for LTV? Calculating LTV for a subscription app setting involves several key metrics. Tracking them is important in itself, precisely because they can signal important changes in LTV. Average Revenue Per User (ARPU) calculates the average amount of revenue each customer contributes over a specific period. You can find this metric by dividing the total revenue by the number of customers in a certain period — say, a quarter or a year. ARPU is critical for LTV because it provides a baseline for understanding how much revenue, on average, a customer brings in. For subscription apps, of course, it will probably be close to the average subscription price minus the store fees. Customer Lifetime (CLT) measures the average time a customer continues to subscribe and pay for your SaaS product. This metric can vary significantly between businesses and is influenced by how well your business retains customers. It's calculated based on the average tenure of a customer before they churn. Customer Churn Rate shows the share of the customers who cancel their subscriptions: essentially, 1 – Retention Rate. This metric is vital for calculating LTV because it directly impacts the customer's lifetime: the lower the churn rate, the more time an average user will spend with the app, which increases their lifetime value. The metric is calculated as a percentage: just divide the number of customers lost during a certain period by the total number of customers you had at the start of the period and multiply by 100%. Customer Acquisition Cost (CAC) stands for the all-encompassing cost of getting a new customer, with marketing and sales expenses included. While not directly used in the basic LTV calculation, it's essential for understanding the profitability of a customer. Ideally, the LTV should be significantly higher than the CAC for a business to be sustainable. Discount Rate. In more advanced LTV calculations, especially those that take into account future revenues, a discount rate is applied to account for the time value of money. This is particularly relevant for subscription apps with high upfront costs or investments in customer acquisition and less frequent (for example, annual) recurring revenue. The discount rate (often the inflation rate, or its derivative of some kind) converts future revenue into present value, providing a more... --- When measuring your mobile app's performance, many metrics like your conversion rates, retention rates, and monthly active users are best-measured month-over-month.   Tracking these metrics monthly and comparing their performance month over month helps you tie the changes you see to the things you tried during those periods and understand what's working. If something seems to work, you can see if it's repeatable and can help you secure immediate short-term wins. Averaging these metrics' month-over-month performance over a reasonable timeline also enables you to understand how your app is growing and set reasonable growth goals (and accurate projections). In the long term, month-over-month growth trends can help you adapt your strategy and ensure sustainable growth. All in all, month-over-month growth analysis is essential for both your mobile app's short-term and long-term performance. In today's primer on month-over-month growth for mobile apps, we'll see what month-on-month growth is for a mobile app and how you can calculate it. We’ll also see the common errors that creep into month-over-month analysis and how to avoid them. And more. Here goes. What is the month-over-month growth rate? The month-over-month growth rate for a metric is how it changes (increases or decreases) from one month to the following. Month-over-month growth rates can be calculated for various metrics across the different mobile app marketing funnel stages, like user base from the user acquisition and revenue from the conversion stage to churn or active user base from the retention stage.   Benefits of month-over-month growth metrics MoM growth analysis works great for managing short-term growth When you want to grow your mobile app, especially if it's new, you need to work on multiple channels, from ASO and PR to referral marketing. Many of these strategies produce immediate results, for instance, paid ads. When you track your month-on-month metrics, you can easily tie your growth to your sales and marketing ops. Knowing what works for you can help you sustain your business, at least in the short term. This is especially true when you measure your returns against the investment you make – for instance, looking at user acquisition while monitoring your acquisition costs. Month-over-month analysis is a handy tool here. MoM growth analysis enables agility  Month-over-month growth rate analysis enables agile decision-making. So you can fine-tune your sales and marketing tops and see their impact almost immediately, in just a month. This means you don’t keep doing things with low returns.   MoM growth analysis can work great for securing long-term growth When done right, month-on-month analytics can help you identify trends, make adjustments, and continuously improve your strategies for sustainable growth. Additionally, by closely monitoring your spending and returns, you can make informed decisions and build a complete growth engine to get you compounding growth.   How to calculate month-over-month growth rate (MoM) To calculate your MoM growth rate for a metric, take the metric's value for the current month, subtract it from the value for the same metric from the previous month, and divide the difference by the last month’s value. MoM is expressed as a percent, making the formula for month-over-month growth rate as this:  MoM growth rate=((Current month's value of a metric−Previous month's value of the same metric)/The previous month's value of the metric) ×100  For example, if you reported adding 500 users in January and 750 in February, your month-over-month growth rate will be calculated as ((750-500)/500)*100, which comes out to be 50%. Now, let’s say you only managed to have 500 users in March after reporting 750 in February. In this case, your month-over-month growth rate comes out to be -33% (((500-750)/750)*100). This is “negative” growth. Finally, let’s assume you added 650 users in April after bringing in 500 users in March. So, in this case, you’re looking at a month-over-month growth rate of 30% (((650-500)/500)*100). These calculations show a few caveats when calculating month-over-month metrics.   Common caveats when working with month-over-month growth rates Month-over-month metrics can fluctuate – a lot As we just saw in the above example, month-over-month metrics can fluctuate a LOT.   Why? Let’s say you have a new app, and you’re pumping money into several different strategies each month. And that your successful mobile app PR in January gave you hundreds of new users. For February, you tried paid advertising, which underperformed. In March, you worked on your app store optimization and SEO, which didn’t, at least, immediately add any new users. While these experiments across different channels can tell you which ones to prioritize, the numbers they bring reflect directly in your month-over-month analysis and skew the entire analysis. Below you've Adapty reporting an app's installs over 11 months. As you can see, the metric tends to fluctuate a lot when seen from month to month: Month-over-month metrics may not make sense on a small scale. If you start with 500 users in January and manage to add 500 more in February, you’re looking at a 100% month-over-month growth rate (going from 500 users to a 1000 users). Calling this your month-over-month rate, even though it is so for this example for this period, would be incorrect. This commonly happens when you're dealing with small numbers. Archana Madhavan from Amplitude explains this well: “Huge MoM growth is much easier to achieve with smaller numbers. That means that it’s both easier to construct a narrative around your MoM growth for small numbers and harder to maintain that rate as your business grows. ” Here you've Adapty reporting some great new subscription acquisition for an app for its first month. However, the trend doesn't seem to hold when seen month-over-month and holds only for a very small window of a month: As we’ll see in just a bit, calculating average month-over-month growth rates helps with this, but only to an extent. Month-over-month metrics need the context of absolute numbers – almost always. Let’s say you calculate your month-over-month metrics for your app for an entire year, and it comes out to be a constant 25%. This... --- Have you ever come across an app without screenshot previews? No, nobody has! Submitting screenshots is a requirement when listing your app on the App Store. And the reason they’re compulsory is that screenshots are one of the main determinants when it comes to convincing users to download and use your app. Plus with over 2 million apps out there, it’s tough competition, and you have to stand out one way or the other.   So in this blog, we’re walking you through the App Store screenshot sizes and requirements in 2025. Over time, these requirements have changed, and it’s essential that you have the latest information about app store screenshot requirements! App Store screenshot sizes and dimensions for iOS Devices Luckily for app developers and marketers, Apple’s guidelines regarding app screenshots are fairly simple and to the point. Regardless of your device, you’re limited to only 10 screenshots per localized listing. So, you can have 10 different screenshots for a Spanish audience as compared to 10 screenshots for your English-speaking market! It’s not required that you use up all 10 screenshots since each app is different, but you should use as many slots as possible to convince potential users to download and use your app.   Another rule by Apple is that you’re only allowed to use images or videos captured from within your app. That means you can’t submit screenshots taken from external cameras or images that don’t actually appear within your app. This prevents any situations around clickbait, which serves users positively! Last but not least, Apple’s screenshot also must be in one of the three formats:  PNG, JPEG, or Video format. Now, let’s talk specifics about different Apple devices and their screenshot requirements:  iPhone screenshot sizes and requirements Apple officially reached a billion-user mark in 2020 and a large chunk of those users are iPhone owners. This makes the iPhone one of the largest demographics any app developer can target in the App Store. Here are the iPhone screenshot sizes and requirements: DeviceDevice SizePortrait ResolutionLandscape ResolutioniPhone 15 Pro MaxiPhone 15 Plus, iPhone 14 Pro Max6. 7 inch1290 x 2796 px 2796 x 1290 px iPhone 14 Plus, iPhone 13 Pro Max, iPhone 12 Pro Max,iPhone 11 Pro Max, iPhone 11, iPhone XS Max, iPhone XR6. 5 inch1284 x 2778 px 1242 x 2688 px2778 x 1284 px2688 x 1242 px iPhone 14 Pro6. 1 inch1179 x 2556 px 2556 x 1179 pxiPhone 14, iPhone 13 Pro, iPhone 13, iPhone 13 mini,iPhone 12 Pro, iPhone 12, iPhone 12 mini, iPhone 11 Pro,iPhone XS, iPhone X5. 8 inch1170 x 2532 px 1125 x 2436 px 1080 x 2340 px 2532 x 1170 px 2436 x 1125 px2340 x 1080 pxiPhone 8 Plus, iPhone 7 Plus, iPhone 6s Plus5. 5 inch 1242 x 2208 px2208 x 1242 pxiPhone SE (3rd gen & 2nd gen), iPhone 8, iPhone 7,iPhone 6s, iPhone 64. 7 inch750 x 1334 px1334 x 750 pxiPhone SE (1st gen)4 inch640 x 1096 px(without status bar)640 x 1136 px(with status bar)1136 x 600 px(without status bar)1136 x 640 px(with status bar)iPhone 4s3. 5 inch640 x 920 px(without status bar)640 x 960 px(with status bar)960 x 600 px(without status bar)960 x 640 px(with status bar) iPad screenshot sizes and guidelines Many apps in the App Store are targeted towards iPads, especially when it comes to productivity or entertainment apps. If that’s where your target audience resides, you’ll want to consider the following resolutions and guidelines for your app screenshots:  DeviceDevice SizePortrait ResolutionLandscape ResolutioniPad, iPad Mini9. 7 inch1536 x 2008 px (without status bar)1536 x 2048 px(with status bar)768 x 1004 px (without status bar)768 x 1024 px(with status bar)2048 x 1496 px(without status bar)2048 x 1536 px(with status bar)1024 x 748 px(without status bar)1024 x 768 px(with status bar)iPad (9th gen, 8th gen, 7th gen), iPad Pro, iPad Air10. 5 inch1668 x 2224 px2224 x 1668 pxiPad Pro, iPad Air (5th gen, 4th gen), iPad Mini (6th gen)11 inch1488 x 2266 px1668 x 2388 px1640 x 2360 px 2266 x 1488 px 2388 x 1668 px 2360 x 1640 px iPad Pro (4th gen, 3rd gen, 2nd gen)12. 9 inch2048 x 2732 px 2732 x 2048 px  Apple Watch screenshot sizes and dimensions Recently, there have been many apps that target Apple Watch users, especially when we look into the fitness niche. After all, the rise of smart health gadgets is on the rise and Apple Watch is a strong contender in that niche. Here are the screenshot sizes you’ll want to adhere to if you’re focusing on the Apple Watch: DeviceScreenshot SizeApple Watch Ultra410 x 502 px Apple Watch Series 8, Series 7396 x 484 px Apple Watch Series 6, Series 5, Series 4, and SE368 x 448 pxApple Watch Series 3312 x 390 px Mac screenshot sizes and requirements Last but not least, the Mac is one of the prevalent devices Apple offers and hence, it has its own range of screenshot sizes and requirements you must fulfill. It’s important to remember that the rules mentioned earlier in this blog still apply to all devices:  DeviceScreenshot SizeMac1280 x 800 pixels1440 x 900 pixels2560 x 1600 pixels2880 x 1800 pixels App preview video sizes and guidelines App Preview videos, allowed by Apple for app listings, aim to enhance user engagement. Apple provides clear guidelines regarding the format and specifications for these videos.   Developers can submit videos in either H. 264 or ProRes 422 (HQ only) formats, aligning with resolution recommendations similar to those for screenshots. The duration of the video should be between 15 and 25 seconds, and its file size should not exceed 500 MB. Each app listing can accommodate up to three videos, which can be either in portrait or landscape orientation. Depending on the video's orientation, it may replace the first screenshot on the product page or appear in the app store's search results.   For instance, portrait-oriented videos occupy the first position on the app listing, while landscape-oriented ones are visible in search results. Apple imposes restrictions on app preview videos, requiring them to be on-screen recordings. This means developers cannot... --- How many users could you acquire for your mobile app if you got $10,000 in funding? Or how much of your profits would you need to reinvest to grow your mobile app by a hundred users a month? Or simply, what does unit economics look like for your app?   Enter Customer acquisition cost (CAC) analysis. Customer acquisition cost - or the cost of acquiring a mobile app user - is a key marketing metric for user acquisition. Analyzing CAC tells you exactly how much money you spend to acquire an app user. While CAC is calculated primarily at the user level (for example, when a user installs your app, it's counted as an acquisition), it's common to calculate CAC for specific user actions, too, like purchases and in-app actions like registrations or in-app purchases. For example, in 2018-19, the average CAC for getting installs across both the app stores was $1. 75 ($3. 6 for iOS and $1. 22 for Android, respectively). However, the CAC for registration was $3. 52 ($7. 55 for iOS and $2. 17 for Android). And the same for securing an in-app purchase was a whopping $86. 61 ($77. 45 for iOS; 86. 72 for Android). We'll discuss these in detail in just a bit. But for now, note that knowing how much money you need to spend to get a user or get a user to do a specific action helps you set realistic user and revenue growth goals for your app.   So, let’s see what CAC exactly is, the different formulas used to calculate it, and the various levels at which CAC can be calculated. We'll also examine how CAC ties to LTV and why the CAC-LTV ratio is crucial to ensure app growth. Finally, we'll see what a CAC payback period is and why calculating it is essential for mobile apps.   Here goes. What is CAC? Acquiring mobile app users needs spending on a host of marketing and sales ops that work on the different stages of the mobile app conversion funnel. At the discovery stage, you need to spend on channels like ads or PR. Running ads or PR stories needs a good upfront investment. Once users land on your app store listings, your on-page optimization takes investment. You need to spend money on creating compelling copy, quality graphics, and pricing analysis, among other things. When users download your app, you need to invest in the engagement so they sign up for a trial, make in-app purchases, or stay subscribed (if it’s a subscription app). This means spending on solutions for onboarding and in-app messaging, among others. Said another way: Acquiring a mobile app user takes substantial investment. Importantly, the cost of acquisition doesn’t end with acquiring a user. Often, it adds up until a user performs a desired in-app action like making an in-app purchase. More on this in just a bit, but let's focus on all the spending leading up to the install for now. Unless you know how much money you need to acquire a user (across all these sales and marketing activities and more), you can’t calculate how much value they bring to your business. This is what the CAC metric helps decode. CAC is the total cost of acquiring an app user. This cost factors in all the marketing and sales expenses that go into getting them.   CAC gives you a complete picture of your user acquisition stage, money wise. Let’s now see how you can calculate your mobile app’s CAC before seeing why it’s so crucial. How to calculate customer acquisition cost The standard CAC formula This is the most basic formula for calculating CAC. Here, you take the sales and marketing budget/spend for a period and divide it by the number of new customers acquired during that specific period. For example, if you spent $1000 on your user acquisition sales and marketing efforts in January and acquired 100 users, your CAC becomes 1000/100=$10. So, you spent $10 on each user acquisition. The paid CAC formula When you invest in paid marketing campaigns, you should know which campaign worked the best for you. In these cases, you’d calculate your CAC at the campaign level. The paid CAC formula helps here. So if you spent $500 on an ad campaign in the App Store and acquired 50 users, your paid CAC becomes: 500/50=$10. The fully loaded CAC formula When you calculate CAC using its standard formula, you only consider budgets or spending. However, the real spend is often much higher. It includes not just the direct marketing and sales costs but also overheads, for example, in the form of employee salaries or investment in tools, among others. For example, if you consider the paid CAC calculation from above, you’ll see that it only factored in the actual ad spend ($500). It left out: Costs associated with the researching, copywriting, and designing that went into building the campaigns (in terms of employee salaries) Costs associated with tools used for running the campaigns or any other solutions you use in your mobile app sales/marketing tech stack Costs associated with any consultations/ that went into the campaigns You get the drift. Only when you add all these to your CAC calculations will you get your accurate and “real” cost of acquiring a user. The fully loaded CAC formula takes all these into account to give you a comprehensive estimate reflecting your direct and indirect costs of acquiring users. Why factoring in an app's monetization model is important for CAC calculations For free apps that don’t offer in-app purchases, CAC analysis is quite straightforward and ends with the install.   For paid apps that don’t offer in-app purchases–these are apps that come with a one-time fee paid upfront in the app store–CAC analysis works similarly. You just need to price your app higher than the CAC you estimate to run profitably. However, for 1) freemium apps, 2) premium apps with additional in-app purchases (often termed the “paymium”... --- This month we paid more attention to further enhancements of our Paywall Builder, expanded the prediction possibilities to be featured in paywall A/B testing, and improved a few minor things here and there. We’re back with more useful and demanded updates! This time we paid more attention to further enhancements of our Paywall Builder, expanded the prediction possibilities to be featured in paywall A/B testing, and improved a few minor things here and there. Enjoy! Paywall Builder updates We’ve been constantly adding new features and adjustments to our Paywall Builder, as we want it to be as convenient for you as possible. Lately, we added a few pleasant and effective features that had been demanded for a while. Let’s see how creating paywalls with the Paywall Builder can improve your working process even more. Close button delay The close button on the paywall can now be shown with a delay. Just enable the “Show after delay” toggle and you’re free to set the delay time and the fade-in duration for the button. It’s a fast way to improve your paywall conversions without the development hassle. If you want a perfect blend between a hard and a soft paywall – that’s your way to go.   Font styles and customization We significantly improved the way you can work with textual content. Now every text field on your paywall can feature the font of your choice, including custom ones. In addition, you can style the text by making it bold, italic, etc. We’ve added a drop-down menu where you can select one of the pre-installed fonts and set its style. There’s a general font menu on the Layout tab that applies the selected font to every textual element on the screen. In addition, every text field features its own menu of the same type, so that you can have different fonts and styles for different text pieces.   If you want to use a font that’s not featured in the list, simply click “Add custom font” and upload the font file via the pop-up window. You will also have to fill in a few fields regarding the font name so that iOS or Android systems can display it properly. Learn more in our docs. Custom tags Custom tags were added to provide a dynamic and personalized paywall experience to your users. Create a variable that can be substituted with a custom text depending on a certain criterion. For example, a tag can be used in the greeting text, to show the name of the user on the paywall (“Hello, David! ” instead of a simple “Hello! ”). Here’s what custom tags can be helpful for: To show the user's email/name. To display the current day of the week, which may help improve sales (as in “Happy Thursday“). To mention custom properties of the products you're selling (name of the personalized fitness program, phone number in the VoIP app, etc). Find more details and instructions on how to use the tags in our docs. Zoom and crop The Paywall Builder provides now more flexibility in terms of adjustment of a custom background image. When uploading a picture, you’ll be able to select the desired part you want to be displayed, by zooming in and cropping it. Faster and easier. Image localization A decent localization is more than just translating a text into another language. To properly adapt your paywall, you should bear in mind cultural differences, which may imply using more appropriate and appealing imagery for certain user segments. The paywall builder now gives you this opportunity by enabling you to upload (and crop) different background images for different locales. Make your localized paywalls not only read differently but also look. Purchase by tapping a product You may now enable the purchase flow to start once the user taps a product on your paywall. In general, the purchase flow starts when the user selects the desired product (if there are two or more of them) and then taps the CTA button. But in this case, the purchase window from the store will appear as soon as they just select a product. It’s a great way to experiment with the purchase conversion rate. A/B test prediction Last year we introduced an AI prediction model for LTV and revenue that effectively helps our clients predict the aforementioned metrics up to 12 months. Now we’re moving even further by expanding the prediction model to our paywall A/B testing tool to forecast the long-term revenue potential of compared paywalls.   The model takes around 2 weeks to accumulate the data and allows you to pick the winner faster and more reliably taking into account trials and prolongations. It is trained on comprehensive historical A/B test data from a variety of apps in different categories and is then fine-tuned for your particular app and its products. To provide the most precise results, it takes into account numerous features, like: Transactions and conversion rates over different periods User geographic distribution Platform (iOS or Android) Opt-out and refund rates Subscription products and their period lengths Other transaction-related data The predicted P2BB (Probability-to-be-the-best) relies on the projected revenue for the tested paywalls after a year, which helps in quicker and more reliable decision-making compared to relying solely on real-time metrics. In cases where it may contradict the usual P2BB metric, we advise sticking to the results shown by the prediction model, as it takes more data into account – but ultimately the final decision is up to you. Here’s more on how the prediction model works with A/B testing. New charts for the Overview dashboard We continue to enhance Overview – our fresh universal dashboard where you can see several main metrics for all of your apps. We added three more charts that you demanded:  ARPAS (Average revenue per active subscriber) ARPU (Average revenue per user) and Installs The best thing is that not only these charts were added to the Overview dashboard, but they also received a speed boost update along with the charts that had been updated last month. --- Universal links are a game-changing tool that effortlessly connects the web to your app. And not just the App Store page, but a specific screen inside the app, which makes the user journey smoother and your marketing funnel streamlined.   In this guide, we'll dive into what universal links are, how they work, and why they're a must-have for any app developer looking to provide a seamless experience between browsing the web and engaging with app content. Keep reading to discover how universal links can drastically improve the existing customer flow and positively influence your app’s revenue and profit. What are universal links? Universal links are URL-based connections that enable a direct and seamless bridge between web content and specific locations within an app. Unlike traditional methods that require users to navigate through a web page before reaching their destination within an app, universal links streamline this process, directly opening the app to the desired content if it is installed on the user's device. This technology leverages standard web URLs that, when tapped, are smart enough to decide whether to open a web page or the corresponding content within the app. Introduced in 2015, universal links have significantly enhanced the user experience by offering a more integrated and fluid transition between the web and apps. For instance, when a user clicks on a link in a promotional email, instead of being taken to a mobile web page, they are brought directly to that product's page within the e-commerce app, assuming the app is installed. This saves time and provides a more cohesive and engaging user journey, encouraging greater interaction with app content. Universal links make such experiences more intuitive, efficient, and user-friendly. How do universal links work in iOS? Universal links on the iOS platform involve a collaborative configuration between a website and an app to enable deep linking directly to content within the app. You can always head over to the Apple Developer website for a more detailed analysis and code examples, but we will explain the key elements below. The key component of this setup is the Apple App Site Association (AASA) file, which is essentially a JSON file hosted on the website's server. This file declares the website's association with the app, specifying which URLs (or parts of the website) should open in the app instead of a browser. Here’s a simplified overview of how it works: You as the app developer must configure the app to support universal links. This includes enabling associated domains within the app and specifying the domains in the app's entitlements file. The website hosting the content must have an AASA file at a specific path (/. well-known/apple-app-site-association). This file doesn't require any signature or specific headers, making it accessible for iOS to retrieve without issue. When a user taps a universal link, iOS checks if the corresponding app is installed. If so, iOS launches the app and directs the user to the linked content within the app. If the app is not installed, iOS falls back to opening the link in the user’s default web browser, displaying the web page instead. This mechanism ensures a smooth user experience by intelligently determining whether to open the app or a web page, enhancing the overall navigation flow between web and app content on iOS devices. You can find a more detailed breakdown and the contents of the JSON file on the Apple Developer website. The difference between deep links and universal links Deep links and universal links are both technologies designed to direct users to specific content within mobile apps. Still, they differ significantly in implementation and user experience. Traditional deep links utilize custom URL schemes (like myapp://section/content) to open apps directly to specific content. These schemes are unique to each app and require the app to be installed on the device for the link to work. If the app isn't installed, the link may not function at all, leading to a poor user experience since there's no automatic fallback to a web page. This system also lacks a standard verification process, potentially posing security risks if not carefully implemented. In contrast, universal links use standard HTTP or HTTPS URLs, the same types used for web pages. This approach offers a more integrated and secure method for linking to app content. Universal links are supported by a verification system through the Apple App Site Association (AASA) file, ensuring that only verified domains can open specific content in the app. This feature enhances security and improves user experience by providing a fallback mechanism. If the app is not installed, the link simply opens in a web browser, taking the user to the corresponding web page. Also, since they use standard web URLs, universal links can be shared and used outside the app, including in emails, social media, and other digital platforms. Here are the main advantages of universal links over deep links: Seamless Integration: universal links provide a more seamless transition between web and app content, improving the overall user experience. Enhanced Security: the verification process for associating apps with websites through the AASA file adds a layer of security not present in traditional deep linking. Fallback Mechanism: universal links automatically redirect users to a web page if the app is not installed, ensuring that the link always delivers valuable content. Shareability: because they use standard web URLs, universal links can be easily shared and accessed across different platforms and devices. While both deep links and universal links aim to improve navigation to specific app content, universal links offer a more user-friendly, secure, and integrated approach, leveraging the ubiquity and familiarity of standard web URLs. How to set up universal links for deep linking Step 1: Enable Associated Domains in Your App First, you need to enable the Associated Domains capability in your app. Open your project in Xcode, select your app's target, and then go to the "Signing & Capabilities" tab. Click the "+" icon to add a new capability and select "Associated... --- Is app store optimization (ASO) the same as search engine optimization (SEO)? Is app store optimization simply the term mobile app marketers use when they mean search engine optimization for mobile apps? In other words: Is ASO “SEO for mobile apps? ” Or do ASO and SEO differ? And if they’re different, and if you sell your app exclusively through Google Play or the App Store - like most apps - can you simply avoid SEO and invest all your resources in ASO? Both app store optimization and search engine optimization boost app discoverability, but they’re different digital marketing disciplines and apply to different ecosystems. While app store optimization applies to Google Play and the App Store, search engine optimization applies to search engines like Google and Bing. Both have their place in growing a mobile app. In today’s primer on app store optimization vs. search engine optimization, we’ll review their similarities and differences and see why and how both have their place in an app growth mix. Here goes. What is ASO? App store optimization is the process of optimizing a mobile app’s listing so that it gets more visibility in the app stores, resulting in more downloads (or purchases). Unlike forms of marketing like advertising, app store optimization focuses on organic visibility, so here, you don’t pay anything. Instead, the app stores automatically show you organically for relevant searches or in their different sections. Both app stores have their own ranking algorithms for showing apps in search results or in their other featured areas. While none of them share the elements their algorithms use for ranking or featuring, things like the presence of keywords in the app title or copy matter the most. App stores also consider factors like the number of downloads when deciding which apps to show. It’s also suspected that in-app purchase behavior is used too (probably because it indicates an app’s overall quality or value).   Finally, things like reviews and ratings directly impact app store rankings. App store optimization means working on all of these.   What is SEO? Search engine optimization is optimizing a mobile app’s website to get more visibility on search engines, resulting in more traffic to the website and eventually leading to more downloads (or purchases). Unlike forms of marketing like advertising, search engine optimization focuses on organic visibility, so here, again, you don’t pay anything.   Like the app stores, even search engines don’t share their ranking signals, but on-page SEO remains the most crucial. So, writing quality copy with keywords in places like a website’s title and URL matters.   App stores also consider backlinks when deciding which mobile app websites to show for a search. In fact, backlinks are the single most important off-page SEO factor. On-site behavior is considered too (via metrics like time on site). Finally, technical SEO-things like a website's speed, security, and performance - impact search engine rankings. Search engine optimization means working on all of these.   The differences between ASO and SEO A lot of people discover your app through search. So if you want to grow your mobile app, you need to optimize for search. However, not all searches for apps happen inside the app stores. A significant share of searches for apps happen on the web-outside the app stores.   When you talk about app store optimization, you’re dealing with app searches that happen inside the app stores: Google Play and the App Store. By itself, app store optimization can be enough to build and sustain an app's user base. Below, you’ve bullet journaling apps that are showing up for a relevant search inside the app store: When Android users perform searches for apps on their phones, not in the app stores but using their mobile browser, again, Google automatically shows them the same results as that from the app store at the top, followed by the other organic search results. Here’s a mobile search for the same keyphrase: Essentially, app store optimization is about securing such app store visibility. Search engine optimization, on the other hand, handles app searches that happen via search engines (Google or Bing, for example). Below, you’ve journaling apps showing up for the same search in Google. Again, while Google shows app store listings directly in the search results, the top result and several more on the first page also include mobile app websites: The similarities between ASO and SEO App store optimization makes your app more visible for app searches happening inside the app stores. Meanwhile, search engine optimization makes your app more visible for searches happening via search engines on the web-outside of the app store, in other words. So, while app store optimization and search engine optimization work in different ecosystems, both still work on app discoverability. Both app store optimization and search engine optimization are about enabling people to find your app through search. Zooming on how the different aspects of ASO and SEO work to see how they're similar and dissimilar ASO vs SEO: On-page optimization ASO When you talk about on-page optimization in the context of app store optimization, you’re essentially talking about your overall listing optimization, mainly using keywords in its essential elements like the title, short description, and long description. App stores use keywords in these places to analyze if an app is a good result to show for a specific search. Note: Enter in-app events. With these new app store features, you can post keyword-optimized “content” so both app stores can return your events/stories for relevant store searches. While this is somewhat comparable to blogging, they aren’t the same but can help target several keywords. SEO When it comes to search engine optimization, on-page optimization has two parts: First comes copy. So, if you’ve built a website for your mobile app, your website copy compares to your app store listing. It’s essential to have your target keywords in your website’s title, meta description, URL, etc. The second part is ongoing content. For effective SEO, you must... --- Code samples are the bedrock of current website and app development, as the collective experience grows and more teams enter the market. That’s why, even with plenty of instructions and now even AI tools, modern code at most companies is a patchwork collected from different sources rather than a cohesive entity. It works when it works, and when it doesn’t — well, let’s hope it doesn’t come to that. This approach, however, might lead to unstable work and an uncomfortable user experience. That’s why a lot of user-oriented platforms and services introduce Software Development Kits or SDKs. They tend to simplify the process for developers and ensure a seamless user experience. In this guide, we will discuss the SDK benefits in full detail, explain the differences between SDK and API, and show why the Adapty SDK is a must-have for your app. Let’s go! What is a software development kit, or SDK? A Software Development Kit (SDK) is an essential collection of software tools and programs that you can utilize to create applications for specific platforms, operating systems, or hardware. It serves as a comprehensive package designed to simplify and streamline the development process, enabling you to build sophisticated and efficient applications more effectively. Its key component, code samples, provides practical examples of how to implement specific features or solve common problems. These samples act as a valuable learning resource, especially for new developers or those new to a particular platform, demonstrating best practices and guiding them through the process. SDKs also come equipped with extensive documentation that offers detailed instructions and guidelines on how to use the tools and components within the SDK effectively. It covers everything from setup and installation to specific use cases, helping developers to understand the capabilities and limitations of the SDK. Inside an SDK are tools, components, libraries, and instructions: everything you can use to speed up the development process. Let’s see what a typical SDK might pack inside. Tools in a software development kit SDKs are equipped with a variety of components, each designed to support different aspects of the application development process. Here's a closer look at some of the common components found within SDKs: Compilers convert your code into an executable file: a program or an app. They translate the high-level programming language into machine code or a lower-level language that the computer's processor can understand. This process enables the creation of executable applications from the source code. Compilers also perform optimizations to improve the efficiency and performance of the resulting software. Debuggers assist developers in identifying and resolving errors or bugs in their code. They allow developers to run their applications in a controlled environment where they can inspect the current state of the program, track variable values, and step through code line by line to understand how the application behaves at runtime. Some SDKs also include specific tools for testing or sandboxes. Many SDKs include or provide support for an Integrated Development Environment (IDE). An IDE is a comprehensive application that provides developers with a user-friendly interface for coding, compiling, debugging, and sometimes deploying their applications. IDEs typically feature a code editor, tools for building and debugging, and often integrate with version control systems. A typical example of this is Xcode by Apple. Libraries are collections of pre-written code that developers can use to add specific functionality to their applications without having to write it from scratch. These can include graphical elements, data manipulation functions, or connectivity features, among others. APIs (Application Programming Interfaces) define a set of rules and protocols for building and interacting with software applications, enabling different software components to communicate with each other. Libraries and APIs significantly speed up development by providing reusable components and interfaces. Comprehensive documentation is a must for any SDK. It typically includes API reference guides, installation instructions, feature descriptions, and usage guidelines. Tutorials and sample code, often included with the documentation, offer practical examples of how to implement features, guiding developers through common scenarios and helping them to learn the SDK's capabilities. All these components help speed up the development and lower the barrier to entry for new platforms and services. Now, let’s talk about some less obvious benefits of using an SDK. What are the benefits of an SDK? SDKs Speed Up the Development Process. SDKs offer a suite of pre-built tools, libraries, and code samples that developers can leverage, thus avoiding the need to create basic components from scratch. For instance, if you develop a mobile game using the Unity SDK, you benefit from advanced graphics rendering, physics engines, and networking libraries, allowing them to focus on game design and user experience rather than underlying technical complexities. Provide Standardized Procedure. SDKs collect best practices and typical procedures for app development, ensuring that developers follow a consistent approach. This standardization is especially beneficial in large teams or when integrating third-party services. For example, the Google Maps SDK ensures that developers can implement maps and location features following Google's recommended practices, leading to a consistent and reliable user experience across apps. Ensure Compatibility with the Target Platform. Some SDKs are specifically designed for their respective platforms, ensuring that applications built with them are compatible and perform optimally. If you want to create an app for the Apple Watch, you would use the relevant SDK (also known as WatchKit), which includes tools and interfaces tailored to the watch's unique hardware and software environment. Reduce Costs. SDKs make it significantly less costly to develop: you decrease development time, minimize the need for extensive testing across different platforms, and avoid purchasing individual tools or libraries. For example, a startup developing a cross-platform mobile application can utilize the Flutter SDK, enabling them to write the code once and deploy it on both iOS and Android platforms, reducing both development and maintenance costs. Now that we ’sold’ you the benefits of SDKs, let’s see how to deploy them in action. How does an SDK work Here is a simplified walkthrough of the steps a developer... --- When it comes to acquiring new users for mobile apps, few channels work as well as advertising. Ads are one of the top app discovery methods. Because advertising is so effective at growing an app's user base, it also takes up a significant share of the marketing budget. So knowing what you're managing in returns for your ad spend is essential. Enter ROAS. ROAS - or return on ad spend - tells you exactly what returns you make for every dollar you spend on ads. Analyzing ROAS shows you how to optimize your ad spend for higher returns. For example, if your Google Ads channel's ROAS is higher than that for Facebook Ads, you may want to allocate more budget to Google Ads campaigns. Likewise, if you compare your ROAS metric for your different advertising campaigns, you can discover the most profitable ones. It's also possible to calculate ROAS for special marketing advertising campaigns like the ones you'd run during seasonal marketing. When used correctly, ROAS is a clear KPI on your advertising channel. So, let's look at how you can calculate your app's ROAS, what a good ROAS for a mobile app is, and ways to optimize ROAS so you can get higher returns for your ad spend. Here goes. What is ROAS? ROAS - short for return on ad spend - is an advertising metric that shows you how much revenue you generate from your ad channel. Simply put, ROAS calculates how many dollars you earn for every dollar you spend on advertising. How to calculate return on ad spend (ROAS) To calculate ROAS for an ad campaign, you need two points of data. Your conversion value: This is the total revenue made from an ad campaign. If you ran an ad campaign for your paid app and got 500 sales, and if your app costs $10, your revenue becomes $5000. Your ad spend: This is the amount you spend on running your ad campaign. Now, you can calculate your ad spend in two ways. You can either only consider the money you spent on ads (your ads budget) or factor in all the expenses you incurred for running your campaign. These expenses include everything, from the payments you made to your contractors (for copywriting or designing the ad creatives, for instance) or your employee salaries to any other expenses like consultation fees or overhead from tools’ subscriptions. For the sake of this calculation, let’s say you spent $1000 on your campaign. Now using this data in the following formula for calculating ROAS gives this campaign’s ROAS: ROAS = Revenue from ads/Cost of implementing those ads In this example, your ROAS becomes $5000/$1000, which is 5:1. Generally you use a ratio of express ROAS. But you can also use a multiplier or percentage to express it. In this case, your ROAS could be expressed as 5x or 500% too. You could also simply say your ROAS is 5. What’s a good ROAS for a mobile app? While there's no industry standard for a good, profitable ROAS, generally, 4:1 is considered good. That said, it's not uncommon for businesses that are only starting with advertising to end up with negative ROAS and lose money. Unless you get ad experts onboard right from the start, it can be challenging to manage advertising profitably right from the go. Having experts on your team helps you navigate the complexities of advertising and ensure a positive ROAS right away. By yourself, it can take some time to reach a positive return on ad spend. That said, you must try to break even as quickly as possible, because it's only beyond breaking even that you'll make any real profits from your advertising efforts. We'll discuss break-even ROAS in detail in the next section. For now, however, keep the 4:1 rule of thumb for ROAS profitability in mind, and also remember that it can be unrealistic to expect this from your ad campaigns when you're just starting. Also, another thing to note is that ROAS varies significantly between different platforms, campaigns, and even regions. For example, if you run ad campaigns inside the App Store, Play Store, and Facebook, you'll see that each platform returns a different ROAS. ROAS values vary greatly even among different ad campaigns. That's why you should look at both higher-level ROAS analyses and the more granular ones at the campaign level, drilling down to keywords, targeting, and ad creatives. By looking at ROAS through so many lenses, you'll see that, at the higher level, you have trends. For example, you can find that the App Store offers you better returns for the same ad spend than the Play Store. Or that you can entirely leave Facebook advertising as it bleeds money. Zooming in at the more granular levels, on the other hand, shows you what keywords, targeting strategies, and ad creatives are doing well and pinpoints areas for improvement and maximizing your return on advertising spend. Also, sometimes, you may have low ROAS yet high profits–for example, you pay more to acquire a user through ads, but because you've got a subscription app, you make good revenue from the user over their entire subscription length. In such cases, it is essential to consider the lifetime value of a customer rather than solely focusing on the immediate return on advertising spend. Break-even ROAS for mobile apps: Do you break even with a 1:1 ROAS? Hitting the break-even point for a marketing campaign means you're not making any profit or loss.   Anything you make beyond the break-even point is profit, and that's why break-even analysis is essential  for metrics such as ROAS. In fact, your ROAS analysis should start by calculating your break-even ROAS scenario. Now, you might think that you're breaking even if you're managing $1000 in revenue for every $1000 you spend on ads.   You don't seem to be losing any money, right? In other words: You're breaking even if you're at 1:1 ROAS, right? NO - you... --- $8. 9 billion is spent every year in the name of online shopping. And would you believe more than half of this money is spent straight from our mobile devices? And more importantly, what’s making us give all this time and money into apps now?   Maybe you got enticed by a limited offer or special discount that came up on a push notification. Or, you needed to plan a seamless travel trip, and paying a small price was worth the fun you had. Or maybe, you just really wanted to take advantage of the long, free trial of your favorite entertainment app! Either way, you’re onto app seasonality in all those cases and more. App seasonality is a real phenomenon that impacts user behavior patterns which can be insightful if you’re an app developer or marketer.   And in this blog, I wanted to help you prepare your app for peak seasonality when the time comes. Let’s start with the elephant in the room... What is app seasonality? App seasonality refers to the variations in app usage and engagement influenced by specific times of the year. While it may sound strange, app seasonality is more common than you might figure at first.   App seasonality and the user behavior patterns that follow depend on a few external factors. The 5 main factors influencing app seasonality are:  Major holidays, Cultural and global events, Seasonal changes,  Vacation seasons, and Shopping events! Now let’s talk specifics about these events and their impact on specific apps.   Which apps are most affected by seasonality? App seasonality impacts some apps much more than others. It’s crucial that you understand which apps are seasonal in terms of app usage and align your marketing strategies with the predicted user behavior during certain times of the year.   For instance, travel-related apps peak during the vacation season because more and more people need help planning their trips. Airbnb is a prime example, which even allows you to set different pricing for your rentals during peak and off-peak seasons! Similarly, shopping apps like Amazon notice a seasonal peak in app usage during shopping events like Black Friday or mega sales.   Events like major sports tournaments, award shows, or festivals can also lead to a spike in app usage related to streaming, social sharing, and event planning! For instance, Netflix notices a higher app usage when it releases an acclaimed series or movie, attracting more and more users to spend time within the app. Even weather apps go through app seasonality. Regions with fairly regulated weather all year round will notice close to no major seasonal changes. However, there’ll be high seasonality changes in regions with unpredictable weather! Health and fitness apps like the Nike Training Club aren’t spared from app seasonality either! During the Christmas holidays, many people gift each other smartwatches and fitness app subscriptions for the new year, which has led to a surge in app downloads during the holiday season.   By New Year, a lot of us fall victim to marketing by these fitness apps to have a health-focused New Year's resolution too. Again, this boosts app downloads and usage during January, up to the spring and summer months.   Why does app seasonality matter for marketing? When I say that app seasonality insights are a treasure trove for marketers, I’m not exaggerating. Of course, I’m going to tell you why! App-specific seasonality and seasonal trends’ insight are critical for marketers because these show actual user preferences and patterns— something that can determine your success if you play your cards right.   Here are 4 reasons you need to look into app seasonality as a marketer: 1. Shows you user acquisition opportunities App seasonality provides unique windows of opportunity for user acquisition. During peak seasons or holidays, user activity tends to surge, presenting you with the chance to attract and onboard new users.   Understand when these peaks occur, and you’ll be able to strategically plan and execute campaigns to attract new users during the most receptive times. By aligning marketing campaigns with these periods of heightened interest, you can also leverage increased visibility and engagement to expand your user base! 2. Optimizes user engagement levels  When you have better insights on app store conversion rates and seasonal trends, you can tailor your content, promotions, and messaging to align with user interests during specific times of the year. For instance, you can update your app store listing, and app’s metadata or even introduce new features for a limited time! Not only does this optimize your engagement strategy in a seasonal context, but you can enhance the user experience and set a pristine reputation that becomes your competitive edge too.   3. Gives you a competitive edge and relevancy Say there’s a Black Friday sale on every shopping app on your phone except one. Which app would you not make any purchases on? The one without any promotions right?   App seasonality is often reflected in the competitive landscape. Being aware of when competitors are likely to launch promotions, updates, or special events enables marketers to position their apps strategically. Knowing the details of app-specific seasonality can help you stay competitive and even gain a competitive edge against other similar apps. For instance, if they’re offering a 10% discount or a 1-month free trial, you can go one step ahead and double the discounts or trial. That would make you preferable, relevant, and competitive.   4. Helps you develop retention strategies to stretch seasonal success Different seasons often bring varying levels of user engagement and activity. Understanding these patterns enables marketers to implement targeted retention strategies.   For example, during a slow season, you might want to deploy re-engagement campaigns or exclusive content releases to maintain user interest. These efforts will soften the post-season drop and can build a sustainable user base over the long term.   5. Allows you to strategically allocate resources Different seasonal patterns of an app mean different resource demands.... --- Having a lot of downloads doesn’t mean as much as it used to. App downloads don’t guarantee that the user will enjoy your app, purchase any premium feature, leave a positive review, or even use the app at all! Your app could end up being an untouched icon for all you know... Today, the smarter app developers are fixated on getting their app engagement higher— 2025 being the best time to do it so far! So this time around, let’s talk app engagement. What does the term mean for app developers and marketers? Why should you care about app engagement? How should you get your app engagement up, and how do you know if you’ve succeeded? Let’s tackle all these questions and more! What is app engagement? App engagement refers to the level of interaction and involvement that a user has with a mobile app over a specific period. It’s a crucial metric for assessing the success and effectiveness of an application. App engagement goes beyond increasing app downloads and installations, focusing on the depth of user interaction and the overall user experience.   Several key aspects drive app engagement: Time spent on the mobile apps: The more time users actively invest in the app, the higher the engagement level. Frequency of use: How often users open and interact with the app is another significant factor. Apps that are used regularly demonstrate stronger engagement. Feature interaction: The extent to which users explore and use various features within the app. Active engagement involves more than just opening the app; it includes interacting with its functionalities. User feedback and ratings: Feedback, reviews, and ratings provided by users are indirect indicators of engagement. Positive feedback often correlates with a higher level of engagement. Social sharing and referrals: Users sharing content or recommending the app to others contribute to increased engagement and user acquisition. Why increasing app engagement is important? High app engagement is one of the top dreams any app developer has when they launch a new app. But why is it considered so important and is there any truth to it? Here are 5 reasons why increasing app engagement is important now more than ever:  1. Improves user retention High app engagement is directly linked to improved user retention. An average app loses 77% of its daily active users (DAU) within the first 3 days of download. The reason? A lack of user retention which makes up for poor app engagement! When users regularly interact with and find value in an app, they are more likely to continue using it over the long term. This sustained engagement helps build a loyal user base, reducing churn rates and ensuring the app remains relevant in the competitive market. 2. Enhances revenue potential Increasing app engagement translates into higher revenue potential. Engaged users are more likely to make in-app purchases, subscribe to premium features, or interact with advertisements. If your goal is to make money, you’ll have to focus on getting active app users one day or the other!   3. Elevates user satisfaction When users have a positive and fulfilling experience with an app, their satisfaction levels increase. The more satisfied they are with your app, the higher the app engagement you’ve achieved!   They enjoy their experience within the app, which trickles down favorably for you in 2 unique ways: More and more users will rate and review positively, leading to higher app ratings, and Your app garners a positive reputation and will be encouraging user loyalty and positive word-of-mouth referrals. 4. Serves as a key indicator of app health App engagement is a critical indicator of an app's overall health and success. Monitoring engagement metrics provides valuable insights into how users interact with different features, helping you identify areas for improvement.   By understanding user behavior, you can make informed and data-driven decisions, implement necessary updates, and ensure the app remains competitive and adaptive to evolving user preferences. 5. Has a positive impact on organic growth High app engagement has a positive ripple effect on organic growth. Engaged users are more likely to share their positive experiences with others, leading to increased word-of-mouth recommendations.   Driven by satisfied users, this organic growth can significantly expand the app's user base without relying solely on marketing efforts. Talk about a broader and more sustainable audience reach! How to develop a mobile app engagement strategy? Not sure where to start when it comes to your app engagement strategy? Wondering how to kick-start the whole thing? There are 4 steps you need to take to develop the right mobile app engagement strategy for yourself. Starting with... 1. Understanding the target audience To create an effective engagement strategy, start by understanding your target audience. You can’t target your group of people if you don’t know who they are or what they want. So, I recommend that you conduct thorough research to identify the demographics, preferences, and behaviors of your potential users.   Analyzing this information enables you to tailor your app's features, design, and communication to resonate with the specific needs of your audience. Who are they? What problem do they have? What are they looking for? How can my app make them happier? For example, if your app targets young professionals, your engagement strategy might prioritize sleek design and time-saving features that align with their busy lifestyles. On the other hand, if your app’s target audience is children aged 7–13, you’ll want to incorporate bold color combinations and an exciting UI! 2. Setting clear objectives Define specific and measurable engagement goals to guide your strategy effectively. This involves not only attracting new users but also retaining and re-engaging existing ones.   Setting clear objectives can look different for every app, depending on who it targets and what it was made for. Some of these objectives can be: Increasing active users,  improving session duration, or  Boosting in-app purchases.   Having well-defined goals ensures that your engagement efforts align with the overarching success of your app. For instance,... --- If you review the top apps in your category or even your top competitors, you'll find PR coverage to be a big part of their growth stories. The way PR marketing works for mobile apps is pretty straightforward: About 21% of people turn to search engines to find the best apps for whatever it is that they need help with. And when they Google, Google returns with stories from everywhere on the web—"X best apps for Y," for instance. This is how users learn about new apps and get them. Also, people tend to get apps based on recommendations. So if they see their favorite magazine, journalist, or influencer rave about an app, they might just want to get it (even if they weren't actively looking for it). Positive third-party mentions boost app credibility too. So, people who've already discovered your app also feel inspired to download it. The results? Even more downloads. You get the drift. Running public relations campaigns for your app is all about making your app a part of all such conversations everywhere on the web. In today's article, we'll see everything you need to know to add PR marketing to your mobile app marketing mix. We'll first see what public relations is in detail and how PR marketing works for mobile apps! Here goes. Defining public relations (PR) A lot of people use "public relations" and "press releases" almost interchangeably. But the fact is that press releases are just one part of the public relations mix. The best way to understand what public relations is is to see how the public relations industry defines it. In 2012, the public relations industry defined—or, rather, redefined—public relations to reflect its evolution over the years. Here's the definition the industry settled for from the different available options: "Public relations is a strategic communication process that builds mutually beneficial relationships between organizations and their publics. " As you can tell from the definition, public relations is all about businesses having conversations with their target audiences and communicating how they drive value for them. Zooming in on the public relations mix Public relations comprises several elements, all working together to build consistent messaging for the intended audiences, aiming to convert them into customers. These include everything from media relations and social media engagements to community commitments. Together, they shape public perception, enhance brand reputation, and ultimately help achieve business goals. Public relations includes a lot of different things, such as: Press releases Influencer partnerships Social media engagements UGC campaigns Community events Let's now see how public relations can help you achieve your app's business goals. Why do you need PR marketing for your app Public relations campaigns boost brand awareness. PR campaigns like press releases help you get your app featured in widely read publications, helping you break into newer audiences and reach more potential app users. Newer PR formats like influencer collaborations and social media engagements are also effective at this. Public relations initiatives support SEO. Outlets that feature your app often link to your app website or listing, thereby giving you backlinks and boosting your SEO. These mentions drive targeted visitors to your website as well. Public relations marketing increases brand consideration. When potential app users see a credible third-party website write positively about your app or see their favorite influencer recommend your app, they're more likely to download or purchase it, as such campaigns build trust and credibility. Public relations programs help with app engagement. Newer forms of public relations campaigns like user-generated content (UGC) campaigns help create authentic connections with your app's audience and drive user participation.   Public relations drives boost user retention. Public relations is also about communicating with existing users. When you use PR campaigns to communicate your app updates and improvements and announce new features, you can boost user retention too. Active PR campaigns also show that you're seriously invested in your app and that users can invest in it too. So right from app discovery and consideration all the way to retention, public relations campaigns play a big role in your app growth. Here's how you can get started with PR marketing for your mobile app. Running traditional PR marketing campaigns for your mobile app Let's talk about press releases first, as writing and distributing press releases is the most traditional form of PR marketing. Simply put, press releases are any "news" announcements or official statements you put out to media outlets and beyond. Press releases are usually distributed through newswire services like PR Newswire. Distributing your press releases through such services lets you broadcast them to thousands of publications and journalists on their network. Depending on your press release, publications or journalists can choose to feature you in their stories. There are a few ways to approach PR marketing for your app. The first one is newsjacking. Here, you pick up the trending topics in your niche and try to become a part of the conversations happening around them on the different media outlets. For example, when the US Supreme Court passed a judgement on an abortion matter, period tracking apps became one of the focal points of discussions. Many apps were covered in many publications around that event: As you can get, to make the most of newsjacking, you need to stay on top of what's happening in your niche and launch timely communications around it. For example, in this case, it could be your official statement on how you approach sharing user data. Tools like Buzzsumo help with such newsjacking. Also, when journalists work on such content, they often post queries on platforms like Twitter. So you need to be active on these platforms to be ready to field such queries to get cited. Another way that mobile app businesses use press releases is around app launches. Mobile app launch PR campaigns are all about introducing a new app to the market. These press releases reach a lot of media outlets and potential users and give an app... --- Learn how to effectively manage and maximize subscriptions for user retention and revenue growth. Perfect for developers and marketers aiming to understand and implement subscription grouping strategies. Introduced in 2016, App Store Subscription Groups marked a significant shift in app monetization and user experience. This feature allowed developers to bundle various subscription models within their applications, streamlining the process for publishers and making it more transparent for the end users, who can now trust the subscriptions more and purchase them more often. In this guide, we will explore the features and benefits of App Store iOS Subscription Groups. Specifically, how developers can use this to cater to different user needs and manage subscriptions efficiently, maximizing their profits as a result. We will focus on the practical aspects of creating and handling subscription groups, making sure the feature is not in conflict with the existing app. What are Apple subscription groups? In a nutshell, a subscription group is a set of subscriptions united both by the service level and the key features they offer. In such a group, only one subscription can be active at a time, and only one introductory offer or a free trial can be used. For instance, a fitness app could offer different subscription groups for workout plans (weekly, monthly, or yearly plans), dietary guidance (breakfast, sports foods, or complete plans), and personal coaching services (once or twice a week).   The primary advantage of using subscription groups is the efficient management of customer subscriptions. It simplifies the process for users to upgrade or switch between different services within the app. For example, a user could easily move from a basic to a premium subscription plan, enhancing the user experience and potentially increasing revenue for the developer. Subscription groups also provide flexibility in offerings, allowing users to have different subscriptions in their app without the fear of paying double. Developers can create tiered levels of subscriptions within a group, each with its unique set of features and benefits, catering to a diverse range of customer needs and preferences. This flexibility encourages users to explore different services within the app, increasing engagement and loyalty. The groups also make the up-selling and cross-grading easier, where existing paying customers can be offered an additional subscription product for a lower price, thus getting rewarded for loyalty with a bundle. Apple themselves are a classic example of this, where Apple Music subscribers are often get introduced to Apple TV+ streaming service, Fitness+, and other subscriptions. Creating subscriptions in App Store Connect The subscription groups can be created in App Store Connect. Here's a step-by-step guide to setting up subscriptions effectively: Log in to your App Store Connect account and select your app. Navigate to the In-App Purchases section and create a new subscription. Define the subscription's terms, including its duration (such as weekly, monthly, or yearly), price, and the territories where it will be available. Make sure to fill in correctly the metadata. Choose a pricing tier and subscription period. Apple provides a range of pricing options to suit different markets and strategies, with most prices auto-updating in different currencies. Here’s Adapty’s pricing guide for app subscriptions if you need some benchmarks. Decide if you want to include a free trial period or introductory pricing to attract new subscribers. This can be a compelling way to encourage users to try your service. Remember, however, that once a user exploits the introductory offer, you can’t propose it to him again. Write a clear and attractive title and description for your subscription. Highlight its benefits and features, but keep in mind that the text will also be seen by the user in his account settings: keep the copy clear and concise. Once all details are set, submit your subscription for review by Apple. Ensure that it complies with the company’s guidelines to avoid delays in approval. Remember to consider the customer experience when defining the terms of your subscription. The pricing strategy, subscription duration, and availability should align with your target audience's expectations and willingness to pay. Also, clear and transparent communication about the subscription terms is crucial to maintain trust and avoid potential confusion or dissatisfaction. Creating a subscription group Creating a subscription group in App Store Connect allows developers to organize individual subscriptions more effectively. Here’s how to create and manage these groups: Log into App Store Connect, select your app, and click on the Subscriptions section on the right. There, create a new group. You will be able to create and group several subscriptions here. Assign individual subscriptions to the group. Each group can contain different types of subscriptions, such as varying levels of service or content. While not strictly necessary, it’s often intuitive to order the subscriptions from the highest to lowest service level offered (for example, from Yearly to Weekly subscriptions, or from Platinum to Silver benefits). Set a name for the group that clearly represents the subscriptions it contains. This name helps users understand the different service levels or content types available. In the settings, define how users can move between different subscriptions within the group. This includes setting up proration policies for upgrades or downgrades and ensuring a smooth transition for users changing their subscription level (that’s where the clear benefits levels come in handy). Determine what content or services each subscription level within the group provides. This clarity helps users make informed decisions about which subscription best suits their needs. Choose a default subscription within the group. This is typically the subscription new users will start with before they choose to upgrade or change their plan. Ensure all information is accurate and complies with Apple’s guidelines. Once reviewed, submit the subscription group for approval to Apple. Moving subscriptions within the group Upgrading service levels Upgrading within a subscription group allows users to access more advanced features or services. When a user decides to upgrade to a higher-tier service, the process is typically smooth and integrated within the app's interface, or even in the system Settings app. The transition is designed to be seamless, with the app automatically updating the user's access to the new set of features immediately.   Billing cycles are adjusted... --- Boost your mobile app's visibility and downloads with our expert guide! Discover effective strategies to attract users, improve engagement, and skyrocket your app's success. Learn about ASO, user reviews, influencer collaborations, and more to dominate the app market. An app’s success is defined by its revenue, which hinges on the number of downloads. High download rates not only reflect an app's popularity but also its reach and potential profitability. Now that more than a thousand new apps are being published every day on the App Store alone, the competition to the top is even higher.   In this guide we present 12 essential strategies that we at Adapty think will enhance your app's visibility and appeal, thus increasing download rates and revenue. Each strategy is a step towards achieving success in a crowded marketplace by improving the user acquisition funnel and developing a brand for your app. Remember, though, that with any of these strategies consistent effort and adaptability are key. 1. Optimize App Store listings Since the App Store is the only destination for iOS users to get their apps (at least for now), your effective presence there is crucial. We have a dedicated guide for the App Store Optimization, but here are the key aspects. Understand your audience The way your app is presented in the Store shouldn’t be a vanity fair for the marketing team but rather a response to your audience’s demands. Think about your App Store Page as essentially a Q&A session with the end customers: as they scroll through thousands of apps, they’re trying to answer several simple questions: Does this app do what I need to do? Will I get the result I need? How simple with the communication be? How much does it cost?   “Talk” with your end-user by answering his questions in the app description, screenshots, and release notes. It also makes sense to delve into the demographic and behavioral factors of your audience. For example, it’s almost always worth it to translate the App Store page for the native language of the specific country. The visuals matter too: a gaming app targeted at teenagers will have a different approach compared to a productivity app designed for professionals.   By understanding these aspects, you can tailor your app store listing to resonate with your audience, which increases the chances of engagement and downloads. The factors are several and include the language you use, the features you highlight, and even your chosen visuals. A well-tailored listing. Remember, the more aligned your listing is with your audience's expectations and needs, the higher the likelihood of your app's success. Use relevant keywords Similar to answering the audience questions, you would also think about how they would search for an app like yours: specifically, what words would they choose. Mentioning these keywords effectively in your app store listing is vital for improving visibility in search results.   The process begins with thorough research to identify keywords that are not only relevant to your app but also commonly used by your target audience when searching for similar apps. Several ASO tools and platforms can aid in this research by providing insights into popular keywords in your app's category, and Adapty has a dedicated guide about this too.   Once you have identified the keywords, place them in your app's title, description, and metadata. Don’t be too eager with them, however, and try to balance keyword usage with readability; overstuffing keywords can lead to a negative user experience. The goal is to incorporate them naturally, making your listing both search-friendly and appealing to potential users.   Create a compelling description We have mentioned writing the description before, but it makes sense to talk about it separately: after all, this is the only piece of copy a person will read before deciding whether to try out your app.   Start with a compelling opening that quickly captures attention: outlining the app's purpose, what problems it’s made to solve, and who it's for. It's important to emphasize the features that set your app apart from competitors, explaining how these unique elements benefit the user (try not to mention the competitors themselves, however; Apple does not condone this). A friendly yet professional tone creates a more relatable and approachable feel, which helps in connecting with your audience. Incorporating testimonials or positive reviews within the description can significantly enhance credibility and trust. Present key features or benefits in a straightforward manner or bullet points rather than in lengthy paragraphs. A call-to-action at the end, like inviting users to download or explore more, can be very effective. For a more detailed guide on preparing the app description, read our dedicated guide. Design an eye-catching icon and screenshots The screenshots you use are also important; if anything, that’s because people might see them in search results even before opening your app’s page. So much so, that we’ve written an article dedicated just to the art of capturing your app.   The term ‘screenshots’ is a bit misleading, though. The images are meant to present the key features of your app and you can do this any way you want to, including before-and-after images or highlighting some specific UI elements; just taking a picture of your app is not enough. Screenshots should provide a visual preview of your app's interface and functionality but focus just on the key possibilities. It's also beneficial to add short captions to these screenshots to explain what is being shown.   Before you create the screenshots, though, an eye-catching icon is the first visual contact a potential user has with your app. Think about the icon as the ‘logo’ for your brand: It needs to be distinctive, memorable, and reflective of your app's purpose. It should stand out in the crowded app store environment and be recognizable on the home screens of other users.   2. Leverage social media marketing Social media is one of the most effective user acquisition channels, and the reason is quite obvious: we usually consume the content on the same devices we download the apps to, so the friction is zero. Let’s see how this medium might help your app downloads count. Create shareable content For almost any app it makes... --- We’re back with new and exciting updates. The Adapty tech team focused on enhancing the analytics infrastructure and adding a couple of more features for the convenience of our users. Let’s have a look! We're back from the holidays with some new and exciting updates. During the first two months of winter, the Adapty tech team focused on enhancing the analytics infrastructure and adding a couple of more features for the convenience of our users. Let’s have a look at the first significant Adapty updates in 2024! Analytics load speed improved We’re thrilled to say that most Adapty charts now load up to 5x faster! With the reworked calculation logic under the hood, our request duration has dropped to under 1 second. This means you get your dashboard data from our database quicker than ever.   We’re constantly improving our charts to help teams get insights faster and easier. The Cohorts, Funnels, and Conversions charts are next in line to be sped up, so stay tuned! Just a reminder that Adapty’s basic subscription Analytics is completely free for everyone, so make sure to try it yourself. Mobile view optimization To bring even more clarity to the UI and UX of Adapty, we've optimized it to look more user-friendly in the mobile format. Now you can always check on your app metrics from your smartphone with more convenience when you're not around your computer. Stripe support has been added Yes, Adapty now supports Stripe! With this integration, Adapty now enables tracking web payments and subscriptions made with Stripe. If your product is available on the web, this feature can help: Granting automatic access to paid features for users who bought on the web and later logged in to the app. Consolidating subscription analytics in the Adapty dashboard, including cohorts, predictions, and other analytics tools. Note: The integration is currently in Beta with some limitations, but it’s capable of carrying out popular scenarios. Find more details on how to integrate Stripe in our docs. New dashboard added – Overview Overview is a new analytics dashboard that shows several metric charts for all of your apps on one screen. The board can be customized to display only the metrics you find relevant. Access Overview wherever you go, thanks to the optimized mobile version of the dashboard.   Learn more about the customization and controls of the dashboard. Subscription event feed in Slack  Slack is a workplace messenger used by numerous app development companies on a daily basis and it’s finally got its integration with Adapty. Now you can receive subscription event notifications right into Slack in one feed. It’s a great way to keep the finger on the pulse of what’s going on with your app revenue.   Access level sharing reworked By default, the access level is always shared on the same device even for different customer user IDs. It means that anonymous and identified users can share the same access level provided by Adapty if the app store on their device is under the same Apple/Google ID. It’s usually helpful for the case where the user re-installs the app and logs in under a different account – they will still have access to their purchases. Now in Adapty, you can disable sharing purchases between user accounts if you’d like to restrict access only to one ID and prevent the cases where two or more people may use the same purchases on one device. Find out how this works and what happens when this option is disabled in our documentation. --- Growing your mobile app needs you to work on every stage of your conversion funnel. First, you need to work on your app's discoverability. To grow your mobile app, you need to try newer ways to help even more potential users discover it. You also need to boost your conversions. We're talking about both app store and in-app conversions here. Adding experimentation to your app growth mix is one way to do this, as we'll see in the article. You must also work on your app retention to ensure you can convert your users into users for life and boost your average revenue per user—a critical mobile app growth metric. Seems like a lot of work, right? It is. That's why to help you, today, we're rounding up ten of the most effective mobile app growth tactics that work across the different mobile app funnel stages and will help you build a well-rounded growth strategy for your mobile app for 2024 and beyond. Create a website! Most successful mobile app businesses, especially those with subscription-based apps, build full-fledged websites to go with their apps. While it might appear that mobile app websites are only placeholders on the web—as app stores are where all the business happens! —they're much more than that. They're an entire app growth channel that assists with everything, from app discovery and downloads to retention. Did you know that app discoveries happen via search 25 percent of the time? That's why even Google asks you to make your app discoverable everywhere—even on the web. "Search is a major source for app discovery, according to our research: One in four app users discovers an app through search. " Now, as you'd know, when users look for apps, search engines show them listings from the app stores. These are generally the most downloaded apps, and if you've got a new or an upcoming app, you probably don't have a chance to show up here. But if you set up an "SEO'd" website for your mobile app, your app, too, can appear in the organic search results and claim a share of these search leads. Here's an example. If you Google "photo journal apps," as expected, the search engine shows you the top apps from the app stores. However, if you see the top results, you also find websites for several other apps: In fact, because search is such a powerful app discovery channel, mobile app businesses don't just build websites for their apps but also run ad campaigns and drive people to them. It's on the website that users see the app's different download or purchase links. A lot of mobile apps even let you make purchases directly from their websites. Go all in on app store optimization The top places for app discovery are—no surprises here! —the app stores. The App Store and Google Play are where 40% of app users discover apps.   And these app store discoveries happen via searches, ads, and through the stores' featured listings. So, to grow your app, you want more people to be able to find it through these.   Let's talk about your app's organic visibility first. While app stores never share how their proprietary algorithms rank app listings for showing search results, they recommend some best practices. Using the right keywords in the right places holds the key here. So, you need descriptive (but unique) app titles, subtitles, and descriptions. Of these elements, the title is the most important. One way apps optimize their titles is to use a unique brand name along with the main keyword users could use to find it. For example: DoorDash - Food Delivery. "Choose keywords based on words you think your audience will use to find an app like yours. Be specific when describing your app’s features and functionality to help the search algorithm surface your app in relevant searches. " — The App Store. Below, you've got three journaling apps—each targeting specific keywords—showing up prominently in the organic results for just the right terms. Journalistic is a micro journaling app and pretty much owns the term "micro journaling" in both the app stores. Audio Diary - AI Voice Journal, a relatively new voice journal app, has optimized well for the term "voice journal" and is showing up prominently for it. A fairly new app, Ananda - A Gratitude Journal, with just a thousand downloads, is showing up for the term "gratitude journal. " The title optimization is clear and effective!  (By the way, all these apps also have excellent SEO'd app descriptions. ) When you get all these right, you won't just appear in organic results but should also see your impressions go up everywhere inside the app store (in the featured, recommended, or suggested listings). Another piece of the app store search optimization mix are events. When users search, app stores don't just show apps in the results but also events. You might get discovered through events—experiment with adding events to your app and listings. Ratings and reviews also influence your organic visibility, but these take time to optimize. We routinely see apps with thousands of users without even a few reviews. Probably because they never asked for them? This is a missed optimization opportunity. If you've even a 100 users, ask them to rate and review your app. Remember that your responses also matter. Here's more on optimizing your mobile app's ratings and reviews. Update cycles, downloads and engagement, and in-app purchase data also reportedly influence your app store search rankings. But there are no instant hacks here. You need an app that performs well and offers value to do well. Other than these, localization, too, can impact your rankings. So, if you target different markets, localized listings can impact your app store visibility. Let's get to paid visibility now. If you've launched a brand new app, paid ads can get you the first 100 users the fastest! But in addition to running ads, you'll also need to extend a great... --- For any app, especially subscription-based ones, accurately measuring user engagement is essential. Daily Active Users (DAU), Weekly Active Users (WAU), and Monthly Active Users (MAU) are key metrics that provide insights into user interaction and app effectiveness. They not only help in understanding how often users engage with a platform but also act as key indicators of growth and user retention.   In this guide, we break down these metrics: how to calculate them, how to interpret them, and why they are so important in assessing the health and success of online services and applications. What are active users? For apps and websites, "active users" are the individuals who engage with these platforms within a specific timeframe. This engagement can vary depending on the product's nature but typically involves actions like logging in, viewing content, clicking links, completing transactions, or any interaction beyond mere passive viewing. The criteria to qualify a user as 'active' are set by the platform and are often defined by the type and frequency of interactions. For instance, a user may be considered active on an app if they interact with its key features within a given period — or even just open it! Similarly, for websites, active users might be those who visit and perform specific actions, like clicking on articles or participating in discussions (those who just open the website and quickly bounce are called visitors). These interactions are indicative of user engagement and interest, and tracking active users helps businesses and developers understand the effectiveness of their platforms, gauge user retention, and make informed decisions for improvements or marketing strategies. Measuring active users with DAU, WAU, and MAU metrics The key metrics used to measure user’s interest in the app are the retention and churn ratios.   The retention ratio is the share of newly acquired customers who continue using the app after a certain period, measured for a specific day: usually, D1, D3, D7, D14, and D28. Calculating the ratio is easy: just divide the number of active users on that specific day by the total number of new users brought by that specific campaign. The churn ratio measures the number of customers who don’t open the app anymore and is found in a similar way – or just by subtracting the stickiness ratio from 1. The active users’ metrics, however, are more useful for analyzing long-term app health and popularity. Here’s how they work. Daily active users (DAU) Daily Active Users (DAU) measures the number of unique users who engage with an app or website within 24 hours. It's calculated by counting the individual users who perform specific actions, like logging in or completing a transaction, on a given day. DAU is crucial for understanding daily user engagement and is particularly useful for assessing the immediate impact of short-term changes, such as a marketing campaign or a feature release. High DAU can indicate strong daily user engagement, while fluctuations may reflect the direct response to recent updates or events. Weekly active users (WAU) Weekly Active Users (WAU) tracks the number of unique users who interact with a platform over a week. This metric is calculated similarly to DAU but over a seven-day rolling period. We suggest synchronizing the score with the calendar: this way it will be easier to match the changes in the metric with your activity. Remember, a week technically starts on Sunday in the US, and a lot of tools count them similarly. WAU offers insights into user engagement every week. It's instrumental in understanding how weekly trends, such as the introduction of weekly content updates or promotions, affect user interaction. WAU helps in identifying patterns that might not be evident daily, providing a more comprehensive view of user engagement and behavior across a week. That’s why Adapty cohort analysis can be set for both weeks and months for a more granular or a big-picture type of analysis.   Monthly active users (MAU) Monthly Active Users (MAU) counts the unique users engaging with an app or website over a month. To calculate MAU, track the distinct users who perform certain actions within 30 days. This metric provides a broader perspective of user engagement, crucial for long-term strategic planning and understanding sustained user interest. MAU is beneficial for identifying broader trends, assessing the long-term impact of marketing strategies, and making decisions that affect the overall health and growth of the platform.   What is the DAU/MAU ratio? The DAU/MAU ratio is a crucial metric used to measure user engagement and retention in digital products like apps and websites. It stands for Daily Active Users (DAU) divided by Monthly Active Users (MAU). This ratio offers valuable insights into how frequently and regularly users engage with a platform. A high DAU/MAU ratio suggests that a significant portion of monthly users are returning daily, indicating strong user engagement and habitual use of the app or website. A low ratio, on the other hand, might point to less frequent or occasional use, signaling potential issues in retaining users or maintaining consistent engagement. How to calculate the DAU/MAU ratio Calculating the DAU/MAU ratio involves two simple steps: First, calculate the Daily Active Users (DAU) and Monthly Active Users (MAU). Make sure that the data is correct and corresponds to the same period. For DAU, it’s safer to use the average value over the last 30 days to avoid any skewness. Divide the DAU number by the MAU number. The result is the DAU/MAU ratio. For example, if an app has 500 daily active users and 1500 monthly active users, the DAU/MAU ratio would be 500/1500 = 0. 33 or 33%. This means 33% of monthly active users engage with the app daily. This ratio is a powerful tool for understanding the stickiness of an app – how compelling it is for users to return regularly. A higher DAU/MAU ratio (close to 1 or 100%) indicates strong daily engagement and a highly dedicated user base. A lower ratio suggests that users aren't returning as frequently, which could... --- Apple now allows developers to point users to web-based subscription options outside of in-app purchases. Let's see how it translates into action. Apple recently updated its developer guidelines, allowing U. S. based developers to point users to alternative payment options outside of the App Store. This shift comes in the wake of the U. S. Supreme Court's decision not to hear appeals from Apple and Epic Games. Let’s have a quick look at how this has been translated into action. The commission is still there The company stated on its support page that developers directing users to alternative digital purchase options would still owe Apple a 27% commission. This rate drops to 12% for members of Apple’s Small Business Program and for auto-renewing subscriptions entering their second year. In essence, Apple is offering a modest 3 percentage point discount for using alternative payment methods. However, this might not be significantly beneficial as developers still incur fees from other payment processors. Apple's approach in other countries It’s interesting to note that Apple has a few exceptions for a couple of countries that have already been effective for a while. They are a great example of how Apple makes concessions but still comes out as a winner. Dutch Dating App Developers: Following a court order, Dutch dating app developers are no longer bound to use Apple’s in-app purchase system. However, for those opting for third-party payment systems, Apple charges a 27% commission. South Korea's Case: In 2022, Apple allowed South Korean developers to use third-party payment systems, requiring them to submit a separate app version for the South Korean App Store. The commission here is set at 26%, slightly lower than in the Dutch case. The reality of implementing Apple's new rules Setting up external purchases under Apple's new rules presents significant challenges. Developers are limited to one link for these purchases, which cannot be on the main monetization screen. The combined costs of third-party transaction fees and Apple's commission could negate any potential savings. Apple’s example screen shows a link leading to a purchase from a website. Moreover, the user experience could suffer due to additional steps like facing warning screens, logging in again, and entering credit card details manually. These hurdles might lead to lower conversion rates for external purchases. Apple’s modal screen shows a message to users indicating that they are about to use an alternative payment method. More pitfalls for developers Apple insists that its payment system remains the most convenient, safe, and secure option for in-app purchases. The company warns that alternative payment methods will exclude features like Family Sharing and leave developers responsible for customer support regarding refunds and subscription management. Developers must apply for permission to include external payment links in their apps and are required to submit transaction reports within 15 days after each month's end. Apple has laid out specific interface guidelines for showing links to web-based purchases. These guidelines include texts indicating that certain features may not be available with third-party payment options. Despite these guidelines, Apple acknowledges the difficulty in collecting commissions due to the App Store's vast scale, as reported by 9to5Mac. Broader regulatory scrutiny Apple isn't the only company facing regulatory scrutiny over app distribution. Google was found guilty of anticompetitive behavior in a case with Epic Games, with a judge yet to decide the next steps. Additionally, Google settled a case for $700 million with the U. S. attorney general over Play Store monopoly claims and has made changes to its Play Store model. As for Apple, the recent ruling by the Supreme Court is unlikely to mark the conclusion of legal challenges to Apple's dominance over the iOS App Store. Tim Sweeney, CEO of Epic Games, has voiced discontent with the Supreme Court's decision and signaled a determination to persist in their battle against what they view as Apple's anticompetitive practices.   Conclusion For app developers, it's crucial to weigh the effort against potential benefits. Currently, it looks like despite losing in court, Apple still sits on top of the chain leaving developers not much of a choice. However, alternative strategies like web2app technologies or integrating tools like Stripe with platforms like Adapty may offer more viable solutions in the evolving digital marketplace. --- For Android developers, the choice between Kotlin and Java is a critical decision. Kotlin, known for its modern features and efficiency, has been on the rise, especially since it has been endorsed by Google. Java, on the other hand, is an established language with a broad user base and extensive libraries.   In this article, we want to give you a thorough comparison of Kotlin and Java, focusing on the capabilities and limitations of the two languages, paying specific attention to how they might fit into your current development practices. If you can’t decide on which language to work with, this guide is for you.   What is Java Created back in 1995, Java has been the go-to language for several waves of web and app developers. It has also been the key player in Android development since the beginning of the mobile OS, largely due to Google's choice to use the language for its Android SDK. The language is respected for its object-oriented structure, essential for modular design in app development, and its platform independence, thanks to the Java Virtual Machine (JVM). When asked, developers are also quick to mention Java's comparatively strong memory management and robust security features. Over the years, Java developers have created an extensive ecosystem full of libraries, frameworks, and tools that aid faster development cycles and resource-rich problem-solving. While many new languages have emerged during Java's existence, its stability, maturity, and widespread adoption keep it deeply ingrained in the Android development landscape, influencing many architectural and design patterns used today.   What is Kotlin Introduced in 2011, Kotlin, a statically typed programming language, has swiftly gained prominence, revolutionizing software development. It is attributed to JetBrains, a Czech software developer renowned for its IDEs, that aimed to create a modern and efficient language fully interoperatable with Java, while also addressing its perceived shortcomings.   Kotlin's quick adoption among developers can be attributed to its unique blend of features. Its design principles emphasized conciseness, readability, and expressiveness, decluttering Java’s ages-long detail-rich syntaxis. The ability to express complex concepts with fewer lines of code reduces development time and improves code maintainability. Open-source accessibility has enabled a vibrant community to contribute to its growth and foster a collaborative learning environment. Interoperable with Java, Kotlin seamlessly integrates with existing Java codebases, allowing developers to use and build upon existing knowledge and libraries. This compatibility has been instrumental in its adoption by Google, which officially recognized Kotlin as a first-class language for Android app development in 2017, only to call it the preferred language two years later. The adoption of Kotlin in the Android ecosystem has been particularly remarkable, with over 60% of apps on the Google Play Store now leveraging Kotlin. This surge in popularity stems from its ability to enhance the development process, leading to shorter development cycles, improved code quality, and a more maintainable codebase. Kotlin vs. Java: detailed comparison In this section, we go through the key differences between Kotlin and Java, two leading Android development programming languages. From language syntax to community support, we will go into detail trying to explain the strengths and weaknesses of each language. Functions and Features Kotlin and Java, while both popular for Android development, have distinct approaches to language design and features. Kotlin is recognized for its concise and straightforward syntax, making code more readable and maintainable. It includes modern features like coroutines, which allow for efficient multitasking without complex code and repetitive writing. Java, conversely, tends to be more wordy; however, it's celebrated for its stability and comprehensive feature set, developed over many years. Its syntax is widely recognized and understood in the developer community, an advantage for teams already skilled in Java. Thanks to its interoperability with Java, Kotlin's integration into the Android development environment has been seamless. This means developers can use both Java and Kotlin within the same project without issues, providing flexibility in adopting Kotlin. While Java's performance and reliability continue to make it a strong choice for large-scale applications, Kotlin's modern capabilities and efficiency enhancements appeal to developers looking for a more streamlined and up-to-date coding experience. Performance and Memory When it comes to performance and memory usage, Kotlin and Java are similar since they both run on the Java Virtual Machine (JVM). This common platform means their basic performance metrics are often — but not always — comparable. For example, Kotlin's more concise and expressive code can reduce the likelihood of bugs and streamline performance, particularly in simpler applications or those requiring modern programming features. The efficiency of Kotlin's syntax often means writing less code to achieve the same functionality, which can translate to quicker execution in some scenarios. On the other hand, Java has a long history of optimization for various types of applications, particularly those that are large and complex. This optimization can sometimes give Java an advantage in terms of performance, especially in scenarios that involve extensive data processing or require robust backend operations. Java's mature ecosystem, featuring numerous performance-enhancing tools and libraries, allows developers to fine-tune their applications for optimal efficiency.   Null Safety Null safety is the key aspect where Kotlin shines. This feature effectively reduces the chances of encountering the notorious null pointer exceptions that are common in Java. In Kotlin, variables can't hold null values by default, and the language forces developers to explicitly declare a variable as nullable if it is intended to hold a null value. This proactive approach at the language level makes Kotlin code less prone to errors and enhances overall code reliability. In contrast, Java handles null values differently, requiring developers to be more vigilant. Code written in Java often needs additional checks and balances to prevent null pointer exceptions, leading to more verbose and complex code. This extra coding not only increases the potential for error but also adds to the development workload, which makes Kotlin particularly appealing for developers looking for a more robust and secure coding experience. Deployment Kotlin and Java deploy applications similarly: they compile down to... --- What if I told you that mobiles are the future of online everything? Let me back up and explain why I’m saying this. In the US alone, smartphones make up over 70% of the total digital media time. 54. 8% of the global web traffic today is from mobile devices. 21% of millennials open an app more than 50 times every day. Mobile app markets are likely to reach over $405 billion by 2026... Do you see where I’m going with this? Mobile devices are everything! So if you’re looking to reach out to the entire world, mobile apps are your best bet. And naturally, mobile app testing becomes an indispensable aspect of your work. If you’ve made an app and are ready to send it out, you have to perform mobile testing and ensure that the app reacts as intended across multiple devices. In this blog, allow me to take you down the rabbit hole of mobile app testing tools out there and what each of them offers you. From mobile test automation and parallel text execution to the testing process, let’s talk about the top 10 automation testing tools for mobile apps! What is mobile application testing? Let’s say you’re making a meal for a big family dinner, but your main dish is something you’ve never made before. What do you do before the big event comes around? You make a small batch for yourself to taste-test and perfect the recipe, of course! Similarly, when you’re making a mobile app, you can’t and shouldn’t publish it till you’ve done a thorough mobile application testing. Mobile app testing is a critical process within the software development lifecycle that focuses on evaluating the functionality, performance, usability, and overall quality of mobile applications. However, the main goal of mobile testing is to ensure that everything works as intended and to see how the application works on different mobile devices, operating systems, internet speeds, and such.   Because mobile app testing is a broad term, I’ve broken down the 8 main aspects of mobile app testing every QA should know: Types of App TestingDescriptionFunctional testingEnsures that the individual functions of the mobile app work as intended, validating features, UI elements, and user interactions. Interruption testingEvaluates how well the mobile app handles interruptions such as incoming calls, texts, or low battery scenarios.  Localization testingVerifies that the mobile app functions correctly when adapted to different languages, regions, and cultural settings. Speed testingAssesses the responsiveness and loading times of the mobile app, ensuring optimal performance and a smooth user experience, particularly under varying network conditions. Memory leak testingIdentifies and addresses memory leaks in the mobile app, ensuring efficient memory usage and preventing performance issues or crashes. Usability testingEvaluates the overall user-friendliness of the mobile app, including navigation, design, and accessibility. Performance testingMeasures the responsiveness, speed, and overall performance of the mobile app under different conditions, helping identify bottlenecks. Security testingIdentifies vulnerabilities and ensures secure data handling within the mobile app to protect against any security threats. What are the challenges of mobile testing? The mobile ecosystem at large is a very complex environment and has challenges that will appear when you’re focusing on mobile test automation.   For starters, the wide variety of mobile devices with different screen sizes, resolutions, processing power, and hardware capabilities makes it challenging to ensure consistent performance and user experience across all devices. The same goes for network variability.   Operating system fragmentation adds another layer of problems. Both iOS and Android– the two dominant mobile platforms– have multiple versions in circulation, and it can be hard to keep up with version rollouts and ensure that the application functions seamlessly on the newer versions. Mobile apps also often follow agile development methodologies with frequent release cycles. This rapid pace of development poses challenges for testing teams to keep up with continuous testing requirements.   Top 10 mobile app testing tools Mobile app testing is one of the most important actions you can take before you launch your project to the public. To make your testing process easier, here are the top 10 mobile app testing tools you can use: 1. Appium Appium stands out as a powerful open-source tool designed for automating mobile web, native, and hybrid applications on both iOS and Android platforms. Its versatility makes it a popular choice among developers and testers aiming for cross-platform automation. Appium supports multiple programming languages, including: Java,  Python,  Ruby,  C#, and  JavaScript One of Appium's key strengths lies in its compatibility with Selenium, a widely used automation testing framework. This integration allows users to leverage Selenium WebDriver APIs for mobile application testing and facilitate the use of existing scripts.   Appium's support for native, hybrid, and mobile web applications ensures comprehensive test coverage across different application types. This is particularly valuable in today's mobile development landscape where applications often combine native and web elements.   Key Features: Enables automation of mobile applications across both iOS and Android platforms. Supports a variety of programming languages for mobile test automation. Integrates with device farms and cloud testing platforms, facilitating parallel test execution. Supports a broad range of devices and emulators, allowing testing on various screen sizes, resolutions, and hardware configurations. Capable of automating tests for native, hybrid, and mobile web applications. System requirements: Operating System: Windows, macOS, Linux Software Dependency: Node. js Additional Requirements: Java Development Kit (JDK) for Android testing, Xcode for iOS testing 2. Katalon Katalon is an all-in-one automation solution renowned for its user-friendly interface and versatility in supporting both web and mobile app testing. Its intuitive design simplifies test creation, making it accessible to testers with varying programming expertise.   Katalon's integration capabilities with tools like Jira, Git, and Jenkins streamline collaboration, version control, and continuous integration. Additionally, its consolidated approach to testing both web and mobile applications within a single platform enhances testing efficiency. Key Features: User-friendly interface for creating, executing, and managing tests. Seamless integration with tools like Jira, Git, and Jenkins. Comprehensive solution for testing both... --- Everyone needs to start somewhere. Before you can finetune your subscription offerings and optimize the monetization mechanics, you need to at least have the app available to download. With this in mind, we have prepared this guide on publishing an app on the mobile store.   While there are plenty of platforms to choose from, the App Store has historically shown higher revenue per download (Apple devices are responsible for 67% of consumer in-app spending). It has a famously tedious approval process, so it makes sense to start with this platform. This comprehensive guide is tailored to streamline this process for developers, whether you are seasoned professionals or first-time creators. Some things might seem redundant or evident, but it's always better to check everything in-house rather than to run into an issue later on the road. App Store submission requirements Apple's submission process includes several technical, design, content, and legal criteria and is outlined in their App Store Review Guidelines. There are plenty, but the key ones can be grouped into 5 categories: Safety: apps should not contain offensive or harmful content. This includes avoiding objectionable content like defamatory, discriminatory, or mean-spirited material, realistic violence, illegal or reckless use of weapons, overtly sexual content, and false information. If your app allows user-generated content, it must filter objectionable material, provide a mechanism to report offensive content, block abusive users, and include contact information for user support.   Apps for children must not include inappropriate links, purchasing opportunities, or distractions, and must comply with privacy laws regarding data collection from children. Performance: apps must be complete and stable, and beta versions should use TestFlight, with all metadata accurately reflecting the app's functionality. Accurate and up-to-date contact information is crucial for user support and may be legally required in some regions Design and Development Guidelines: apps should adhere to various guidelines, including UIKit, AppKit, WatchKit, App Extensions, iOS Data Storage Guidelines, and Apple File System. Legal and Privacy Considerations: apps must comply with legal requirements regarding data security and reporting criminal activity: for example, keep local user data on a server physically situated in the country of users' residence. This category also has specific requirements for services for kids, as well as gambling and VPN apps.   Business: as of November 2023, all apps should employ Apple services like Apple Pay and Apple ID to handle their in-app purchases and subscriptions. While there are some exceptions for physical goods, and some bigger apps are allowed to charge users with their own payment ecosystem, as an indie/beginning developer, you should assume that Apple will handle the monetization part of your app — and will charge you a fee for it. Adhering to these requirements is crucial to avoid common pitfalls that could lead to app rejection. Always refer to the regularly updated App Store Review Guidelines to ensure a seamless and successful process. What you need to do before submitting an app Join the Apple Developer Program Everything Apple-related starts with enrolling in the Apple Developer Program. This program provides a wide array of benefits, tools, and resources essential for successful app development and distribution, from yearly participation in Worldwide Developer Conferences (WWDC) to constant new updates and FAQs, as well as early access to the newer versions of iOS and other operating systems. Here's what you need to enroll: use or create an Apple ID with two-factor authentication; individuals need to write their legal name, while organizations need to provide their legal entity name, a D-U-N-S Number, legally binding authority, and a website; pay the annual fee is 99 USD for individuals and organizations, with small variations based on location and different categories of developers. Here's what you get as an Apple Developer: access to the latest OS and SDK beta software releases; comprehensive development tools like Xcode and App Store Connect for app building, testing, and management; features such as Apple Pay, ARKit, CloudKit, and more enhance app functionality; global App Distribution through the App Store and Apple Business;  TestFlight for extensive beta and real-world app testing. While having an Apple Developer account is obligatory to upload your apps to the App Store, it's also worth it for the privileges and free resources you might get from Apple and other services. Comply with Apple's requirements As mentioned before, satisfying Apple's detailed guidelines for app design, functionality, and content is a must. They are created to maintain a high standard of quality and user experience across the App Store and are part of the reason people trust and download the apps in the first place. The first and foremost Apple requirement is adhering to the Human Interface Guidelines. These recommendations, templates, and design assets ensure that an app's user interface is intuitive and consistent with the iOS ecosystem. They also go a step further and spell out many behavioral patterns one needs to be aware of when designing an app: for example, for most people, touching the upper left corner of the screen requires using a second hand and is not always intuitive, which can lead to lower activity and conversion of elements in that space. All Adapty services, like Paywall Builder, are fully adhering to the latest iOS requirements. Of course, the apps themselves need to be stable, free from bugs, and compatible with Apple's latest hardware and software. This often goes without saying, but a lot of smaller developers let some issues fly hoping that the users won't run into them. However, Apple testers and developers control all applications from first-time publishers, and even a small bug can result in a costly delay. Comprehensive content guidelines highlight that apps should not contain offensive, insensitive, upsetting, or defamatory content. Apple is usually more severe with its definition of "insensitive" and "offensive", so what might be okay for Steam or Android will not be allowed on iOS. User privacy is another important aspect, with Apple requiring that developers disclose what user data their app collects and why. For the most recent guidelines and... --- We’ll try to disprove some of the most popular myths about paywall A/B testing and also cover several common mistakes that prevent people from utilizing A/B testing to 100%. It’s not a secret that A/B testing is considered a powerful springboard for boosting revenue in mobile apps and the web. The statistics show that mobile app developers and publishers that run paywall experiments can make up to 100x more app revenue. Yet, this marketing tool has been lately covered with a plethora of myths concerning its effectiveness, safety issues, and being overrated in general.   In this article, we’ll take the role of myth-busters and try to disprove some of the most popular myths circulating around paywall A/B testing. We’ll provide more context to the myths to show that they are mostly based on the lack of information or someone’s bad experience. In addition to that, we’d also cover several common mistakes that prevent people from utilizing A/B testing to 100%. Let’s start with the myths first. Myths I’ve met people from the mobile app industry who avoid paywall A/B testing like the plague, claiming that it’s unsafe, complicated, and takes more time than provides final value. In this part, we’ll take a look at a few common myths and misconceptions regarding paywall A/B testing and see that they are either not true or simply rudimentary prejudice.   Myth #1: Using remote config for testing paywalls can get your app in trouble This is one of the most popular and common myths circulating in the mobile app community. Everyone in the industry has heard stories of this or that app getting banned and deleted by the App Store for guidelines violations. Of course, Apple is rather strict when it comes to rules and regulations, but they’re also pretty consistent in this matter, meaning they actually go by the book and do not go beyond what’s included in their guidelines. If you’re new to A/B testing: remote config is a feature that enables you to remotely change an interface element with the help of placeholder variables inserted in the code beforehand which can later be tweaked via JSON file. Such manipulations let you change elements in your app or software without having to release an update or a new version. The requirement that is feared the most in such cases is 2. 5. 2 of the Software Requirements which states: “Apps should be self-contained in their bundles, and may not read or write data outside the designated container area, nor may they download, install, or execute code which introduces or changes features or functionality of the app, including other apps”. Well, it’s a pretty reasonable point, but it doesn’t relate to the use of 3rd party frameworks and remote config for paywalls. Here are a few points to bust this myth: The code is never changed. The working principle of remote config is the substitution of one piece of content with another (for example a background image). To do that, you insert placeholder variables in your app’s code in advance. Such a variable is attached to a certain content piece in the framework that you use. So the code is the same, but the chosen paywall element can now be changed multiple times. Even Firebase features remote config. Firebase, an app development platform powered by Google, also features an A/B testing feature based on remote config. The use of such a feature by the owners of the second-largest app store shows that it’s an absolutely safe-to-use instrument. 3rd parties’ software is not a threat. Many fear using the remote config of 3rd party frameworks because it may count as the “outside” functionality. But in reality, you can create the same in-house backend infrastructure and integrate it with your app. The main point is that it will be extremely expensive and hard to maintain, but still. 3rd party SDKs do not add any “outside” functionality, they work within the guidelines. Some of the most popular app publishers use it. If you think that most of the popular apps in your preferred app store made it to the top just because they provide valuable content, it’s far from reality. In order to grow in revenue and conversions, you need to constantly experiment and look for new ways to acquire a new audience. The only way to experiment with paywalls is through remote config (or paywall builder, but we’ll talk about it in a bit). You can get familiar with some of the remarkable experiments of our clients in our case studies. To sum it up, the remote config or any other A/B testing platform that is based on it is safe to use in your app for testing or changing your paywall. Moreover, it may even be viewed as a test platform for providing the best user experience in your app, which is beneficial for the App Store itself. Myth #2: Firebase is more than enough to test mobile paywalls When you finally decide to try running A/B tests for your paywalls, you start searching for a tool that should be preferably free and well-known. The first framework that pops up is usually Firebase. And it’s pretty clear why: Knowing that it’s powered by Google and has tons of tutorials can make you think that it must be a pretty reliable framework, working with which is going to be a walk in the park. But it’s not that simple. Even though Firebase enables app developers to run A/B tests in their apps, it was not designed to experiment with paywalls. We have already prolifically investigated this matter, but let’s go through the main takeaways once again: Not designed for paywall testing: The platform's focus is on general mobile app experience testing and improving messaging rather than specialized paywall experimentation. Setup complexity: Setting up a paywall A/B test with Firebase involves several additional steps, such as integrating Firebase SDK and Google Analytics for Firebase SDK, codifying paywalls, and custom coding for capturing revenue data points.   Limited documentation: Firebase's documentation and landing page for A/B testing do not explicitly mention paywall testing. This lack of emphasis indicates that paywall testing is considered "just... --- Master Android UI layout and views with our comprehensive guide, detailing the types, attributes, and best practices for creating seamless and intuitive app interfaces. Welcome to our comprehensive guide on mastering Android UI layout and views. As the backbone of app design, knowing the possibilities and limitations of these tools is essential for developers, and mastering them helps create seamless, intuitive, and visually appealing app interfaces.   We dive deep into the various types of layouts and views, exploring their unique attributes and functionalities. We also provide some examples and best practices for designing and implementing the Views, ensuring that your app looks great and provides an outstanding user experience.   The guide is written from a beginner's perspective, with some explaining that might seem unnecessary to a more experienced developer. However, it never hurts to go over the basics. Let's go! What is an Android View In Android, a View (public class Views) is the basic building block for creating UI components. Think of it as a small rectangle on the screen that can display content or respond to user interactions. Each View is a fundamental element for creating various types of interactive and display components in an app. Basic Views include: TextView is one of the most fundamental View types. It's used to display text to the user. You can customize the appearance of the text by changing its color, size, font, and alignment.   Button is another pretty basic element. When a user taps a button, it triggers an event in the app, allowing it to respond to the user's input. ImageView is pretty self-explanatory: it's used for displaying images. You can manipulate images in ImageView, such as resizing them or changing their aspect ratio. EditText is an interactive TextView that allows users to input and edit text. It's commonly used in forms, search bars, and messaging apps. You can use various input types like text, number, and password, and set various properties to control the text, like limiting the number of characters or allowing only numbers. CheckBox is employed for multiple options that can be either checked or unchecked. They are often used in settings and forms and operate independently from one another. RadioButton is used for making a single selection from a group of options. When one RadioButton in a group is selected, the others are automatically deselected. This makes them perfect for choices like selecting a payment method or choosing a shipping option. Switch is a two-state toggle that can select between two options, often used in settings for turning a feature on or off. It provides a quick and easy way for users to control a setting. ProgressBar is used to display the progress of an operation, providing visual feedback to the user. They can be styled as a spinning wheel or a horizontal bar filling up.   SeekBar is a type of ProgressBar that adds a thumb to the progress line which a user can drag to set a value within a predefined range. It's often used for settings like adjusting volume or screen brightness. Views can also be custom: that is, present a different state of an object. For example, a Button view can change its color or shadow on hover (onHoverEvent) or touch (onTouchEvent). The official Android guide has more examples of Custom Views. What is a View Group A View Group holds together other Views or even View Groups. It's essentially a way to combine different Views, allowing for more complex and organized layouts in your app. A View is a basic UI element that is meant to be displayed on the screen, like a button or a text field, a View Group doesn't display any content of its own but serves as a container to organize and manage other Views. View Groups provide a structural framework that helps in organizing various Views within a screen. By nesting Views within a View Group, developers can create hierarchical and multi-layered layouts. They are responsible for defining the layout properties of the Views contained within them and often override the basic settings. This includes how these Views are positioned and displayed on the screen. What are the Android Layouts Layouts in Android serve as the cornerstone for designing and arranging user interfaces. They are essentially like View Groups but are defined by an XML file rather than as a component. They can often include several View Groups and are the map that dictates how different views and elements are organized on the screen. It's the structural framework that defines the visual structure of a UI.   Mastering the layouts is important because they provide a systematic way to arrange different interface components, ensuring that the app is both aesthetically pleasing and functionally effective. Android devices have a wide range of different screen sizes and resolutions, and layouts help in creating responsive interfaces that adapt seamlessly to various dimensions, with elements like buttons and text fields being logically placed for easy interaction. Layouts also streamline the development process. By defining a consistent structure for UI elements, they make it easier for developers to implement and modify the app's interface. A well-structured layout can significantly reduce the complexity of app maintenance, with UI designers and developers being able to change several components instead of entire screens quickly. Types of Android UI Layouts You can organize various types of Views and View Groups into different Layouts: LinearLayout organizes Views in a linear order, horizontally or vertically. It is straightforward and efficient for arranging elements in a single row or column. This layout is particularly useful for creating forms, toolbars, or any interface where a sequential arrangement of elements is needed. GridView displays items in a two-dimensional, scrollable grid. Similar to ListView, it uses an Adapter to fill its cells with Views. GridView is ideal for displaying a collection of images, icons, or data in a uniform grid, like a photo gallery or a settings menu.   TableLayout: as the name suggests, it arranges Views in a grid-like format, similar to a table. It's useful for displaying rows of data or elements that need to be aligned in columns... --- Contrary to what you might assume, app stores are busy during holidays. In fact, people are actively exploring, downloading, and purchasing apps across a host of niches during this time of the year. We delved into this in detail in our previous post on holiday marketing for mobile apps. Check it out. But to reiterate: Holidays are a great time to go all out and acquire new app users, boost in-app purchases, and re-engage ex-subscribers. So, how exactly can you use holidays to grow your app?  Here are ten actionable mobile app marketing tactics you could try this holiday season.   Create a completely different “holidays” listing/product page If you want to go all out with holiday marketing, tap into the app store’s app listing A/B testing feature and set up a wholly new and seasonal listing. Route 50% of your listing traffic to your actual listing (the “control”) and send the remaining 50% percent to your seasonal listing (also called the “treatment”). This way, you can see if users who land on your personalized, seasonal listing convert better than those who land on your general app listing around this time. Did you know checking if seasonal content works better is one primary use case that app store A/B testing facilitates? Now, there are a few caveats to this. For example, typically, you want to run your test for a specific period to see statistically significant results or until some set volume of traffic sees each version. But in this particular case, you’re looking for some quick wins. And since both app stores let you “peek” at your test results, you can return to your test every day, see how the different versions are doing, and adjust the traffic allocation as needed.   Setting up app listing experiments involves review by the app stores, so you must factor this in when planning this tactic. Make your app listing/product page all “Christmas-y” When people land on your app’s listing around Christmas, surprise them with all things Christmas-y. Think about how you can personalize your app’s metadata, like your app’s graphics, description, and offer, to reflect the year-end mood of your app users. Personalizing your app’s metadata, especially your app icon can also make your app stand out in search results. Notice how the photo app with the “festive” icon pops for this search: So when’s the best time to customize your app’s metadata for the holiday season?  Today might be a good day. There are about two weeks until the holidays kick off, and typically, around this time, you get to see the apps getting all Christmas-y to match the year-end mood. Check out your competing apps – they probably have their year-end stuff up already.   Add year-end in-app events If you don’t want to change your general app listing significantly and don’t want to try experimentation either, consider adding holiday specials or year-end-themed in-app events to your app listing. Both the App Store and Google Play let you enrich your app product page with data about any in-app events that you’re currently running or plan to run inside your app.   In-app events’ data or promotional content (previously “Live Ops” on Google Play) is a great way to promote your holiday offers or campaigns. When you add an in-app event, it’s displayed prominently on your app listing and can work just as well at getting your app users’ attention. Internal analysis at Google shows that developers who use the promotional content feature generate 4% higher revenue than those who don’t.   So the idea here is to throw in an exciting festive-themed event or story (more on this in just a bit), club it with a sweet upgrade or in-app purchase offer or reward, and you’re set. Here’s a beautiful example from the Lose Weight at Home in 30 Days weight loss app. You can see how the event truly captures the Christmas spirit and is also timed just right: Here’s another example from the CallApp app. CallApp, too, doesn’t change its default app listing to reflect the holidays but it offers a “Holiday gift” on its listing inside its events section: Craft exciting holiday offers We keep stressing this on our blog: Getting a good offer is one of the top reasons that users upgrade from free or freemium apps to the paid versions.  And holidays are a natural reason to offer discounts – users actually even expect them around this time. You might have even seen numerous articles this season featuring "the current top apps on sale in the app store. " But to make the most of offers, you need to come up with the right ones. This is tricky as holiday offers can take many forms. For example, you might launch flat discounts on all your premium plans or the one you want to push. If you want to balance your user distribution and need to sell more annual plans to do so, offer a discount only on your yearly subscription. Alternatively, you could offer premium features as rewards for free (just like the app CallApp is doing). Content, too, can be a festive special. You could even launch a lifetime subscription offer if that works for you. Even a lifetime subscription plan subscriber can add revenue to your app – we’re talking about the paymium model. Free and very long trials, too, are common offers around this time of the year. Let’s look at a few examples. Below, you have Moonly App offering its users a free reward. Dancefitme is extending a flat discount, while Daily Yoga is offering a generous trial offer: As you can tell, there’s no one right answer to what might work for your users. In fact, your different user segments might also respond differently to the different offers you try. The best way is to experiment. Use offer paywalls So far we mostly saw holiday marketing tips that work in the app store that can get you more downloads. Let’s now talk about how you can... --- November brought a few minor yet useful updates and improvements for Adapty that should make the process of working with paywalls and A/B testing much more pleasant and effective. With every iteration of our product, we try to make it more convenient and easier to navigate. November brought a few minor yet useful updates and improvements that should make the process of working with paywalls and A/B testing much more pleasant and effective. Upcoming January deprecation Before we get down to the latest updates, let us remind you that we are planning to deprecate some of the older functionality early next year: legacy paywalls, A/B tests, and remote configs. Starting January 29th, 2024 the "Paywalls (deprecated)", "A/B tests (deprecated)" and "Legacy remote config (deprecated)" of the paywalls will no longer be available in the Adapty dashboard. If you are still using those sections – please read this information letter for more details on what to expect and how to prepare. The A/B test editing flow reworked This time, we’ve slightly changed the flow for editing A/B tests. Now there’s no need to stop the live test if you want to edit it, you can click the Modify button to apply changes. Depending on the adjustments made, the test will either be saved with new settings or marked as Completed with a new test launched right away automatically. Every type of test (Live, Draft, Completed) now has its own set of quick action buttons with the status of the test itself shown in the top right corner. Separate styles for products in the Paywall Builder Our Paywall Builder now allows you to style each product on your paywall separately. By default, changing color, font size, and other visual attributes in the product section applies to all the products on your paywall, but now you can disable the style sync and edit each product separately. This may be helpful in cases where the “Bestseller” badge is not enough and you want to make one of the products stand out visually and attract more attention. Learn more in the doc. Color and opacity adjustment for the “Сlose” button More customization options for the “Сlose” button on the hard paywall were added in the builder as well. Now you can control the color and opacity of both its content and the background. You can make the “Сlose” button fit your paywall better by adjusting the colors and/or removing the background of a button entirely. View the example below: Pie charts in analytics Every metric in the analytics dashboard can now be visualized as a pie chart. Pies have full support for grouping and comparison, which helps create neat and comprehensible charts for further insights and hypotheses.   --- You’ve thought of a great app idea. It’s going to make you tons of money, rake in millions in downloads, and it’s going to become one of those household app names. Now what?   You have to build a custom software development team, right?   Cue that one obvious, glaring question you’ll have before anything else: how much should it cost to hire a mobile app developer?   Where do you go to find the cost to hire app developers? How do you calculate every cost of your new project? These questions might be whizzing in your head long before you got to reading this, and the good news is that we’ve got everything answered here.   If you’ve been all over the place when it comes to the cost of hiring your team of developers or what to financially expect in this process, keep reading this detailed blog on how much it will cost to hire an app developer! Average rates charged by mobile developers According to Clutch, the average cost of hiring app developers is between $25 to $49 per hour. They also mention that on average, most mobile app development projects cost around $10,000 to $49,000 to fully complete and launch.   But before you take these figures to heart, just know that they’re not drawn in the sand. You will come across and settle for a possibly different rate, depending on various factors.   Some of the main factors that influence these average rates are:  Experience level: Senior developers with experience charge more than junior developers. Geographical location: Some countries will have a drastically changed rate because of currency conversions. Type of app: iOS app projects and Android mobile app projects have different costs and rates. Similarly, native, web, or hybrid apps will bring you different rates. However, they’re not the only factors that influence the average rates charged by mobile developers. I’ll be getting to that in a bit, though so keep reading! Another thing that you should consider is that your average rates will fluctuate depending on the type of developer you’re hiring. According to Upwork, here is a general breakdown of the different types of mobile app developers, the skills they typically have, and the average hourly rate they’ll charge: Type of mobile app developerSkills they haveAverage hourly rateBasic iOS developerSkilled in Objective C, Swift, and Xcode IDE. Knowledge and experience working with frameworks and APIs like Foundation, UIKit, and Cocoa. Also familiar with Bugzilla, CocoaPods, and GitHub$45–$75+Basic Android developerControl over Java, Android SDK, Android Studio IDE, Ionic, Corona, Material Foundation, Jira, Gradie and GitHub$35–$60+XAMARIN DeveloperProgramming proficiency with C#, . NET Framework, Xamarin, and Visual Studio$20–$50PhoneGap developerProficiency in HTML, CSS, JavaScript, and jQuery Mobile. Can also know Iconic, BackBone. js, Swift and Java$16–$60+ How to calculate the cost of app development? Beyond the hourly rates you have to pay to hire an app developer, there are many other costs and figures that you need to keep in check. If you’re like me, and you don’t like surprises, you’ll want to properly calculate the cost of your project. I broke down that process into 4 steps and here’s what that looks like: Define project scope Clearly outline the project's objectives, features, and functionalities. Determine the platforms (iOS, Android, both) and technologies needed.   Break down the app into features, categorizing them by complexity (basic, intermediate, advanced). Understanding the intricacy of each feature helps in estimating the workload. You should also divide the development process into phases, such as: Planning,  Design, Development,  Testing, Deployment. Research developer rates Explore hourly rates or project fees charged by app developers. Rates vary based on factors like location, experience, and skill set. Conduct thorough research to find suitable developers within your budget. Reach out to multiple app development agencies or freelancers to get detailed quotes. Ensure these quotes include a breakdown of costs, hourly rates (if applicable), and any additional expenses. Examine past projects from potential developers to gauge their capabilities. Discuss potential additional costs, milestones, and payment schedules.   Speaking of payment schedules, now you have to choose your billing methods! Choose billing methods Understand different billing methods, such as hourly rates, per-project fees, or retainer agreements. Select a method aligned with your project scope, timeline, and financial preferences. Now that you have how much you’ll be paying for the entire project, it’s time to understand the “how”. There are 3 different ways you can choose to pay to hire an app developer.   First, you can hire an app developer on their hourly rates, letting them use time stamping software to record their hours. You can then review those hour logs and pay them for it! Secondly, you can opt for a per-project fee as well. This one offers more stability in terms of the cost and suits best to freelancers if you choose to hire them.   On a per-project fee, you can find and hire an app developer, agree upon a rate, and then pay once the project is done to your preference. It also gives you more control over the final product and helps you avoid paying for rework most of the time! Last but not least, if the project is going to take months, you can choose to hire an app developer for a retainer agreement. You’ll have to draw up a legal agreement with informative clauses and agree to pay them a fixed “salary” or retainer amount per month.   Use online cost estimation tools Leverage online tools and calculators tailored for app development cost estimation. Platforms like "HowMuchtoMakeAnApp," or "Clutch" allow you to input project details for rough cost estimates based on industry standards. In these tools, make sure you account for ongoing maintenance and update costs such as bug fixes, feature updates, and platform adjustments after the launch. You should also account for any hidden costs such as: Onboarding,  Equipment,  Software licenses, and  Potential rework. Factors affecting the cost of hiring an app developer Did you know the cost to... --- Choosing the right mobile app store to launch — or, rather said, to “first” launch — your mobile app can make a big difference to your app’s long-term economics. And while eventually, you might find yourself releasing your app in both the App Store and Google Play, you may want to (like so many app developers) start with just an iOS app. In fact, you might also stick to the App Store alone. Or to Google Play. Why? Because while Apple's App Store and Google Play cater to the same smartphone audience, their user bases differ in their app journeys. And the differences are real, as we'll see in today's article. So let's see how iPhone users compare with Android users and how these audiences' preferences can impact your app business. We’ll discuss: An overview of the market share of the App Store and Google Play The similarities and differences between iOS and Android users and how each type engages with mobile apps Key considerations when choosing a platform for distributing a mobile app Here goes. An overview of each platform’s market share: Android vs. iOS When it comes to mobile operating systems, Android has consistently been a leader, dominating the market with about a 70% market share. iOS comes in second at about 28%. So, most smartphone users across the globe are Android users. This is mostly because Android phones are more affordable. You can get an entry-level Android smartphone for a very decent price. iOS, on the other hand, feels steep for a large user population. This socioeconomic divide is one of the most important differences between Android and iOS users. iOS users pay a premium for a good mobile experience, and as you'll see, this reflects in their app spending behavior as well. All that said, this "fundamental" divide may be blurring now with the surge of high-end Android phones. Also, while Android has more users, the distribution varies greatly regionally. For instance, in the U. S. , Apple's iOS is the leading player, with Google coming in second with a 45. 8% market share. On the other hand, for North America, Android has the edge with a 53. 9% market share, with iOS coming in second at 45. 6. Android also leads the market share in Europe, but with a much higher market share (65%). In contrast, Android dominates the mobile market in Asia with a 77% market share, whereas iOS accounts for just 21%. If you zoom in at the country level, the iOS vs. Android market share can look even more different. For example, Android is a clear winner in India, a significant smartphone market, with iOS having just a 3. 55% market share. As a developer, you need to know what percentage of users you could reach with your app. For instance, if you’re launching an iOS app, you’re likely reaching more users in the U. S. , but only a small percentage in Asia and an even smaller segment in India. You get the drift. Key demographics of each user base: iPhone vs. Android users The majority of iPhone app users belong to younger age groups. In the U. S. (as of June 2023), 65% of the respondents in the 18-to-29 age group in a survey said they used an iPhone. Also, thanks to Gen Z's adoption, iPhone’s market share may grow 7% every year, according to a Bloomberg report. Likewise, in the U. K. , 73% of the respondents belonging to the very Gen Z age group (18-to-19-year-olds) used iPhones. In India, though, about half of iPhone users (44. 7%) belong to the 25-to-34 age group. On the other hand, Android adopters in the U. S. belong primarily to the 35+ age group. In general, Android users tend to be older. India, though, has its Android user base evenly distributed across a few different age groups (35-to-44 years: 18. 9%; 25-to-34 years: 51. 2%; 18-to-24 years: 25. 8%). As you can tell, user population distribution can be diverse across different regions. Taking it into account is crucial for connecting with your right user base. So if you’ve an app targeting a particular age group, a budgeting app for Gen Z, for instance, you want your app to be in the App Store. As far as gender distribution goes, the iPhone user base is fairly even, with roughly 51% of users being women and 49% being men. However, Android appears to have a more male-dominated user population, with 57% being male. Income-wise, iPhone users appear to earn more. Back in 2014, Comcast research found the median iPhone user to earn $85,000 annually, 40% higher than the median Android phone user, who was found to make $61,000 a year. A more recent survey by Slickdeals (2018) discovered that iPhone users earn an average annual pay of $53,251, with Android users making $37,040 annually on average. Although these trends don't hold globally for the entire user populations the two mobile operating systems cater to, they do give insight into why Android users are seen to be more frugal when it comes to app spending. How iPhone and Android users engage with apps App preferences: Do iPhone and Android look for the same kind of apps in both the app stores? When it comes to popular app categories, users across both the app stores are almost equally and highly interested in gaming, business, and education apps. These are the three most popular app categories across the App Store and Google Play. However, beyond these three, different categories perform differently for each user base. For example, lifestyle apps are almost twice as popular with iOS users as Android users (7. 93% vs. 4. 53%). Likewise, the health and fitness category is more popular with the iOS user base than with Android users (5. 08% vs. 3. 87%). Finance apps, too, generate more interest in iOS users than with Android ones (4. 16% vs. 3. 35%).   Subcategories can perform differently, too. For instance, while the App... --- The holidays are a great time to acquire new users, turn free users into paying subscribers, and reacquire those who canceled. Here's how. The holiday season is a great time for mobile app businesses to acquire new users, convert freemium subscribers into paying ones, and reacquire those who canceled.   And WHY is it so?   Because during the last few months of the year, people behave a certain way.   In its resource on holiday marketing, Apple identifies several app categories that see more interest during this time of the year. Finance, Food & Drink, and Shopping apps generate more interest as people prepare for the season and stock up food, drink, decorations, and gifts. Entertainment, Games, and Sports apps get more searches as users have time off and want to relax and unwind. Photo & Video, Social Networking, and Travel apps see more demand as people want to connect, create, and share memories with their favorite people.   So this is a great time to acquire new users. Also, users know this to be that time of the year that brings the best deals... even on mobile apps. This holds for both new and existing users. Did you know that one of the most popular reasons that free app users become paid subscribers is getting a great offer on the upgrade? The holidays also see a reasonable degree of redownloads, as Apple notes. So this is also a chance to reclaim lost subscribers. But to make the most of the holidays, you need a holiday marketing strategy. Here’s how to build yours. Crafting the holiday timeline for your subscribers First, learn what the holiday season looks like for your target audiences.   Also, plot the key events across the holiday season timeline as you’ll be launching your campaigns around these events. Below, you’ve got a sample holiday timeline from Apple: Planning a holiday marketing calendar for mobile apps At the end of the year, of course, you have Black Friday and Cyber Monday leading up to the New Year. Based on the countries of your interest, choose the events during this period that you’d want to run promotions around. And don’t forget...   New Year: a significant opportunity for mobile apps Holiday marketing also applies to you if you offer an app in industries like health, self-care, lifestyle, finances, travel, relationships, and productivity, as these see an uptick in demand during the holidays. You can understand why. During this period, a large segment of the target audiences for all these industries are looking to start afresh, and the new year looks like a great time. They see the new year as an excellent opportunity to improve their finance management, get healthier, and build more meaningful relationships. Just review Statista's research on the new year resolutions people made when entering 2024 to get an idea:  What are your 2024 resolutions? As you can see, people tie their goals to the new year. Aka, "new year's resolutions! " Now, if your app fits into the mix, i. e. , if your mobile app can help them stay on track and realize their goals, this is the perfect time to reach out to them with just the right messaging and offer.   Frame your offer(s) Next comes the offer. Holiday offers on mobile app subscriptions come in many forms. But typically, they fall into one of these categories. 1. Flat discounts on select plans Here, you make your discounts available only on select plans. For example, here’s Blinkist (an award-winning learning and book-summarizing subscription app) offering a flat discount on its annual plan for its Black Friday sale: Blinkist also seems to be experimenting with its offers, as it has multiple offers on offer:  First, you’ve got a flat 50% OFF offer.   Next, you’ve got Blinkist’s 60% OFF offer. Finally, you’ve one of Blinkist’s sweetest deals – a surprise 10% additional OFF offer when you choose to take up the 60% OFF offer – so you’ve got a 70% OFF offer. A subscription app experimenting with multiple holiday offers Do you realize what’s going on here? Blinkist is experimenting to find out what offers connect the best with its users. And we couldn’t agree more. Honestly, when someone asks us at Adapty if they should do a 30% or a 50% off sale for Black Friday, we don’t know – and can’t know – the answer. We usually say: Just run a paywall experiment with Adapty. Pitch both and find out for yourself what converts the best.   And how would you run such a holiday discount campaign experiment with Adapty? Here’s how. Holiday campaign experiments with Adapty First up, sign up for Adapty, and integrate the Adapty SDK inside your app. Since, in this example, we want to test a 30% offer against a 50% offer, we’ll only design/develop one version. So at this step, get your design and development team to create and codify a paywall offering a 30% discount. You also need to add this (paywall) code to Adapty. (Get in touch with our support for help with this. ) Then log into Adapty and set up this paywall. To do so, click Create paywall inside the Adapty dashboard: Setting up a paywall in Adapty Add a descriptive name to your paywall and assign a matching id: Creating a new paywall in Adapty Now, click the + sign under the Product tab and choose the product you want to sell.   Note: It’s essential to set up your products in the App Store or Play Store before you configure a paywall in Adapty, as your products only appear in the drop-down menu when they’re already live. For this example, let’s say you’re working with an iOS app. So your monthly product (that we want to offer the deals on) should be up in your App Store account already. Not just that, you should have both the promotional offers configured too: one offering 30% off and the other offering a 50% discount. For now, we’ll add the monthly product and the offer with the 30% discount: Below the Product section, you’ve... --- In this issue of the Paywall Newsletter, we'll try to find the balance between paywalls with minimum information and the ones that are overloaded with it. In this issue of the Paywall Newsletter, we'll try to find the balance between paywalls with minimum information and the ones that are overloaded with it. Here's what you'll see: The most minimalistic paywall with an unorthodox design, The longest paywall we've ever encountered, The paywall that has a separate screen for premium features, And more! Paywalls of this issue are commented on by... Mikayel Mirzoyan, Senior Performance Marketing Manager at Appvertiser. 1. Chegg Study: Plain, Simple, and Effective The homework helper app offers to make students' lives easier by providing useful educational materials as well as enabling them to post questions and get answers from experts.   Overall, the paywall has a commendable presentation of benefits, concise and motivating for users, which may explain its $1M MRR. However, it would be interesting to try to increase this figure by offering 2 to 3 subscription options, including monthly (already available), 6 months, and a yearly option for increased user commitment and higher LTV. Chegg Study - Homework Helper 2. Anatomy Learning: The Pinnacle of Minimal Bet you thought the first paywall was simple, well – here's a surprise for you. If this paywall still looks like this in 2023, it probably works, but there's a huge room for improvement and testing. Primarily, I'd enhance the visual appeal, making it easier for users to differentiate and select the packages. It would be great to clearly show the benefits or contents, maybe by using checklists to transparently outline what each package includes.  Adding and testing a CTA is also a must. Anatomy Learning - 3D Anatomy 3. Gaia: The Longer, the Better? Want to finally see something more complex? Here's one of the longest paywalls we've ever encountered. Judging by MRR, the app seems rather profitable, but from the perspective of user comfort, its paywall looks challenging. I'd recommend avoiding overwhelming users by displaying all options in a single screen view – it's better to minimize the need to scroll and compare.  It's also necessary to get rid of excessive redundancy and confusion, especially in the annual and monthly plan pricing. Gaia: Streaming Consciousness 4. EveryDollar: Trying to Find the Balance This budgeting app shows you the comparison table shortly after the launch, but the decision-making process has to take place on the next screen. Not that convenient, but at least the UI doesn't suffer, plus, you can always go back and forth to make things clear. Since it's a budgeting app, its paywall can probably benefit from: Aligning the package pricing sequences for consistency. Adding 2 to 3 additional subscription options. Emphasizing 3 main subscription options and offering a discount on one (keep in mind the psychological devaluation). Encouraging simplification and consolidation of the subscription model. EveryDollar: Budget Your Money 5. Plant Parent: Finding Ways to Be More Likable This plant-care app showcased two different paywalls on its first two launches. The offer however remained the same, only the design part changed. Perhaps to see which variant visually correlates more with the user.  For both variants, I'd consider removing the trial option to encourage user commitment. On the other hand, given the app's nature, it could also be worth it to explore the enticement of a weekly subscription, which may reduce commitment but will drive higher revenue from those subscribers who forget to cancel.   Plant Parent: Plant Care Guide Summing It Up Let’s recap the insights from today’s exploration: Simplicity Works: Even a basic paywall can be profitable if it clearly communicates product value. Design Matters: Minimalistic paywalls can stand out, but tried-and-true templates often yield better results. Avoid Overwhelming: Lengthy paywalls can deter users. Streamlining options and features can boost revenue. UI vs UX: Splitting paywall and feature tables aids UI but can compromise user experience. Test & Iterate: Presenting varied paywall designs can pinpoint what resonates with users. --- Unlock the full potential of your Android device with our step-by-step guide on configuring developer options. Enhance your user experience with advanced settings, debugging, and more. Perfect for developers and tech enthusiasts! Android has a secret. We’re letting you in on that... Every single Android device around you is equipped with a special and hidden setting within the Settings app. It’s called “Developer Options,” or sometimes Developer Mode.   This side of Android’s setting isn’t for any average Joe because it can tweak and forever alter your device’s behavior, performance, and much more. If you’re an app developer wanting to test out your app performance before launching it, Developer Mode is also where it’s at.   So in this guide, let’s walk you through the magical way of enabling and disabling Developer Options on your Android devices. I’m not kidding; it comes with a specific knock and all! But for those who are hearing about Developer Mode for the first time today, let’s tackle the basics. What is Android developer mode? Android Developer Mode is a special setting on Android devices that grants users access to a wide range of advanced features and Android developer options, primarily aimed at app developers, tech enthusiasts, and power users.   Consider it a backstage pass to your Android device, allowing you to tinker, customize, and optimize your experience in ways not possible in the standard user mode.   Now, I know what you’re thinking, “how many developer options can I even have if I enable developer mode? ” That was one of my first questions before I got into it myself.   So, here’s an overview of the Android developer options: USB Debugging: Allows you to connect your device to a computer and debug apps, ideal for developers. Mock Locations: Simulate your device's location for testing location-based apps or services. Drawing Stats on Screen: Visualize how your device's CPU and GPU are performing in real time. OEM Unlocking: Enables unlocking the bootloader, a prerequisite for flashing custom ROMs. Developer Options: Access various settings and tweaks for customization and performance optimization. Some notable options within Developer Options include: Limit Background Processes: You can restrict the number of background processes to conserve system resources and improve performance. Force 4x MSAA (Multi-Sample Anti-Aliasing): Enhances graphics rendering quality, although it may impact performance. Show Touches: Displays visual feedback on the screen when you touch it, which can be useful for creating tutorials or demonstrating app functionality. Stay Awake: Keeps the device's screen on while it's charging, which can be handy during development or testing. USB Configuration: Lets you specify how your device behaves when connected to a computer via USB (e. g. , file transfer, charging only, etc. ). Enable Wi-Fi Verbose Logging: Useful for diagnosing Wi-Fi issues and monitoring network activity in detail. These are just the key features which means there’s a ton more available when you enable developer options! Now that we know the potential of Android developer options, let’s talk about... Who needs Android developer mode? With so many incredible Android developer options hidden right in your setting apps, this mode is particularly useful for: App Developers For those creating Android apps, Developer Mode provides essential tools for testing and debugging, helping to ensure that their apps run smoothly on a variety of devices. Tech Enthusiasts If you enjoy exploring the inner workings of your Android device, Developer Mode is your gateway to a treasure trove of advanced settings and features. If I’m honest, there’s nothing quite like fiddling around in this mode! Power Users Users who want to take more control of their device's performance and appearance, optimize battery life, or customize the user interface will know that Developer mode is where it’s at. No matter how you want to alter the workings of your device, Developer Mode will be the efficient way to make it happen. Do developer options drain phone battery? No, enabling Developer Options itself does not directly drain the phone battery. However, certain settings within Developer Options, like increased animation scales or background process monitoring, may affect battery life if modified.   Developer Options are primarily intended for app development and debugging, so keeping them enabled without tweaking settings typically has no noticeable impact on battery consumption. How to turn on developer options on your Android device? Developer Options is quite an exciting concept if you’re a tech-savvy person. So if you’re already jumping on how to enable it, I get you!   Here are 6 steps to turn on Developer Mode on your phone within this minute: Open your device's Settings app.   Scroll down and tap on "About phone" or "About device. " Tap on the menu item stating, “Software information. ” Find the "Build number" entry and tap on it seven times. You'll see a message like "Developer Mode has been enabled," on a Samsung Galaxy device. Go back to the main Settings app menu. You should now see a new menu item called "Developer options" or "System" where you'll find it. Tap on the toggle at the top of Developer Options to turn on Developer Mode on your Android device!   As soon as your toggle is on, you’ve activated Developer Mode on your Android phone and have access to a range of tech-savvy options. One of the top ones within that developer options menu is USB debugging. What Is USB Debugging on Android? USB Debugging mode is a developer mode in Android phones that allows newly programmed apps to be copied via USB to the device for testing. In other words, USB Debugging on Android is like giving your phone a backstage pass to communicate with a computer.   When you enable USB Debugging, you're essentially opening up a special channel between your Android device and your computer through a USB cable. This feature is particularly handy for developers and tech enthusiasts because it enables communication for development and troubleshooting purposes. When USB Debugging is enabled, it opens up a pathway for your computer to interact with your Android device at a deeper level. This connection is crucial for various tasks related to: app development,  system debugging, and  Customization. I know what you’re thinking, “how... --- From automatic renewals that users meant to cancel to "accidental" purchases and unauthorized transactions, many things lead to mobile app refund requests. Now refunds are an inevitable part of a mobile app’s sales funnel. And while refunds mean that you lose revenue, refund requests can offer actionable insights into how you can improve your app and deliver more value through it. Which means, working on the underlying causes of refunds not only helps in retaining more users but also serves to optimize your app's refund rate metric in the long run. Besides, a user-friendly refund policy is important for growing your customer base, as quite a few users purchase apps or make in-app purchases when they see they can request a refund, just in case. Going easy with refunds also means you can avoid negative reviews that follow from refund request rejections — not that they’re justified. So how do you handle refunds better so both you and your users are happy? Here’s how to go about it. Learn everything you need to know about mobile app refunds in this primer. Discover: What the average mobile app refund rate is (and why you must track it) How you can calculate your app's refund rate How the App Store and Google Play handle refunds (and do they keep the sales commissions in case of refunds? ) Why a clear refund policy is important and how to craft one What the most common reasons for refund requests are and how you can lower refund requests through clearer refund policies and practices Let’s start with a quick overview of the refund rate mobile app metric. What is a mobile app’s refund rate? As you'd know, both Google Play and the App Store allow users to raise refund requests for any apps they purchase or any in-app purchases that they make within apps. When users make refund requests, these app stores often decide on granting refunds on a case-by-case basis. For example, if an app in Google Play offers a 14-day no-questions-asked refund policy, a user is pretty much entitled to a refund for a request placed during the stipulated period. Alternatively, if an iOS app user makes a consumable in-app purchase, it may not be refundable at all. Partial refunds, too, may be granted. For instance, an app user may be eligible for a partial refund for their ongoing subscription if they fall under some jurisdiction that guarantees that. All in all... there are several considerations when it comes to processing refunds, but both app stores refund app purchases from time to time. Simply put, a mobile app's refund rate is the percentage of app purchases that get refunded. So how do you calculate your mobile app's refund rate? How to calculate your mobile app's refund rate To calculate your mobile app's refund rate, simply divide the number of refunded transactions by the total number of transactions: Refund rate = (refunded transactions/transactions)*100 Let's say your app got a thousand in-app purchases in a month. And that fifty of these got refunded. So in this case, your refund rate would be calculated as: (50/1000)*100  ... which comes out to be 5%. Three reasons why it’s important to monitor your mobile app's refund rate metric Improving your marketing message: If you offer a paid app and observe a high refund rate, it may be because your users didn't get what they thought they'd get. Such misalignment between your app’s copy and users' expectations can be easily fixed by investigating your refund rate. Improving your conversion rate: If you offer a free trial that automatically puts users on a paid plan after the trial period ends and see a high refund rate, it might indicate that either your users didn’t take advantage of the trial or didn’t think the app did what it promised. If you combine user behavioral analytics with your refund data, maybe you’d realize that users that don’t use the trial period end up making the most refund requests. Which means, you might want to get more of your users to “try” your app. You get the drift. Identifying usability issues: A high refund rate can also suggest potential usability or performance issues with your app. This is another aspect to pursue if you see too many requests for refunds. If, for example, you launch an update and suddenly see a surge in refund requests, you probably broke something in the app. Both the app stores offer basic reporting when it comes to refunds. But if you want to unlock even more insights into your refund rate metric, use an in-app payments infrastructure and revenue analytics solution like Adapty. With Adapty, you don't have to manually measure your refund rate. Adapty's built-in refund tracking does all this work for you. Here’s a snapshot of an app’s refund data over a year (segmented by day): Here’s another snapshot showing refund trends for the different subscription plans: There’s more. You can even view your refund rate metric for each product: So what’s a “good” in-app subscription refund rate? As such, there's no definitive research focused solely on analyzing the average refund rates across the mobile app industry. However, in our own research, where we analyzed 30M transactions from 6. 5M users using iOs apps (US market), we found that the average refund rate for mobile apps using the subscription model hovered around 6-7% each month. We also observed that the average refund rate lied in the same range across all subscription lengths (weekly, monthly, and annually). Notably, refunds across all the subscription plans peaked around the new year: For more insights, download our State of in-app subscriptions in the US report. It gives you the inside scoop into the mobile app subscription economy and insights you can apply to your app business today! Let’s now see how the app stores handle refunds. How do the App Store and Google Play approach refund requests With Google Play, users can raise a refund request directly via Google's... --- The App Growth Awards 2023 has just passed in Berlin and we’re thrilled to share with you that Adapty has become the winner in the App Revenue Platform nomination! The App Growth Awards 2023 has just passed in Berlin and we’re thrilled to share with you that Adapty has become the winner in the App Revenue Platform nomination! It’s an honor to be appreciated for our diligent work and constant improvements in the field of app revenue growth. In 2023, our product saw some of the most innovative updates that took working with paywalls, A/B testing, and analytics to another level. We’re happy to be able to regularly provide our clients with new valuable features and see them unfold their potential to the fullest. We’re thankful for your loyalty and trust to keep growing your apps with Adapty. Receiving the award at the end of the year seems to be a good reason to sum up our latest achievements and innovations in the area of app growth. We’d like to show you the current state of our revenue management system and how exactly apps can benefit from using Adapty.   How Adapty helps to grow app revenue In 2023 we improved and reinforced the strategy of helping our clients increase their user engagement rates. There are two main stages of engagement where our service is invaluable: First payments (onboarding paywalls) and Recurring payments (retention and renewals). By focusing on these two stages, we help our clients get more high-quality subscribers and significantly increase their MRR. Let’s look more closely at every stage and all the instruments Adapty provides for them: Paywalls 2. 0 – a brand new paywall management system for easier first-payment engagement. Paywall Builder 2. 0 – a no-code visual editor for creating and publishing paywalls in a few minutes. Updated and new analytics dashboards for the thorough control of the recurring payment engagement. Paywalls 2. 0 and first-payment engagement One of the main general goals of Adpaty is to make the process of creating paywalls and running A/B tests as easy and convenient as possible. So in 2023 we proudly introduced our brand-new management system – Paywalls 2. 0. Its main purpose was to improve the way our clients manage paywalls and A/B tests and maximize their revenue potential. The core of this update was the introduction of new entities – placements, audiences, and paywall groups – that were meant to change and improve the traditional process of working with paywalls. Paywalls 2. 0 structure The addition of these entities drastically changed the way the paywalls used to work in our product and provided total freedom for user segmentation of the first payment engagement stage. The ability to distinguish between different user audiences based on numerous attributes, including custom ones, significantly facilitated the process of finding the right target audience for an app. The "audiences" could later be used for displaying different paywalls to different customer groups, or running paywall A/B tests.   Paywall A/B test targeted for a specific audience (Facebook users) Paywall Builder + 2. 0 version Continuing to make Adapty a more convenient solution for working with paywalls, at the beginning of the year we introduced our first iteration of the Paywall Builder. That version enabled our clients to create no-code native paywalls based on a best-selling paywall template in a user-friendly visual editor. The feature got quickly popular with our clients, so updates and upgrades weren’t long in coming.   Paywall Builder 1. 0 The current 2. 0 version of the Paywall Builder is 10 times more convenient and powerful. It truly gives our customers creative freedom and provides more possibilities for user engagement: Choose among several popular templates, manually customize any design element to your liking, and publish the paywall right away without having to code it or re-release the app. The paywalls made with the builder can be copied, tweaked, and quickly turned into A/B tests for different audiences to find which one is more engaged in the product. Using the same functionality, our clients can even test their onboarding screens to reach the most engaging user flow.   The personalization aspect is added through the paywall localization which can be done with just a few mouse clicks. Our users can create as many paywalls as they want and proceed with making numerous localized versions of those for a higher chance of conversion on different markets. Paywall Builder 2. 0 Upgraded paywall A/B testing, facilitated by the Paywall Builder 2. 0, helps our clients thoroughly look for the most profitable product combination and engaging paywall design in their apps. Paywall localization and targeting by attributes enable them to find the right audience and product fit - all of which leads to a significant increase in revenue.   MRR growth since the first experiment with Adapty The recurring payment engagement: Data + analytics Being a major player in the market, our service shows impressive numbers of data tracking: 31. 7М subscription events/month, 802M users, 11. 8M subscribers/month, and 13. 1B API calls/month. Adapty works directly with mobile purchases and payments, thus always getting the most precise data. We process 17 subscription events and turn them into human-readable format instantly as they're created and enrich them with additional information, such as customer ID, consecutive payments, store commission info, and others.   We significantly facilitated the engagement process of the recurring payment stage of engagement by providing a plethora of tools for working with data and analytics. Our updated analytics dashboard features almost 20 useful mobile metrics, including different subscription states. With detailed segmentation by product, duration, and numerous other attributes, the analytics dashboard allows for checking important engagement metrics, such as activations, trials, cancellations, refunds, and many more. Advanced charts, including Retention, Funnels, and Conversions are simply irreplaceable when dealing with churn.   Main mobile metrics in Adapty’s analytics dashboard Updated Cohort analysis chart in a granular manner displays retention split by renewal periods or by days. A brand-new addition to the chart that came out this year allows for predicting LTV and Revenue numbers for a period of up to 12 months. Based on an ML-powered prediction model with a gradient... --- Mobil uygulama sektöründen en önemli konuklarla gerçekleştirdiğimiz podcastin yeni bölümüyle karşınızdayız. Bu podcast serisinde mobil uygulamadan para kazanma, abonelikler, reklamlar ve sektörden güncel gelişmeleri uzman konuklarımızla konuşuyoruz. Onuncu bölümde konuklarımız  Özge Zaugg , Berkay Tuğrul ve  Taylan Aydoğan  ile HubX ekibi olarak geliştirdikleri uygulamaların ürün yönetiminden, son kullanıcıya ulaşma süreçlerine kadar birçok konu hakkında konuştuk. Şimdiden hepinize iyi dinlemeler. Bu bölümü beğendiyseniz abone olun ve daha fazla kişiye ulaşmamız için arkadaşlarınızla paylaşmayı unutmayın. Yeni bölümlerden haberdar olmak için Telegram Topluluğumuza  katılın Altta bu bölümden en ilginç kısımları bulabilirsiniz. Ne tür uygulamalar geliştiriyorsunuz? Özge: Şu anda sayısı değişmekle birlikte 10’a yakın aktif uygulamamız var mağazada. Bu uygulamaların ortak noktası bir şekilde AI’a dokunmaları diyebilirim. Genel olarak productivity ve photo & video kategorilerinde uygulamalarımız var. Tabii ki diğer kategorilerde yayınladığımız uygulamalar da var mağazada. AI’a dokunuyoruz derken, bildiğiniz gibi son dönemde AI çok popüler bir durumda. Biz de AI ekiplerimiz ile bazı open source ve kendi geliştirdiğimiz algoritmalarla ilerliyoruz diyebilirim. Berkay: Aslında yapay zeka mobil uygulamalarda hep vardı. Fakat kullanıcılar somut bir şekilde yapay zekayı kullanarak çıktı aldıkları için daha fazla popülerleşiyor. Şu anda mesela insanları 90’lı yıllara götüren AI Yearbook trendi var son günlerde. Biz de uygulamamıza bu özelliği entegre ettik. Biz şirket olarak bu gelişmelerden çok memnunuz. Kendimizi sürekli yeni tutmayı ve yaratıcılığımızı geliştirdiğini düşünüyoruz.   Taylan: Uygulamaların üretim aşamasında yapay zekaya dokunduğumuz gibi büyüme aşamalarında da yapay zekadan fazlasıyla yararlanıyoruz. Özellikle abonelik tabanlı dünyada çok fazla tahminleme yapmak gerekiyor. Kullanıcılara sunacağımız özellikleri planlarken olduğu gibi büyümeyi nasıl yakalarız sorusunu sorarken de oldukça yapay zekadan yararlanıyoruz.   App Store ve Play Store'a aynı anda uygulama geliştirmenin nasıl zorlukları var? Berkay: İki platformda da uygulama geliştiriyoruz. Geliştirme aşamasında tabii ki de bambaşka iki ekosistemde ürün geliştirmenin kendine göre sıkıntıları var. İki mağazanın da kendine özel native galerileri, pop upları ve izin sistemleri olabiliyor. Ya da tasarımsal farklılıklar karşımıza çıkabiliyor. Özellikle Android tarafında çok fazla cihaz çeşitliliği olduğu için çok farklılık gösterebiliyor. Geliştirme konusunda da teknik olarak farklı çözümler kullanabiliyoruz. Native iOS ve Android ürünlerimiz olduğu gibi cross platform kullandığımız durumlar da olabiliyor.   Özge: Şu anda mağazada sadece Android’e çıktığımız bir ürünümüz yok. Daha önce sadece iOS olarak ilerlediğimiz ürünler vardı. Özel bir sebebi olmadığı sürece şu anda iki mağazaya da ürün geliştiriyoruz. İki tarafın da kendi açısından avantaj ve dezavantajları var. Örneğin iOS tarafında kullanıcının satın alma yapma ihtimali ve bu satın alımdan kar etme ihtimaliniz daha yüksek. Android tarafında ise kullanıcı sayısının fazla olması gibi avantajları var. Doğası gereği ARPU Android tarafında daha düşük oluyor. Biz iki mağazanın da deneyimlerinden beslenerek ürün geliştiriyoruz. Berkay: Özge’nin de belirttiği gibi Android tarafında kullanıcı sayısı çok fazla olduğu için bizim açımızdan, özellikle uygulamayı ilk yayınladığımızda kullanıcı feedbackleri çok önemli oluyor. Biz çok fazla gelir geldiği için sadece iOS kısmını hedeflemiş olsak kendimizi iyileştirme ve kullanıcı deneyimini arttırma konusunda kendimizi kısıtlamış olma ihtimalimiz doğabilirdi.   Mobil uygulama mağazalarının yeni özelliklerini kullanıyor musunuz? Murat: Bu arada Android tarafı da Apple deneyimine çok benzemeye başladı. Cihazlar daha iyileşmeye başladı. Kullanıcılar da artık abonelik açısından da daha fazla ödeme yapmaya başladılar. Mağazaların getirdiği yenilikleri nasıl takip ediyorsunuz? Berkay: Bana göre Android ve iOS arasındaki makas gerçekten kapanıyor. Yeni yayınlanan istatistiklerde de bu net bir şekilde görünüyor. Android kullancıları daha kaliteli cihazlara geçmeye başladı ve bu kullanıcılar satın almaya daha yatkın olmaya başladılar. Apple kullanıcısı para harcar, düşüncesi biraz eskide kaldı diyebiliriz aslında. Biz de her iki mağazada da yükselmek istediğimiz için tüm yenilikleri takip etmeye çalışıyoruz. Özellikle Apple bu özellikleri kullanan uygulamalara ayrıcalıklar tanıyabiliyor zaman zaman. Bu özellikler sayesinde featured olmak veya editörün seçimi gibi bölümlerde öne çıkma şansınız artabiliyor. Sadece bu açıdan da değil, kullanıcıya kendinizi daha iyi anlatma açısından da bu özelliklerin çok işe yaradığını düşünüyorum. Retention oranlarını yükseltme yolları nelerdir? Özge: Retention oranlarını yükseltmek için en önemli kriterlerden birisi uygulamayı her anlamda güncel tutmak. Özellikle içerik üzerine bir uygulama ise trendlere uygun ve her zaman güncel içerikler sunmak çok önemli. Kullanıcıyı tekrar uygulamaya getirebilmek için her anlamda kullanıcının uygulamayı çok sevmesi gerekiyor. Bunun için de özellikle içerik ve yeni feature geliştirerek kullanıcıyı sürekli içeride tutmak gerek. Bir diğer kriter ise uygulamanın bariz hatalardan arınmış ve çok iyi kullanıcı deneyimi vermesini sağlamak diyebilirim. Biz de özellikle kullanıcı deneyimi konusuna çok önem veriyoruz. Kullanıcıları uygun bir şekilde segmente edebilmek ve bu kullanıcılara özel fırsatlar, indirimler, ödüller sunabilmek de yine önemli maddeler arasında. Sizin için başarılı bir mobil uygulamada en önemli metrikler nelerdir? Taylan: Uygulamanın başarısını ölçerken tek bir metriğe indirmemek gerekiyor bana göre. Başarılı bir uygulama için birçok faktör var. Biz burada iki farklı kategoride ölçmeye çalışıyoruz. Product ne kadar iyi ve bunu ne kadara satabiliyorsunuz? Biri product biri de marketing yani. Pazarlama kısmında ne kadar harcama yapıp ne kadar kullanıcı aldınız ilk adımda bunu analiz etmeniz gerekiyor. Daha sonra reklam platformunda reklam gösterdiğiniz varsayalım. Burada da kaç kullanıcı reklamınızı görüp tıkladı, bunu anlayacağınız CTR değerini iyi analiz etmeniz gerekiyor. Mağazaya geldikten sonra ne kadar kullanıcı yükledi.   Kullanıcı uygulamayı indirdikten sonra ise artık direkt sizinle iletişim halinde. Bu noktadan sonra da kullanıcıyı ne kadar satın almaya yönlendirebiliyoruz bunu analiz etmeliyiz. Eğer sattığınız ürün trial sunuyorsa ne kadar trial başlatma oranı var. Ya da ürünlerinizin yenileme periyotları ne durumda gibi birçok metrik bizim için önemli.   Bundan sonraki aşamalar ise tamamen ürün kalitesiyle alakalı. Ürünün kalitesi ve kullanıcıya verdiği değer ile orantılı olarak satın almaya yönlendirmek için bazı adımlar var. Örneğin onboarding sürecinde kullanıcıya sunduğunuz deneyim ne kadar iyiyse kullanıcıyı satın almaya o kadar yönlendirme imkanınız olacaktır. Ya da vaadettiğiniz özellikler yeteri kadar iyi değilse trial convert oranlarınız düşük olacaktır. Ya da haftalık ürünlerinizin yenilenme oranları düşecektir.   --- Modern software development is a never-ending iterative process towards an ideal state you'll likely never achieve. Constant updates to mobile SDKs and operating systems require mobile devs to always be ready for change. Not to mention evolving hardware that needs support for larger screens, better camera systems, and new sensors to interact with in your apps. That's why the industry has engaged in a constant search for the one-size-fits-all type of solution to app development. One of those is Expo, which seems to deliver on the promise of universal cross-platform app development, founded in 2015 by Charlie Cheever and James Ide. In this guide, we will briefly present the ecosystem, explain its key features, and show how it works with Adapty.   What is Expo? The Expo SDK contains several instruments and shortcuts created around React Native. These tools help teams to develop, ship, and update apps on iOS, Android, and the web from the same JavaScript/TypeScript codebase. The key feature of Expo is its ability to streamline the development process across different platforms, allowing for a single codebase. This allows developers to spend less time and resources working on and updating their apps. One of Expo's standout features is its numerous pre-built components and APIs. They simplify the development process by eliminating the need to build certain features from scratch. This shortens the "feature-to-user" timeline and reduces possible bugs. The Expo client app also allows for real-time testing and iteration on physical devices and simulators/emulators, which is crucial for delivering a consistent user experience across all platforms. The Expo SDK automates many tedious and error-prone steps in the build process. Its service can compile apps in the cloud, freeing developers from maintaining native build tooling. Another not-so-obvious benefit of this SDK is the “Over-The-Air” updates feature, which enables developers to publish updates to their apps without going through the app store review process. It provides a time-saving advantage in maintaining and improving apps post-release. How to integrate in-app purchases with Adapty and Expo Integrating in-app purchases (IAPs) and subscriptions can be a complex process, but tools like Adapty and Expo are specifically designed to help streamline this integration. Here’s what you need to do: Install Expo and Adapty SDKs in your project. These SDKs provide the necessary tools and APIs for integrating IAPs. Here's the instruction for Adapty, and here's one for Expo. Define the in-app products and subscriptions you want to offer in App Store Connect and Google Play Console. Initialize Adapty in your app with your Adapty API key. For a React Native project, call the activate method, passing your public SDK key as an argument: import { adapty } from 'react-native-adapty'; nadapty. activate('PUBLIC_SDK_KEY');import { adapty } from 'react-native-adapty'; nadapty. activate('PUBLIC_SDK_KEY'); For an Android project, override the onCreate method and then call the activate method on the Adapty SDK, passing your public SDK key as an argument: @Override public void onCreate { super. onCreate; Adapty. activate(getApplicationContext, "PUBLIC_SDK_KEY"); }@Override public void onCreate { super. onCreate; Adapty. activate(getApplicationContext, "PUBLIC_SDK_KEY"); } Сreate a user-friendly purchase flow within your app with Adapty, showing available products, handling purchases, and managing subscriptions. Deciding what's truly user-friendly can be a chore, but with our Paywall Builder and Subscription Analytics tools, you can easily create several paywall designs to test and make data-driven decisions about their effectiveness. Thoroughly test your IAP implementation in sandbox environments provided by Apple and Google. This step is important to ensure that the purchase flow works as expected before going live. Once tested, deploy your app updates. Continuous monitoring and analysis of in-app purchase and subscription data with Adapty will help you optimize the user experience and your revenue, and Expo will make it easier to push the necessary updates as soon as possible. Now let's look at the key steps in more detail.   Creating projects, installing dependencies, and configuring offers First, create a new project at the command line using Expo: expo init YourProjectNameexpo init YourProjectName Then navigate to your project directory: cd YourProjectName Install the Expo in-app purchases module which provides the necessary APIs: expo install expo-in-app-purchasesexpo install expo-in-app-purchases Install the Adapty SDK with npm or yarn: npm install @adapty/react-native // or use yarn yarn add @adapty/react-nativenpm install @adapty/react-native // or use yarn yarn add @adapty/react-native The next step after installing the Adapty and Expo SDKs is introducing the offerings. You can set up and configure products by logging into the relevant developer consoles and creating in-app products or subscriptions. For example, in the Google Play Console, navigate to the "Subscriptions" or "In-app products" page, click on the "Create" button, and provide the required product details such as the product ID and name .  Check our docs for help on configuring App Store products or Google Play products. Implement ‘react-native-purchases’ in the app The react-native-purchases library serves as a client for the purchase tracking system, providing a framework around StoreKit and Google Play Billing to simplify IAP implementation in React Native apps. Here's how you implement it: Create a new Bare project: expo init --template bare-minimumexpo init --template bare-minimum Install the expo-in-app-purchases library: npm install --save expo-in-app-purchases react-native-restart react-native-simple-toast react-native-paper axiosnpm install --save expo-in-app-purchases react-native-restart react-native-simple-toast react-native-paper axios Install React Navigation prerequisites and React Navigation along with a couple of its navigators: stack and drawer navigation. Install expo-secure-store for storing sensitive information in the app and expo-device for determining the user's device name: expo install expo-secure-store expo install expo-deviceexpo install expo-secure-store expo install expo-device Install other dependencies: expo install react-native-gesture-handler react-native-reanimated react-native-screens react-native-safe-area-context @react-native-community/masked-view npm install --save @react-navigation/native @react-navigation/stack @react-navigation/drawerexpo install react-native-gesture-handler react-native-reanimated react-native-screens react-native-safe-area-context @react-native-community/masked-view npm install --save @react-navigation/native @react-navigation/stack @react-navigation/drawer Install iOS dependencies: npx pod-installnpx pod-install Utilize expo-in-app-purchases for implementing IAP within your app. Integrating react-native-purchases facilitates the management of IAPs by providing a convenient API to perform purchases/restores. It supports features like promo prices to "pay upfront", which are essential for monetization, better user engagement, and personalized offers. The library supports both Android and iOS, unifying the complexities of each platform's in-app purchase implementation,... --- Black Friday is over but the sales frenzy is still going on. Let's have a look at how popular apps approach the sales season and learn a few tricks. Black Friday and Cyber Monday have just passed but the season of sales is still going. The period from November to January is considered the most profitable time for many industries and markets, subscription apps included. Black Friday and Cyber Monday sales have become an ordinary and even default occurrence, so people tend to wait for these sales to purchase a certain product or piece of tech with more profit. The same goes for apps, so having a special offer during this period may help you drastically increase your revenue and get new subscribers. The only question you may have is how to present this sales offer in the most effective way. As with your paywall – there's no universal answer. But there's always something to look at and get inspired by. We've gathered a few popular apps that demonstrate their Black Friday offers in several different ways – so you are sure to find what aligns with you. Dogo - Dog Training & Clicker One of the most popular dog training apps in the App Store presents the user with a paywall and an attractive Black Friday offer for the annual subscription. Seems like an effective old-fashioned approach where the exclusive offer is placed directly on the main paywall, but should the user go beyond the paywall, they get also reminded about the lucrative offer with a small banner which is sure to drag their attention because of the play on the black and white contrast. MRR > $100 000 Drops: Language Learning Games Another full-screen pop-up, but this time it's not a paywall, but an informational screen with a pretty daring CTA that offers 60% off. Sadly, the emoji in the heading doesn't fit in properly, but the screen still looks rather catchy. Upon tapping the CTA button you get transferred to a pretty long paywall where you get to choose a preferred plan and find more info about the premium features. Even though the app fully manages to present its values, such a long screen may potentially draw the user's attention away and make them have second thoughts, when it could be more profitable to show less and point them more at the purchase button. MRR > $200 000 EvolveYou: Fitness For Women When preparing for huge sales, app developers usually create new products with discounted prices which they later use in their "special occasion" paywalls. So when you decide to purchase an "on-sale" subscription, you actually purchase it as a subscription in the App Store. However, some developers tend to have a bit different approach. This fitness app for women greets you with a Black Friday splash screen providing you with information on a few premium features and offering a 30% discount. The not-properly-centered text on the CTA button may suggest this screen was made hastily to make it on time for the sale, but overall the screen looks rather stylish. The difference with the previous apps we've just covered lies in the purchase process. When you tap the CTA button you get a pop-up window for redeeming the offer. So in this case, the purchase is made with the help of a special offer code. The end result doesn't change, the user still gets subscribed at a subscription price, but from the developer's point of view, it's a slightly different approach that may be more convenient when preparing for another sale. MRR > $100 000 Yousician: Guitar Lessons This app for guitar lessons uses the landscape mode for the convenience of its users, that's why the Black Friday splash screen is also horizontal. The space is used wisely to only show the things that matter while the coloring also makes you pay attention to the essential elements. After clicking "Get the offer now" you get also transferred to the Redeem offer page, which shows that this approach is getting popular. MRR > $500 000 YAZIO Calorie Counter & Diet This calorie counter informs the user of the Black Friday discount with the help of a banner that can be found within the app screens. It's pretty informative and is designed to fit the app's interface. The main "feature" of this banner is the use of the old trick where the monthly price is highlighted when the actual promoted subscription is annual. It's interesting that when clicking the CTA button, the user gets to purchase the subscription right away, instead of being shown another paywall with more information. MRR > $1 000 000 InShot - Video Editor Classic app with a classic approach to sales. InShot shows the user an accurately designed full-screen paywall with Cyber Week discounts. It's worth mentioning that the 50% discount is only applicable to the subscription offers, while the lifetime product gets sold for the full price from this "special" paywall. Overall, the screen looks neat, but perhaps using bigger and more defined fonts in the banner would be more eye-catching and therefore convincing. MRR > $1 000 000 In conclusion We've covered only 6 apps that were willing to participate in the Cyber Monday/Black Friday frenzy, but even based on this quantity, it becomes clear that there's no universal way to promote your sale. In fact, there are many different things you may try to see what works best for your app and your audience: Extra product. Add a discounted product right to your main paywall and back it up with banners in the app interface. Sale splash screen. Make a splash screen that could lead to a special paywall or directly to making the purchase. Offer codes. Try using offer codes instead of creating special discounted products. More paywalls. Create separate paywalls for your sale that will look neat but not overwhelming. Yes, creating separate paywalls still remains one of the most effective ways to deal with Black Friday. Despite seeming difficult, these days you can make new high-quality paywalls in just a few minutes with a solution like Adapty's Paywall Builder. This no-code visual editor enables you to... --- This is the 17th issue and it's dedicated to the most popular intro offer – free trial. We'll take a look at the paywalls of several popular apps and see how they approach it. This is the 17th issue and it's dedicated to the most popular intro offer – free trial. We'll take a look at the paywalls of several popular apps and see how they approach it. You'll find: Wise use of paywall space, Free trial as a separate product, Paywall that's too humble, And more! Paywall insights provided by... Daniel Layfield, Growth and Product Management Expert, the Creator of Subscription Index. 1. Flowkey: Explaining before selling This app for learning how to play the piano has a complex paywall where the first screen shows how the trial works and offers a yearly subscription with a 7-day trial. Other options for individual and family plans are available on the next screen after tapping “View all plans”. Overall, it does a great job of clearly explaining how the trial process works and making the upgrade seamless. I think the next level of growth could be unlocked by testing the ratio of prices between the annual and monthly plans. flowkey - Learn Piano MRR >$500k 2. Voloco: Smart use of space Voloco, an app for recording and editing vocals, has a bit different approach. Its paywall is more focused on visually explaining the app's premium features with the help of a manually scrolled slider. The app uses one screen and does a great job visually conveying a product in a really tight space, but the only piece of clarity that could be helpful here is explaining how the trial works and having more focus on how long I have to try the product before I pay. Voloco: Vocal Recording Studio MRR >$200k 3. TuneIn Radio: Clear and simple Things are always easier with apps that provide media content – most of the time you install them because you already know they will grant you access to your favorite series, channels, or podcasts, so they don't have to induce you too much. Yet, they almost always offer a free trial, which is nice of them. Love that they clearly articulate the content that I get access to in this product. The fact that they only give you a monthly plan makes sense assuming that they can retain users for more than 12 months, which is really hard to do. If they have under 12-month retention they should think about adding an annual plan with the appropriate level of discount. TuneIn Radio: Music & Sports MRR >$1M 4. Cleaner Guru: Neat paywall, low retention? This phone-cleaning app is also doing a great job at clearly conveying the value of the product in the tight space that they have for the paywall. It's neat, comprehensible, and convincing. But perhaps there's a reason this app uses the weekly subscription over monthly. The low value of the lifetime plan makes me think that its subscription retention is not very high. But if they are retaining users for more than 6 months, then they should raise the price of their lifetime plan. Cleaner Guru: Cleaning App MRR >$500k 5. EPIK: One yearly option is not enough This is another great example of conveying what the product does concisely through the animated slider. It's pretty common for photo- and video-editing apps. The design pattern of having a yearly trial as a separate price option is a bit confusing to me. What's also interesting is that it's the middle card that's selected by default, not the one with the trial. I might suggest adding a 7-day free trial only for the annual plan, this might help mix the plans as well as clean the screen up a little. Although considering the app's MRR, their approach seems to be working. EPIK - AI Photo Editor MRR >$5M 6. FacePlay: Too shy to ask for yearly? Remember what I just said about media-editing apps? Right, this one also has an animated paywall, and it's still a great choice for apps in this niche. My biggest piece of feedback on this paywall is that it's defaulting me into the weekly plan instead of the annual one. They might have tested this and found that this is the right path forward, however, you should always use the default selection of each screen intentionally to your benefit. Might as well have the user start with the annual plan and switch to the weekly plan if they want to. FacePlay - AI Photo&Face Swap MRR >$200k Summing it up Here's what we've learned from today's paywall examples: Explain how the trial works. To hook the user by offering a free trial, make sure to provide more details about it. Use the paywall space wisely. The paywall screen is rather limited, but you can always add a slider to add more visuals. Simple paywalls also work. Apps that provide media content tend to have less flamboyant paywalls. Separate product for trial. It may look odd, but why not try it? Pre-select wisely. If you have 2 or more products on your paywall, pre-select the one that will bring you more revenue. What's your take on the free trial? Share this issue and your thoughts with your friends and colleagues ? --- Explore effective content marketing strategies tailored for apps. Discover the best practices to enhance user engagement, boost downloads, and ensure sustained growth. Stay ahead in the app market with expert insights and actionable tips. Here’s an ugly truth: being a better app than the competition doesn’t cut it.   But how you promote your app does.   In simple words, if you want your potential users to find your app amongst millions of other apps, you’ll have to create a marketing strategy that screams louder than others. The correct term for this is “content marketing strategy”. From what it is, why you need it, and what it includes, we’re going to dive into all the aspects of how you can use this outbound marketing method to dominate your target niche in no time! Fun fact: What you’re reading right now is a perfect example of the content marketing strategy employed by Adapty! Anyways, let’s start with the basics... What is content marketing? Content marketing is a strategic marketing approach to attract, engage, and retain your target audience with audience-centric content including videos, blogs, articles, infographics, and newsletters.   Today, content marketing is taking the internet by storm, allowing small businesses and entrepreneurs to grow a loyal following and drive profitable customer actions to gain a larger market share.   And that’s exactly why app developers should be doing it more! The digital landscape today for an app developer is oversaturated, overheated, and overleveraged than it was 5 years ago. Your global audience might be in the millions, but so is the number of apps available to them—6. 5 million apps and counting! But all hope isn’t lost yet because you can still make your mark in this $208. 5 billion industry with content marketing. Now the real question is how content marketing makes for successful mobile app marketing today! What are the benefits of content marketing? Content marketing for apps has taken the app stores by storm, and here are 5 reasons why you should hop on the opportunity too: Cost-effective  Let’s be honest, nobody wants to pay more than they need to, right? And as a budding app developer for a mobile app, you’re not that loaded either! But with content marketing, you don’t need to spend a lot to have an effective mobile content strategy.   Content marketing is a highly cost-effective strategy for mobile app developers and marketers. Compared to traditional advertising methods, such as paid ads or television commercials, creating and distributing content can be significantly more budget-friendly.   It allows you to reach a wide audience without the high costs associated with paid media! Increases visibility and traffic Content marketing plays a crucial role in increasing the visibility of your mobile app. By creating content that resonates with your target audience and is optimized for search engines, you can improve your app's online presence.   As users search for information related to your app's niche or problem-solving capabilities, your content can rank higher in search results, attracting organic traffic.   This increased visibility not only helps potential users discover your app but also drives traffic to your website or app stores, leading to greater chances of downloads and user engagement. Builds up on other marketing tactics Content marketing synergizes with various other marketing tactics and channels. It can complement your paid advertising efforts by providing content that educates and persuades users after they've seen your ads.   Content can be shared on social media platforms, enhancing your social media marketing strategy. It can also serve as valuable content for email marketing campaigns, newsletters, and even influencer partnerships. I like to call that a win-win situation! Retains and engages the target audience One of the key benefits of content marketing is its ability to retain and engage your app's target audience. By regularly publishing informative and entertaining visual content, you can keep your existing users engaged and informed about your app's updates, features, and best practices.   What this really does is build and foster a strong user base and encourage them to continue using your app in the long run. Engaged users are more likely to provide feedback, become advocates, and even refer new users, contributing to sustained growth! Builds trust and rapport Trust is a vital element in the success of a mobile app, especially when users are deciding which apps to download and use. Content marketing allows you to build trust and rapport with your target audience by providing valuable and relevant information.   When potential customers perceive your brand as an authority in your app's niche, they are more likely to trust your app and choose it over competitors.   Content marketing channels So you’re ready to dip your feet in content marketing strategy for your mobile app’s success in app stores. Now, it’s time to explore your options within the content marketing strategy space.   Fortunately, content marketing isn’t written in stone and there’s unlimited freedom on how you envision your content marketing strategy to work for you.   For the Gen Z app developers out there, social media platforms are familiar elements, while data analysts might feel more at home when they’re looking at SEO statistics and working accordingly.   But no matter who you are, there are 6 channels that you can utilize to boost your mobile app marketing. And yes, you can and should utilize them all in combination, depending on what your buyer personas look like! App Store Optimization (ASO) App Store Optimization (ASO) is a critical component of content marketing for apps, focusing on optimizing your app's presence within app stores to improve rankings and increase app downloads. When potential users search for apps on app stores, the keywords, app title, description, and visuals you use play a significant role in whether your app appears in search results and catches the users' attention. Common elements you should focus on when considering ASO as a mobile marketer include:  App title, App description, App Screenshots and other visual content, Ratings and reviews, Updates, and Keywords within app descriptions. Tip: Always have documentation for every scenario you might face in your ASO strategy, such as facing ASO cannibalization! Website SEO content marketing You... --- in this post, we have compiled the paywalls of 15 standout finalists from this year's awards, showcasing them at full length to offer a comprehensive view of how these top-tier apps are not just winning awards but also winning in the marketplace. This year, the 2023 App Store Awards have unveiled their finalists, showcasing a diverse array of applications that have set new benchmarks in design, functionality, and overall user engagement across 10 categories. But beyond the glitz of the awards lies the real engine driving these applications' success: their monetization strategies. So, in this post, we have compiled the paywalls of 15 standout finalists from this year's awards, showcasing them at full length with their Monthly Recurring Revenue (MRR) figures to offer a comprehensive view of how these top-tier apps are not just winning awards but also winning in the marketplace. Take a look at the behind-the-scenes of what makes these apps the champions of the App Store in 2023. iPhone App of the Year finalists AllTrails: Hike, Bike & Run MRR > $2 000 000 Duolingo - Language Lessons MRR > $20 000 000 Flighty – Live Flight Tracker MRR > $50 000 Get more monetization insights Before proceeding with other nominations, let us remind you that we've got a fresh report on the State of in-app subscriptions in the US 2023. This report combines expert analysis with market data to provide you with the tools you need to succeed in the ever-evolving app marketplace. To develop an app that not only engages users but also significantly boosts revenue, you need a comprehensive strategy informed by the latest market trends and data. Get the report for free and unlock the secrets to creating a high-performing app. iPad App of the Year finalists Concepts MRR > $100 000 Prêt-à-Makeup MRR > $10 000 Apple Watch App of the Year finalists Planny • Daily Planner MRR < $5 000 SmartGym: Gym & Home Workouts MRR > $20 000 Tide Guide: Charts & Tables MRR > $5 000 Apple TV App of the Year finalists FitOn Workouts & Fitness Plans MRR > $50 000 MUBI: Stream Great Cinema MRR > $200 000 Cultural Impact finalists balance — Menopause Support MRR > $5 000 Copilot: Track & Budget Money MRR > $20 000 Pok Pok | Montessori Preschool MRR > $100 000 Proloquo  MRR > $5 000 Rebel Girls MRR < $5 000 Find more expert paywall analysis Having explored the innovative paywalls of these App Store award finalists, it's clear that the art of effectively monetizing apps is constantly evolving. The insights we've shared here are just the tip of the iceberg. Interested in more than just a glimpse into the world of app monetization? Our Paywall Newsletter is your monthly gateway to the latest trends and expert strategies for in-app revenue generation. Subscribe now for exclusive, in-depth analyses delivered straight to your inbox. --- Divide and conquer is not just a saying: it's the most effective user acquisition strategy a developer might use. You should divide and separate your target audience, creating distinct groups based on shared characteristics, behaviors, or needs. These segments are smaller and uniform, making them easier to target and convert. Here's what you should know about user segmentation. Why segment your users? The reasons for this should be obvious, but let's go through them one more time: Personalized Marketing. User segmentation allows developers to tailor their marketing efforts to specific groups. This leads to more relevant and effective campaigns, resulting in higher engagement and conversion rates. Product Development. Segmentation guides the creation of products or features that cater to distinct user needs. This ensures your offerings align with the desires of the target audience, fostering increased customer satisfaction and loyalty. Resource Allocation. Segmentation assists developers in determining where to invest their resources. By pinpointing which segments are most valuable or show the most growth potential, companies can allocate resources more efficiently and maximize ROI. Improved User Experience. By segmenting users, businesses can offer experiences tailored to different groups, enhancing user satisfaction, engagement, and retention. Better Understanding of Customer Base. Segmentation provides insights into the diverse needs and behaviors of a company's customers. This deeper understanding allows businesses to make informed decisions, anticipate market trends, and maintain a competitive edge. Pricing Strategy. User segmentation aids in the creation of tiered pricing models. Recognizing the varied willingness to pay across segments enables companies to optimize pricing strategies and maximize revenue. User segmentation vs. customer segmentation User Segmentation is the categorization of individuals based on their interactions with a specific digital platform, such as an app or website. It focuses on how users engage with the platform, the features they use, the frequency of their visits, and other usage patterns. This segmentation helps inform UI/UX design decisions, prioritize feature development, and personalize content or notifications within an app or platform. Customer Segmentation is the process of dividing a company's customer base into distinct groups based on various criteria, primarily related to purchasing behaviors. It can encompass a broader range of interactions, including buying habits, brand loyalty, spending levels, and more. Employed to design targeted marketing campaigns, set pricing strategies, allocate resources, and develop products or services that cater to specific customer groups Types of user segmentation If the decision to break down the audience into groups to better target is an obvious one, choosing the way to do it is a bit more difficult. As usual, the choice depends on your end goals and available marketing channels. Here's the breakdown. Geographic segmentation Geographic segmentation sorts users based on where they are, from broad areas like countries to specific spots like neighborhoods. Initially, users are grouped by countries or zones, taking into account aspects like culture and economy. This can get even more detailed, focusing on regions, cities, and even specific neighborhoods, which is important for delivery and mobility apps. This ensures they connect with the unique needs and preferences of people in each location. Demographic segmentation Demographic segmentation is a method where users are grouped based on personal attributes that often dictate their preferences and buying behaviors. Age segmentation, for example, divides users into groups like children, teenagers, or seniors, recognizing the unique needs of each age group. The education divide focuses on users' educational backgrounds, and income segmentation classifies users by their earnings, allowing businesses to cater to the distinct purchasing capacities of low, middle, or high-income groups. While sometimes misleading, demographic factors are the easiest to find and single out on social media and other channels, making the segmented communication more precise. Psychographic segmentation Here, you divide based on users' personalities, values, interests, and lifestyles into the psychological and behavioral aspects of consumers. It's important to understand what drives users' decisions beyond just surface-level demographics. By tapping into these motivations, developers can craft messages and products that resonate on a more personal level. For instance, an app might target environmentally-conscious consumers who value sustainability or cater to adventure-seekers drawn to thrill and exploration. By aligning products and marketing strategies with these intrinsic traits and passions, companies foster a stronger, more genuine connection with their audience, enhancing loyalty and engagement. Behavioral segmentation Behavioral segmentation focuses on categorizing users based on their actions, interactions, and patterns of activity on a platform. This approach observes how users engage with content, the features they use, their purchase history, and even how frequently they log in. Such insights help businesses understand user preferences, habits, and pain points. For example, an e-commerce app might identify users who frequently abandon their shopping carts and tailor strategies to re-engage them. Alternatively, a streaming service app could segment users based on their genre preferences. By aligning offerings with users' behaviors, businesses can create more personalized experiences, driving user satisfaction and loyalty. Firmographic segmentation In B2B markets, segmentation takes on a different dimension, focusing on characteristics unique to businesses rather than individual consumers. Companies are often grouped by attributes like company size, which can range from small startups to large multinational corporations. This helps in understanding the scale of operations, potential purchasing power, and specific needs tied to a company's size. Another common criterion is industry type. A tech startup has different needs compared to a manufacturing giant. By segmenting based on industry, businesses can tailor their offerings to address sector-specific challenges and requirements. Other corporate-related criteria might include annual revenue, geographic location, or even the company's growth stage, ensuring products and services align closely with business needs. Transactional segmentation Segmenting users based on transaction history offers insights into their buying patterns and loyalty. By analyzing past purchases, app developers can identify frequent buyers, those who make high-value purchases, or even those who buy seasonally. This data helps in tailoring offers, rewards, or promotions to specific buying behaviors, ensuring relevancy and increasing the likelihood of repeat purchases. The customer journey stage is another pivotal segmentation criterion. Users can be categorized as... --- Mobil uygulama sektöründen en önemli konuklarla gerçekleştirdiğimiz podcastin yeni bölümüyle karşınızdayız. Bu podcast serisinde mobil uygulamadan para kazanma, abonelikler, reklamlar ve sektörden güncel gelişmeleri uzman konuklarımızla konuşuyoruz. Dokuzuncu bölümde konuklarımız  Efe Helvacı  ve  Görkem Çağlar Sayan  ile bireysel geliştirici olarak mobil uygulamadan para kazanma konusunu ele aldık. Bu bölümde uzun zamandır bireysel olarak uygulama geliştiren iki geliştiriciden bu yolda yaşadıkları tecrübeleri dinleyeceksiniz. Mobil uygulamanızı yayına aldığınız ilk andan itibaren yapmanız gereken tüm strateji ve taktikleri bu bölümde bulacaksınız. Şimdiden hepinize iyi dinlemeler. Bu bölümü beğendiyseniz abone olun ve daha fazla kişiye ulaşmamız için arkadaşlarınızla paylaşmayı unutmayın. Yeni bölümlerden haberdar olmak için Telegram Topluluğumuza  katılın Altta bu bölümden en ilginç kısımları bulabilirsiniz. Bireysel geliştiriciliğe nasıl başladınız? Hikayenizi dinleyebilir miyiz? Görkem: 4 senedir bireysel geliştirici olarak hayatıma devam ediyorum. Ondan önce Aselsan’da çalışıyordum. O sıralarda kendim uygulama geliştirmeye başlamıştım. 2019’un Mart ayında İngilizce kelime öğrenme uygulaması Atlas’ı mağazaya gönderdim. İlk iki sene istediğim kadar gelir elde edemedim. Çünkü uygulamamda reklam göstererek para kazanmayı planlamıştım ama başarılı olmadı bu yöntem. 2019 Haziran ayında Apple’dan bir mail geldi ve uygulamayı featured etmek istediklerini söylediler. Tabi o zaman yine subscription eklememiştim ve in-app purchases ile yoluma devam ediyordum. 2020 Ocak ayı gibi uygulamaya subscription ekledim ve o sırada pandeminin başlaması ve herkesin evlere kapanmasıyla birlikte daha iyi bir gelir elde etmeye başladım. İlk başlarda Search Ads ile küçük reklam denemelerim olmuştu. 2021 yılının sonlarına doğru Efe ile tanışmam ile birlikte Google Ads kampanyalarına başladım.   Efe: 2015’ten beri yirmiden fazla iOS uygulaması yayınladım. Tabi ilk başladığım zamanlarda genellikle tek kişi ile uygulama geliştirme fikri çok yaygın değildi. Daha çok yatırım alarak bir ekip kurulmalı, bir kuluçka merkezine dahil olunmalı şeklinde düşünülüyordu. Dolayısıyla ilk zamanlarım bir ekibe dahil olarak ya da bir ekip kurarak ve uygulamaları da hobi amaçlı olarak geliştirmekle geçti. 2017 gibi uygulamalardan fazla gelir elde edemediğimi görünce tam zamanlı bir işe başladım. Tabi yine de tam zamanlı olarak çalışırken bir yandan da uygulama geliştiren biri olmayı düşünmüyordum. 2017 yılında bir web projesi gerçekleştirdim ve fazla kullanıcı gelmediği için tekrar mobil uygulamalara dönme kararı aldım. O zamana kadar hali hazırda markette olan uygulamalarım vardı. Bunlardan birisi şu an Mantra adını alan ve 200 bine yakın indirmesi olan bir uygulamaydı. Günlük olarak çok fazla aktif kullanıcı olmasa da kötü denemeyecek bir indirme sayısı vardı. Reklam modelinden subscriptions modeline geçmemle birlikte gelirlerde ciddi bir artış görmemle beraber artık tam zamanlı olarak mobil uygulamalar geliştirmeye başladım. Bugüne dönecek olursak da Broftware House adında bir şirket çatısı altında tüm çalışmalarımı sürdürüyorum. İlk başladığınız yıllara kıyasla şu an hala bireysel olarak gelir elde etmek mümkün mü? Görkem: Bence hala fırsatlar var. Biz temel olarak organik bir şekilde büyüme sağladığımız için, örneğin Apple’ın IDFA ile yaptığı yeni değişiklikler bizi çok fazla etkilemedi. Organik olarak bir başarı hedefleniyorsa bence hala yeni fırsatlar doğuyor. Mesela şu anda ChatGPT’nin popüler olmasıyla birlikte bu alanda bir sürü para kazanma fırsatı var. Bunun dışında uzun vadeli ve gerçekten kullanıcının önemli bir sorununu çözen, bir ekiple birlikte oluşturduğunuz projeler de oluşturulabilir. 3 - 4 yıl öncesine göre reklama büyük bütçe ayırarak hızlı bir şekilde bir anda büyümek belki kolay olmasa da örneğin benim başta yaptığım hataları yapmadan büyüme fırsatı hala mümkün. Efe: Bence de kesinlikle hala mümkün. Bence dezavantajlara odaklanmak yerine bugünün 5 - 6 yıl öncesine göre nasıl avantajları var bunlara bakmak lazım. Dezavantajlara bakarsak ilk olarak kesinlikle rekabetin daha arttığını söyleyebiliriz. İkinci olarak Apple’ın getirdiği IDFA, privacy konularında kural değişiklikleri pazarlama kampanyalarını ciddi anlamda etkiledi. Daha sonra kullanıcı beklentileri de artmış durumda. Artık Apple Design ödüllerini incelerseniz şahane görsellikte uygulamalar var. Avantajlara da bakarsak ChatGPT gibi araçlar sayesinde içerik oluşturmak artık aşırı kolaylaştı. Eskiden database oluşturmanız gereken devasa içerikler varken şimdi ChatGPT isteğinizi anında oluşturabiliyor. Bunun dışında App Store Optimization konusunda ve geliştirme araçları konusunda çok büyük kolaylıklar var. iOS tarafından söylemek gerekirse SwiftUI ile hem kolay öğrenebileceğiniz hem de keyifli geliştirme yapabileceğiniz araçlar var.   Bir projeye başlarken kategoriyi analiz ederek mi fikir buluyorsunuz? Görkem: Benim cevabım çok kısa sürecek çünkü benim sadece yayında bir uygulamam var. Ama şu an yeni bir app üzerinde çalışıyoruz ve bu konuda şöyle düşünüyorum: bence şu anda trend olan bir uygulamanın yeni bir yorumunu yapmak en mantıklı şey. Şu anda yeni bir appe başlayacak olsam yine ChatGPT kullanarak dil öğrenimi ile ilgili bir app yapardım. Çünkü içerik ile alakalı sınırsız bir imkan ve istediğiniz dilde içerik üretebildiğiniz bir dünyadayız. Dolayısıyla iyi bildiğim bir kategoride giderdim ya da o sırada trend olan bir uygulamanın farklı bir yorumunu yapardım kesinlikle. Efe: Ben genelde herkese şunu öneriyorum. Kendi ilgi alanının pazardaki trendler ile uyumlu olduğu projelerle çalış. Yani ürün odaklı çalışmayı çok seviyorum. Burada da kullanıcı odaklı ve göze hitap eden iyi uygulamalar geliştirmeye çalışıyorum. Bunu da ürünü gerçekten severek yapabiliyorsunuz. Şu anda health and fitness alanında güncel teknolojileri nasıl entegre edebilirim ya da eskiden popüler olmuş bir fikri güncel halde nasıl sunabilirim, bunları düşünürdüm genel olarak. Bu işin formülü hem sevdiğiniz hem de pazarda yer edinebilecek bir fikri bulmak. Uygulamalarınızda en önemli gördüğünüz metrikler nelerdir? Efe: Öncelikli olarak indirme sayılarına bakıyorum. İkinci olarak trial başlatma oranlarına ülke bazlı olarak bakıyorum. Çünkü iyileştirmeye en müsait yerlerden birisi burası. Ben uygulamaları uzun soluklu yaptığım için uygulama içi etkileşim oranlarını da iyileştirmeye çalışıyorum. Uygulamada kaç kullanıcı aktif, kaçı her gün uygulamayı açıyor gibi metrikler benim için çok önemli. LTV ve renewal sayıları da benim için çok önemli. Özellikle uzun soluklu bir uygulama yaptığınızda kullanıcıların kaçı ödeme yapmaya devam ediyor konusu çok önem taşıyor. Kullanıcı başına elde ettiğiniz geliri çok iyi hesaplayabilmeniz gerekiyor. Bir kullanıcıdan ne kadar kar ettiğinizi bilmeden reklam vermeniz de kolay bir durum değil. Bunun için LTV hesabı hayati öneme sahip.   --- Gone are the days when developers or "those computer guys", as your distant relatives would call people like you, were rolling in dough. With the cost of living growing and the salaries stagnating, the "repay the mortgage in 10 years" type of income turned into a "barely get by and set 5% aside" type of income. This calls for some adjustments to your daily lifestyle and workload, like freelance or a side activity. There's no shame in hustling, especially when you can pick up some new skills along the way. We decided to go through some (not always) quick and sure ways to generate some extra income for developers, without going completely left field. The first batch of ideas is about introducing new monetization opportunities to your app, given you wield enough power to implement them. The second list of ideas is dedicated to you as a public professional, and these can also raise your profile in the industry, ensuring you have higher wages along the way. Let's get started. Supercharge your app Nothing speaks better for you than your app. If it works seamlessly and generates profit, you're guaranteed to have a stable job. However, sometimes stable is not enough. While in some companies product managers and growth hackers are in charge of the new features, developers are the ones who actually create the app, and they can bring some new ideas to the table. Here, let's see how you can improve the profitability of your app, and maybe even collect some ideas about your own future endeavor.   In-app Ads  In-app advertising allows developers to embed commercial content within their applications. When users engage with these ads — whether by viewing, clicking, or completing a specific action — the developer earns revenue.   There are several types of ads: banners are the most well-known format that has come directly from the Web. The average eCPM for this format in the United States is $0. 53 – as in, for every 1000 ad impressions among American users, you can earn up to half a dollar; interstitials are full-screen banners that usually appear between game levels. With this format, you can earn up to $4–5 per 1000 impressions;  video ads are self-explanatory and usually bring around $6–7 per 1000 impressions; playable ads are essentially interactive demo versions of the app. These usually have the highest conversion rate, since they allow a user to experience the game before downloading it, and pay accordingly, with an eCPM of up to $15 in the US. Platforms like Google AdMob or Facebook Audience Network simplify the process of integrating ads. The key here is to balance ad frequency and placement, ensuring it doesn't impede the user experience. In-app Purchases Integrating in-app purchases allows users to buy specific items, features, or content directly within the app. For instance, in games, this could be power-ups, virtual currency, or new levels. In non-gaming apps, this could mean unlocking additional functionalities or features. The key to maximizing revenue through in-app purchases is by offering items that enhance the user's experience or provide tangible value, making them more inclined to make the purchase. You can integrate IAPs into their apps using the platform's SDK, Software Development Kit. Both iOS and Android have their respective systems: Apple uses the StoreKit framework for IAPs on iOS, while Android utilizes the Google Play In-app Billing API. The two main types of in-app purchases are consumables and non-consumables. Consumables are items that users purchase and then use within the app, like game currency, power-ups, or extra lives. Once consumed, they can be bought again. Non-consumables, on the other hand, are one-time purchases that unlock features or content permanently, such as removing ads or accessing a full version of the app. The average IAP prices and revenue vary greatly, both by the kind of virtual goods you offer and the country the users find themselves in. Apple offers up to 800 pricing options by default, allowing you to find the ideal cost/value combo. When calculating the business plan, keep in mind that both Apple and Google take a 30% commission off all your revenue. Affiliate Marketing & Sponsorships Affiliate marketing is, at its core, promoting third-party products or services in your app. When a user makes a purchase or signs up through a referral link, you get a certain payment: either a fixed fee (CPA, cost per action) or a percentage off the purchase. This method is particularly effective for apps that naturally align with other products or services, or for services that often lead users to other e-comm players.   To successfully implement this, it's important to choose relevant affiliates that resonate with their user base. The integration should be seamless and not feel forced; otherwise, it can hamper the user experience. A well-placed product or service that adds genuine value to the user can result in higher conversion rates. For example, a fashion recommendation app might include affiliate links to clothing stores, or a book review app could link to online bookstores. As with any ad activity, it's important to be transparent. Users should be aware that they're clicking on affiliate links that the developer stands to gain from. It won't necessarily hurt your income: if anything, loyal customers would be glad to support their favorite app or app studio at no expense of their own. Subscription Model A subscription model is especially viable for apps that offer continuous services or content updates. Instead of a one-time payment, users are charged periodically (monthly, quarterly, or yearly) and regularly to access the app's content or services. With these recurring payments, you can be sure of a consistent and predictable revenue stream.   To make the subscription model happen, you need to be certain that you provide ongoing value to the users, whether that's through regular content updates, additional features, or superior service quality. While your users might not open your app daily, they reconsider the decision to support you financially every time they're... --- Find out about fresh updates in Adapty for October: Paywall Builder improvements, UI and UX updates of the placement system, and new integrations. October turned out to be another prolific month for the Adapty team. The second month of fall was dedicated to further improvements of the Paywall Builder, UI and UX updates of the placement system, as well as the addition of new integrations. More details below! Paywall Builder is now free and available for all platforms Yes, you’ve read it right, our recently enhanced Paywall Builder is now available on the Free plan for everyone! It means that once you’ve installed Adapty SDK, you can immediately start creating native paywalls in our visual no-code editor. Make a profitable paywall in just a few steps: Choose one of the numerous high-quality templates. Adjust images, text, buttons, colors, and more to your liking. Publish the paywall right away or start an A/B test. The Paywall Builder is available on all supported mobile platforms (iOS, Android, Flutter, React Native, Unity), so go ahead and see how it can improve your app’s economy. Check the docs or install the SDK for your app’s platform. Real-time localization preview in the Paywall Builder With the improved localization feature for the remote config that we mentioned in the September digest, we’re thrilled to present an even more convenient localization tool for the paywalls made with our Paywall Builder.   By selecting Localizations in the dashboard of the Paywall Builder, you’ll get to a new area where you can add multiple locales for your future paywall. Every locale is broken down into strings of text for a corresponding paywall element, which makes the localization process much easier and transparent. Once the translations are added, you can go back to the previous editing area and select the locale you want to check to preview it on the mockup of your paywall. Note that the Paywall Builder’s localization feature is available on the plans starting with Pro and higher. It’s worth mentioning that filling in product info has also been made easier with tag variables. When texts for your products contain a tag variable from our list, our SDK uses the pre-fetched localized data from the stores to put it in place of a tag. Tag variables allow you to rely on the data obtained directly from the store to localize such strings — so titles and prices will always be correct. Find the full list of variables and instructions on how to work with them here. Editing of live paywalls improved We’ve made the process of editing and duplicating live paywalls much more convenient and clear. In order to reduce the amount of unnecessary manual work and get rid of the cluttered interface as result, we’ve changed a few basic settings.   First of all, more transparency was added to the saving process of a paywall. So, the saving buttons are now more transparent in the changes they’re supposed to make – for example, "Save & publish" for a new paywall became "Create as draft". Secondly, applying changes to a live paywall now doesn’t require you to manually replace the old version of the paywall in all the affected placements with a new one. You still have to duplicate the paywall, but when saving changes, you’ll get a pop-up window where you can see all the placements and audiences affected. You are able to choose which placements you’d like the original paywall to be replaced in with checkboxes. You may proceed to create a new paywall and replace the original or create this one as a draft. Braze and Singular integrations The list of 3rd-party integrations has grown by two more services in October: Singular and Braze.   Braze is a top customer engagement solution that provides a wide range of tools for push notifications, email, SMS, and in-app messaging. By integrating Adapty with Braze, you can easily access all of your subscription events in one place, giving you the ability to trigger automated communication based on those events. Learn how to easily integrate it with Adapty and start tracking subscription events in your Braze dashboard. Singular – a powerful service for mobile attribution and marketing analytics has now been integrated with Adapty for your convenience. This integration allows you to track subscription events in Singular and analyze precisely how much revenue your campaigns generate. Learn how to set it up in our docs. Billing Library v5+ support for Unity We’re glad to say that Unity SDK now supports the new versions (5 and 6) of the Google Play Billing Library starting with 2. 7. 0. Find more details on changes and cross-platform SDK migration in the documentation. --- Imagine this: people are roughly spending 7 hours on their phones every day in 2023, downloading 255 billion apps, making phones contribute to over 56% of total internet traffic. While these statistics are surprising for a number of reasons, I want to highlight why they’re important for digital leaders, especially mobile app developers! Long gone are the days when websites ruled the digital world and were considered the best way to boost your business. Today, 86% of the global population has access to a smartphone, making it the best way to reach a larger target audience. If that’s what you’re aiming to do, it’s time to build an app development team to bring your app idea to life.   But like any other aspect of life, mobile apps require a ton of thoughtful processes behind them. You’ll have to construct an app development team, hire resources like project managers to oversee the whole app development process, and so much more. And I get it, you have many, many questions! From mobile app development team structure to how much you can expect to spend on successful app development, we’ll cover everything in this blog. Let’s start with the people you’ll need on your dedicated team. Mobile App Development Team Structure Bringing your app idea to life is the combined effort of many people on your team. While you can have different-sized teams for various projects, it’s recommended to ideally have 6–8 members on your app development team.   Each member is responsible for different aspects of the whole app development process, ensuring there is no burnout and that everyone plays to their own strengths!   Here are the 8 most important professionals your development process will need: Product Owner The Product Owner plays a pivotal strategic role, serving as the linchpin between business goals and the development process.   Firstly, the Product Owner serves as the voice of the customer. They gather and prioritize user requirements, ensuring that the app's features and functionalities meet user needs. Their role involves creating and maintaining a product backlog—a prioritized list of features and tasks for the development team to work on. The Product Owner is responsible for setting clear project goals and objectives. They define the product roadmap and determine what features should be developed in each release. Their decisions are driven by market research, user feedback, and a deep understanding of the competitive landscape. Budget management is also within the Product Owner's purview. They work closely with stakeholders to allocate resources effectively, ensuring that the development team can deliver features within budgetary constraints. Project Manager The Project Manager (PM) in a mobile app development team is the central figure responsible for orchestrating the workflow and ensuring that projects progress smoothly while staying within budgetary constraints. Their role is multifaceted and critical to the project's success. Firstly, Project Managers are instrumental in project planning. They work closely with stakeholders to define project objectives, scope, and requirements. They create comprehensive project plans, break down tasks, set milestones, and allocate resources. This planning phase is vital for establishing a clear roadmap for the team. Resource management is another key responsibility. PMs allocate team members to tasks, making sure that the right skills are applied to specific project components. They monitor resource utilization to ensure efficiency while preventing over-allocation or burnout. Budget oversight is a critical aspect of their role. PMs track project expenses, ensuring that costs align with the budget. They identify and manage financial risks, making adjustments as needed to keep the project financially viable. PMs are timekeepers, responsible for managing project timelines. They monitor progress, identify bottlenecks, and make necessary adjustments to keep the project on schedule. Their ability to anticipate and mitigate potential delays is crucial. Effective communication is at the heart of the PM's role. They facilitate transparent and consistent communication among team members and stakeholders, providing regular updates on project status and addressing any concerns promptly. Business Analyst The role of a Business Analyst (BA) is pivotal in the process of identifying and translating business needs into technical requirements within a project or organization. To a mobile app development team, they bring lots of value and contribution and are closely working with Product Managers and Project Managers. BAs engage with Product Owners, Product Managers, and end-users, to gather and analyze objectives. This is often done in the form of interviews and surveys. They identify, document, prioritize, and validate business needs, ensuring that the resulting app not only meets these needs but also aligns with the organization's strategic objectives. Not only are they involved in testing and quality assurance procedures but are also responsible for facilitating collaboration, maintaining a strong user-centric perspective, and advocating with their domain expertise to achieve goals set by the Product Manager. Their ability to communicate effectively, analyze requirements, and bridge the gap between business and technology is integral to the success of app development! UI/UX Designer UI/UX Designers are integral members of a mobile app development team and have many responsibilities to bear within the team. First and foremost, UI UX Designers place the user at the forefront of their design process.   They delve deep into understanding user behavior, preferences, and pain points through extensive research and user personas. This user-centric approach forms the foundation of their work. Designers create wireframes to outline the app's layout and functionality and interactive prototypes that allow for testing and validation. They organize content and features in a logical and user-friendly manner, ensuring that users can navigate the app effortlessly. In terms of aesthetics, UI UX Designers are responsible for the app's visual and interactive design. They select color palettes, typography, animations, buttons, menus, icons, and imagery that not only align with the app's brand identity but also create a functional and visually appealing interface. Throughout the design process, UI UX Designers conduct usability testing to gather feedback from potential users. They work closely with developers, product managers, and other team members to ensure that design concepts can be effectively... --- Check out a fresh framework on how to scale paid UA which can help any app marketer looking for guidance in paid ad campaigns. Guest post by REPLUG Merely including mobile app paid user acquisition within a holistic strategy isn't sufficient. All the tracking complexities, increasing prices, and competition make it challenging for marketers to achieve their goals efficiently. Paid UA is still a challenge unless we adopt a systematic and holistic approach and we work following processes in a way that we can better identify challenges and opportunities and take care of all details. With Procework 2. 0, we’re taking it to the next level by embracing change and innovation.   In this article, we will delve into a part of our 5-step Paid User Acquisition Process. We refer to it as "Procework" because it combines elements of a Process and a Framework. It can be of great help to any app marketer looking for guidance in paid ad campaigns and can help avoid big mistakes. What is the paid UA procework? REPLUG’s Paid User Acquisition Procework consists of five actionable phases that occur sequentially.   These phases are divided into vertical and horizontal tasks, and all activities are categorized based on their type: tasks related to campaigns, tasks related to creatives, and tasks involving technology or cross-functional areas.  That means you have a clear roadmap for each phase of your user acquisition journey. 5-step process framework to scale your paid UA efforts Here’s a glimpse of what’s new: Structured activities: a series of precise questions for each phase to define the phase’s objective and actionable tasks. Activities are now grouped more strategically, including campaigns-related tasks, creatives-related tasks, and activities involving tech/cross area. Personalization: the 5-step process framework emphasizes personalized user journeys, ensuring your paid UA efforts resonate deeply with your target audience. Scalability: a roadmap for scaling your paid user acquisition efficiently and effectively, making it easier than ever to tap into your app’s full growth potential. Who can benefit from the procework? Startups and new businesses - to start growing. Established brands - to scale even more. Traditional digital companies that want to start mobile transformation. 5 questions for each mobile app user acquisition phase We've created a series of straightforward questions for every phase, which play a crucial role in determining the key objectives of the phase and the specific tasks that must be completed. Here, you can find the questions related to each of the paid user acquisition processes. Audit and setup In every paid UA project, this phase is of paramount importance. Before committing any budget, regardless of the amount, it isn’t the best option to immediately start spending without assessing past actions and, more crucially, ensuring that you are adequately equipped to measure success. Key questions: What previous activities have been undertaken? What types of past actions and messaging were employed? Is tech infrastructure prepared for measuring success? Strategy planning After completing the audit phase and gaining a clear grasp of the current situation, you move into the stage where you strive to determine the most effective way to allocate the budget and reach the objectives. Key questions: What is the primary objective for the paid UA activities? Who is the target audience, and what are the optimal channels to reach them? What messaging and creative strategy should you employ? What are the unique selling points of your app? Strategy implementation Once the strategy is defined and approved, it's time to put the actual campaigns into action. This phase is critical because factors like the campaign's structure accuracy will determine your ability to measure success and scale the paid user acquisition efforts. Key questions: What is the optimal campaign setup, and how do you measure success? How do you obtain the necessary creatives? Results analysis With live campaigns, you can begin collecting initial data and start the analysis. This phase is vital for comprehending what succeeded in your initial strategy and for planning ahead. Key questions: What are the primary results and the drivers behind those results? How are the creatives performing? Which channels, targeting methods, or creatives are delivering the best results? Optimization and testing Following the initial results, it's time to begin optimizing to achieve even better outcomes. This phase is often the most enjoyable as there are numerous opportunities to experiment in the mobile app paid user acquisition field. Key questions: What can you test to enhance results? How can you optimize cross-functional activities? What specific optimizations are required within your ongoing activities? What new tests can you carry out? Nevertheless, our efforts go beyond merely reflecting on a set of questions. As we've previously highlighted, specific tasks must be executed, and these tasks can be classified into various areas that typically remain consistent throughout all the phases. Unlock the guide to your procework By posing the mentioned questions to yourself, you can pinpoint the main points for each area and understand the types of tasks that need to be carried out. Our 5-step framework encompasses a set of tasks categorized by area. These areas remain consistent throughout each phase. The primary areas of tasks are as follows: Tech: comprising all activities related to the tech components required for executing paid UA campaigns, such as MMP (Mobile Measurement Partner) and analytics. Campaigns: encompassing all tasks associated with the strategy, management, and optimization of campaigns across various ad platforms. Creatives: covering all tasks related to the creative aspects of paid user acquisition. Cross-area: encompassing all tasks not directly tied to paid user acquisition but can positively influence results, such as App Store Optimization and Mobile CRM. The approach to scaling paid UA has not changed, though, and the only way to scale paid UA is by adopting a holistic approach: Think holistically: you can’t just rely on paid UA. You must look at app growth in general, where all app marketing activities are linked together. Use frameworks: they help you understand how different app marketing activities are connected and can impact paid UA. Follow processes: they enable you to track progress in different areas and maintain a systemic approach to growth. What are the next... --- In this issue, we provide insights for paywalls from our latest "State of In-App Subscriptions in the US 2023" report based on 30M transactions. In this issue of the Paywall Newsletter, we provide insights for paywalls from our latest "State of In-App Subscriptions in the US 2023" report based on 30M transactions. Today's expert shares her own experience of which paywalls convert better. Paywalls of this issue are commented on by... Lucrezia Platé, Product & Growth Advisor in the mobile app space helping publishers grow their revenue through product and paywall optimization. Ex-Bending Spoons, a leading publisher in the mobile app industry. The most profitable paywall is a combination of 3 products Giving the user three options is generally the best-performing strategy, and it has been proven to increase conversion rates across industries. This is essentially for two reasons: Paradox of choice: If offered one option, we can choose whether to go for it or not. However, if we are offered two or more alternatives, our brain automatically starts choosing between those and tends to forget that “not choosing” is actually another potential option. Decoy effect: Presenting a relatively unattractive third option (for example due to the higher price) increases the perceived value of the other two. An important caveat is to make sure that the LTV doesn’t go down as you increase the number of products on your paywall. In order to do so, test pre-selecting the highest-LTV SKU on your paywall, or bundling it with a trial option (3-day or 7-day trial, no more).   Busuu If you want to offer one product, go with weekly or lifetime If you want to go for just one product, then you should first test subscriptions, keeping lifetime as a secondary option. The data shown in the chart are probably affected by a sort of “availability bias”: in fact, most paid apps feature at least one offer between Lifetime, Weekly, and Yearly, while fewer include a 3-month or 6-month subscription in their paywalls. As a result, Weekly, Lifetime, and Annual result in a higher revenue portion. Weekly subscriptions are generally suited to the vast majority of apps, in particular those that can be used on a daily basis. Plus, shorter durations are seen as low-risk options by the user. They are ideal to get started if you don’t need to cash out immediately, as they provide a more or less regular flow of cash and are usually the highest LTV option. However, I wouldn’t apply the weekly subscription model automatically, but first assess whether it is in line with the nature of the product: for a period-tracking app the yearly option could be the best choice instead. When it comes to longer durations, their appeal comes from showing a large discount relative to the weekly/monthly offer. If you opt for just one product you don’t have this comparison advantage, so it’s best to stick with the weekly or yearly option based on the nature of your product. Lifetime offers are ideal if you need to cash out immediately, although the LTV is generally lower. If you are transitioning from a free or soft monetization model, I would not suggest starting with the lifetime offer, but I would rather test subscriptions through a hard paywall, to assess their viability, and test the lifetime offer as a back-up plan. Zutobi Always sell annual + monthly/weekly when selling two products When offering more than one product, a good choice is to go for the offers that can be easily compared by the user. Lifetime is not easily compared with a subscription, so it is preferable to test it as a fall-back option in a separate paywall or at least in a three-option paywall, but not as the only term of comparison. As for subscription durations, Weekly or Monthly + Annual seems the best combination as the Annual option can be offered at a big discount relative to the lower periodicity. A well-known industry trick is to price your annual plan a bit higher than your LTV for monthly users: if your users stay on your app for an average of 4 months, then your annual plan should be priced at 5 months. Nibble Always sell annual + monthly when selling three products Presenting three products on your paywall allows you to exploit the decoy effect and give more prominence to the highest LTV option. If we look at the data, we see that the most popular combinations are: - Monthly, Annual, Lifetime,- Weekly, Monthly, Annual. To improve the positive effects, you could test the order in which your choices are displayed to the user, as this can influence their perception of value. Priming your users with the highest-priced option can dramatically increase their willingness to pay, making the second option they see much more convenient (the so-called “anchoring effect”). This can be done by placing the highest-priced package first at the top - if you use a stacked pricing layout – or first on the left if you use a column layout and you target countries that read left-to-right. Lumosity Teams who experiment make up to 100x more revenue For quantitative testing to be effective, two conditions should be present: The traffic volume should be enough for tests to be statistically significant. The changes tested should be big enough to warrant a sizeable impact. So, the amount of tests that can be carried out within a certain period varies depending on the number of daily installs of your app. This is to say that the results of this regression should be taken with a grain of salt, as the model doesn’t control for the number of users/installs. In other words, bigger apps with a larger amount of users are able to carry out more experiments, and they also get higher revenue, but that higher revenue might be due to both the bigger number of users and the number of experiments they run. It’s not easy to tell these two factors apart in the regression, as there is a “confounder” (the number of users/installs) that isn’t taken into account. In any case, the positive results of adopting A/B testing... --- Mobil uygulama sektöründen en önemli konuklarla gerçekleştirdiğimiz podcastin yeni bölümüyle karşınızdayız. Bu podcast serisinde mobil uygulamadan para kazanma, abonelikler, reklamlar ve sektörden güncel gelişmeleri uzman konuklarımızla konuşuyoruz. Sekizinci bölümde konuğumuz Viyatek ekibinden  Mert İdacı  ile ekip olarak 4 yıldır Play Store ve App Store'da yaşadıkları mobil yayıncılık maceraları hakkında sohbet ettik. Bir mobil uygulama fikri bulmaktan, gelir modeli belirlemeye ve reklam stratejilerine kadar bütün ayrıntılarıyla mobil yayıncılık üzerine harika bir sohbet oldu. Şimdiden hepinize iyi dinlemeler. Bu bölümü beğendiyseniz abone olun ve daha fazla kişiye ulaşmamız için arkadaşlarınızla paylaşmayı unutmayın. Yeni bölümlerden haberdar olmak için Telegram Topluluğumuza  katılın Altta bu bölümden en ilginç kısımları bulabilirsiniz. Uygulama yayıncılığına nasıl başladınız? Hikayenizi dinleyebilir miyiz? Ben Viyatek’in kurucu ortağıyım. Play Store ve App Store’da uygulamalar geliştiriyoruz. Uygulama fikrinin bulunması, tasarım süreçleri, kodlama yapılması ve para kazanma kısmına kadar tüm süreçleri kendi ekibimiz içinde gerçekleştiriyoruz. Bu aslında sektörden de alışkın olduğumuz bir süreç. Bu şekilde uygulama geliştirmeye 2019 yılında başladık. Öncesinde de bir senelik farklı ve başarısız girişimlerden oluşan deneyimlerimiz de var. 2019 yılının sonlarına doğru Ultimate Facts adında bir uygulama çıkardık. Bu uygulama ile birlikte gelir elde etmeye başlayınca bu anlamda devam edelim diye düşündük. O günden bu güne kadar 9 farklı uygulama geliştirdik ve 3. 5 milyondan fazla da indirme aldık. Lifestyle ve productivity kategorilerinde uygulamalar geliştiriyoruz. Bir yandan yeni projeler geliştirirken aynı zamanda mevcut uygulamaların da iyileştirme süreçleriyle ilgileniyoruz. Girişimcilik serüveninizde ilk başladığınız günden bugüne neler değişti? Aslında ilk başladığımızda çok farklı hedeflerimiz vardı. Biz arttırılmış gerçeklik üzerinde bir proje ile bir araya geldik. Biz bu teknolojiyi e-ticaret sitelerine uygulamayı planladık. Örneğin bir müşterinin mobilya almayı planladığında bunu evinde görebileceği bir ürün planlamıştık. Aslında güzel bir fikirdi o zaman için. Güzel ürünler de ortaya çıkarmıştık. Ürünlerin üç boyutlu modellemelerinin yapılması gibi çalışmalar yapmıştık. Sonunda da pazarın gerçekleriyle karşılaştık. Yani pazarın durumu her zaman sizin hayallerinizle uyumlu olmayabiliyor. Biz ürünümüzü insanlarla paylaşıp gösterdiğimizde herkes çok beğenmişti, ama kimsenin bu ürüne verecek bir parası yoktu açıkçası. Biraz da ters bir döneme denk gelmiştik. O sıra firmalar konkordato ilan etmeye başlamışlardı. Sonrasında da oyun geliştirmeyi düşündük. Birkaç tane oyun da geliştirdik ama onlar da başarısız oldu. En son da oyun dışı uygulamaları deneyelim diye düşündük. Benim o konuda daha önceden bireysel geliştirip gelir elde ettiğim bir deneyimim olmuştu. Bunu daha sağlam bir şekilde geliştirip yayınlamayı düşündük. Bunun sonrasında da Ultimate Facts uygulaması ortaya çıktı. Kullanıcılara günlük olarak bunları biliyor muydunuz şeklinde ilginç bilgiler sunduğumuz bir uygulama. İlk yayınladığınız uygulamada gelir modeli belirlemiş miydiniz? İlk uygulamamızda kullanıcıların kilit ekranında çıkıyorduk. Bu sayede de neredeyse bir kullanıcının karşısına günde on kere ekranımız çıkıyordu. Bu ekranlarda da banner reklamları gösteriyorduk ve güzel gelir elde ettik. Süreç içinde ise Google, her yeni Android versiyonunda bu kilit ekranında çıkma işini bir şekilde kısıtlıyordu. Tabii bu yöntemin sürdürülebilir olmadığına karar vererek artık tamamen uygulama içi satın alma modeline yöneldik. Bugün geldiğimiz noktada gelirlerimizin büyük çoğunluğu abonelikten geliyor. Bu arada uygulamamız hem App Store, hem de Play Store’da yayında. Tabii ki bu dediğim kilit ekranında çıkma özelliğini iOS cihazlarda yapmak mümkün değil. Orada da bazı yöntemleri deniyoruz.   Uygulamada nasıl testler yapıyorsunuz? Paywallda ve uygulamanın içerisinde sürekli testler yapıyoruz. Bazen aramızda şöyle konuşmalar geçiyor. Şu yöntemi denesek güzel olur gibi. Fakat sohbetin sonu, tamam o zaman test edelim diye bitiyor. Test etmeden ve veri olmadan karar vermemek gerektiğini düşünüyorum.   Paywall özelinde fiyat ve tasarımsal anlamda çok test yapıyoruz. Özellikle de herkese tavsiye ediyorum bunu. Bazen fiyatı iki katına bile çıkarsanız yine aynı şekilde satışlarınız devam edebiliyor. Aynı ürün aynı özellikler olmasına rağmen fiyat testlerinin bu şekilde faydasını görüyoruz. Tabii ki burada da üst sınırı iyi belirlemek gerekiyor. Sonuçta bir sektör standardı var. Benim gördüğüm örneğin yıllık aboneliklerde 70-80 dolara varan fiyatlar var.   Play Store’da abonelik satmak kolaylaştı mı? Son zamanlarda nasıl bir trend var? Benim gözlemlerime göre artık android tarafında da insanlar abonelik başlatmaya alıştılar. Sektör rakamlarına baktığımızda da bunu görüyoruz. Biz de şirket olarak şaşırtıcı bir şekilde Play Store tarafında daha iyiyiz. Normalde biliyorsun ki, şirketlerin gelirlerine baktığın zaman App Store tarafı 2 3 kat bile fazla olabiliyor. Bizde durum tam tersi. Biz aslında tam iOS tarafına da ağırlık vermeyi düşünürken SKAdNetwork sınırlamaları çıktı. Hatta büyük şirketler bile sorunlar yaşadılar bu konuyla ilgili. En azından şimdilik Google tarafında böyle bir sorun yok. Bu yüzden de gördüğümüz kadarıyla kampanyalar daha iyi optimize oluyor. Daha küçük bütçeler ile daha iyi sonuçlar alabiliyorsunuz.   Reklam kampanyalarıyla aranız nasıl? Hangi kanalları tercih ediyorsunuz? Google Ads Android tarafında çok iyi performans gösteriyor. Apple tarafında da Meta ve Search Ads kanallarını da kullanıyoruz. Artık reklam vermek sanki bir zorunluluk gibi oldu. Tabii ki ASO ile organik olarak güzel bir kanal bulursanız yine başarılı işler yapmak mümkün. Ama onun dışında iki mağazada da reklamla biraz kullanıcı edinip, metriklerinizi yükselterek kendinizi kanıtladığınızda organik olarak da mağazalar sizi desteklemeye başlıyor. Özellikle Play Store kısmında organik olarak başarı yakalayabilmek için Google’ın bazı baktığı metrikler var. Mesela kullanıcının aldığı hata yüzdesinin çok düşük olması gerekiyor. Yani özellikle teknik kısımda bir sorun olmaması gerekiyor. Özetle siz bir keywordde üst sıralarda olmak istiyorsanız her anlamda uygulamanızın kaliteli olması gerekiyor. Bir kullanıcı keywordde arama yaparak sizi bulup indiriyorsa, oturum süresi, retention ve gelir gibi konularda da iyi metrikler alıyorsanız Google Play Store’da sizi üst sıralara çıkaracaktır. --- Learn how to start working with SwiftUI and drastically simplify your app development process. SwiftUI, Apple's UI toolkit, has dramatically improved life for iOS, iPadOS, and macOS developers. Gone are the days of never-ending code writing or wrestling with Interface Builder to create visually appealing and interactive app screens. With its declarative syntax and robust set of pre-built components, SwiftUI has democratized UI development, making it more accessible and faster than ever before. Of course, stepping into a new framework can be daunting. That's why in this article we aim to provide you with a comprehensive guide to getting started with SwiftUI. We'll cover the basics, explain some key and advanced terms, and offer tips to help you write cleaner, clearer code. Let's get started. What is SwiftUI? Traditionally, iOS apps were primarily built using UIKit, a framework that, while powerful, could be cumbersome and required a deep understanding of its intricacies. SwiftUI has simplified a lot of mundane processes. Now, instead of focusing on how to implement a user interface, developers can concentrate on what they want to achieve, specifying the state and letting SwiftUI take care of the rest. This makes development more intuitive and reduces the time and effort required to bring an app from conception to market. It also ensures that the app design is up to Apple standards, which simplifies the consequent App Store Review process. SwiftUI is a user interface toolkit introduced by Apple in June 2019 that allows developers to build UIs across all Apple platforms with a single, unified codebase. It is designed to work seamlessly with Swift, Apple’s programming language, and provides a more modern, efficient, and native way to build user interfaces. Built on a declarative syntax, SwiftUI enables developers to design complex UIs by describing what the interface should look like rather than how it should be built, which is the case in imperative frameworks like UIKit. For example, you can create a button with a title and an action associated with its tap in a very straightforward way, without having to deal with life cycles or delegate methods. All this greatly simplifies the process and unifies the work of several designers by keeping it inside the guidelines. SwiftUI components SwiftUI has a robust set of components that serve as the building blocks for creating complex and interactive user interfaces. These components can be broadly categorized into Views, Controls, Data and Events, and Layout Structure, among others. Let's delve into each to get a better understanding of their roles and functionalities. Views In SwiftUI, everything on the screen is a view — text, images, buttons, and even custom-drawn shapes. Views are the basic visual elements that make up your user interface. They can be combined, modified, and nested within each other to build a complete UI. Text: For displaying read-only strings. Image: For showing images from various sources. Shape: For drawing custom shapes like rectangles, circles, etc. Spacer: An invisible component that takes up space in layouts. SwiftUI views are highly customizable and come with a wide array of modifiers like `. padding`, `. background`, and `. foregroundColor` that can be chained together to adjust the view’s appearance and behavior. Controls Controls are interactive views that allow users to take actions within the app. SwiftUI provides many built-in controls that handle various kinds of user input. Button: For triggering actions. Toggle: To switch a setting on or off. Slider: To choose a value from a range. TextField: To accept textual input from the user. Picker: For selecting an item from multiple options. These controls are designed to automatically adapt to the platform and maintain visual and interactive consistency across devices. Data and Events Data management and handling events are crucial in any application. SwiftUI simplifies these aspects with its built-in mechanisms. @State: For simple data storage that's local to a view. @Binding: To create a two-way binding between a view and its data. @ObservedObject/@Published: For more complex data models that can be shared across views. @EnvironmentObject: For sharing data across multiple levels of the view hierarchy. SwiftUI also integrates with Combine, Apple’s reactive programming framework, for handling events and data flow in a more complex app architecture. Layout Structure SwiftUI introduces an intuitive layout system that makes it easy to build complex UIs that adapt to different screen sizes. HStack and VStack: Horizontal and Vertical Stacks for laying out views linearly. ZStack: For layering views on top of each other. Grid: For creating more complex two-dimensional layouts. ScrollView: To display content that can scroll offscreen. SwiftUI’s layout system is both easy to understand and highly customizable, allowing you to align, space, and size views with simplicity and accuracy. Others Navigation: SwiftUI provides the `NavigationView` and `NavigationLink` components for easy navigation between views. Animations: Adding animations is incredibly straightforward, often requiring just a single modifier. Accessibility: Built-in accessibility features make it easier than ever to create apps that everyone can use. SwiftUI's components are designed to be modular, reusable, and easily changeable, allowing developers to build complex UIs without the hours of coding traditionally associated with UI development. Apple-developed components also guarantee that the app will work flawlessly on iOS and will adhere to its design and UX standards. With this comprehensive range of views, controls, and layout structures, SwiftUI quickly became the go-to tool for iOS and macOS developers all over the world. Building an app with SwiftUI Xcode 15 set up Download and Install: First, download Xcode 15 from the Mac App Store and install it on your Mac. Open Xcode: Launch Xcode and select "Create a new Xcode project. " Choose Template: Select the "iOS" tab and choose the "App" template. Project Details: Fill in the project name, and organization identifier, and make sure to select "SwiftUI" under the "Interface" dropdown. Save and Initialize: Choose a location to save your project and click "Create. " Xcode tour Navigator Area: On the left-hand side, you'll see the navigator where all your project files are listed. Editor Area: The central area is where you'll write your code. Utility Area: On the right-hand side,... --- Did you know that one-third of mobile app developers use cross-platform development frameworks for building their apps? Understandably so. When you use a cross-platform mobile app development framework to create your app, you don't need to create two separate Android and iOS apps. You create just one cross-platform app, and it runs seamlessly on all your target platforms. As a result, your development and maintenance resources reduce significantly when you get to use a single codebase to deliver apps on multiple operating systems, also known as WORA (Write once, run anywhere! ).   Launching new features is also much simpler, as you don’t need to develop them individually for each platform. Just write your code once, and it’s ready to go for both your Android and iOS apps. But to make the most of cross-platform mobile app development frameworks, you need to start with the right one. And to help you do just that, today we’re rounding up the best mobile app development frameworks for 2024 and beyond. But before we see the best mobile app development frameworks you could use to build your app, let’s first quickly see what a mobile app development framework is, how it works, its different types, and its benefits. What is a mobile app development framework? Simply put, a mobile app development framework is a set of different ready-to-use or customizable components (like UI design, code, and functionalities) that can serve different parts of a mobile app. So what does this actually look like for a real app? If you wanted to, say, add the sign in with Google functionality to your app and used a framework like Flutter to build your app, you wouldn’t have to develop it from scratch.   You could simply use Flutter’s Google Sign-in plugin, and you’d be good to go in just a few steps.   Likewise, if you wanted to add the sign in with Apple app functionality, you’d add the cross-platform's Apple Sign-in plugin, and that’s all.   Essentially, you never have to start from scratch when you work with native or cross-platform frameworks for creating your app. Types of mobile app frameworks When it comes to developing mobile apps, you have two kinds of frameworks: Native mobile app frameworks: These are frameworks that let you design an app for a specific platform. So if you’re looking to launch an iOS-only app, you could go with an app development framework like Swiftic (which originally launched as an iOS native app development framework). Native platforms can be handy for developers who want to launch an app exclusively for a single app store. Cross-platform mobile app frameworks: These are frameworks that let you use a single codebase to build all the app versions that you need. So if you use a cross-platform mobile app development framework, you need to build just one app, and you can get it to work seamlessly as both an iOS app and an Android app. You don’t need to build two apps. Cross-platform apps are also called hybrid apps. Advantages of using cross-platform mobile app development frameworks For app developers that want to launch their apps on both the app stores, cross-platform mobile frameworks offer a host of benefits. Code reuse: The key benefit of using cross-platform mobile app development frameworks is that you can reuse your code across the App Store and Google Play. Apps that use such frameworks share almost 100% of their code. Faster app development: You can ship new features much faster when you only need to develop them once! Overall, you need less time to launch new functionalities and also get to save on your engineering bandwidth. Consistent experiences: Modern cross-platform mobile app development frameworks are designed to help you deliver truly native experiences that feel consistent across both mobile operating systems. So your Android and iOS apps will feel the same. Let’s now look at the top mobile app development frameworks that you could use in 2023. Top mobile app development frameworks in 2023 Flutter Developed and maintained by Google, Flutter is the most popular mobile app development framework of 2023. With 46% of developers using this open source framework (with its adoption increasing steadily each year, up from 30% in 2019), Flutter seems to be replacing React Native as the cross-platform development framework of choice for mobile developers. With Flutter, when you want to add a new feature to your app, you don’t need to do your development work twice, once for each platform (iOS and Android). You only need to develop it once. And Flutter will ensure that it runs “natively” on both the target operating systems. Flutter actually seems to be doing well at helping mobile developers deliver seamless iOS and Android experiences – all from a single codebase. Also, Flutter is great for teams of all sizes. For Reflectly, an app serving millions of users and built by only two engineers, Flutter cut the development time by half while rendering beautiful app experiences on both Android and iOS from a single codebase. Before going with Flutter, Reflectly used some other cross-platform framework, but the experiences it delivered weren’t native, so the team made the switch: https://youtu. be/6ZpETbJjipQ When Google reengineered its Google Pay app to use Flutter, building new features only took about 1. 2 times as much work (and not 2X! ). And when eBay wanted to launch a new app to handle its auto vertical, eBay's engineering team decided to go with Flutter and launch a single app instead of building two native apps to cover both the platforms. The team shares how Flutter helps it use the same code to power app experiences on both the app stores and how it supports sharing code for everything “from the UI, business logic, domain models, analytics, network stack, and even the CI pipeline. " Flutter’s key features: Flutter shines at creating adaptive apps. This means that Flutter ensures that platform-specific behavior — for example, scrolling that differs significantly across iOS and Android... --- Learn how to promote your in-app offers and convert users faster. Usually, in-app purchases are found at the bottom of the funnel, with the App Store page and the app itself being the conversion steps. But what if there was a possibility to pay for a subscription even before downloading the app and ensuring a higher conversion rate? Promoted in-app purchases allow you to do just that, and here's how you should use it to your advantage. What are promoted in-app purchases? Promoting in-app purchases means highlighting specific offers directly within the App Store. This makes them more visible to potential users before they even download the app. Within app ecosystems, this feature functions as an advertising mechanism, allowing developers to spotlight particular in-app products, such as special items, premium content, or subscriptions. This works great if you want to test a new product or convert more people into longer-lasting subscriptions. Types of in-app purchases In-app purchases are vital revenue streams for many apps, catering to diverse user needs and business models. These purchases are generally categorized as follows: Consumables: As the name suggests, these are one-time-use items that can be consumed and then need repurchase. They're depleted once used. Examples: Virtual currencies, power-ups, or one-time game boosts. Use Case: In gaming apps, players might buy power-ups to advance more quickly. Non-consumables are permanent features or items that users purchase once and can use indefinitely without the need for repurchase. Examples: Ad removal, full-game unlocks, or additional app features. Use Case: A photo editing app might offer filters that, once purchased, can be used perpetually. Auto-renewable Subscriptions offer access to content or features in an app for a recurring time period. Users are billed periodically unless they cancel. Examples: Monthly access to premium music, news, or video streaming services. Use Case: Streaming platforms or news outlets provide ongoing content access to their premium subscribers. Non-renewing Subscriptions provide access for a set duration but don't renew automatically. Users need to repurchase once the subscription period ends. Example: Seasonal game passes or temporary course access. Use Case: An educational app might provide access to a course for a 6-month period, after which users need to re-subscribe. By understanding each type's distinct characteristics, you can implement the most appropriate in-app purchase model tailored to their content, user base, and revenue objectives. You can also decide whether a purchase is worth promoting by analyzing the amount of money it brings. How to start promoting App Store in-app purchases? The process is pretty streamlined from the Apple side, as you can do most of what you need in the App Store Connect. Here's the step-by-step: Implementing Starting from iOS 16. 4, to enable promoted in-app purchases, use Purchase Intent: struct PurchaseIntent. In previous versions of iOS, you could use paymentQueue(_:shouldAddStorePayment:for:) instead, but now Apple recommends sticking with a more easy-to-recall intent. Before you start, make sure to support a delegate method in SKPaymentTransactionObserver: optional func paymentQueue( _ queue: SKPaymentQueue, shouldAddStorePayment payment: SKPayment, for product: SKProduct ) -> Bool You can use ProductStorePromotionController to manage the promoted in-app purchases: control their order, visibility, and availability per device. class SKProductStorePromotionController : NSObject Now that the preliminary work is done, head over to the App Store Connect. Find your app and click on the Promote in-app purchases under Features. Here, you can add or remove the purchases and change their order and visibility.   And you're done! Visit Apple's Developer site for more info about implementing and promoting in-app purchases and specific developer-side examples. Testing promotions To make sure everything works correctly, test out the purchases before launching them public. The key part is to simplify the customer journey from tapping the product button in the App Store to confirming the purchase in the app. If a user doesn't have the app yet, it's important that they see the confirmation of the promoted in-app purchase on one of the first screens they're shown. To test if the offers work correctly, you can use an Apple-provided URL that looks like this: itms-services://? action=purchaseIntent&bundleId=com. example. app&productIdentifier=product_name, where you should see your bundleId and productIdentifier with your app and offer name, respectively. If the in-app purchases are implemented correctly, clicking the link should open your app on the purchase confirmation page.   Creating effective metadata Now that the promoted purchases are up and running, you should pay attention to how they look. Remember that most users won't even have your app installed before seeing the purchase, so the offer should prepare them to what expect from your product. Ideally, people don't just stumble onto the page and are brought by a user acquisition or influencer marketing campaign that explains the offer beforehand. The metadata you need to prepare for the promoted in-app purchases includes a promotional image, display name, and description: promotional image should be a 1024x1024 PNG file. Make sure it's created in accordance with Apple UI Design Resources and scales down correctly. Apple also adds a frame to the image to keep it in line with App Store design guidelines, so make sure not to place anything important in the outer parts of the image. the display name should be understood by those who don't have your app yet, so avoid generic or too specific names. Auto-renewing subscriptions should include their duration, like (1 Month) or (1 Year). Keep it short, however, because you only have 30 characters. the description should explain the purchase to the newbies and entice the audience to try it out. Since you have only 45 characters, keep it to one or two unique selling points. Customizing in-app purchases As we said before, you should consider promoted purchases as another marketing channel: that is, constantly updating and AB-testing it to yield the highest result. You can easily customize the purchases on the App Store Connect page, and no coding is required. Remember, however, that the App Store page takes up to 24 hours to update. Here's what you can test: Change the metadata of the offer. Image, name, and description of the in-app purchase can greatly... --- Learn more about one of the most effective ways to keep the retention rate and how to use it to the advantage of your app. Amidst a sea of apps and endless online distractions, businesses are in a constant battle for user attention. One tool that has proven to be remarkably effective in attracting people is push notifications. These messages have the power to not just grab attention, but also drive user engagement, promote in-app subscriptions, and even improve trial conversion rates. However, with more people caring about their screen time and opting for the 'No Disturb' mode, the notifications become a game of quality rather than quantity. In this guide, we go over the basics of push notifications, how they influence app retention and monetization, and what you can do to supercharge their efficiency. What are push notifications? Push notifications are real-time alerts sent to a user's mobile device or computer from an application, even when the app is not currently open. These notifications serve various functions such as delivering breaking news, alerting users of social media updates, or promoting special offers. They are an essential tool for engagement, keeping users connected with an app's latest content or features.   For subscription apps, push notifications play a critical role. They can prompt trial users to convert to full subscriptions by alerting them of premium features they're missing out on or notifying them as their trial period nears its end. Similarly, for existing subscribers, notifications about new content or features can improve retention rates. Through precise timing and targeted messaging, push notifications can thus be a powerful tool in driving both user engagement and revenue for app developers. Why use push notifications? Push notifications serve as a direct line of communication between app developers and users, offering multiple benefits crucial for sustaining and growing an app-based business.   Increasing User Engagement One of the most significant advantages of push notifications is enhancing user engagement. By sending real-time updates, alerts, or promotions directly to a user's device, apps can encourage frequent interaction and usage. This constant engagement not only keeps your app top-of-mind but also increases the likelihood of users taking beneficial actions, like sharing content or making in-app purchases. Improving Trial Conversion Rates For apps offering free trials or freemium models, push notifications can be a pivotal tool in converting non-paying users to paid subscribers. By using targeted and timely notifications, you can inform trial users of the benefits they would gain from a full subscription, remind them when their trial is about to expire, or offer special promotions to incentivize the conversion. This direct outreach increases the chances of turning trial users into paying customers, thereby boosting revenue. Enhancing User Experience for In-App Subscriptions For users who have already committed to an in-app subscription, push notifications can add value to their experience by keeping them updated about new features, content, or updates. By making subscribers feel they are continually receiving fresh, valuable offerings, you can increase retention and reduce churn, which is vital for subscription-based business models. Types of push notifications by intent Push notifications can be categorized based on their primary intent or the action they aim to induce. Different types of notifications serve different purposes in engaging the user. Here's an overview: Informational notifications updates & news deliver essential updates or breaking news to keep users informed. event reminders are timed notifications that remind users of upcoming events or appointments. location-based are triggered based on the user's geographical location to provide relevant information or offers. Transactional notifications order updates: e-commerce apps use these to update users on the status of their orders. payment confirmations: these notifications confirm successful transactions. security alerts notify users of suspicious account activity or required security updates. Social notifications activity updates tell users about social interactions like likes, comments, or new followers; chat messages inform users of new messages or chat activity; friend requests alert users of new connection requests. Promotional notifications offers & discounts are designed to entice users back into the app with special deals or promotions; product announcements notify users of new product launches or restocks; content recommendations suggest relevant content or features based on user behavior. Engagement & Retention daily/weekly digests summarize relevant activities or content to re-engage inactive users; milestones & achievements congratulate users on reaching specific milestones or achievements within the app; behavioral cues are sent based on user actions, such as abandoning a shopping cart, to prompt completion of a process. Understanding the intent behind each type of notification can help you tailor the message and call to action accordingly, making them more effective in achieving their respective goals. How to create effective push notifications Creating effective push notifications requires a blend of art and science, incorporating design principles, compelling content, and clear calls to action. Here's a guide to help you craft successful push notifications: Design a cluttered notification can deter users. keep the design simple, with straightforward icons and minimal text. ensure that your notification can be easily read, even on smaller screens. use contrasting colors and readable fonts. incorporate your brand elements subtly so that the notification is instantly recognizable as coming from your app. Headline you have limited space; keep your headlines under 50 characters.   the headline should hook the user instantly: use powerful words or phrases that pique interest. ensure the headline relates to the message so as not to mislead the user. Content use simple language that gets the point across quickly, with no jargon or familiarity. clearly state what's in it for the user; whether it's an exclusive offer or breaking news, make it evident. use data to personalize messages. for example, "Hi , your favorite band is coming to town! " is more compelling than a generic message. create a sense of urgency with phrases like "limited time offer" or "last chance" to encourage immediate action. Call to Action (CTA) make sure the CTA is easily visible without being obtrusive. use verbs that encourage action, like "buy now," "learn more," or "watch video. " stick to one call to action for each notification to avoid confusing the user. the CTA should take... --- Explore the main differences between ROI and ROAS for mobile apps. Discover their unique attributes, how they're calculated, and their implications for app marketers. Understand which metric best aligns with your goals and how to effectively leverage them for optimal performance. Now more than ever, your phone is a one-stop shop for anything you can possibly need. It’s not just a device to stay connected with people or make phone calls. It’s a necessary way to stay connected to services and wants too. Food delivery? You got it! Bored on a weekend? Download a video game!   In fact, in 2022 alone, a total of 255 billion mobile apps were downloaded and used. And with this expansive range of downloads, we’re seeing a rising trend. People want apps in their native languages. The way I see it, this is an ideal opportunity for app developers to build a competitive edge and enter international markets via mobile app localization.   Not sure what I’m onto yet? Keep reading! What is app localization? App localization is the process of adapting a mobile to a specific target market by changing all aspects of its use and visuals to appeal to a specific language, culture, and target market. But before you think you can slap some Google-translate on your app and call it a day, it’s not going to work.   App localization is more than just translating text.   It includes making adjustments to various elements to ensure that the app feels native and relevant to the users in the target locale. For instance, you’ll have to ensure your app promotion is focused on localized marketing strategies and that your user interface layout supports the target demographic. Some of the core elements of app localization include:  Text translation Date and time formats Audio dubbing Graphic redesigning User interface layout Keyboard and input method preferences Local regulations and legal requirements Localized marketing and promotions App Store Optimization (ASO) Benefits of localizing mobile apps Mobile app localization isn’t a random wild goose chase app developers are onto. But it is being chased because of all the benefits it can bring to your app on a silver platter. Here are the 6 benefits of localizing mobile apps: Access to Global Markets By localizing an app, it becomes accessible to users around the world who prefer content in their native language. This expanded reach opens up opportunities in diverse markets and demographic segments.   In other words, you’ve opened up your app to a whole new world of internet users who can skyrocket your app downloads and app store listings! Think Airbnb which started within its founder’s apartment and is now localized to serve around 220 countries across the globe with a net value of $75 billion! Improved User Experience A localized app feels intuitive and user-friendly, as users can navigate through menus, instructions, and content in their preferred language. This leads to a smoother and more satisfying experience, enhancing your app’s engagement and retention rates! Higher Conversion Rates Localization increases the likelihood of users converting from free to paid users. When users find value in an app that is tailored to their language and culture, they’re more inclined to invest in premium features or make in-app purchases.   Competitive Advantage In markets where competitors have not yet localized their apps, being the first to offer a tailored experience can provide a significant competitive edge. And when you’re staring into the eyes of a global audience, a competitive edge can take you to the stars and beyond! Word-of-Mouth Marketing Satisfied users are more likely to recommend a localized app to their friends and family, driving organic growth through positive word-of-mouth marketing. As your app users grow, so do your app downloads and your opportunity to monetize your app content!   And that brings us to our last benefit... Maximized Revenue Potential Targeting multiple regions with tailored content can lead to substantial revenue growth. Users are more willing to pay for an app that feels personalized and relevant to their local context!   Not only that but since you already grow your user base with more countries, you can expect to make more sales quicker than before. Does mobile app localization really make an impact? Mobile app localization is one aspect of app development that is highly documented and studied. Given that last year, 255 billion apps were downloaded, we’re seeing great potential for users and their diversifying needs with the range of options available.   But it’s obvious to understand that 255 billion downloads didn’t come from English countries alone. In fact, the three languages that make up 55% of the app download localities are: English, Chinese, and Spanish! So it’s just a matter of time before app localization becomes standard procedure instead of being a feature that gives your app a competitive edge. A study from Distomo revealed that mobile app localizations resulted in a 128% increase in downloads per country as well as a 26% revenue gain for each country! Another case study showed that with a winning localization strategy, Coin Splash ended up with a 101% increase in global downloads and a 67% overall increase in local countries.   App localization vs. App internationalization A lot of app developers often confuse app localization with app internationalization. And before you make the same mistake, let’s talk about it.   Repeat after me: app localization is NOT app internationalization.   Localization is the process of customizing an app to suit the language, cultural norms, and preferences of specific regional markets. The goal of localization is to create a seamless and engaging user experience for different audiences, enhancing user engagement and potential revenue growth. On the other hand, app internationalization is the preparatory phase that focuses on making the app's core architecture and codebase adaptable for these localizations. From designing the app for easy integration to developing a flexible infrastructure for future efforts, app internationalization is the supporting hand that makes app localization happen. Here’s a simple breakdown of their differences so you never confuse one with the other: AspectLocalizationInternationalizationFocusCultural and regional adaptationCore preparation for future adaptationsPurposeTailor app for specific marketsMake app adaptable for multiple marketsElements ModifiedText, images, symbols, design, contentApp architecture, code, structureGoalEnhance user experience and engagementAdapts... --- Mobil uygulama sektöründen en önemli konuklarla gerçekleştirdiğimiz podcastin yeni bölümüyle karşınızdayız. Bu podcast serisinde mobil uygulamadan para kazanma, abonelikler, reklamlar ve sektörden güncel gelişmeleri uzman konuklarımızla konuşuyoruz. Bu bölümde konuğumuz madduck ekibinden Dara Hızveren, Bahar Bölükbaşı ve Batuhan Yılmaz oldu. Bölüm boyunca mobil uygulamalarda publishing, LTV, abonelik testleri gibi birçok konuyu konuştuk. Bu sohbette mobil abonelik dünyasına dair başarılı bir şirketten öngörüler bulacaksınız. Hepinize iyi dinlemeler. Bu bölümü beğendiyseniz abone olun ve daha fazla kişiye ulaşmamız için arkadaşlarınızla paylaşmayı unutmayın. Yeni bölümlerden haberdar olmak için Telegram Topluluğumuza  katılın Altta bu bölümden en ilginç kısımları bulabilirsiniz. Uygulama yayıncılığına nasıl başladınız? Hikayenizi dinleyebilir miyiz? Dara: Yayıncılık hayatımıza birkaç abonelik tabanlı uygulama ile başladık. Abonelik uygulamalarındaki fırsatları görerek başladığımız bir app stüdyo tarafımız var. Yayınladığımız uygulamalarda başarı gördükten sonra, tabii ki uygulama yapmak ve bunu geliştirmek maliyetli süreçler. Pazara baktığımız zaman bir sürü geliştirici var ve güzel ürünler geliştiriyorlar gerçekten. Fakat bu geliştiricilerin bazılarının marketing ile alakalı bilgileri sınırlı. Bunun yanı sıra marketing süreçleri ile ilgilenmek yerine ürün geliştirmeye daha çok odaklanıyorlar. Güzel bir ürün geliştirmek kendi başına zorlu bir iş zaten. Ürün geliştirme sürecinin yanında, marketing, App Store Optimization gibi süreçleri de yönetmek çok zor. Bir yandan da finansal bütçenin de buna hazır olması gerekiyor. Bizim development ihtiyacımızı dışarıdan sağlamak ve marketing ile finansal gücümüzü birleştirerek bir publishing tarafını inşa etmeye başladık. Dünyada uygulamalarımızın yayınlandığı ülkeler de artmaya başlayınca analitik tarafta çalışmaya başladık.   Burada app sayısı ve ülke sayısı arttıkça bazı temel sorunlar ortaya çıkıyor. Biz de bunun için kendi içimizde bazı toollar geliştirmeye başladık. App Store Connect’teki derya deniz diyebileceğimiz bir sürü veriler arasından anlamlı veriler çıkarıp bunlardan bir hipotez oluşturmak gerekiyor. Ve bunları bir önem sırasına koymak gerekiyor. Yani örnek veriyorum Amerika’daki retention sorununa mı önce eğilmeliyim, yoksa Fransa’daki app install sayıları ile mi ilgilenmeliyim gibi soruları doğru sormak gerekiyor.   Mobil uygulama mağazalarında son zamanlarda ne gibi değişiklikler var? Dara: Sektörün giderek zorlaştığını görüyoruz. Bizim odağımız oyun dışı abonelik tabanlı uygulamalar. Ve ilk başladığımız süreçten bu güne aboneliklerde çok hızlı bir büyüme görüyoruz. Son hızla aboneliklerin büyümesi de şunu gösteriyor, bir sürü insanın ilgisi aboneliklere odaklanıyor ve bu işe girmeye başlıyorlar. Bizim 5 yıl öncesinde çok uyguna aldığımız kullanıcı edinme maliyetleri hızla yükselmeye devam ediyor. Gerçi şu anda hala güzel başarıları yakalamak mümkün. Doğru zamanda doğru fikirlerle mağazada yer alarak bir anda güzel sıçrama yakalayabilmek mümkün. Sadece gittikçe bir finansal güç ve bu alanda bir deneyim gerektiriyor. Batuhan: Artık abonelik dünyasında en iyi veriyi nasıl alırım ve en iyi insightları nasıl çıkartırım modeline gelmiş durumdayız. Ayrıca burada şu konuya da değinmemiz gerekiyor, bazı dış etmenler de var. Mesela IDFA ile birlikte kullanıcı hedeflemenin zorlaşması firmaları çok etkiledi. Bu konu küçük geliştiricileri etkilediği gibi büyük firmaları da etkiliyor. Bir anda gelen bu tarz dış etmenlere karşı hızlı aksiyonlar alınması gerektiği için tüm süreçlerde yeniden çalışmalara başlamak gerekiyor.   Bir publisher olarak başarılı bir abonelik uygulamasında baktığınız kritlerler nelerdir?   Bahar: Öncelikle bir uygulamanın onboarding süreçlerinin çok iyi olması gerekiyor. Bir uygulama ne kadar iyi olursa olsun, kullanıcıyı içeri alamıyor ve kullanıcıya ödeme yaptıramıyorsa geçmiş olsun. Bu uygulama ne yazık ki başarılı olamıyor. Ayrıca bedava verilen ve premium özellikler arasındaki denge ve burada kurgulanan süreçler de uygulamanın başarısını etkileyen bir durum. Kullanıcıyı bir şekilde içeri aldık veya deneme döneminde diye düşünelim. Küçük buglar bir şekilde tolere edilebilir durumda oluyor. Ama buglar değer önergesini vermeyei engelleyen bir seviyede ise yine başarısızlık duyuyor. Yani sunulan ürün vadedilen değeri karşılamıyorsa burada bir problem var demek oluyor. Bunun yanı sıra basit ve sezgisel bir UI ve UX’e sahip olması gerekiyor. Kullanımı anlaşır olmayan ve komplike olan uygulamaların benzer sorunlarla karşılaştıklarını ve kullanıcıyı yine baştan kaybettiklerini görüyoruz. Burada sezgisel, kolay anlaşılır ve basit bir arayüzün olması da çok çok kritik. Diyelim ki kullanıcıyı onboarding ettik ama doğru fiyat sunduk mu? Bunun optimizasyonu ve doğru fiyatlar ile doğru dönüşüm oranlarını yakalamak çok kritik. Doğru bir değer önergesiyle sunulmuş, düzgün fiyatlanan, kolay kullanımı ve arayüzü olan bir uygulama ile sonuçta yüksek bir LTV’ye ulaşmış olacaksınız. Bu da uygulamanın finansal başarısı ve geleceği için çok kritik bir öneme sahip bir unsur. Özellikle bireysel geliştiriciler için uygulamanın finansal geleceği açısından kısa vadeli hedefler belirlemek daha iyi olacaktır. Çünkü uzun vadeli getirisi olan yatırımlar nakit akışını olumsuz yönde etkileyebiliyor. Bir uygulamayı nasıl fiyatlandırabiliriz? Batuhan: Bunu tüketici artığı kavramıyla daha iyi açıklayabiliriz. Bu aslında bir kişinin bir şeyi almak için vermeye hazır olduğu rakam ile o ürünün fiyatı arasındaki fark oluyor. Satıcının bu tüketici artığını doğal olarak minimize etmesi gerekiyor. Burada satıcının kişinin vermeye hazır olduğu rakamı biliyor olması lazım. Burada temel strateji şu olmalı, kullanıcı kaç para vermeye hazır? Bu da bizi şu noktaya götürüyor. Bu her kullanıcıda aynı olan bir durum değil. Ülkeye, cinsiyete, yaşa göre bile değişebiliyor. Önce biz benzer kullanıcıları kümeleyip, sonra bu kümeler için ayrı ayrı şu soruyu sormamız gerekiyor, bu küme kaç para vermeye hazır? Bir yandan da mobil uygulama dünyasında value proposition çok değişken olabiliyor. O yüzden o küme içerisinde de ne kadar vermeye hazır olduğu zamana bağlı olarak değişiyor. Bu da bizi şu noktaya götürüyor. Benzer kullanıcıları kümeleyip bu kişilere A/B testi yapmalısınız. Bu testi sürekli yapmak gerekiyor, çünkü kümelerin de zamanla davranışları değişebiliyor. A/B testinden çıkan sonuçları daha geçerli hipotezler bulmak için kullanmak lazım.   LTV bir uygulamanın geleceği için ne kadar önemlidir? Batuhan: LTV bir kullanıcıdan elde etmeyi beklediğin toplam gelir diyebiliriz kısaca. İki çok önemli metrik var bir kullanıcıdan kaç para kazanıyorum, ikincisi de kullanıcıyı elde etmek için ne kadar harcama yapıyorum. LTV’nin şöyle bir zorluğu var. Geçmişe yönelik bir hesaplama yapmıyoruz. Bugün aldığım kullanıcıdan gelecekte ne kadar kazanacağımın hesabını yapıyoruz. İster istemez bu işin içerisine bir öngörü giriyor.   Hesaplamaya şu şekilde başlıyoruz. Son üç ay içerisinde uygulamaya girmiş kullanıcılar için gerçek bir retention hesaplaması yapıyoruz. Bu hesaplamayı daha kullanılır hale getirmek için kendimizce yaptığımız bazı düzenlemeler var. Bundan sonra tahminleme modeline giriyoruz.   Abonelik gelirini arttırmak için neler önerirsiniz? Batuhan: Gelirleri arttırmak için bence 2 farklı yönden durumu değerlendirmek gerekiyor. Öncelikle her üründe olduğu gibi value proposition tarafını geliştirmek ve bunu kullanıcıya en iyi şekilde anlatmak önümüze çıkıyor. Üründe bu tarz iyileştirmeler yaptığınızda... --- Discover the SKAdNetwork 4.0, Apple's solution for user privacy and ad attribution. Our detailed guide describes its functionalities, implications for advertisers, and the future of app marketing in a privacy-centric era. If you’ve been in the digital space in recent years— as a user, advertiser, developer, or any other role— you most likely know the recent trend of everyone urging user level data and user privacy to be off-limits when it comes to advertisement. Facebook was found to be selling user data on a global stage, but it certainly isn’t the only one on the list. And without personal user data, it’s not exactly easy to serve signed ads or create impactful ad campaigns!   On the other hand, users prefer apps and websites that protect their individual sensitive data.   So this time, we’re talking about SKAdNetwork, an ad framework that Apple introduced in 2018 to balance ad network’s responsibilities by providing aggregate data while protecting user data!   What is SKAdNetwork? Short for StoreKit Ad Network, SKAdNetwork is a privacy-driven advertising attribution framework for app developers and marketers to optimize their app’s ad campaign strategy.   It was initially launched in 2018 by Apple to kill two birds with one stone: protect individual user privacy and provide realistic insights into advertising campaigns for marketers! It was introduced to attribute iOS’s ad campaigns across every advertising network out there, as well as tackle the ever-growing user privacy concerns. And won’t you believe it?   Developers, Mobile Measurement Providers (MMPs) and networks began adapting to the new network, ensuring compatibility and creating special dashboards to work seamlessly with SKAdNetwork!   Main functions of SKAdNetwork At its core, SKAdNetwork's primary function is to provide advertisers with a secure and privacy-conscious method for attributing app installations and actions to specific ad campaigns. But there’s a lot more that makes SKAdNetwork the necessary element of digital app privacy today. Privacy-preserving attribution SKAdNetwork is designed to maintain user privacy while allowing advertisers to measure the impact of their ad campaigns. It achieves this by providing attribution data without revealing individual user identities. This ensures that sensitive user information remains confidential. Attribution without user data Unlike traditional ad attribution methods that require sharing detailed user data, SKAdNetwork attributes app installations without accessing personal information. Advertisers can determine which ad source led to an app installation without knowing the specific user behind it. Anonymized attribution SKAdNetwork anonymizes user data before sharing it with advertisers. This aggregated data helps advertisers understand overall campaign performance without revealing details about individual users. Conversion tracking Advertisers can track user actions beyond just app installations using SKAdNetwork. For instance, they can monitor actions like making a purchase, registering an account, or reaching a specific level in a game. SKAdNetwork allows this without disclosing any personal user data! Post-Install events SKAdNetwork not only measures app installations but also tracks user actions within the app after installation. This provides valuable insights into user engagement and helps advertisers optimize their campaigns for desired post-install behaviors. Ad network integration Ad networks collaborate with SKAdNetwork to ensure accurate attribution. They register their identifiers and integrate with the framework, enabling seamless communication between the app and the network for proper campaign tracking. Privacy compliance SKAdNetwork aligns with Apple's broader privacy initiatives, such as App Tracking Transparency (ATT), where users have more control over data tracking. It fits into Apple's commitment to giving users greater privacy control. Optimization Insights SKAdNetwork's data empowers advertisers with insights beyond mere installation numbers. They can understand user behaviors, evaluate the success of different ad campaigns, and adjust strategies to improve overall campaign effectiveness and return on investment. Why is SKAdNetwork important? The SKAdNetwork framework has emerged as a pivotal solution in the evolving landscape of digital advertising, bringing forth several compelling reasons that underscore its importance for advertisers and the industry as a whole. Privacy-first approach One of the most significant reasons for SKAdNetwork's importance lies in its robust privacy-focused design.   With increasing concerns over user data privacy and stringent regulations like GDPR and CCPA, SKAdNetwork provides a privacy-first solution that allows advertisers to track campaign performance and attribute conversions without compromising individual user identities.   This not only ensures compliance with privacy regulations but also builds trust among users, fostering a more ethical and transparent advertising ecosystem. Reliable campaign attribution SKAdNetwork addresses the challenge of attribution in a multi-touchpoint customer journey. Advertisers often struggled to accurately attribute conversions to specific touchpoints due to discrepancies and data fragmentation. SKAdNetwork simplifies this process by providing a reliable and standardized attribution mechanism.   Advertisers get more insight to understand which marketing efforts led to app installations and subsequent conversions, offering clarity on campaign effectiveness and eliminating ambiguity in attribution. Data-driven optimization with limited intrusion SKAdNetwork empowers advertisers to optimize campaigns while respecting user privacy. Despite the limitations on detailed user-level data, advertisers can still derive valuable insights from post-install events and conversion values.   This data-driven approach allows for continuous optimization of targeting, creatives, and conversion funnel strategies, enhancing campaign performance without resorting to intrusive data collection practices that could alienate users. How does SKAN work? Before I jump into how SKAN works and all of its conversion values, we have 4 parties that are foundational for the network to operate.   The 4 main players of SKAdNetwork are:  Ad network: Ad networks are a platform that connects app publishers with app advertisers, reporting informational app metrics like conversions and installs. Publishing app: Publishing apps are those that display ad campaigns and serve signed ads from SKAN. Target app: Also known as the advertised app, target apps are the ones being advertised on the publishing app thanks to specific ad network IDs. Mobile Measurement Partners (MMP): These people are responsible for performing SKAdNetwork metrics such as calculating ad campaign effectiveness, coarse conversion value, and ad impressions.   Now that we know all the players on the field, let’s take a nosedive into how SKAdNetwork works in the first place! And no, the process doesn’t have to be complicated at all.   Here are the 6 steps that enable SKAdNetwork to operate: Conversion Value Advertisers assign a conversion value to specific user actions (e. g.... --- Explore the latest TikTok ad formats and specs for 2023. Check our comprehensive TikTok advertising guide to ensure your campaigns leverage the platform's full potential and resonate with audiences. Stay updated, stay ahead! TikTok is the app to be. After reaching over 3 billion downloads in 2023, marketers and brands are recognizing the chokehold that TikTok has over every other social media platform when it comes to advertisements.   And so, TikTok ads are where you should be zooming in! Over the course of years, TikTok has developed an extensive range of advertisement types for brands to choose from. These ads target demographics differently as some of them are unskippable full-screen traditional commercials while others foster a sense of community to build their images. If I’ve got you hooked so far, let’s talk about why you should even be considering the app for your advertisement needs in the first place. Why advertise on TikTok? Before 2016, nobody knew what a TikTok was. But today, TikTok is the #1 platform marketers and brands use as a way to promote their products or services.   From names like Jennifer Lopez and Charli D’Amelio to companies like Tesla and Sephora, every successful brand is heavily advertising itself and going viral on TikTok.   The reason is simple: TikTok is the best platform to promote your brand for more reasons than one.   In Q1 of 2022, Tiktok became the most downloaded app globally and even surpassed Google as the most popular web domain! By Q3 of the same year, it became the world’s highest-grossing app and currently has 1. 2 billion active users. But how did it do that?   Contrary to popular belief, TikTok caters to a wide range of demographics. It’s not the app for teenagers anymore; it’s where your target demographic is! And they’re actively spending an hour every day on the app, making it the perfect app to launch your campaigns into. I’m not done with the statistics just yet. TikTok also has the highest engagement rates when compared to other social media sites. While Instagram’s average engagement is approximately 3%, TikTok stands as a winner with an engagement rate of 8. 2%! When it comes to actual advertisement, you can implement more effective video marketing on the platform to a plethora of audiences (20% of the global population).   You can showcase your products authentically on TikTok to an audience that’s already engaged and active! This can mean increased brand exposure while staying ahead of the social media marketing curve. Last but not least, TikTok offers a variety of ad formats, such as In-Feed Ads, Branded Hashtag Challenges, and Branded Effects. These formats provide creative freedom and allow brands to craft engaging and memorable advertising experiences! Ready to know more about these different ad formats that make TikTok the perfect app to start?   The 8 TikTok Ad Formats Explained When it comes to advertising and spreading brand awareness, TikTok’s ad group range really serves marketers well. Not only are you free to choose a creative strategy that fits your campaign objectives, but each type within these ad groups targets users differently! That said, let’s jump into the 8 types of TikTok ad formats! 1. TikTok in-feed ads In feed ads on TikTok are a form of native advertising that seamlessly integrates promotional content into a user's feed, making them appear as regular TikTok videos.   These ads typically show up in a user's "For You" feed, sandwiched between organic user-generated content, and are designed to be engaging and visually appealing.   In-feed ads can vary in format, including short videos, image slideshows, or GIFs, and usually feature a recognizable "Sponsored" label to denote their commercial nature. Not sure if this TikTok ad format is meant for you? Here are some pros and cons of using in-feed ads: ProsConsFeels like native contentHigh competition with other videos for TikTok user attentionHas clickable featuresCTA buttons can take users to internal and external landing pages The latest example of successful in-feed ads on TikTok is Maybelline’s Superstay Vinyl Ink. The in-feed ads led to a +95% glance views on Amazon and a whopping 55 million impressions within 24 hours! Specs for in-feed ads Aspect Ratio: 16:9 (recommended) Resolution: must be ≥540*960px, ≥640*640px, or ≥960*540px. Length: up to 60s (recommended 9-15s) File Options: . mp4, . mov, . mpeg, . 3gp, or . avi File Sizes: less than 500 MB 2. TikTok brand takeover ads You might’ve come across a brand takeover ad campaign when you open the TikTok app and come across an unskippable full-screen ad on your FYP. This TikTok ad type takes over your screen for a few seconds and turns into one of the in-feed video ads. They can come across as GIFs, static images, and videos. But, TikTok only shows 1 brand takeover ad per day to its users.   But these full-screen ads provide an immersive experience, driving sales and impressions within a short time. Plus, you can always create and add your own custom logo to create lasting brand awareness! ProsConsGuarantees a high number of impressionsCan be identified as an adCan not be skippedUnable to like or comment Specs for brand takeover ads Aspect Ratios: 9:16, 1:1, or 16:9 Length: 5 seconds File Options for Video: . mp4, . mov, . mpeg, . 3gp, or . avi File Types for Static Images: JPG or PNG. File Size: 500 MB 3. TikTok TopView ads Want to take your advertising game with an ad format that is 67% more effective than any other type of TikTok ad?   The biggest example of a successful ad strategy using topView ads is eOne’s campaign for the movie Dungeons & Dragons: Honour Among Thieves. It resulted in over 50 million impressions and a cost per view of $0. 02! These video-first format ads have a duration of 60 seconds and make an immediate appearance upon launching the TikTok app.   What sets these ads apart is their distinctive nature: they occupy the entire screen and play automatically with sound.   Plus, advertisers have the option to include a call-to-action button within the ad itself! Talk about being a “must-see” ad... If your aim... --- If you're looking to monetize your mobile app, in-app purchases (IAPs) are the way to go. In-app purchases drive the most revenue for app developers, coming second only to advertising. In this primer on in-app purchases, we'll be covering everything you need to know about in-app purchases. We’ll see: What in-app purchases are How in-app purchases work as an app monetization method The different types of in-app purchases and their examples Why subscriptions or recurring in-app purchases are special How you can add in-app purchases to your Android and iOS apps How (and why) you should use an in-app purchase infrastructure like Adapty to add in-app purchases to your Android and iOS apps  Let's dive in! What is an in-app purchase? In-app purchases (IAPs) – or in-app products, as Google Play calls them – are products that you sell inside your apps to monetize them. Depending on the niche of an app, in-app purchases can take many forms, from premium features and functionalities to content and experiences that users need to purchase to unlock. Take a language app using the freemium monetization model, for instance. For such a language app, basic lessons could be available for free. But a feature like voice analysis can be an excellent in-app purchase for helping the more serious users improve their pronunciation. Another in-app purchase for such an app may be offline access. Yet another example of an in-app purchase here could come from VR capabilities — for instance, letting learners engage with virtual characters in 3D settings, such as by placing them in a virtual cafe or coworking space. You get the drift. As the app industry continues to grow, in-app purchases are predicted to do consistently well as an app monetization strategy. Let's quickly see how in-app purchases stack up as a mobile app monetization method before exploring its different types. Zooming in on in-app purchases in the app monetization landscape The global market research firm, International Market Analysis Research and Consulting Group, suggests that the in-app purchase market has already surpassed US$124. 1 billion in revenue in 2022. Its research forecasts the in-app purchase market to reach US$347. 0 billion by 2028. Another international research firm, EMR (Expert Market Research) predicts the growth to be even higher and set to reach US$414. 43 billion by 2028. According to EMR, the market’s worth US$134. 25 B already (a figure it reached in 2022 itself). According to Statista, the in-app purchase (IAP) market is much bigger — already at US$204. 90 billion in 2022 — and will only grow and reach US$296. 8 billion in 2028.   Despite the deviations, all the data conclusively establishes in-app purchases as a sure way of monetizing mobile apps. Statista observes that in-app purchases were the second most lucrative revenue model for mobile apps in 2022, and it sees the trend hold all the way through 2027: Let's now look at the four different types of in-app purchases that both the app stores support. Types of in-app purchases 1. Non-consumable in-app purchases Non-consumable in-app purchases are in-app products that users can keep using – i. e. , they don’t get used up. For example, a meditation app can design different meditation programs as non-consumable in-app purchases that users can keep accessing (any number of times) once they purchase them. Such in-app purchases help users get more value from their app for one-off charges. Because such an in-app product can only be sold once, they'll typically cost more than consumable in-app purchases. Here’s an example of a non-consumable in-app purchase (in the form of a lifetime subscription). Once a user gets it, they can keep using it: Another example of a non-consumable in-app purchase. This app’s offering an ad-free experience for a one-time in-app purchase: 2. Consumable in-app purchases In contrast to non-consumable in-app purchases, consumable in-app purchases are in-app products that get used up. Here, app users can only access them while they're available in stock. For example, a dating app can offer a pack of “connects” to its users and each time a user tries connecting with another, they use up some of their connects. Once a user’s connects get used up, they’d need to refill. Compared to non-consumable in-app purchases, consumable in-app purchases have a better potential at generating revenue as users run out of them and need to repurchase. For the same reason, consumable in-app purchases will usually be priced lower than non-consumable in-app purchases. The freemium app Canva sells premium content items as consumables. So if you want to use a premium item in your design, you need to purchase a credit (Canva’s in-app consumable purchase). And you can only use it once. If you need to reuse it, you need to buy it again. 3. Auto-renewable in-app purchases Auto-renewable in-app purchases are a special kind of in-app products -- simply put, these are subscriptions. Here, you give your users access to your app’s full version or its ad-free version for a recurring subscription (that's charged automatically). With auto-renewable in-app purchases, users are charged weekly, monthly, or annually, depending on the length of the subscription. These in-app purchases provide you with a steady stream of revenue. That explains why it's increasingly the most popular kind of in-app purchase. Many freemium apps use the subscription model for monetizing. With such freemium apps, users can download a free version of an app from the app store and access its “lite” version. However, for unlocking the entire app, users are prompted to subscribe. Free apps – or rather said the “free-to-download-and-try” apps – also often use the subscription model. With this model, users can download an app for free but to use it, they need to sign up for a free trial and agree to be put on a subscription plan once the trial ends. Users can however cancel their subscriptions during the trial. Here’s an example: “Paymium” apps too use the subscription mode. Here, users pay to download an app, but this app also contains... --- Learn about a tremendous amount of updates our team brought to you in September. Having rested well during the summer season, the Adapty team entered the first month of fall with an enormous amount of important updates. We’ve done great work towards improving our existing tools by adding the features demanded by our clients, as well as simply improving the UI/UX of several major parts of our service. Paywall Builder 2. 0 It’s been 8 months since we released the Paywall Builder that helped many of our clients easily create native paywalls and run A/B tests much quicker. This time, we’re proud to present Adapty’s Paywall Builder v2. 0 which will take the process of creating high-quality paywalls to the next level. We’ve improved many aspects of the editor to provide more flexibility and facilitate the process of paywall creation even further. The current update is live for iOS and Android, with other platforms also getting updated soon. Here’s what was improved in the 2. 0 version: Templates The most-awaited update is adding different templates split into 3 categories, depending on the visual style: Overlay – consisting of 2 separate layers, Transparent – with a full-screen background image, and Flat – reminiscing a streamlined landing page. Advanced customization Each template type provides numerous different ways to customize the paywall. You can manually adjust almost every element: Upload a desired background image, select the color scheme, choose the shape of every button, position the text and set its size, and much more. Preview for different devices We’ve updated the list of devices you can preview your paywall on, including numerous iterations of the iPhone and the most popular Android smartphones. Tight integration with the new A/B testing system Paywalls made with the builder can be quickly included in experiments and shown to different audiences which opens new possibilities in working with user segmentation and expands your growth strategy. Localization 2. 0 Another important part of our service that’s got a new version is the localization tool. Now when you go to the Remote config tab, you’ll be able to easily add new locales as separate JSONs and then conveniently edit all the translations within one dashboard. This helps quickly copy/paste pieces of texts or values between the locales and have a better overview of all the languages you work with. UX improvements for Paywalls Speaking of paywalls in general, we also added a few enhancements in the process of interacting with them.   You are now allowed to edit products on the paywall while it’s in Draft/Live states and no transaction information was received. Once there’s at least one transaction recorded, the paywall becomes “read-only”, however, it can always be duplicated. Paywalls can now be opened in separate tabs across our interface (Placements, A/B-tests, metric tables, and so on). Before, you had to manually search for the paywall name in the corresponding tab – all you have to do now is hover and click. New filters and grouping New filters were added to the metric and cohorts dashboard – now all the data can also be filtered by store and country. The metric dashboard also gets new ways of grouping – by audience, paywall, paywall group, and placement. --- Learn about the free trial conversion rate, why you should care about it and how to improve it. Subscriptions are a staple of app monetization strategies, allowing the user to forego a hefty one-time sum in exchange for a more comfortable regular payment. However, not everyone is willing to commit to a monthly or an annual payment without having a test drive of an app or a service. That's where the free trials come in: but even they don't deliver a 100% success rate.   This article explains probably the most important metric for subscription apps: the free trial conversion rate. We at Adapty constantly help our customers to keep this number high with tools like Paywall Builder and A/B Price Testing. That being said, there are still some evergreen basics and industry insights we thought were worth sharing. What is a free trial conversion rate? The free trial conversion rate is the percentage of users who, after having used a free trial of an app, choose to become paying subscribers. This metric is crucial for evaluating the retention strategies your app employs to hold onto its users and convert them into paying customers. A high conversion rate usually shows that users find value in the app's premium features and are willing to pay for continued access. A low rate, on the other hand, might signify a disconnect between user expectations and the reality. Understanding this rate enables app developers and marketers to fine-tune their offers and promo strategies to maximize revenue and customer satisfaction. How to calculate the trial conversion rate Calculating the trial conversion rate is intuitively easy: divide the number of people who purchased the subscription after the trial by the total number of people who started the free trial in the first place. Multiplying this number by 100% will give the rate. For example, out of 10,000 people who used the free trial, 1,200 decided to purchase the subscription. 1200/10000 * 100% gives us a 12% free trial conversion rate. Why is it important to track your conversion rate? Tracking your conversion rate is crucial for optimizing the monetization strategies of your app. It's the key way to influence ROI, especially when you're strapped for cash and on a limited promo budget. The rate is invaluable for financial planning and revenue forecasting, helping you understand how much you can afford to invest in customer acquisition – as is, what's the highest cost per user (CPU) you can afford — and what the expected return on that investment, ROI, might be. Types of app free trials There are several monetization models, each with its pros and cons. Let's see which one works better for your app. Freemium The term "freemium" is a blend of "free" and "premium," and it refers to a business model where basic services or features are provided for free, while more advanced or additional features are available at a cost. In a freemium model, there is no time limit on the free features; users can continue to use them indefinitely. The goal is to attract users with the free offerings and then upsell the premium features once they are engaged.   Limited-time free trial In this model, users are given access to most or all of the product's features but only for a limited period, such as 7, 14, or 30 days. After the trial period expires, users must pay to continue using the service. Limited-time free trials are designed to give prospective customers a full experience of the service, incentivizing them to become paying subscribers once they've seen the value it can provide.   Opt-in free trial In this instance, users are not automatically converted to paid subscribers at the end of the free trial period. Instead, they must actively choose to continue using the service by opting into a paid subscription. If they take no action, their access to the premium features simply expires. While this approach may yield a lower conversion rate, it tends to create a subscriber base of users who are more committed, as they have made a conscious decision to continue using the service. Opt-out free trial In contrast, opt-out trials automatically switch users to a paid subscription after the expiration of the trial, unless the user explicitly decides not to. This model depends on the inertia of users, many of whom might continue with the paid subscription either out of satisfaction or because they forget to cancel before the trial ends. While this may lead to higher conversion rates, it can also result in customer dissatisfaction if users feel they were unknowingly charged. Trial conversion rate benchmarks Obviously, the higher your free trial conversion rate, the better. And there are some great cases: for example, Slack converts 30% of its free users, Vimeo converts 60%, and Netflix – a whopping 93%. Be prepared, however, that your app might have a way lower conversion rate for a while. Most SaaS companies enjoy a relatively low visit-to-trial rate, but higher trial-to-paid conversion rates that often range from 15% to 25%, with top-performing companies getting up to 60% of their trial users to become paid customers. For most paid apps, the number fluctuates from 3 to 10%, depending on the necessity of the content and the availability of similar features not hidden behind a paywall. Some outliers, like Spotify, have a conversion rate of up to 46%, but here we're talking about strong branding and evident benefits to convert like the lack of ads and the ability to download music on a device. The matter of carefully choosing what to offer for free and what to keep paywalled is even more evident in the case of Duolingo, which, despite the industry-defining user retention techniques and worldwide recognition, has only a 5% conversion rate. Not only this app has introduced a paid tier later in its lifetime, but it also keeps the majority of its features available for free. This number is actually a standard for most apps, with games having an even lower (around 1–2%) conversion rate. Whatever your app is, it makes sense to focus more... --- In the 14th issue of the paywall newsletter: — what the best combination of products is for a Health and Fitness App's paywall, — which apps a weekly option serves best, — how to place plans to make them work better. In this issue of the paywall newsletter, our expert shares his experience on: what the best combination of products is for a Health and Fitness App's paywall, which apps a weekly option serves best, how to place plans to make them work better. Paywalls of this issue are commented on by... Steve P. Young, Founder of an agency focusing on the entire app funnel called App Masters, and a podcast host. Remove objects: They Make $100k but Probably Can Make More Who’s to argue with an app that is making $100K MRR, but I would add a monthly option without any trial to make the yearly option more enticing. I personally like to show all the prices on the paywall to allow users to easily compare which plan makes the most sense for them. However, given the nature of this app, weekly might be the best option for them. Remove Objects Productive: the Best Version of the Trial Toggle This is the best version of the “free trial enabled” button. I don’t have enough data to determine its effectiveness, but I like that the monthly option is there to make the yearly more interesting. I think giving users a discount by NOT enabling a trial is the way to go with these paywalls, but that’s just my guess. Productive Glo: Three Plans Could Work Better I personally like to show all plans on one page instead of forcing users to tap on the plan to see the pricing. From our experience, 3 plans convert better than 2 plans and within the Health and Fitness category, I’ve seen Monthy, 6-Month, and Yearly perform very well. Imagine having a 6-month option for $180/year on this paywall. What plan do you think most users will pick? Lastly, why is the athlete’s head cut off? Is this supposed to insinuate something? ? Glo Pocket Translator Can Instantly Increase Revenue I think this app can instantly increase revenues by adding a yearly option. They can do the math on the LTV of a weekly user but if it’s less than $40, then I’d add a yearly option for $39. 99. Translate Mematic: Weekly Option Would Make a Lot of Sense Remove the “Maybe Later” text right underneath the button. And add a weekly and a monthly offer where the monthly acts as a complete decoy. For apps like these where users may want to use it once or twice, a weekly option makes a lot of sense. Mematic Vids: Can Win From Adding a Biannual Subscription Again who am I to argue with an app making $50K a month, but I would say move the yearly option up so that it’s the first one and then add a 6-month for $39. 99 (which is $10 less than the annual). I would bet $100 that my way would win over the current way. Shall we reach out to Vids? ? Vids --- Learn more about App Clips — a smaller, leaner version of apps, getting a revamp in iOS 17. With iOS 17, App Clips — a smaller, leaner version of apps — are getting new features and a second chance to become popular, after having been forgotten during the pandemic. We decided to answer the 12 most asked questions about this new feature and see how they can be used in the context of subscription apps. Enjoy! What are App Clips in iOS 17? First introduced in 2020, App Clips are a small part of an app that is discoverable when needed. They are designed to be fast and focused, allowing users to complete a single-minded process. For example, if you're at a coffee shop with an app for ordering ahead, you could scan a QR code to immediately access the men and the checkout page — no need to find and download the full app from the App Store if you don't want to. How do I access and use App Clips? App Clips can be discovered in various ways, including QR codes, NFC tags, Safari App Banners (which are essentially a version of a QR code), and place cards in Maps. Users can also share App Clips via any messaging or social media app by sending an App Clip link. With iOS 17, you can also introduce App Clips with a hyperlink on your website or your app. The Apps Clips are meant to be fast and lightweight, generally less than 10MB in size so that they can download and open quickly. Once a user launches App Clip, they have the opportunity to download the full app if they choose, as the banner for it will hover on top of the screen. How are App Clips different from the full apps? The main difference is that the App Clips are limited to a single process: a check-out, registration, purchase, or something similar. They should have a streamlined customer journey (up to 5 screens are recommended) and a limited size. To simplify the App Clip usage, employing Apple Pay and a single-page checkout is recommended. Another key feature is that the App Clips are not available on the App Store, and can only be invoked physically or digitally with a direct link. Apple also recommends not to offer any in-app purchases or subscriptions in App Clips, unless it's the key feature of the service. For this, users can always download the full app. What changed in iOS 17? App Clips were introduced with small businesses in mind, allowing them to introduce more people to their loyalty and e-commerce opportunities without the barrier of installing the app. However, they were launched during the peak of the pandemic, which people mostly spent inside. This meant that more small and medium businesses opted for fully-fledged digital solutions and apps, and the feature was quickly ignored. With the new iOS release, Apple wants to reintroduce the technology to the developers. It upped the size limit of an App Clip to 50 MB with digital invocations (as in, opened via link), and 15 MB if invoked physically using an NFC tag. There are also new default App Clip links, which are generated automatically in the App Store Connect and present a much easier way to redirect a user to a specific screen in your app. Another interesting feature introduced in iOS 17 is the ability to invoke the App Clips directly from your app. Essentially a rich link, you can embed a Clip for a different app into yours. For example, you can find an interesting restaurant in your navigation app and invoke an App Clip to place a quick order. Or, by browsing a hotel website, you can quickly book an appointment in a spa. Do App Clips work on all devices supporting iOS 17? App Clips are available on all devices that support iOS 14 and later, as well as iPad OS 14 and later. However, for the earlier versions of the OS, the 10 MB limit still stands: the bigger App Clip size will be able to download and open only on devices with iOS/iPadOS 17 and later. What is the maximum size of an App Clip? 10 MB for App Clips on devices running iOS 16 and earlier versions, 15 MB for App Clips invoked physically, and 50 MB for App Clips invoked digitally. We recommend keeping it under 10-15 MB for better cross-device availability. Do I need to have an Apple ID to use App Clips? No, you can invoke an App Clip on a device without an active Apple ID. However, a user would need an Apple ID to be able to use Sign In with Apple and Apple Pay to purchase anything. You would also need an Apple ID if you want to download the full app later. Will App Clips be available for all apps on the App Store? App Clips are not automatically available: developers still need to create them, using Apple guidelines, and submit them to the App Store review. However, there are no restrictions on which apps are allowed to have App Clips. Can a user save an App Clip for later use? No, App Clips are meant to be single-use only, invoked at the point of necessity. However, if you have the App Clip link, you can send it to yourself or a friend and invoke it later by tapping it. Can I offer a subscription in an App Clip? Apple prefers App Clips to be a quick, streamlined process and tries to diverge all in-app purchases to the fully-fleshed versions of the app. However, if the whole point of your App Clip is to offer a subscription, it might work. For example, if you are offering a subscription to a digital library, you can place some NFC tags in the bookstores and direct customers to purchase a monthly or a yearly pass in your App Clip. For this to work, you need to be sure that the offer is simple to understand and enticing enough to follow through even on... --- What category or market should you focus on in 2023? Read our latest trends report to find out. Mobile app development is constantly evolving. Developers, unlike any others, know how much apps impact our daily lives. This is why understanding the latest trends – or better yet, being able to predict them – is key.   As we move through 2025, a handful of new technologies and behavioral patterns are changing the way we use apps and steering the industry’s future. In this article, we’ll give you a rundown of the fifteen most important trends for the years ahead. Whether you’re an app developer, a tech enthusiast, or just curious, this guide will help you stay up to date. Augmented Reality (AR) in mobile apps Over the past few years, AR has taken the mobile app development realm by storm, offering numerous possibilities to entice and engage users. Its growing influence is evident across a myriad of applications, from gaming and social media to education and, perhaps more prevalently, e-commerce.   While games like Pokémon Go have been using this trend for a while, it makes more sense to pay attention to the cases of actual business use, like IKEA. The Swedish behemoth allows users to visualize furniture in their homes before purchase, thus driving purchases and minimizing churn and unwanted returns.   AR integration into apps boosts customer engagement, creates memorable experiences, and can even drive revenue growth. Users, on the other hand, benefit from more interactive and personalized experiences, which significantly enhance usability and satisfaction. Being able to bring the digital elements into the real world still has that wow factor on the audience making the shopping experience more exciting and rewarding. Artificial Intelligence (AI) & Machine Learning (ML) integration AI and ML are behind several advancements in mobile apps that we use every day. They power everything from personalization algorithms in streaming apps like Netflix and Spotify, to predictive text and voice recognition in virtual assistants like Siri and Google Assistant. Additionally, they’re instrumental in refining search results in e-commerce apps, enhancing the overall user experience by providing personalized recommendations. The practical applications of AI and ML in mobile apps are far-reaching and continuously growing. In a nutshell, machine learning allows you to train the engine in your user data to provide a better, tailor-made experience. For example, in banking apps, the technology aids in fraud detection and customer service through chatbots, and fitness apps use it to provide personalized workout and nutrition plans based on user data. The benefits of AI and ML integration into mobile apps are significant. For businesses, they facilitate better decision-making, improve customer service, and drive operational efficiency. For users, they deliver personalized experiences, save time through automation, and increase app utility. With ChatPGT breaking the closed industry circle and introducing the common folk to the new technology, AI and ML are no longer buzzwords but key components in the mobile app development industry. As we look forward to the rest of 2023, their influence is only set to increase. On-demand apps On-demand apps are the ones used to order food delivery, gifts, or a cab: a type of app you only open when you need something. They are popular due to their convenience, instant service, and ability to bridge the gap between service providers and consumers. These apps align with today’s need for immediate gratification and provide services at the user’s fingertips, often in real-time or within a very short time frame. On-demand apps offer immense flexibility and convenience to customers who can access a range of services from the comfort of their homes. Businesses, on their part, can reach a wider audience, improve customer engagement, and increase operational efficiency. Many sectors are reaping the benefits of this emerging category. Food delivery apps like UberEats and GrubHub have revolutionized the food industry. In the transport sector, Uber and Lyft have disrupted traditional taxi services. Home services, including cleaning, plumbing, and maintenance, are provided through apps like TaskRabbit.   The gig economy has largely benefitted from these on-demand platforms, providing flexible work opportunities. With more and more people trusting the services and marketplaces to fulfill their needs, this app category is definitely on the rise. No-code and low-code opportunities  With AI already taking over entry-level tasks like debugging, middle and senior-ranking developers are given the chance to work on something new and exciting. However, the high hiring costs and the ever-rising wages come in conflict with a flexible and hypothesis-driven world of app development, where new ideas should be implemented instantly – and ideally, with little to no extra costs. An option to quickly – and safely – introduce or test out a new feature without employing a full developers team is a game changer, and the market already has several trustworthy products to offer. No- and low-code services allow developers, designers, and product owners to endlessly test and polish their apps. With easy-to-use GUIs and vast, yet secure feature lists, no- and low-code solutions are transforming the way apps are built, reducing the time, effort, and specialized skills required. One of these is Adapty and its no-code paywall builder. It is perfect for A/B-testing changes in visuals and copies without having to call a developer every time you want to try out a new idea. Built with native iOS support and familiar interface elements, it won’t break the current state of the app and will allow developers and product owners to deploy more solutions and ideas while using fewer resources. IoT-enabled mobile apps In our daily use, the Internet of Things (IoT) is a network of interconnected devices that communicate and exchange data, mostly in the home and urban settings. These devices, equipped with sensors and software, can range from household items like refrigerators and thermostats to sophisticated industrial machines. IoT’s integration in mobile app development completely changes the way we interact with our surroundings and manage various aspects of life. Integrating IoT in mobile applications can improve user experience and productivity by providing real-time data, enhancing personalization, and automating tasks. For instance, a mobile app linked to a... --- Mobil uygulama sektöründen en önemli konuklarla gerçekleştirdiğimiz podcastin yeni bölümüyle karşınızdayız. Bu podcast serisinde mobil uygulamadan para kazanma, abonelikler, reklamlar ve sektörden güncel gelişmeleri uzman konuklarımızla konuşuyoruz. Altıncı bölümde konuğumuz Ratel'den İbrahim Özdemir ile 10 yılı aşkın kurumsal deneyimlerinin ardından kendi ürünlerini oluşturma süreçleri hakkında konuştuk. Onboarding ve paywallda yaptıkları testler ve mobil yayıncılık hikayeleri üzerine çok keyifli bir sohbet gerçekleştirdik. Şimdiden hepinize iyi dinlemeler. Bu bölümü beğendiyseniz abone olun ve daha fazla kişiye ulaşmamız için arkadaşlarınızla paylaşmayı unutmayın. Yeni bölümlerden haberdar olmak için Telegram Topluluğumuza  katılın Altta bu bölümden en ilginç kısımları bulabilirsiniz. 12 senedir yazılım sektöründe çalışan bir girişimciyim. İlk başta kurumsal yazılım projelerinde çalıştıktan sonra 3 yıldır kendi mobil ürünlerimizi üretmeye başladık. Türkiye’deki büyük kurumsal firmaların mobil projelerini üstlendik. Fakat bu süreç uzun vadeli sürdürülebilir olmadığı için kendi ürünlerimize odaklanmaya karar verdik. 2011 yılından beri Android yazıyorum. Bazen o zamanlardan beri mobil uygulama sektörüne girsek çok farklı olabilirdi diye düşünüyorum. Kendi ürünümüzle ilk çıkışımız bir Instagram uygulamasıyla olmuştu. Tabii kurumsal süreçlerden kendi ürünümüzü yapma aşamasına geçiş sürecimiz biraz sancılı oldu açıkçası. Çünkü müşterilere verilen bazı sözler ve bakım süreçleri vardı, bunları bir anda kesemiyorsunuz. Belli bir tecrübeden sonra bırakma kararı vermek zor oldu gerçekten. Yeni projelerde nasıl bir stratejiniz var? Biz projelerimizi tam anlamıyla bir ürün olarak kurgulayıp, sosyal medya hesapları, internet adresleri, kullanıcı desteği ile bir bütün olarak çalışmayı doğru buluyoruz. Bence uygulama marketleri geliştiricileri biraz da bu yöne doğru itmeye başladı. Belki biraz tepki çekebilirim ama üniversite projesi düzeyinde projelerin, 6 ayda 6 ürün gibi konuların doğru olmadığını düşünüyorum. Bu tarz küçük appleri kullanıcılar ya ücretsiz kullanmak istiyor, ya da farklı alternatifler ile çözebiliyorlar bu sorunlarını. Bana göre en azından birkaç ay üzerinde iyi çalışılmış, ücretsiz bir şekilde kolayca çözülemeyen ve mudallilerinin kolay çıkmayacağı ürünler geliştirmek çok daha değerli. Hedeflediğin bir kategori var mı? Yoksa üründen yola çıkarak mı kategori belirliyorsun? Ben genellikle ürün öncelikli çalışıyorum. Öncelikle bir sorun bulmalı ve bunu çözmeye çalışmalısınız. Ve mümkünse niş bir alanda olmalı ki rekabet avantajınız olabilsin. Şu anda da video altyazı uygulaması olan SubCap üzerinde çalışıyoruz. Uygulamamız yayına gireli 2 yıl oldu. Uzun vadeli üründen kastım da tam olarak buydu. Organik olarak ilerleyebilmek için biraz süre vermeniz gerekiyor. Ve son 1 yıldır da güzel bir şekilde ilerliyoruz. Adapty ile nasıl tanıştınız? Ne zaman kullanmaya karar verdiniz? Biz 2 yıl önce farklı bir servis kullanıyorduk. Uygulama içerisinde satacağımız ürünleri belirlemekte zorlanıyorduk. Kendim remote config ile basit düzeyde bir A/B testi mantığı kurmuştum. Fakat işimize yarayacak ve A/B testi özellikleri güçlü bir tool arayışı içindeydik. Daha sonra Adapty ile karşılaşınca bütün bizim uğraştığımız teknik konuların hazır bir şekilde çözüldüğünü gördük. Ve önceki kullandığımız serviste belli kesintiler olmuştu. 2 yıldır da Adapty kullanıyoruz. Ben bu konuda şöyle düşünüyorum. Kendi imkanlarımızla bu sistemi kurmak için gereken maddi ve personel ihtiyacını Adapty gibi bir servis kullanarak hem zamandan hem de maliyetten kar etmiş oluyoruz. Ayrıca Adapty’nin ekipte Türkiye’den çalışanlar bulundurması da iletişim kolaylığı açısından bizim için önemli özelliklerden birisi. Paywall’da A/B testi yapıyor musunuz? Biz test yapmanın olumlu etkisini çok gördük. Fakat burada test yapmadan önce anlamlı bir veriyi test etmek çok önemli. Adapty tarafında A/B testi yaparken anlamlı bir veri birikmesine zaman tanıyorum. Örneğin altı aylık ve yıllık paketleri test ederken ilk başlarda yıllık pakette dönüşümün daha fazla olduğunu görmüştüm. Ama belli bir süre geçtikten sonra dönüşüm oranlarında çok da fark olmadığını gördüm. Burada 6 aylıkta yenileme süresi daha önce olduğu için tercihimizi bu yönde kullanmıştık. Reklam stratejinizi nasıl belirliyorsunuz? Hangi kanalları kullanıyorsunuz? Uygulamaların doğası gereği ya uygulamanın belli noktaya gelmesini beklemeniz gerekiyor ya da reklam yoluyla bu zamanı satın almanız gerekiyor. Reklam kampanya süreçlerimize ilk önce Apple Search Ads ile başladık. Bulduğumuz bütün kaynakları inceleyerek bir kampanya oluşturmayı öğrendik. Aslında çok kolay bir mantığı olduğu için seçtik. Sonuçta bir kelimeye bir teklif veriyorsun ve gösterim için yarışıyorsun. Belli bir süre sonra Search Ads ile daha fazla karlılık elde edemediğimizi gördük. Ayrıca mağazada sizi aramayan ama sizin ürününüze ihtiyacı olan kullanıcıları kazanmak için de search kampanyaları vermeniz gerekiyor. Bunun için de Google Ads kampanyalarına başladık. Şu an bu iki platform üzerinden kampanyalarımız yürütüyoruz. Influencer marketing konusunda da birkaç denememiz oldu ama orada işi yönetmek pek de kolay olmuyor. Birçok influencer bulmanız ve bu kampanyaları ölçümlemeniz gerekiyor. Pek sürdürülebilir olduğunu da düşünmüyorum. Sürekli yeni influencer bulmanız gerekiyor. Ürün biraz büyüdükçe şu an kullanıcılarımız kendisi sosyal hesaplarında bizi arkadaşlarına öneriyor. Tabii ki bu da bizi çok mutlu eden bir durum. Uygulamada önemli gördüğün metrikler nelerdir? Benim için en önemli metrik trial başlatma oranı. Paywall gören kullanıcıların yüzde kaçı trial başlatmış bunu sürekli takip ediyoruz. Bunun dışında da mağaza kısmında dönüşüm oranları benim için çok önemli. Bu metrikler ürün geliştirme aşamasında da çok işinize yarıyor. Çünkü bu metrikler biraz da şunu gösteriyor, yaptığınız iş para vermeye değer mi kullanıcının gözünde? Bunu net anlayabiliyorsunuz. Ayrıca trialdan paide dönüşüm konusunda da uygulama içerisindeki sunduğunuz deneyim ve kullanıcının sorununu çözüp çözmediğinize bağlı olarak değişiyor. --- Learn the difference between ROI and ROAS and understand how to calculate them. ROI and ROAS are often used interchangeably; they do, however, mean different things. ROI is Return on Investment; that is, revenue over initial spending. ROAS is Return on Ad Spend; that is, the efficiency of your marketing activities. Tracking both of these — and knowing when to apply which — is important for any app, especially a subscription-based one. This is why we decided to dedicate a short article to these two metrics. This guide might seem a bit trivial, especially if you've been in the industry for a while. However, it's always useful to go over the basics to make sure you're on solid ground moving forward. Let's dive in.   What is ROI ROI (Return on Investment) is a performance metric used to evaluate the efficiency or profitability of an investment; in our case, the cost of developing an app. It's calculated in percentage of the marginal revenue generated from the initial spending. As the app market becomes saturated and app revenue growth is on the decline, companies must discern the potential profitability of their app endeavors. Measuring the ROI of a mobile app involves considering development costs, marketing efforts, and operational expenses against the revenue generated or the value added to the business. While general ROI is calculated company-wide, you can apply the formula to each product, subscription, or business unit. How to calculate ROI Let's break down the ROI formula for a typical mobile app: ROI = x 100%, where Net App Profit is the total revenue generated by the app minus all operating costs.   App Cost includes development, marketing, maintenance, and other relevant expenses. For example: suppose you invested $20,000 in developing and marketing a mobile app, including the operational costs. Over a year, you earned $50,000 in revenue from subscriptions and ads. (50 000 – 20 000) / 20 000 * 100% = 150%; that is, your app has a positive ROI of 150%. This means for every dollar invested in the app, you made a return of an additional dollar and a half. This is an extremely high ROI, achievable to either extremely low-cost or high-revenue developers. Having your return around 30-60% during the first years is a good goal. What is ROAS ROAS (Return on Advertising Spend) is a pivotal metric in the advertising world, quantifying the revenue generated for every dollar spent on advertising. It's expressed as a ratio or a multiple:  ROAS = (Revenue from Ad Campaign) / (Cost of Ad Campaign). Unlike ROI, ROAS can be (and often is) below one: that is, you've spent more on ads than they've brought in revenue. In user acquisition campaigns, ROAS offers insights into the effectiveness of advertisement strategies in driving app downloads, in-app purchases, or any other revenue-generating user actions. A high ROAS indicates a successful ad campaign, while a low ROAS may signal inefficiencies or opportunities for refinement. The foundation of ROAS lies in its ability to link advertising efforts directly to monetary outcomes. Instead of just gauging ad engagement metrics like click-through rates or impressions, ROAS evaluates whether the ad leads to a desired financial result. You can also use it to calculate the breakeven day or the breakeven share of paying users and operate your app accordingly. How to calculate ROAS The ROAS (Return on Advertising Spend) formula is straightforward and measures the efficiency of an ad campaign: ROAS = (Revenue from Ad Campaign) / (Cost of Ad Campaign). Here's an example: you develop a fitness app and decide to launch an advertising campaign to promote it. You spend $2,000 on a series of mobile ads targeting fitness enthusiasts. Over a month, these ads result in 500 new premium subscriptions, with each subscription costing $10. Let's calculate ROAS step by step: Revenue from Ad Campaign: 500 subscriptions x $10/subscription = $5,000 Cost of Ad Campaign is the amount you've already spent on ads: $2,000 Calculate the ROAS: Revenue from Ad Campaign / Ap Spend = $5,000 / $2,000 = 2. 5 A ROAS of 2. 5 means for every dollar you spent on the advertising campaign, you generated $2. 50 in revenue. As often happens in examples, this number is too good: any ROAS above 1. 1 should be considered a success. ROAS below 1 is also not always a sign of a bad strategy: user conversion often doesn't happen straight away, and you might be generating future demand. The difference between ROI and ROAS Both ROI (Return on Investment) and ROAS (Return on Advertising Spend) are essential metrics for measuring the effectiveness of investments, especially in the context of mobile apps. However, they serve slightly different purposes and have different scopes of calculation: Scope: ROI evaluates the overall return on an investment considering all associated costs like development, operational expenses, marketing, maintenance, etc. , whereas ROAS specifically measures the return on ad spending alone.   Interpretation: ROI provides a holistic picture of the profitability of an investment. For mobile apps, it can help determine if the entire venture is profitable after accounting for all expenses. ROAS, on the other hand, pinpoints the effectiveness of ad campaigns and helps assess if the ad spend is driving sufficient revenue. Depth: ROI offers a deeper insight into the overall financial health and sustainability of a mobile app project, looking beyond just advertising to encompass all costs. ROAS provides a more surface-level view focusing only on the efficacy of advertising expenditures in generating immediate revenue. While both metrics are invaluable for mobile app businesses, ROI gives a comprehensive view of the app's overall profitability, and ROAS zeroes in on the effectiveness of ad campaigns. Both are crucial for informed decision-making in different contexts. Which metric should you use? Both! ROI is the golden standard for all app developers, especially the ones who plan to attract venture capital or go public soon. By measuring the ROI of every department and business unit you can better analyze the efficiency of your app, seeing which activities generate. ROAS is, essentially, the ROI of... --- Mobil uygulama sektöründen en önemli konuklarla gerçekleştirdiğimiz podcastin yeni bölümüyle karşınızdayız. Bu podcast serisinde mobil uygulamadan para kazanma, abonelikler, reklamlar ve sektörden güncel gelişmeleri uzman konuklarımızla konuşuyoruz. Beşinci bölümde konuğumuz Masomo ekibinden Buse Sevinc oldu. Bölüm boyunca mobil oyunlarda performance marketing, farklı reklam platformlarındaki hedefler, reklam kreatifleri oluşturma ve test etme süreçleri gibi birçok detay hakkında konuştuk. Hepinize iyi dinlemeler. Bu bölümü beğendiyseniz abone olun ve daha fazla kişiye ulaşmamız için arkadaşlarınızla paylaşmayı unutmayın. Yeni bölümlerden haberdar olmak için Telegram Topluluğumuza  katılın Altta bu bölümden en ilginç kısımları bulabilirsiniz. Bir mobil oyunun pazar giriş sürecinde şirketin büyüklüğünün çok önemli olduğunu fark ettim. Şirketin imkanları doğrultusunda pazarlama stratejileri değişebiliyor. Şirket büyüklüğü yanı sıra oyunun hyper casual mı yoksa casual bir oyun mu olduğuna kadar birçok etmen var. Biz yeni bir oyun çıkarmaya karar verdiğimizde ilk önce pazardaki fırsatlara bakıyoruz. Bunun yanı sıra yükselen trendleri de takip ediyoruz sürekli. Sektörel bazlı raporları ve trendleri inceleyip fırsatları değerlendiriyoruz. Bütün departmanlar ile birlikte bir beyin fırtınası yapılıyor ve ardından rekabet analizi yapıyoruz. Geliştirme aşaması başlamadan önce marketing artisler ile CTR testleri yapmaya başlıyoruz. Örnek bir reklam kampanyası açıp, sanki gerçekte böyle bir oyun varmış gibi insanların tepkilerini ölçmeye çalışıyoruz. Bunun sonrasında oyunun içeriği için testler yapıyoruz. Örneğin konu olarak zombi karakterli mi ya da farklı bir türde mi olsun gibi. Dünyadaki büyük şirketler de yine aynı şekilde, oyunun içindeki seviyelerde ya da küçük bölümlerde yapacakları değişiklikleri yine pazarlama kampanyalarındaki insightlara bakarak karar veriyorlar. Mobil oyunlarda marketing kampanyalarında son trendler neler? Son zamanlarda fake ads denilen yeni bir trend var. Aslında oyunun içinde olmayan bir bölümün kullanıcının ilgisini çekmesi açısından reklamda kullanılması gibi bir durum var. Burada da kullanıcı oyunda bu tarz bi bölüm göremeyince oyunu direkt siliyor. Bunu engellemek için de onboardingte, ya da oyunda mini games denilen kısımlarda bu bölümlere yer veriliyor. Oyunlarda monetization yapısı test edilirken yine kampanyalardan faydalanalıyor. Oyun gelirinin yüzde kaçı uygulama içi satın almadan kazanılıyor, yüzde kaçı reklam gelirlerinden kazanılıyor. Oyun içerisindeki para kazandıracak etmenler neler? ARPU dediğimiz kullanıcı başına kazanılan gelir metriğine bakılıyor. Yine bu aşamada predicted LTV çok büyük önem taşıyor. İleriye dönük LTV hesaplaması yapılıyor.   Bu aşamada da IDFA’den sonra işler biraz değişti. iOS kullanıcısındaki durumlar net olarak görülemediği için hesaplamalarda bazı sorunlar olabiliyor. Bu aşamada bireysel olarak şunu önerebilirim. Play Store tarafında bu testlerin ve hesaplamaların yapılarak ardından iOS geçilmesi gibi bir strateji belirlenebilir. Bazı şirketler agresif bir kampanya stratejisi oluşturabiliyor. Bunun nedeni nedir? Buse: Bazen pazarı domine etmek için de reklam verilebiliyor. Bir şirket büyümek istediği noktada bu tarz pazarı domine etmek için harcama yapabiliyor. Ama amacın nakit akışını sağlamak olduğu zaman da karlı bir şekilde harcama yapmak gerekiyor.   Kampanyalarda A/B testi stratejileriniz neler? Buse: Evet. Ama şu anda ben yapmamamız gerektiğini düşünüyorum. Şu an en iyi meta üzerinde testler yapabiliyoruz. iOS’teki değişikliklerden sonra şu an sadece Android üzerinde testler yapıyoruz. Biz örneğin install kampanyası üzerinden bazı metrikleri ölçümlüyoruz. En başarılı olan kreatif ile yeni konseptlerimizi yarıştırıyoruz. Örneğin kreatiflere bir duygu ya da efekt ekledik. Ve bu başarılı oluyorsa diğer iyi çalışan kreatfilerde de bu özellikleri kullanarak onların da performansını daha da arttırmayı hedefliyoruz. Şu an A/B testleri kendi kampanyalarımız üzerinde mi yapsak şeklinde düşünmeye başladık. Çünkü platformlar arası farklılıkları bu testler ile tam ölçümleyemediğimizi düşünüyorum. Facebook’ta iyi çalışan bir kampanya TikTok’ta aynı etkiyi göstermeyebiliyor. --- The last month of summer saw several useful technical updates for our product. Let’s recall what was improved. The last month of summer saw several useful technical updates for our product. Let’s recall what was improved. New fields for Webhook sandbox For your testing needs in the staging environment, we added two more fields on the Webhook integration page: Sandbox endpoint URL: Adapty will use this URL to send HTTP POST requests when events occur in the staging environment. Similar to production, your endpoint must respond with a 200 HTTP code upon receiving the isMount event. Authorization header value for sandbox endpoint: This field is optional but advisable for enhanced security in the staging environment. Your server can validate requests from Adapty using this value during testing in the sandbox environment. Adapty SDK 2. 6. 2 Adapty SDK has been updated to version 2. 6. 2. The changes include the support for Google Billing Library v5 and v6 that we already mentioned in the July updates, as well as several improvements and additions to the public API for the native Android, Flutter, and React Native SDKs. Let’s have a look at some of the key changes: Payment mode for discounts: To align with iOS, we have added the paymentMode property to the AdaptyProductDiscountPhase entity. Price entity updates: The price, localizedPrice, currencyCode and currencySymbol properties have been moved from AdaptyPaywallProduct to a new entity called Price. SKU details update: The skuDetails property in AdaptyPaywallProduct has been renamed to productDetails to reflect the use of original product entities from Google. Eligibility status update: In AdaptyEligibility, we have replaced the UNKNOWN value with NOT_APPLICABLE. The latter is used for products that cannot contain offers, such as prepaid products in the Google Play console. Find the full list of changes and enhancements in our docs. Sorting for tables You can now sort out the tables with detailed metrics – currently, this relates to the tables in the Placements section. The table also supports the sorting of multiple columns. Member settings update Now you can add new members and grant access to all your apps much quicker by choosing “Select all”. Product creation update  With Paywalls 2. 0 the overall interface of Adapty underwent different changes and improvements. The way of creating a new product has also changed – now you can add the product info along with the offers in the same modal window. --- Learn about how one of the biggest language-learning apps was made and how it influenced the whole app market. Hi, this is Vitaly, and I welcome you to the new season of the SubHub podcast! In this episode, we’re talking with Dima Zaruta, the founder of EasyTen. In my memory, EasyTen was the first application in the CIS that came up with a unique concept of language learning and began to monetize the app with subscriptions, which, in fact, saved the business. This is a rather personal episode to me, because EasyTen was my first place of work, and Dima is the person who took me there, for which I am very grateful. Listen to the episode in Russian or read the most interesting parts below in English. SubHub by Adapty. io · SubHub Podcast #18 – Дмитрий Зарюта (Easy10) Easyten: The story of creation Vitaly Davydov: Today’s episode is very special because EasyTen is a company that’s close to me and you were the person who hired me for the first time. I’d like to talk about how this company appeared in general. The most interesting thing to start with is how you came to create a mobile application in general because your story is pretty unusual. Dmitry Zaruta: Yes. I am a doctor by training, a maxillofacial surgeon. The idea of EasyTen appeared when I was doing my residency training in Moscow, at the Central Research Institute of Dental and Maxillofacial Surgery. Even back then, I felt that medicine didn’t really work for me, I mean, I really liked studying, but the practice, perhaps, turned out to be something that wasn’t my cup of tea – I just didn’t feel happy doing that job. But I always loved computers, since I was a kid. I’d reinstall Windows for myself almost every weekend, disassemble and assemble my computers, and even earn money with web design while studying at the medical university. When I graduated, I decided: “That’s it, stop playing these games already, it’s time to do serious things, it’s time to work as a surgeon,”. But there still remained that itchy feeling in the back of my head, and different ideas kept coming – I even had a notebook with ideas of what I’d like to actually work on and bring to life but none of them somehow captivated me that much. The idea of EasyTen came up when I was studying the Czech language. I was learning it in order to confirm my medical diploma in the European Union. I can’t say that there was much progress, so I’d complain to my girlfriend that it seemed to be useless. And she was like, "Learn at least 10 words a day, you'll make some progress eventually. " And I thought, "Hmm, that's a good idea. " I didn’t learn Czech in the end, quickly abandoned it, but the next day after the conversation, I remember, in the staff room, I circled my phone with a pencil and drew some interface that became the first version of EasyTen. Vitaliy: It was the legendary interface. So, the whole thing really happened because you were simply told: “Learn 10 words a day,” and it led to a whole new company? Dmitry: Yes. Vitaly: How did you learn to design? You said that you created websites, and then drew the first interface of the application. This is a bit unusual for me because I can’t intersect it with medicine in any way. I’ve got acquaintances who are into medicine, and they aren’t super confident with computers, to be honest, not to mention advanced tools for graphic or interface design. Where did you learn it? Dmitry: This is some kind of passion I’ve always had – interfaces and everything related to the visuals. That is, Back at school I saved up money for a huge book on Photoshop, it was five centimeters thick and I studied it from cover to cover. Then I took up photography but more than photography I loved photo editing. Then I just began to notice that my vision was somehow set to a special level, so I could easily point out even minor inconsistencies in animation or graphics. As for programming, I guess I had general knowledge and maybe could read some code, but I couldn’t code myself. Vitaly: Then the main question is who actually created the app? I mean, you made the interface and probably acted as a product manager, but who did all the coding? How did you find people for this job and what year was it? I mean the workflow is simple for the 2020s, but back then it wasn’t that clear, I believe. Dmitry: I don’t remember the exact year, but I can say in iPhone generations – I had a plastic iPhone 3G at the time. I guess it was no more than a year since the App Store had launched. There was no job market for app-making, but there were a lot of enthusiasts. So I found my first programmer Nikita on a forum of a website dedicated to Apple devices. He was passionate about making iOS apps, so I shared my ideas with him and we got down to business. As for what happened next – we made all the classic development and startup mistakes. Had to spend 7 months on development instead of 1 planned. We also found a back-end developer Kirill, so there were 3 of us. I couldn’t pay the guys much, but still rented a flat for them, where I’d live as well from time to time. I think we lived on Subway sandwiches only, as the place was around the corner. We initially decided to create the app for the Chinese market because of the high population and their willingness to study English. We localized the app and even found a Chinese guy who agreed to do the marketing part. But we had no analytics, the only thing we had was the App Store data on purchases. We were selling our app for $1 a month, it wasn’t like a subscription, you just... --- Mobil uygulama sektöründen en önemli konuklarla gerçekleştirdiğimiz podcastin yeni bölümüyle karşınızdayız. Bu podcast serisinde mobil uygulamadan para kazanma, abonelikler, reklamlar ve sektörden güncel gelişmeleri uzman konuklarımızla konuşuyoruz. Dördüncü bölümde konuğumuz Biryudumkitap/Fabula ekibinden  Ramazan Arslan  oldu. Sohbetimizde biryudumkitap projesinde 3 yıldır yaşadıklarını ve gelirlerini nasıl arttırdıklarının ayrıntılarını konuştuk. Aynı zamanda ekipte CTO olarak görev yapan Ramazan Arslan, uygulamalarında veriye verdikleri önemi ve kullanıcı deneyimini nasıl iyileştirdiklerini ayrıntılarıyla anlattı. Bu yayında özellikle birçok taktik ve tecrübeyi dinleyeceksiniz. Hepinize iyi dinlemeler. Bu bölümü beğendiyseniz abone olun ve daha fazla kişiye ulaşmamız için arkadaşlarınızla paylaşmayı unutmayın. Yeni bölümlerden haberdar olmak için Telegram Topluluğumuza  katılın Altta bu bölümden en ilginç kısımları bulabilirsiniz. Biryudum kitap ilk yayınlandığında yaşadığın ilginç bir anı var mı? 2020 yılında ilk lansmanı yaptığımızda ilk günde 15 bin kişi uygulamamızı indirmişti. Sıfır pazarlama bütçesi ile ilk günden bu kadar indirme almak harika bir şeydi. Mağazada kategorimizde birinci sıraya yükselmiştik.   Şöyle bir şey hatırlıyorum, ilk lansmanı yaptığımız günün sabahı bir geliştirme yapıp canlıya almıştık. Canlıya aldığımız anda tam anlamıyla uygulamanın bütün sistemi durmuştu. O bir saat içinde çok strese girmiştim. Hatta o haberi aldığım anda metrobüsteydim. Bir anda panik yapıp indim ve oturacak yer bulamadığım için simitçiden rica edip oturmuştum. Aslında çok da büyük bir geliştirme değildi ve bir önceki versiyona geçince tüm sorun çözülmüştü. Ama karnıma ağrılar girdiğini hala hatırlıyorum.   Content üzerine bir uygulama olmanın ne gibi zorlukları var? Düzenli olarak içerik üretmenin kendine göre belli zorlukları var. Kullanıcıların da retention oranını yüksek tutabilmek için içeriğinizin kaliteli olması gerekiyor. Ama içerik üzerine bir uygulama olmanın şöyle bir avantajı var, mesela kullanıcılara en çok hangi ürünlerde aboneliğiniz var diye sorsak, eminim ki en yüksek kullanım film ve dizi izleme platformları olacaktır. Biz de içeriğin maliyetini abonelik fiyatlarımıza eklemek zorunda kalıyoruz. Tabii kullanıcılar da içerik odaklı uygulamaya geldikleri için biz de daha uygulamanın içine girmeden en çok ilgi çeken içerikleri kullanıcıya gösteriyoruz. Ülkelere göre farklı Onboarding tasarımları uyguluyoruz Örneğin Meksika’da o ülkede o an popüler olan kitapları onboardingte gösterirken Türkiye için ülkemizde popüler olan kitapları göstermeyi tercih ediyoruz. Kullanıcılara reklamdan uygulamayı kullanmaya başlayana kadar olan süreç içerisinde içeriğimizin kalitesini anlatmaya çalışıyoruz. Hatta onboarding sürecinde nasıl içerik görmek istediklerini de soruyoruz.   Onboarding için 4 ayrı test gerçekleştirdik aynı anda. Bu testler sonucunda gelirlerimizin %35 oranında arttığını gördük. Burada aslında şunu test etmiştik. İlk önce bir tur ekranı gibi 3 tane ekran gösterip sonra giriş ve kayıt olma seçeneklerini sunmuştuk. Sonra da giriş ekranının kullanıcıyı belli oranda churn ettiğini gördük. Son olarak da giriş veya kayıt olmadan onboarding tasarımıyla devam ediyoruz. Neredeyse tüm satın almaların %90’ı onboarding sonrası paywallda gerçekleşiyor. Onboarding’te rating ekranı göstererek ratingleri %20 arttırdık Onboarding ekranlarında kullanıcıdan uygulamamızı puanlamalarını istemeyi test ettik. Yaptığımız testlerde puanlama oranının %20 arttığını gördük. Aslında ilk başta kullanıcı daha uygulamayı görmeden neden oy versin gibi bir düşünceye sahiptim. Ama bizim testlerimizde kullanıcılar uygulamayı daha görmeden 4. 6 civarında bir oylama yaptılar. Sonradan farklı uygulamaları da inceleyince bu yöntemin yaygınlaştığını fark ettim.   Abonelik altyapımızda Adapty'yi tercih ettik Abonelikler için ödeme altyapısı olarak kendi ürünümüzü geliştirmeye başlamıştık. Tüm araçları karşılaştırdığımda, Adapty’nin A/B testing özelliği direkt dikkatimi çekti. Sonra da hızlı bir biçimde entegre ettik. Şu anda hala kullanmaya devam ediyoruz. Adapty şu anda uygulamamızın büyümesine yardımcı olan araçların başında geliyor. Ülke bazında fiyat testleri yapabilmemiz ve bunları analitik olarak ölçme imkanı bulmamız tam da aradığımız şeydi. Bu konuda şöyle düşünüyorum, sürekli kendini güncelleyen Apple ve Google’ın sistemleriyle bağlantılı olan ve yaşam döngüsünün sürekli değişmesi gibi durumlardan dolayı bunu hazır olarak sunan bir ürün varsa ve de bu sonuçları da analitik olarak sunan bir ürün varsa, ben bunu tercih ediyorum. Ülkelere göre farklı fiyat testleri yapıyoruz Satın alma niyeti olan kullanıcı paketin aylık ya da yıllık olduğuna çok bakmadan satın alma yapabiliyor. Genellikle yıllık satış yapıyoruz. Ülkelerin alım gücüne göre fiyatları optimize ediyoruz. Uygulamanın her alanında A/B testi yaparak veriye dayalı kararlar veriyoruz. İlk baktığımız metriklerin başında kullanıcı edinme maliyeti geliyor. Daha sonra retention oranları bizim için çok önemli. Bu noktayı analiz etmemek maddi açıdan zarara yola açabileceği için bizim için en önemli metriklerin başında. Uygulamanın teknik tarafında da olduğum için uygulamanın crash oranlarını da çok inceliyoruz. Özetlemek gerekirse reklam maliyetlerini, ve elde ettiğimiz kullanıcının hatasız bir uygulama deneyimi yaşayarak ödeme yapan kullanıcıya dönüşme sürecindeki tüm metrikleri analiz ediyoruz. --- Learn all the details of the key financial terms and how to calculate your actual app revenue. With more and more mobile developers earning millions from their products, a question like "How much do apps make? " loses its naivety and becomes a legitimate business interest. Of course, no specific number can be named — the overwhelming majority of apps on mobile platforms collect virtual dust, with just a relatively small part being the top earners in their field. Nevertheless, new publishers pop up every day: and in a market that will grow 13% year to year, there's always a place for a new player. That's why we decided to develop the ultimate app revenue guide that answers all the basic questions about the industry, and then some. Adapty is the best solution to grow mobile in-app purchases, and our expertise comes from thousands of clients enjoying our platform, as well as millions of A/B tests being launched on it monthly. With this guide, we plan to give you enough information to come up with a sound business plan for your future app. First, we will get and learn the difference between proceeds, revenue, and profits. Then, we will see what parts of your product's income are given to the partners and governments, and how to account for that. And for the final kick, we will check out several ways to boost your incoming cash flow, including optimizing pricing strategies and tracking financials. This way you will learn not just how much money can you make from an app, but how you can make more. Let's go! Revenue vs. Proceeds Adapty helps developers monitor and optimize their subscription-based business models, which is crucial for growing both mobile app revenue and proceeds. But to be able to do this, we first need to make sure we understand and know the difference between the two terms.   Revenue and proceeds are two financial terms that, while related, have distinct definitions and applications. Revenue is the total amount of money your service earns from all sources possible: ads, in-app purchases, and subscriptions. It's essentially the gross income a business makes before any expenses are deducted.  Proceeds, on the other hand, refer to the net amount a developer receives from their app after all direct costs related to a transaction have been subtracted. The two basic direct costs we need to keep in mind are the App Store commissions and taxes, both of which we will cover later in this guide. Consider the App Store or Google Play Store. When a developer sells a $10 app, the revenue from that sale is $10. If the App Store takes a 30% cut (and it usually does), or $3, the proceeds that the developer gets would be $7. While the revenue indicates the total sales, the proceeds provide a more accurate measure of the developer's actual earnings. Understanding the distinction between these terms is vital for app developers, particularly those operating on a subscription-based model. The total mobile app revenue can provide insight into the app's market appeal and the effectiveness of marketing strategies. Meanwhile, the proceeds can inform the developer about the real profits being made, accounting for app store commissions and other direct costs.   Adapty provides comprehensive subscription analytics to help developers track and interpret these numbers. By offering insights into key metrics like revenue, proceeds, and conversion rates, Adapty empowers developers to make informed decisions about pricing, marketing, and app development strategies. With a clear, data-based picture, developers can better strategize on ways to increase their app's profitability and long-term success. Understanding VAT As we mentioned earlier, App Store commissions and taxes are the two key direct costs every app developer should be wary of. Not only do they take the biggest cut off your app revenue, but they are also the hardest to change or influence. Let's start, however, with the most popular tariff. Value Added Tax (VAT) is a consumption duty levied on a product whenever value is added at each stage of the supply chain. Its key principle is to tax the end consumer of goods and services while offering businesses a way to reclaim the money they have paid. This way the VAT is ultimately paid by the consumer, and not by the businesses involved in production. With app sales and in-app purchases, VAT is applied based on the location of the user and is based on their country of residence. When a customer makes a purchase, the listed price they see already includes any VAT due. The App Store then deducts this VAT amount before the developer receives their proceeds. For example, if a user in Italy purchases an app for €10. The VAT in his country of residence is 22%, so €2. 2 of the purchase price is considered VAT. The developer's net revenue is the remaining €7. 8, from which the App Store takes its commission. In most cases, it's 30%, so the final proceeds are €5. 46. Understanding VAT and how it impacts the net mobile app revenue from app sales is crucial. It aids in setting appropriate pricing strategies and accurately forecasting earnings from different markets. Collecting VAT for apps Yes, App stores like Apple's App Store and Google Play Store are in charge of collecting and paying VAT on your behalf. Technically, you "sell" your app to them, and they provide it to the end user, so they're the last party responsible. The stores automatically add the VAT onto the price of apps and in-app purchases based on the customer's location, collect the payments and send them to the relevant states.   Therefore, developers don't have to manage VAT collection directly. The proceeds you receive have already had taxes and store commissions deducted. Important to remember, however, that the prices the end users see have the commission and the VAT included. That's why a flexible pricing strategy here is crucial and should consider local taxes, as well as any other income taxes your company might need to pay. Speaking of which... Taxes on app income As we saw before, taxes significantly... --- In the 13th issue of the paywall newsletter, we review some paywalls including fantastic ones In the 13th issue of the paywall newsletter, we have: a question to avoid on a paywall, a paywall that looks like it was developed through numerous tests, a fantastic example of applying animation on the paywall, a little dark pattern we haven't seen before. Paywalls of the issue are commented by... David Sánchez-Camacho García who worked in Fintech, EdTech, and HealthTech startups for the last 5-6 years. His greatest desire is to help apps monetize and retain their users more effectively. Simple, direct, and clearly showcasing the product It's evident that they have tested MANY paywalls.  This paywall is as straightforward as it gets (at least qualitatively; we would need to see the numbers). It displays only the bare minimum information that users need and anchors them by mentioning "Most Popular". Moreover, they use the visual part of the paywall effectively, where they don't overwhelm the user with a logo or claim but instead show the output of what they can create with the app: cartoon avatars.  Additionally, I'm very interested how the CTA copy changes based on the selected subscription type (annual, monthly). If there's one thing that doesn't quite sit right with me, it's that I fail to comprehend why they offer a 3-day free trial to users who choose the weekly subscription.  In my humble opinion, it would make more sense to offer it to those who opt for the annual subscription instead, although I'm pretty sure they have already tested this and dismissed it as an option. Chaos and reinvention of the wheel using dark patterns This paywall seems to have been created with little love and care. Not only does the Premium option with the crown design receive countless criticisms, but the way they force users to exit the paywall is reinvented. Multiple font weights, various of colors... and a strange order of presenting information. For instance, the trial period is mentioned before stating that it's a one-year plan in the first option.  And in the second option, it would be helpful to understand how much I save annually compared to the annual plan. Don't make me think, just tell me directly that I'll save X% in the first year. On the other hand, we can clearly see that a dark pattern has been applied to prevent users from quitting the paywall. Instead of making it effortless with a simple 'X' button, following the widely accepted design conventions of most paywalls, the SPV team tries to reinvent it... in a bad way. It raises (so many) suspicions. Secret Photo Vault Don't show that you don't know, dude The first issue with this paywall is that Momento could benefit from utilizing the available space more effectively by reducing the amount of unnecessary visual identity.  It's worth considering that users who reach your paywall have likely already gone through the onboarding process where you had the opportunity to explain your app, and they may have been using your app for some time now. However, in my humble opinion, the biggest concern here lies in the user status management.  The inclusion of the "Already Paid? " button on this paywall raises more questions than it answers. Why are you asking me if I've already paid or not? Shouldn't you already have that information? Wait a moment... but to whom exactly am I giving my money? There are numerous uncertainties you wouldn't want the user to experience at such a critical moment when they're about to entrust you with their most valuable possession, their money. Momento Order, visual hierarchy, and... a pinch of smoke and mirrors A reasonably well-structured paywall that aligns with the overall visual aesthetics of the app.  The content blocks are neat, presenting the expected information for users to consume, and implementing anchoring practices to emphasize potential savings with the annual plan. Moreover, the structure of each content block is clear and follows a coherent order: Subscription type (annual/monthly), Indication of trial availability, Display of price/selected period, Inclusion of relevant secondary details (monthly cost, cancellation option, etc. ). Additionally, they boldly emphasize the ability to cancel at any time. However, if I were to suggest an alteration, it would likely involve the first bullet point, "Unlock the Full Evergreen experience. " It would be more effective if it were integrated at the top section of the paywall, blending with the tree element. As it stands currently, this benefit lacks substantial value and could be perceived as a deceitful tactic rather than a genuine offering. Evergreen A great combination of a product tour and a paywall They have done a good job of combining two needs into one. I'm (almost) certain that they have realized that conversion rates improve when you invest some dynamic space in explaining why a user should pay for a product. The pacing of the video could use some enhancement, but overall, I think it's the best combination of narrative and paywall I've seen. If I were to suggest an area for improvement, it would involve integrating the pricing more seamlessly and toning down the "clickbait" nature of the CTA (there's no need for visually intrusive typography). Glow --- In this post, we'll examine how iOS in-app events can increase customer engagement with subscription apps. We're glad you're here to learn how to use iOS in-app events for subscription applications with Adapty. Understanding and utilizing the power of in-app events is crucial for boosting customer engagement, raising conversion rates, and enhancing the user experience in the current mobile environment where app subscriptions are getting more and more popular. In this post, we'll examine how iOS in-app events can increase customer engagement with subscription apps. and we will provide you with practical advice on how to make the most of them. Let's get started. Understanding iOS in-app events Before we go into the pros and cons of in-app events for subscription applications, let's define what iOS in-app events are. (Note that iOS in-app events are specific to iOS 15. ) User interactions or behaviors that occur within an app are referred to as in-app events. These events can be triggered by a variety of actions. Some popular types of in-app events are: finishing a level in a game, making a purchase, entering a competition, being notified about promotions or premier events, or accomplishing a goal in a productivity tool. Some of the primary reasons for using in-app events are to spark customer curiosity, engage new customers, retain existing customers, promote a brand, provide information about a new product or service feature, or satisfy a recently identified need or want, like a personalized service. In-app events provide significant information concerning user behaviors, preferences, and engagement patterns for subscription apps. App developers may gather insights into how customers engage with their app by installing event monitoring systems and using this information to provide personalized experiences, customizing their subscription apps, and improving app performance. How do in-app events work? In-app events are linked to iOS apps by event cards created in the App Store Connect application. Cards are indexed and listed in the App Store. Every card must be submitted to Apple for approval before it can be published. The main advantage of this quality-first approach is the historical trend for iOS users to pay premium subscription prices compared to other OS users. (OK, that is debatable. ) Event cards include the metadata that can bolster your Google rankings. This information includes an event name and description, images or videos, and details about whether a purchase or subscription is required to participate in the event. At this stage of their journey, users can also opt-in to receive event notifications, share events on their networks, or seamlessly access your app via deep links. One-click deep linking allows users to route to your offering “as the crow flies”. Event cards are also categorized with badges that cover pretty much any type of event you may wish to promote. There are New Season, Competition, Challenge, Live Event, Premiere, and Major Update badges. Dare to be different: If you can’t find a suitable badge, the Special Event badge – think of it as an “Other” category – may be customized for your own “Blue Sky” idea. Check out Apple's tips and tricks to refine your iOS in-app events and polish your metadata. Apple has quite strict rules about in-app events. Don’t fall foul. In-app events should contain only original and time-limited content. They can be promoted for up to 14 days before an event begins and are valid for a maximum of only 31 days. You may only have five active events at a time in the App Store. What is a Decision Support System (DSS)? In slightly more technical terms, an in-app event may be referred to as a decision support system (DSS). DSS is broadly the capability built into a company's applications to improve a company's decision-making abilities by analyzing data from disparate sources. Smart algorithms use this data to make informed deductions and predictions that go beyond simple reporting functionality. DSSs don’t just benefit your organization; they empower users by offering them options. For example, the popular Google Maps app gives drivers a range of alternatives to get to their destination. The end result of using a DSS like an iOS in-app event is a more immersive experience for the user. For businesses, the data extracted from in-app events offers more intelligent and wide-ranging insights about their customers. It’s like Big Data for Little Apps. The relevance of in-app events in subscription apps for businesses A key factor in the success of subscription applications is in-app events. Here's why they're essential for app marketers and developers: User engagement: You may design engaging experiences with in-app events that keep users interested and returning for more. You may encourage users to use your app more by providing prizes, unique content, or time-limited promotions through events, which will raise their satisfaction levels. Consider including your in-app events on your website’s landing page, garnering instant attention. Personalizing the user experience: For maximum gain, you may target a specific audience. For example, new users do not have the same expectations as customers who are already subscribed, so you can tailor your events in line with your big-picture marketing strategy. This may be to tantalize new customers through in-store promotions or tempt existing customers to upgrade their subscription plan. Monetization: In-app events allow you to promote in-app purchases. They work as a low-cost opportunity for free advertising. They can be set up in-store too to attract casual shoppers. This is an especially smart strategy for visual campaigns, attracting casual browsers. Reducing churn and increasing retention: In-app events may be employed to reduce churn and retain subscribers. You can greatly enhance user retention rates by identifying critical interaction touchpoints and planning events that address customer pain points or give extra value. Tracking: In-app events are simply records of users' activities in your application. Smart algorithms can use this data to not only understand how successful your applications are but also create a success template for new apps. For example, you could identify what events attracted the most revenue-generating users. Brand loyalty: Improving the quality of the user experience engenders brand loyalty. Having had a good experience with... --- Learn how to test onboarding screens with Adapty's remote config and increase paywall conversion rates. When subscriptions began to reign in the world of mobile apps, the main goal of mobile marketing became to hook and retain as many users as possible. Developers and publishers resorted to all kinds of trickery in order to lure the wide-eyed user into their app and get a freshly purchased subscription. And it’s still the way things are in the mobile market, where the average subscription price is growing 1,29% month over month and the users are still willing to pay their money for subscription-based apps. Here at the Adapty blog, we talk a lot about paywalls and their importance in the user-developer relationship. And it is true, the paywall still remains the main place in the app where the user makes their purchasing decision. But there’s one more important step that leads to the paywall and can make it look 10 times more appealing – the onboarding: several introductory screens that are meant to show the essence and the value of the app, and at the same time make the user as comfortable as possible... before asking them for money.   The importance of such an introduction should never be underestimated, and this is why we highly recommend thoroughly gauging every aspect of the onboarding screens. But changing even a small element on an onboarding screen would require a re-release of the app and may lead to a higher bounce rate if the users don’t like it. And you’ll have to roll back the previous iteration or hastily come up with something new. However, it’s not an issue with Adapty, as it allows not only to remotely change onboarding elements but also to run A/B tests and check which iteration works best for your app. Let’s explore these possibilities in more detail.   What is mobile app onboarding? As we mentioned before, onboarding is a process of familiarizing the user with the app on a step-by-step basis, while at the same time making the app seem as much appealing as possible. Usually, the scheme consists of 2-3 introductory screens followed by the paywall. In the intro screens, you creatively provide important information about your app or somehow convey the experience the user will get with it. After “clicking” through the onboarding screens, the user faces the paywall, where they can purchase a subscription to the app or skip it (if it’s allowed by the developer) to get into the app but with limited functions. A four-screen onboarding in Calm At the beginning of the article we talked about hooking the user, and this is exactly what onboarding is for. Your main task here is to make the user interested in your app, feel like it’s something they can’t do without, and eager to spend their money on. And like with anything else, there’s no universal way of doing that. The main idea is always to make the user come to the paywall prepared and willing to make a purchase. But how you design your onboarding and how you will communicate the values of your app depends on many factors, including the type and functionality of your app, your target audience, current trends, etc. But there seems to be one solution that should help you ease the process – A/B testing.   Is it possible to run tests with onboarding? Let’s recall: Adapty enables you to create paywalls and then configure them with the help of remote configuration – meaning without having to release a new version of the app. You do need to make a few adjustments in the app code beforehand, but then you’ll be able to remotely change paywall elements according to your hypotheses and even run A/B tests with different versions of your paywall. What you can change and test on a paywall with Adapty But the paywall is the final stage of the onboarding process, what about the previous steps? Here’s where Adapty provides you with a pleasant surprise – the same remote config logic can be used for the onboarding screens as well! If you code several variables into your onboarding steps, you’ll be able to remotely adjust them to change the background image, text, button color, etc. Let’s try to get a clear picture of all the aspects. Paywall of a made-up yoga app This is a paywall of a dummy yoga app that we created with Adapty. It’s a simple two-product paywall that has several visual elements, like background image, title text, app values, buttons, etc. This very paywall was created with the help of Adapty’s paywall builder.   The paywall builder's interface It provides a ready-made template that you can customize to your liking by filling in the pre-arranged text fields, uploading any background image, and manually choosing the color scheme of the elements. Another option for creating a paywall with Adapty would be to use the remote config feature that looks like a JSON file where you can provide variables for any paywall element and provide context for them.   This is how the same paywall could look in the JSON format The main advantage of both of these approaches is that you can easily change any element of your paywall and immediately run an A/B test with no releases. But if the paywall builder is actually meant to create paywalls, the JSON field of the remote config can be used for other screens as well. Have a look at this example: A short onboarding in a yoga app This is the onboarding for the yoga app that we came up with. We created two introductory screens that lead the user to the paywall. It’s just a basic notion of what onboarding can look like, so you’re free to have more screens. The main point here is that in terms of remote config logic, all these screens share the same JSON file corresponding to the paywall entity and can be easily edited from the paywall editing menu in Adapty. Now, let’s see how we can add onboarding screens and... --- Learn the top reasons for App Store rejections and how to make it easy for the review team to approve your submissions. Back in 2020, the App Store rejected about 2 million app submissions. Of these, one million submissions were new apps, while the rest were app updates. Despite solid documentation on how to get apps approved, thousands of app submissions still continue to get rejected on a daily basis. In 2022, the App Store reported rejecting 1. 7 million app submissions. Hundreds of thousands of apps also get delisted each year from the App Store. Google Play, too, reports app and update rejections and removals in millions. In fact, from Q1 2021 to Q1 2022, Google Play delisted about 2. 5 million mobile apps for various reasons. Now, while it may appear that the App Store review process works like a black box, in reality, it follows a (fairly transparent and) strict set of guidelines and criteria that Apple sets.   And most of the app store rejections and all the rework, delays, and resubmissions — plus all the accompanying heartache — can be prevented. In today's guide on app store rejections, we'll review the top reasons that cause app store rejections in the App Store — most should apply to Google Play too — and discuss easy ways to avoid them. We'll also talk about how you can make it easy for the App Store review team to approve your submissions. Finally, we'll look at remote config and how it saves you from having to resubmit your app for reviews (and needing users to install app updates) for things like changes to your paywalls. Here goes. Noncompliance with the App Store's privacy provisions Privacy sits at the core of the Apple ecosystem, and the App Store has stringent privacy provisions that apps need to comply with to get through the review process. In fact, noncompliance with these is the single biggest reason for app/update rejections. Apple's data shows privacy violations to be the #1 reason causing app rejections: Source In general, the app review team reviews if you maintain transparency around:  the data your app collects (if it collects any);  the data practices that any third-party entities your app shares data with follow to ensure that your app users get the same protection of their data; and  how you handle data retention, deletion, and revoke/removal requests. You need an easily accessible and human-friendly privacy policy in your app that covers all of this to get through the privacy review. Also, because Apple views privacy as a "fundamental right," you must make privacy-friendly design choices throughout your app. This starts by only requesting as much data as you need for your app to work, not one bit more.   Data access requests also need to be framed thoughtfully. Forcing users to consent to (unnecessary) data access by blocking your app's core functionality can also result in rejections. Additionally, any user or usage data you collect (even if it's anonymous) can only be collected with the user's explicit consent (that they can easily revoke whenever they want to). Apps collecting data without consent (under the relevant clauses of laws like the GDPR) must ensure full compliance with them.   Launching a copycat Another common reason the App Store rejects a new app is when it finds it "similar" to an existing one. So if your app heavily draws from an existing iOS app — or looks like it's a spinoff of an original app — the chances are high that your app will get rejected. Fighting copycat apps has been a constant struggle for the App Store, but it's one area that still needs a lot of work. To get some idea, go through a few iOS developer forums, and you'll see hundreds of app developers complain about how their original app was rejected for being a copy — and how simply changing the app's icons, screenshots, or the UI got through with a re-review. On the other hand, you'll also see how many copycat apps actually manage to get through. Take ChatGPT, for instance. Bloomberg reporters highlight how searching for the ChatGPT app in the App Store got some unexpected results: "When ChatGPT finally debuted in Apple Inc. ’s app store last week, I figured I’d find it at the top of the charts. Instead, a search for OpenAI Inc. ’s artificial intelligence service yielded an endless scroll of look-alikes with spurious names such as ChatAI and AI ChatBot: GPT-4 Open Chat. " Some of the copycat apps in this particular case even seem to charge higher than the original app, something that the App Store team actually cites as a ground for rejection! So how can you ensure that your app isn't seen to be a copycat? Work on everything, right from your app's screenshots, UI, and description to — of course — its functionality, and make sure it's unique. In other words: offer something new. Search for your target keyword(s) in the App Store, review the top results, and then ensure that your app doesn't look or feel exactly or work like them. Here are some notes from Apple:  "Don’t simply copy the latest popular app on the App Store, or make some minor changes to another app’s name or UI and pass it off as your own. " Failing to submit a complete, tested, and compatible app or update Under its app performance criteria, the App Store talks about 5 areas that need reviewing. Let's discuss each. #1. Not submitting a 100% complete app. If the app review team finds that your app is using placeholder text, is missing metadata, or is littered with broken links or bugs, expect a rejection notice. #2. Submitting a "beta" app. Unless you're ready to show your app to a user, don't show it to the App Store review team. The App Store review team shares how "demos, betas, and trial versions of apps don't belong to the App Store. Instead, the review team recommends you use TestFlight to test your app with beta testers. With TestFlight, you can engage up to... --- Mobil uygulama sektöründen en önemli konuklarla gerçekleştirdiğimiz podcastin yeni bölümüyle karşınızdayız. Bu podcast serisinde mobil uygulamadan para kazanma, abonelikler, reklamlar ve sektörden güncel gelişmeleri uzman konuklarımızla konuşuyoruz. Üçüncü bölümde konuğumuz Celil Bozkurt oldu. Uzun yıllar bireysel geliştirici olarak çalıştıktan sonra, şirket olarak da uygulama sektöründe yer alan Celil'den bu süreçte yaşadıklarına dair harika bir sohbet gerçekleştirdik. Bu bölümü beğendiyseniz abone olun ve daha fazla kişiye ulaşmamız için arkadaşlarınızla paylaşmayı unutmayın. Yeni bölümlerden haberdar olmak için Telegram Topluluğumuza katılın Altta bu bölümden en ilginç kısımları bulabilirsiniz. Yeni bir projeye nasıl başlıyorsun? 2020 yılına kadar yükselen trend kategorilere göre ürün geliştiriyordum. Mesela günümüzden örnek verirsek ChatGPT trendi için ya başlamadan oraya ürün geliştirmeye çalışıyordum ya da tam başladığı an hızlı bir biçimde ürün geliştirmeye çalışıyordum. Artık bunu biraz daha değiştirdim LTV’si daha yüksek, bir anda tükenmeyecek daha sürdürülebilir gelir yakalayabileceğim işlere yönelmeye başladım. Kategorileri tabii ki de filtreliyorum, ama çok büyük oyuncuların olduğu bir kategoride bunlar çok büyük, ben de burada olmalıyım diye düşünmüyorum. Çünkü artık işin üretim maliyetlerini de düşünmeye başladım. Niş bir kategoride uygulama geliştirdin mi? Evet. 2019 yılında fazla rekabetçi kategorilerden uzaklaşmak istedim, çünkü bu kategorilerin şöyle problemi var. Bir hype zamanında yükleme alabiliyorsunuz ama uygulamanın büyümesi için gerekenleri yakalamak çok zor, çünkü retention oranları düşük. 2019 yılında bir mobil uygulamayı startup mantığıyla geliştirelim diye düşündük. Elimdeki tüm kaynakları bir projeye aktardırım. İlk başta güzel başlamasına rağmen iyiye gitmedi sonuç olarak. Orada şunu fark ettim, kullanıcıların sorununu tam anlamıyla çözen bir app yapmamışım. Rakiplerin yaptığı özellikleri biz de ekleyelim, ASO’ya odaklanalım diye planlamıştık. Oysaki bu niş kategorilerde topluluklara gitmeniz gerekiyor. Gerçekten bir sorunu çözdüğünüzde kullanıcı belki de 2, 3 yıl uygulamanızı kullanıyor ve ödeme yapıyor. Bu tarz uygulamalarda kullanıcıya daha yakın olma imkanınız oluyor ve metrikler daha sağlam oluyor. Özetle rakiplere değil, kullanıcılara bakarak ürün geliştirmek daha önemli. Bir uygulama için başarılı ya da başarısız oldu diyebileceğin kritlerler neler sana göre? Bu konuya harcanan efor ve getiri bazında bakmaya çalışıyorum. Harcadığım eforu iyi ölçmeye odaklanıyorum. Bir uygulamaya harcadığım zamanı takip ediyorum. Ve sonra harcadığım süre sonucunda ne kadar kazandığıma bakıyorum. Şu anda kısa vadeli planlardan çok, uzun vadeli hedefler belirliyorum. Yani bir app için uzun vadeli çalışabilecek misiniz, o app için 2 yıl boyunca geliştirme yapmaya istekli olacak mısınız, gibi sorulara cevap vermeniz gerekiyor. Bir uygulama için en önemli metrikler nelerdir? Her şeyden önce LTV diyebilirim. Bireysel geliştiricilerin çok da üzerinde durmadığı bir metrik. Genellikle aylık gelire çok odaklanıyoruz. Aynı şekilde marketing harcamalarınız varsa CPA önemli bir metrik. ARPU hesabını yapmayı da unutmamak gerekiyor. Uygulamalarımda analiz için kohortlar oluşturup, segmentlere bölüyorum. Kullanıcının uygulama içerisinde kaç saniye kaldığına kadar takip ediyorum. Kullanıcı nerelerde vakit geçiriyor, ya da sorun yaşıyor. Uygulama içerisinde çok güçlü bir analitik tarafının kurulması gerektiğini düşünüyorum.   Paywall’da A/B testlerini 2017 gibi yapmaya başlamıştım. O zamanlar Adapty gibi şahane araçlar olmadığı için Firebase ile testler yapıyorduk. Firebase öncesinde ise kendi backend sistemim ile testler yapıyordum. İlk yaptığım testlerde satış oranlarımda %20 oranında artış görmüştüm. Yani paywall üzerinde testler yaparak aynı üründeki geliri %30-40’lara kadar arttırmanız mümkün. Aslında bu sorunun da tam bir cevabı yok. Bunu da tüm uygulamada olduğu gibi ölçümlemek gerekiyor. Search Ads pahalı bir platform mu? Bugün mağazada LTV’si 100 dolar olan bir kullanıcı elde etmek için ben Search Ads’te 15 dolar vermeye razıyım. 2 yıl benim uygulamamda kalacak ve 100 dolar LTV getiren bir kullanıcıyı alabilmek benim için çok iyi bir olay. Burada yine konu verileri ölçümlemeye geliyor. Yaptığınız analizde 15 dolara aldığınız kullanıcıdan daha az gelir elde ettiğinizi düşünüyorsanız o zaman pahalı diyebilirsiniz. Ölçüm yapmadığınız zaman ne kadar verdiğinizin bir anlamı yok ne yazık ki. Ben bu şekilde ölçümlemeler yapmaya başladığım andan itibaren tüm app gelirlerim başka bir boyuta gelmeye başladı. Ben de ilk Apple Search Ads kullanmaya başladığım anda aynı şekilde pahalı olduğunu düşünüyordum. Ama LTV hesabı yapmaya başladıktan sonra çok iyi bir şekilde performans almaya başladım. App Store Optimization'da sence neler değişti? Çok fazla şey değişti. 2016 yılından örnek vereyim, Avrupa’daki birçok ülkeye kimse ASO yapmıyordu mesela. Siz çok kötü bir ASO bile yapsanız yine de üst sıralarda yer alabiliyordunuz. Ama 2019 yılından sonra çok fazla endüstriyelleşme oldu sektörde. O yüzden de organikle kullanıcı elde etmek gittikçe zorlaştı. Artık retention odaklı ürün geliştirmeye çalışıyorum. Bir kullanıcıyı elde ettikten sonra ondan en fazla geliri kazandıran ve kullanıcıyı uygulamada daha fazla tutacak projelere yöneldim. --- July brings some of the most ambitious Adapty updates this year! July was another prolific month for our product team as our product saw some of the most ambitious updates along with a bunch of more minor fixes and improvements. Paywalls 2. 0: placements, audiences, paywall groups, and new A/B tests We’ve been diligently working on making the process of creating paywalls and running A/B tests as easy and convenient as possible. But this summer, we’re taking this to another level with the introduction of Paywalls 2. 0 – the new paywall management system in Adapty. It was designed to revolutionize the way you manage paywalls and A/B tests and maximize your revenue potential. The main idea of this update is the introduction of new entities – placements, audiences, and paywall groups – that are meant to change and improve the traditional process of working with paywalls. Let’s quickly have a look at each of them and then see the whole picture. A placement is basically a place in the app where a paywall may be displayed. An audience is an element for splitting users into categories according to certain criteria, e. g. audience of "US users" or audience of "Facebook users".   A paywall group is an auxiliary entity that consists of two or more paywalls and is automatically created once you create an A/B test. And here’s how everything works from now on. The placement becomes the core element in the “nest doll” of elements and shares a unique Placement_ID. The important part here is that you get to work only with the Placement_ID, as all the other IDs are now deprecated to make things easier. You put placements in the same spots in your app where you want to display paywalls, e. g. at the end of the onboarding, in the settings menu, etc. And then all the other elements are attached to those placements. For example, you create a placement for the onboarding, then add 3 different audiences for it, “US users”, “Facebook users”, and “all users”, then create two different paywalls and attach them to each of the audiences. This is how it will look schematically: An example of one placement having 3 audiences that include a paywall each. Paywall A is used for “US users” while Paywall B is used for the other two audiences. Such an approach provides more flexibility and opens new possibilities for experimenting. As for experiments, A/B tests are now created as separate entities and attached to the audiences just like the paywalls.   An example of an A/B test run for one audience in the placement The new flow will help you save much more time on setting up A/B tests and creating new paywalls, as well as open new possibilities. Check the more detailed documentation to have all of your questions answered. Adapty now supports Google Play Billing Library 5 and 6 We’re happy to announce that Adapty now fully supports both the fifth and the sixth installments of the Billing Library for Android. Last year Google presented Billing Library 5. 0, which introduced new entities and changed the way we used to work with subscriptions on Android. We made an overview of this update in our blog, make sure to check it if you haven’t yet.   A renewed subscription structure in Google Billing Library 5. 0. This update includes several improvements and additions to the public API for the native Android, Flutter, and React Native SDKs, so make sure to get familiar with our documentation on Google Billing Library v5+ migration. Store commission and taxes for revenue metrics We’ve made it easier for you to see the difference between gross revenue and net proceeds while viewing revenue-related metrics (e. g. Revenue, ARPPU, MRR, etc. ) in the analytics dashboard. You can now select among three ways of representing the data in the chart: “Gross revenue” displays the total revenue, including taxes and commission fees from both App Store / Play Store. “Proceeds after store commission” displays the revenue amount after deducting the store commission fee. “Proceeds after store commission and taxes”, as self-explanatory as it sounds, displays the revenue amount after deducting both the store commission fee and taxes. App Store price increase logic In the app settings, we added a new logic concerning price increase, in order to maintain data accuracy and avoid discrepancies between Adapty analytics and App Store Connect results. Now you need to select the appropriate option in Adapty when adjusting configurations related to price increases in App Store Connect. You may choose to either preserve the subscription price for the existing subscribers or change the price for them when the subscription price is changed in App Store Connect. Find more details here. Other updates and improvements AppsFlyer integration update. There’s now a possibility to configure sending the IDFV even in cases when there is IDFA. Retries of webhook and event deliverability. We determine the deliverability based on HTTP status and consider everything outside the 200-399 range to be a fail. If the event fails to reach the integration, Adapty will perform 3 more attempts to send it. Read more in the docs. User documentation updates. We renewed the Charts section of our documentation to make it even more convenient to navigate. --- Mobil uygulama sektöründen en önemli isimlerle gerçekleştirdiğimiz podcastin yeni bölümüyle karşınızdayız. Bu podcast serisinde mobil uygulamadan para kazanma, abonelikler, reklamlar ve sektörden güncel gelişmeleri uzman konuklarımızla konuşuyoruz. İkinci bölümde konuğumuz AppNation kurucusu Yalçın Özdemir oldu. 10 yıldan fazla deneyimi olan başarılı bir girişimciden, mobil uygulama yayıncılığında yaşadığı deneyimleri dinleyeceğiz. Bu bölümü beğendiyseniz abone olun ve daha fazla kişiye ulaşmamız için arkadaşlarınızla paylaşmayı unutmayın. Yeni bölümlerden haberdar olmak için Telegram Topluluğumuza katılın Altta bu bölümden en ilginç kısımları bulabilirsiniz. Yalçın Özdemir Kimdir? App Nation şirketinin kurucusuyum. Şirket olarak mobil uygulamalar geliştirip uygulama mağazalarında yayınlıyoruz. Yayınladığımız uygulamalar genellikle utility ve productivity uygulamaları. Şu anki odağımız ise yapay zeka destekli uygulamalar. Ben kişisel olarak 10 yıldır uygulama dünyasının içindeyim.   ChatGPT’yi mobilde kullanan ilk uygulamalardan biri Genie diyebilir miyiz? Biz 2022’nin Aralık ayı gibi uygulamayı yayına almıştık. O süreçte AI chat konusunda birkaç uygulama vardı. Ama sanıyorum ki ChatGPT teknolojisini en kullanılabilir şekilde mağazada sunan ilk uygulama Genie diyebiliriz. İlk olmasının kayda değer bir katkısı var mıdır bilmiyorum ama AI Chatbot klasmanını oluşturdu diyebiliriz. Rahatça Paywall A/B Testi Yapmak için Adapty’ye geçtik Biz ilk başta abonelik yönetimi için farklı servisleri kullanıyorduk. Şu an bütün uygulamalarımızda abonelik yönetimi için Adapty kullanıyoruz. Bizim Adapty’ye geçmemizin ön önemli sebeplerinden birisi de rahatça paywall A/B testi yapabilmekti. Belli bir aşamaya geldiğinizde bu çok önem taşıyor. Kullanıcıdan alabileceğimizin tam karşılığını alabilmek için testler yapmayı önemli buluyorum. Ben de herkesin paywall testleri yapmasını öneriyorum. Çünkü bazen şöyle bir algı olabiliyor. Herkes bu paywallu kullanıyor ben de kullanmalıyım gibi. Direkt sonuca varmak yerine test edip rakamları görmek her zaman en iyi yöntemdir. Biz yaptığımız bazı testlerin sonuçlarında çok şaşırıp neden daha önce yapmadık diye bile düşünmüştük. En iyi paywallu göstermek ilk düşünülmesi gereken şeylerin başında geliyor. Tamamen organik 1 milyon indirme aldık ASO, App Store’da bir kullanıcı arama yaptığında onun karşısına nasıl çıkarız arayışı diyebiliriz. İnsanlar hala arama kısmında bir uygulamayı marka adı ya da türüyle aratmaya devam ediyor. Tabi burada kullanıcıların aramasında çıkmak giderek zorlaşıyor. Search Ads kullanımının artması ile birlikte. Bence ASO için hala fırsatlar devam ediyor. Bizim de ilk yılda odağımız tamamen App Store Optimization tabanlı bir büyüme planlamıştık. Hatta sadece organik ile bir milyon indirmeye ulaşmıştık. Çok hacimli keywordlerde bunu yapmak şu an mümkün mü pek emin değilim. Bizim daha farklı bir stratejimiz vardı. Biraz daha orta güçlükte keywordleri hedefleyerek, rekabetin çok yüksek olmadığı yerleri seçmiştik. Rekabeti her zaman akılda bulundurmak gerekiyor. Bir bireysel geliştirici güzel bir keywordde üst sıralara çıkabilir ama büyük pazarlama bütçesiyle onu yerinden edebilecek büyük firmalar da her zaman var. Bunu hep akılda bulundurmak gerekiyor. Bazen web versiyonu olan bir fikir mobilde iyi çalışmayabiliyor. ChatGPT’yi mobil uygulamada sunma fikri nasıl oluştu?   Doğru ürünü doğru zamanda pazara sunmak en önemli konu bana göre. AI Chatbot fikir için doğru zaman bundan 6 ay önceydi. Şu an bile büyük şirketler AI Chatbot trendine katılıyor. Ama dediğin gibi insan bazen şüpheye düşebiliyor. Bu tarz fikirleri seçerken kimsenin önünde şöyle bir veri yok, bu uygulama tutar ya da tutmaz diye. Önemli olan kimsenin göremediği bir kısmı görmek. Çünkü ciddi bir şekilde bilgisayar başında birçok insan bu tarz fikirleri arayıp bu fikirleri piyasaya sürerek para kazanmaya çalışıyor. Çünkü günün sonunda büyük paraların kazanıldığı bir iş bu. Burada en çok dikkat edilmesi gereken şey rakamlar diyebiliriz. Bir teknoloji belki sizin arkadaş çevrenizde ya da kısıtlı bir çevrede popüler olmuş olabilir. Ama bu konu hakkında detaylı analizleri incelemek, gerçek rakamları incelemek kritik önem taşıyor bana göre.   Bir uygulama projesine başlarken nelere dikkat ediyorsunuz? Ürün geliştirme süreçlerinde ne gibi stratejileriniz var? Çok uzun zamandır oyun ve uygulama geliştirmeye odaklıyız. Bu süreçte en önemli konunun doğru uygulamayı geliştirmek olduğunu düşünüyoruz. Bu belki de işin en önemli kısmı diyebilirim. Bundan 5, 6 yıl önce üzerinde çok emek verdiğimiz tasarım ve yazılım süreçlerinde çok uğraştığımız uygulamalar da oldu ama kullanıcıya ulaşmadı. Burada aslında yaşanan iyi ve kötü deneyimlerle ortaya bir öğrenim çıkıyor. Önemli olan projeye başlarken, o düşündüğümüz fikri neden yapıyoruz? Bunun arkasında yatan nedenler neler? Günde belki de binlerce uygulama yayınlanıyor App Store’da, bizim yaptığımız uygulamanın bunlardan ne farkı var? Tekrar tekrar söylemek gerekirse doğru uygulamayı seçmek önemli. Bizim iş modelimiz uygulamanın en basit halini, insanların sorununu çözen bir ürünü en hızlı bir şekilde hayata geçirmek. Bir iki hafta gibi kısa bir süre içinde hızlıca ürün çıkarmayı hedefliyoruz. Tabii ki bu kadar kısa bir sürede ürün çıkarabilmek için buna uygun altyapınız olması gerekiyor. Biz de iki yıldır bir uygulamayı nasıl hızlı bir şekilde yayına alırız diye düşündüğümüz için tüm parçalar yerine oturmuş oluyor. Onboarding stratejileriniz neler? Bu soruyu 2, 3 yıl önce sorsaydın onboarding aslında benim çok hoşuma gitmeyen bir şeydi. Uygulamalarda onboarding görünce “bunu neden ekliyorlar? ” tarzı bir yaklaşımım oluyordu. Kullanıcı olarak da ben direkt uygulamaya girip deneyimlemek istiyorum. Ama artık bu işi sistematik yaptığımız için her kısmı nokta nokta inceliyoruz. Bu süreçte de onboardingin çok önemli bir şey olduğunu fark ettik. Kullanıcıların şu an dikkat süreleri çok kısıtlı olduğu için uygulamayı ilk gördükleri ekran, yani onboarding çok değerli bir süreç. Bence onboarding kullanıcının dikkatini yakalayabileceğiniz en önemli yer. Çünkü kullanıcıların neredeyse tamamı o ekranları görüyor.   Önceden daha kullanıcı uygulamayı görmedi neden paywall gösterelim, yaklaşımı vardı. Artık çoğu uygulama onboarding sonrası paywall göstermeye başladı. Onboarding sırasında trial başlatma oranlarını arttırmak bizim de hedeflerimizden birisi. Kullanıcının dikkatini çekmişken trial başlatmasını sağlamak çok önemli diye düşünüyorum. Onboarding’te Paywall Göstermek Mantıklı mı? App Store’a bir kişi girip bir uygulamayı indirdiyse, o uygulamaya gerçekten ihtiyacı vardır ve uygulamayı kullanma ihtimali çok yüksektir. Yani bir kullanıcının vaktini ayırıp App Store’a girip bir uygulamayı indirmesi gerçekten çok büyük bir iş. Yani uygulamayı screenshotlardan, isminden ve onboardingteki ilk ekranlardan biliyor. Ya da bir reklamda görüp indirdiği için o uygulamanın ne işe yaradığını biliyor. O yüzden onboarding süreci çok erken gibi düşünmemek lazım. Çünkü uygulama kullanıcının önüne rastgele çıkmadı, belli bir efor sarf ederek kullanmaya başladı. Uygulamalarımız 10 milyondan fazla indirme aldı Şu ana kadar yayınladığımız uygulamalar 10 milyondan fazla indirme aldı. Önümüzdeki 2 yıl içerisindeki hedefimiz 1 milyar indirmeye ulaşmak. Yapay zeka destekli mobil uygulamalar şu anki ana odağımız. Publisher olarak da bazı hedeflerimiz var.... --- From targeting the wrong audience to neglecting App Store optimization, we'll cover key areas where many developers and marketers stumble. Mobile user acquisition is crucial to any successful app or mobile platform. However, it's simple to make errors that could impede your development and harm your general acquisition plan. Recognizing potential pitfalls and taking advice from others is vital for staying on the correct road. We'll delve into the top 10 mistakes to avoid in mobile user acquisition. From targeting the wrong audience to neglecting app store optimization, we'll cover key areas where many app developers and marketers stumble. By drawing attention to these errors, we aim to offer insightful knowledge and actionable steps for optimizing mobile user acquisition efforts and driving sustainable app growth. No matter if you are an established application creator or just starting out. Understanding and avoiding common app development mistakes will save time, resources, and frustration while increasing the odds of success in your chosen mobile marketplace. Neglecting target audience research One of the biggest mistakes to avoid in mobile user acquisition is neglecting target audience research. Failing to thoroughly understand your target audience can significantly hinder your marketing efforts and lead to ineffective user acquisition strategies. Without a clear understanding of your ideal users' demographics, interests, and behavior, creating targeted and personalized marketing campaigns that effectively attract and retain valuable users becomes challenging. It's essential to carry out thorough research to determine who your target market is to overcome this mistake. The following aspects can help you understand your customer market better: Demographics Preferences Pain points Habits You can research these aspects through surveys and data analysis. Conducting customer interviews will also be beneficial. Once you gain the information needed, you can tailor messaging, content creation, and acquisition techniques to fit your exact specifications and needs. Investing time and resources into target audience research will enable you to develop informed user acquisition campaigns, optimize app store listings, and create compelling content that attracts the right users. Targeted approaches increase your odds of attracting potential customers and enhance user engagement, user retention, and overall user experience.   Lack of a clear value proposition Another big mistake in mobile user acquisition is the lack of a clear value proposition. Without a unique selling point that sets your app apart from competitors, attracting and retaining valuable users becomes challenging. Failing to communicate the benefits and features of your app leads to low user engagement and acquisition.   Create a convincing value pitch that showcases the main benefits of your software to avoid making this error. Identify what makes your app unique and valuable to users, and communicate it consistently across all marketing channels. Clearly explain the following: The problem your app solves The benefits it offers Your advantage over competitors A strong value proposition not only attracts potential users but also helps to retain them. It sets the expectations right from the start, ensuring that users understand the value they will receive from your app. Effective communication of your value proposition can increase user engagement, foster retention, and ultimately accelerate customer acquisition. Time spent developing a real value proposition will pay dividends over time. Never undervalue the influence of a compelling reason to purchase when trying to attract mobile users. Overlooking App Store optimization One of the biggest mistakes to avoid in mobile user acquisition is overlooking App Store Optimization (ASO). ASO plays a crucial role in improving exposure and natural installs of your app. By ignoring ASO, you miss out on potential users searching for relevant keywords in the app stores. Optimize the following: Your app's title Description Screenshots Keywords To find your app's most pertinent and popular search terms, start by conducting extensive keyword research. To increase its discoverability, incorporate keywords strategically in your app's metadata, such as the title and description. In addition, make sure to include captivating and informative screenshots that showcase your app's best features and functionalities.   Screenshots are often a potential user's first visual impression, so they should be compelling and visually appealing. Regularly monitor and evaluate the effectiveness of your app's ASO efforts to optimize further. And track your app's keyword rankings and metadata changes. By prioritizing ASO, you can significantly increase your app's visibility in the app stores and attract more organic traffic. The result may lead to greater enrollment and the potential for more loyal and engaged customer base. Inadequate user onboarding experience Users that find your app hard to use or understand could quickly abandon it, preventing it from being installed again in future attempts. An efficient onboarding experience will guide users through all of your app's key features and benefits. To improve user onboarding, consider offering: Interactive tutorials Clear instructions with quick results Minimize unnecessary steps Intuitive and user-friendly An effective onboarding experience not only assists users in learning your app but it sets the scene for their overall user journey. As a result, this will: Establish trust Reduce confusion Increase user engagement Loyal customer Regularly gather user feedback to identify pain points and areas for improvement in the onboarding process. Use this feedback to make necessary adjustments and enhancements. Investing in an effective user onboarding experience can significantly enhance user engagement and retention. Therefore, you set yourself up for long-term success with mobile user acquisition. Ignoring user feedback Ignoring user feedback is a grave mistake in mobile user acquisition. Failing to listen could have devastating repercussions for its eventual development and expansion. Your app's user experience may be improved, and user feedback can help you identify these areas. It allows you to gain a deep insight into what users expect and need from you so that you can choose the appropriate updates or enhancements. Regularly analyzing user feedback to identify trends and common issues is also very useful for addressing shortcomings and implementing updates to match user preferences. You can build an app with greater user-friendliness that fosters customer retention and engagement. Do not underestimate user feedback as an invaluable way of increasing success for your app and user acquisition efforts. Listen and incorporate user feedback into your app development and marketing initiatives. Inconsistent... --- Mobil aboneliklerden gelir elde etme hakkında hazırladığımız podcast’in ilk bölümüyle karşınızdayız. Mobil uygulama sektöründen en iyi konuklarla konuşuyoruz, para kazanma, abonelikler, reklamlar ve sektörden güncel gelişmelerin nabzını bu sohbette tutuyoruz. Yeni bölümlerden haberdar olmak için Telegram Topluluğumuza katılın. Podcastin ilk bölümünde konuğumuz bireysel geliştirici Yusuf Demirci oldu. Yusuf 7 yıldan fazla tecrübesi ile şu anda iOS geliştirici olarak çalışıyor. Aynı zamanda 2017 yılından itibaren mağazada yayınladığı uygulamalardan gelir elde ediyor.   Bu yayında Yusuf’tan mobile başlama hikayesini, nasıl uygulama fikri bulduğunu, App Store Optimization ile organik kullanıcı edinme stratejilerini ve daha fazlasını dinledik. Bu bölümü beğendiyseniz abone olun ve daha fazla kişiye ulaşmamız için arkadaşlarınızla paylaşmayı unutmayın. Altta bu bölümden en ilginç kısımları bulabilirsiniz. Yusuf Demirci Kimdir? 7 yıldır yazılım sektöründe çalışıyorum. Kariyerime ilk önce android geliştirici olarak başladım. Yaklaşık 10 ay android geliştirdikten sonra da 6 yıldır iOS geliştirici olarak çalışmaya devam ediyorum. Üniversite 2. Sınıftan itibaren çalışmaya başladım. Bundan önce kendi şirketimi kurup profesyonel olarak indie development yapmaya çalıştım ama başarısız oldu biraz. Ondan önce de tam zamanlı olarak freelancer olarak çalışıyordum. Daha önce çeşitli startuplarda çalışarak her bir kategoriyi deneyimledim diyebilirim. Benim en büyük tecrübelerimden biri oldu bu şekilde bir kariyer basamağım olduğu için şanslıyım diyebilirim. Bireysel geliştirici macerası nasıl başladı? Aslında ilk başta benim amacım kendimi geliştirmekti. Şirketlerde yer aldığınız projelerde her şeyi deneyimleme imkanı olmuyor. Projelerde zamanlama, güvenlik gibi sorunlar olduğu için şirket projelerinde risk alamıyorsunuz. O yüzden ben de kendimi geliştirme amacıyla ve yeni şeyler denemek için uygulama yayınlamaya karar verdim. Ama sonra bu durum bağımlılık haline geldi. Çünkü kendi ürününü yayınlamak çok zevkli. Ürün senin olduğu için istediğin özelliği ekleyebiliyorsun ve kullanıcıya direkt dokunabiliyorsun. Bunun hazzı çok büyük. Bir de son 2 yıldır product tarafımı da geliştirdiğim için bireysel geliştirici olmak çok daha hoşuma gidiyor. Bireysel ürün geliştirirken product, marketing gibi özelliklerimi de geliştirme fırsatım bulabiliyorum. Benim ilk uygulamam “What happened today in history” adında bir uygulamaydı. O gün tarihte ne olduğunu gösteren bir uygulamaydı. 2017 gibi mağazaya atmıştım ve şimdi keşke kaldırmasaydım diye düşünüyorum. Çünkü eski uygulamalar daha değerli oluyor ve fazla keywordde indexlenmiş oluyor. Zaten mobili seçme nedenlerimden birisi kimseye bağlı olmadan, kendi projelerimi hayata geçirebilmekti.   Uygulamayı hızlı bir şekilde yayınlayabilmek çok önemli Murat: Uygulama kategorisi seçerken nelere dikkat ediyorsun? Yusuf: Aslında çok sert bir kriterim yok. Sadece oyunlarla ilgilenmiyorum. Oyunların farklı dinamikleri var. Onun dışındaki tüm kategorilere bakıyorum. Genellikle indie developerların en sevdiği productivity ve utilies, genelde oralarda takılıyorum doğal olarak. Genellikle çok zaman almayacak basit bir şekilde yayına girecek uygulamalar olduğu için bu kategorileri seçiyorum. İlk amacım biraz daha hızlı bir şekilde uygulama geliştirmek.   Fikir mükemmel olsa da önemli olan rakamlardır Murat: Uygulama geliştirmeye başlarken önce bir fikirden mi yola çıkıyorsun? Yusuf: Olmayan bir marketi yapmak kolay değil, bunun için büyük oyuncu olmak gerekiyor. Bizim gibi küçük geliştiriciler daha çok olan marketlerde ve rekabetin az olduğu yerlere yöneliyor ve bence de mantıklı olan bu. Bundan dolayı önce ben mağazaya bakıyorum. Tabii ki aklıma gelen çok güzel fikirler de var. Ama öncelikle bu fikirleri mağazaya bakıp kontrol etmem gerekiyor. Benim fikrimdeki benzer uygulamalar ne kadar kazanıyor, ne kadar indirme alıyor, bunlar önemli şeyler. Yoksa duygusal olarak yola çıktığınız zaman, mükemmel bir uygulama geliştirirsiniz ama günün sonunda kimse indirmeyip satın almıyorsa amacımıza tam olarak ulaşamamış oluruz. Ben önce mağazadaki uygulamalara bakıyorum. İndirme sayılarına ve gelirlerine bakıyorum. Sonra uygulamanın rekabetine bakıyorum. O uygulama türünde rakipler çok mu fazla? Mesela şu anda PDF Scanner uygulamaları yüzlerce var. Marketing tarafı çok güçlü değilse bu şekilde rekabetçi bir uygulama yapmak bence çok mantıklı değil.   Örneğin hedeflediğim kategoride en çok indirilen uygulamanın MRR’ı 10 bin dolar, diğer bütün uygulamalar ise 500 dolar civarında olsun. Burada da bence geliştirme yapmak mantıklı değil. Demek ki kullanıcı ödeme yapmıyor bu uygulamalara. Sadece ilk sıradaki iyi para kazanıyorken, diğerleri neredeyse kazanmıyorsa, fikir mükemmel olsa da benim için bu metrikler daha önemlidir. Kullanıcıları ödeme yapmaya ikna etmek önemli Murat: Bir uygulamada indirme almak önemli ama indiren kullanıcıyı ödeme yapan kullanıcı yapmak da ayrı bir uzmanlık istiyor. Abonelikleri arttırmak için yaptığın stratejiler var mı? Yusuf: App Store’da uygulamaların çoğunun gelir modeli aboneliklerden oluşuyor. Reklamları daha çok kullanıcıyı aboneliğe yönlendirmek için kullanıyorum. Gelirlerimin çoğu aboneliklerden geliyor. Mesela şöyle bir stratejim var. Kullanıcıdan maksimum karı elde etmeye çalışıyorum. Kullanıcı uygulamayı ilk açtığında genellikle en pahalı paywallu gösteriyorum. Eğer bu aşamada satamazsam indirim yapıyorum. Tekrar satamazsam trial sunuyorum. Bizim amacımız satış yapmak, kullanıcının amacı da ikna olmak aslında. Şu anda iki ürün sunduğum paywalları kullanıyorum. Genelde haftalık ve aylık olarak ürün sunuyorum. Önümüzdeki süreçte tek ürünlü paywall denemeyi planlıyorum. Burada test yapmak çok önemli gerçekten. Örneğin bir paywall senin gelirini %20 arttırıyorsa, bu çok önemli bir fark gerçekten. Geliriniz 10 bin dolarken 12 bin dolara çıkmış oluyor. Bu çok büyük bir şey. Farklı pazarlarda da üst sıralara oynamayı deneyin ABD’de zirveye oynamadan önce diğer ülkelerde zirvede olmak lazım. Uygulama adım adım yükseliyor. ABD’den önce ara ülkelere odaklanmak gerekiyor. Endonezya gibi nüfusu yüksek ve genç nüfuslu ülkelere odaklanmak gerekiyor. Apple da bu şekilde uygulamaları featured ediyor. En temel hedefimiz ABD ama oraya gelmeden önce merdivenin ikinci üçüncü basamaklarına da odaklanmamız gerektiğini düşünüyorum. --- Explore the latest benchmarks on iOS subscription LTV, retention, renewals, price changes, and the best performing paywalls. Since the launch of the App Store and Google Play, the mobile app market has undergone numerous changes that made app developers alter their monetization strategies and constantly search for new ways of making their apps bring as much profit as possible. New regulations, policies, and software updates that come from Apple and Google annually (or even more frequently) pose new challenges in the way of proper engagement with the user, while the general state of economics also intensely affects the pricing point of app production and promotion. All these aspects greatly affect the market and result in having to come up with drastically different approaches to running the app business from year to year. That’s why we’re proud to present you with the state of in-app subscriptions in 2023 for the US market. In this report, we’ve tried to answer most of the questions regarding the current situation in the mobile app subscription market, demonstrate in detail the relevant metric charts, as well as provide insights and even benchmarks you could use to properly adjust your monetization strategy. Let’s discuss a few takeaways from the report and the problems behind it, in order to see which aspects of work with subscriptions were affected the most in 2022-2023. The US mobile app subscription market still remains the largest Undoubtedly, the US remains at the forefront of the mobile app subscription market, cementing its position as the largest and most lucrative market for subscription-based services. The country's tech-savvy population, high smartphone penetration, and widespread access to high-speed internet contribute to its continued dominance. Our research shows that the US accounts for an impressive 51% of all mobile app subscriptions, a testament to its dominance in the digital economy. The US holds the largest share of the mobile app subscription monetization market The mobile app subscription market in the United States continues to thrive as the nation remains the largest and most influential player in this sector. However, the market is not without challenges, particularly in light of macroeconomic difficulties and an inflationary surge that has impacted consumer behavior and pricing strategies.   The inflationary surge of 2022 still shows its repercussions in many markets to this day. Source Average subscription price changes With expenses on ads, user acquisition, ASO, and other kinds of promotion getting subsequently higher, app developers and publishers are forced to adjust their pricing strategies in response to the changing economic conditions and cost pressures. As a result, the market sees the average monthly growth in subscription prices across all tiers. It’s a natural market response.   Increasing the subscription price of a mobile app can have potential benefits for developers, but it's essential to carefully consider the implications and make informed decisions. By employing thoughtful strategies and communication, you can minimize negative impacts and improve the chances of a successful price adjustment. So make sure to check the latest price benchmarks and detailed charts for the US market in our report to get on the right track and not harm your app's economics.   Changes in the Lifetime Value (LTV) of subscriptions Another vital element of app economics is Lifetime Value (LTV) – the average revenue a customer generates in their lifespan. This metric is supposed to give you a few ideas on how much you can spend on your app without being afraid of having more expenses than profits. Having knowledge of the average LTV of your customers is crucial for executing successful marketing strategies.   Considering subscription price growth trends we also calculated current LTV metrics for different subscription durations. One of the insights shows that annual subscriptions are still in the lead with the highest LTV. This is likely due to the higher retention rates and customer loyalty associated with annual subscriptions. See the insights and charts for weekly and monthly subscriptions in the report and use this information to decide which products are worth keeping on your paywall these days. The LTV of annual subscriptions by renewal periods. The profitability of paywall combinations Speaking of paywalls, it’s always a dilemma of which products to offer. Unless you use Adapty to run A/B tests and already know what works best for your audience. Nevertheless, subscription price changes and other trends in economics directly influence the user’s choice. It means that apart from pricing your subscriptions properly, it’s important to understand which products are more profitable to offer, and in what quantity. The accumulated data allows us to clearly see which paywall product combinations work best for US customers. An astounding result shows the one-product paywall, which turns out to be the least attractive for users. This may either imply that customers like to have a choice and feel like they’re actually making an important decision, or it’s simply the result of price anchoring working the way it was intended to. Learn which product combination is the most profitable in our free research and check if you’ve been using the right kind of paywall this whole time.   Revenue distribution by the number of products on paywalls. Check out more insights and charts in the full report We’ve shed some light on the trends and tendencies taking place in the current US mobile subscription market, but it’s just a small piece of what we’ve managed to gather in our study. Make sure to check out the full version of the report, where you’ll find numerous insightful charts showing how to price different kinds of subscriptions, which number of products to use on your paywall, as well as providing you with fresh data on refund and retention rates, LTV, and much more.   --- In the 12th issue of the paywall newsletter, we review paywalls of AI-based apps. Let's see how they sell their subscriptions! In the 12th issue of the paywall newsletter, we review paywalls of AI-based apps. Let's see how they sell their subscriptions! Paywalls of the issue are commented by... Anton Kuzmin, User Acquisition Group Head at AdQuantum. Anton has over 7 years of experience in digital and mobile advertising, including 4 years as a UA team leader. This is how the AI champions sell subscriptions Overall impression Full focus on the product features. It offers a single type of monthly subscription with no trial, presented with concise clarification on renewal. Overall, it is the most discreet paywall that emphasizes only the fact that it works for the original product as if it doesn't want to force you to buy anything. What I would experiment with The background lacks contrast and brightness. I would definitely experiment with background colors and consider adding a row of videos with a darkened transparent effect. The readability of the product highlights is not perfect – it's worth increasing the font size and making it slightly thicker. Similarly, the button should have a larger font size, and it might be beneficial to find a more contrasting color for it in relation to the background. They could also try adding an emoji to make it more engaging. Consider trying more explicit descriptions for the subscription benefits. ChatGPT Before/After video would look nice Overall impression The paywall's overall design is well executed. It's not a hard paywall, as there's a barely noticeable close button at the top. Before encountering the paywall, there's a brief demonstration of the product's functionality, allowing users to practice object extraction from photos. Such onboarding is a definite plus, as it helps users familiarize themselves with the product's capabilities. The description of paid features is convincing, and the highlighted annual subscription option with a percentage discount serves as a great incentive for conversion. Another positive aspect is the social proof, indicating the number of people subscribed to the pro version. What I would experiment with On the larger iPhone screen, there appears to be some extra space below the features section (currently displaying 5 features when there's room for 6). It would be possible to rearrange and move the higher-priority options and enlarge the "Start Trial" button. To further emphasize the button and the annual subscription plan, I would suggest adding a subtle shine or a blinking animation around them, drawing more attention to these elements. In the header section above the feature list, it might be worth considering adding a before/after video to demonstrate the results of using the product. This visual demonstration would help users make a more informed decision, showcasing the potential outcomes in addition to the features already presented before the paywall. Photoroom Nice design but unclear subscription benefits Overall impression In my opinion, the paywall is of very high quality in terms of design and execution. The choice of fonts, dynamic background, and color scheme is visually pleasing. It's a nice touch to include reviews in a carousel as social proof. The toggle activation of the trial is an interesting solution, providing both interactivity and attraction. What I would experiment with The benefit of purchasing a subscription is not immediately obvious. It is only revealed when you skip the paywall and encounter a new offer of 60% off, along with a list of benefits and restrictions that will be removed. This information is presented immediately after closing the paywall, without even the opportunity to utilize some of the available features in the free version. This approach feels intrusive and could be improved. Nature ID A double paywall that might be confusing Overall impression Overall, it's a rather complicated paywall that can potentially confuse the user. At first, you see the explanation of the trial period in days (a common feature) and a "Start Free Trial" button with a price explanation (7 days trial + 1 year). But that's not all; below, there's an additional "Show all trial" button, offering three subscription options for one year, one month, and a lifetime plan. What I would experiment with It would be interesting to see how a streamlined onboarding process with a better demonstration of the interface and functionality would work, or if the user is allowed to process a couple of photos before encountering the paywall. This could potentially reduce unnecessary steps, such as the video and survey, and provide a more intuitive user experience. Facetune A premium toggle could be a good thing to try Overall impression The paywall itself appears overloaded with descriptions and details. It compares two versions of plans, spanning three months and one year, each further divided into Pro and Premium. This arrangement seems to be a solution that should be revisited after using the app, as it is difficult to comprehend at first glance. Additionally, it's unclear why the best value offer is more expensive and highlighted as advantageous. Moreover, it feels a bit unconventional to have the prices displayed at the top. What I would experiment with I would suggest incorporating a Premium toggle that activates a Premium mode. The basic version of the paywall could be presented in light colors, featuring two price options for 3 months and 1 year, indicating the basic features. Upon clicking the Premium toggle, the background could change to a more expensive, dark theme, adding premium features and adjusting the prices accordingly. This visual transformation would provide a clearer differentiation between the two versions and enhance the understanding of the value offered by the Premium option. Elsa --- Dive into the concept of ASO cannibalization, learn how it impacts your app's performance, and discover precise measurement methods with Adapty! In the fiercely competitive world of mobile apps, standing out from the crowd and reaching your target audience is an uphill battle. You’ve created a great app backed with valuable research into your target market. Now it’s time to advertise how great the app is, right? This is the time when you dive into digital marketing for your app, specifically App Store Optimization. Choosing the right keywords, captivating descriptions, screenshots, and clean logos are all part of ASO's best practices. With a correct ASO strategy, your app actually stands a chance against tens and hundreds of similar competition. But when you’re making your strategy for ASO, do you stop and document what you’ll do if your app suffered through cannibalization? The word might throw off many people but it’s a very real threat that attacked the likes of Netflix in their early days.   And the reason we’re going to talk about cannibalization today is because apps that don’t make out of cannibalization often cease to exist! Understanding cannibalization in ASO When we’re going through app store optimizations, it’s crucial to balance the ASO strategy to avoid cannibalization. Wait, what now? Cannibalization refers to a phenomenon where an app's organic downloads drop because of paid installations or ads. When you engage different acquisition channels such as organic searches and paid ads, you’re slicing your app’s organic performance in half.   There are 2 main ways ASO cannibalization takes place so let’s take a quick preview of them. Paid to organic cannibalization When an app heavily relies on paid user acquisition campaigns, it may get more visibility through advertisements, but this could potentially reduce its organic downloads.   Users who might have discovered the app organically through an app store search or recommendations may now choose to install it through the paid advertisement link, leading to a decrease in organic downloads. Organic to paid cannibalization If an app focuses solely on optimizing its ASO strategy to boost organic traffic, it might see an increase in organic downloads. However, if the app later starts running aggressive paid acquisition campaigns, it could draw users who would have otherwise found and installed the app organically, resulting in a decline in organic downloads. To define cannibalization visually, imagine this: App A has a strong ASO strategy, and most of its downloads are organic. It decides to launch a paid advertising campaign to increase its user base.   As a result, the app starts getting more paid installs but fewer organic downloads because users who would have found the app through app store searches or recommendations are now installing it through advertisements!   The app killed– or rather cannibalized– its organic downloads. Cannibalization: a double-edged sword The word cannibalization never comes from any good-spirited means. It’s just not a great word! But when we’re talking ASO cannibalization, I want you to pause on your cannibalization calculations and realize that the phenomenon has benefits too. Increased visibility Did you know that having multiple apps in the same category could boost the overall category visibility by 15 to 20%? When multiple apps from the same developer target similar keywords and audiences, it can increase overall visibility in the app stores.   That means greater user acquisition and revenue if you have a monetized app!   Cross-promotion opportunities By promoting one app to users of another app within the same portfolio, developers can cross-promote and encourage users to explore and download other apps they might find valuable. This can lead to higher user engagement and retention rates across the entire app portfolio. Better market penetration Having multiple apps addressing different niches or user needs allows developers to penetrate various segments of the market. This diversification can be advantageous, especially when some niches are more competitive or saturated than others. Now let’s talk about the other edge of this sword named ASO cannibalization. Here are the downfalls of cannibalization in mobile apps: Decreased organic growth When multiple apps from the same developer compete for the same keywords or target audience, organic downloads may suffer.   Instead, if your app was enjoying great organic growth in its category, employing aggressive paid marketing ads is the worst thing you can do. These paid user acquisition roots drag your organic growth down for increased user acquisition, causing you to sometimes rank low in App Stores! Over-reliance on paid efforts If developers heavily rely on paid acquisition campaigns to compensate for the decline in organic downloads, it can lead to an over-reliance on paid efforts. This over-dependence on paid marketing can be expensive and less sustainable in the long term. Confused brand perception Having multiple apps with similar names or branding can confuse users and dilute the developer's brand perception. Users may not be able to differentiate between the apps, leading to decreased user trust and loyalty. Increased acquisition costs At the end of the day, you are paying money to have paid user acquisition methods at work. Cannibalization can drive up acquisition costs since developers might end up paying for users they could have acquired organically.   According to AppsFlyer, organic installs have the highest long-term retention rate compared to other acquisition channels. The reasons behind cannibalization Before I move to talk about ASO metrics and KPIs or how to calculate cannibalization with the cannibalization rate formulas, how about we figure out the root causes of cannibalization?   Surprisingly, there are more ways than one for your app’s organic growth to have high cannibalization rates.   Aggressive marketing strategies When developers heavily invest in paid user acquisition campaigns, it can lead to increased visibility and installations through those campaigns. Remember that one app advertisement that gets annoying because that’s the ONLY ad you see on Youtube and such? Those aggressive ad strategies often come with a large user acquisition at the expense of organic downloads, since users who would’ve found the app organically now choose to install it through paid advertisements. Changes in App Store algorithms App stores frequently update their algorithms to... --- Projected to reach $495 billion by 2024, mobile advertising is one of the fastest-growing channels in the mobile marketing mix. In fact, mobile advertising – which covers all the ads you see on your phone, from in-app ads and sponsored posts in your social media feeds to SMS advertisements – gets a whopping 64% of all digital ad funds.   As consumers spend more time on their phones, businesses are trying new and innovative mobile advertising ways to connect with them. They’re tapping improved personalizations, targeting, and AR/VR capabilities, among others, to deliver more relevant and immersive mobile ad experiences.   But what exactly is mobile advertising? What are the latest trends shaping this rapidly evolving landscape? And what lies ahead for mobile advertising in 2024 and beyond? Let’s find out. While we’ll discuss mobile advertising in general in this article, we’ll focus more on in-app mobile advertising (as that’s your share in this growing mobile advertising market! ). In-app advertising – or showing ads inside apps – is an increasingly popular mobile advertising method, and globally, 36% of apps use in-app advertising for generating revenue. Here goes.   What is mobile advertising? Simply put: Mobile advertising is showing ads to users on mobiles. Mobile advertising is a subset of mobile marketing focusing on promotions using paid ads. Mobile marketing, in contrast, is multi-channel marketing that encompasses all the channels a business uses to reach, convert, and engage its target mobile traffic. Mobile marketing includes everything from mobile-friendly websites and SMS marketing to app-based marketing.   Given how businesses can reach users via phones, mobile advertising takes many forms. Take mobile search result ads, for instance. When a user makes a search on their phone's browser, search engines show ads along with the organic results. Ads (or sponsored posts) appearing when you browse social networks like Facebook or Instagram are also examples of mobile advertising. Ads you see on any mobile website also count toward mobile advertising. Video advertising – of which YouTube advertising is a huge part – is also a mainstream part of mobile advertising. Yet another form of mobile advertising is in-app advertising. Here, advertisers show ads to app users. In other words, all ads on mobile count toward mobile advertising. Let's now take a closer look at the current state of the mobile advertising landscape and explore some projections for 2023 and beyond. The state of mobile advertising in 2024 As noted above, mobile advertising has grown steadily over the last few years – it's already surpassed the 327. 1 billion U. S. dollars global milestone. As more and more marketers shift their digital ad spend toward mobile, this is only set to increase. Within mobile advertising, in-app advertising, too, has experienced significant growth. Statista's report on in-app mobile advertising underscores the upward trajectory of this channel. For the sake of this article, we’ll focus more on in-app advertising as it can help you unlock untapped revenue and effectively monetize your non-spending app users without compromising the revenue generated from in-app purchases. In its latest in-app advertising research, Statista estimates in-app advertising to hit 462. 30 billion in 2027. This projection includes mobile advertising on social media apps like Facebook and Instagram (which take the majority of the spend actually). But even if you leave that out, app store apps like yours, too, can build an additional revenue stream with advertising. “As more companies become aware of the possibility of reaching audiences through mobile applications, the market for in-app advertising is now booming and is expected to continue expanding. Given that in-app advertising allows advertisers to target particular audiences based on their activity, preferences, and location, it is one of the most successful types of mobile advertising. According to analysts, in-app advertising will continue expanding as more companies shift their advertising budgets to mobile. ” – Statista Let’s also talk about mobile ad spending. According to Statista, apps across all verticals are seeing increased ad spending, and the trends are expected to hold well into the future. While the social media and games niches dominate the in-app advertising market, apps across all categories show significant growth in ad spending: In its 2022 report, Grand View Research, Inc. also estimated in-app advertising to cross the $410 billion mark by 2030. In another research on mobile ads, the market research firm Market Research Future (MRFR) projected in-app advertising to grow at a CAGR of 17. 32% and hit USD 312. 48 billion by 2030. And according to Verified Market Research. , the in-app advertising market is projected to grow at a CAGR of 19. 96% and is expected to hit USD 544. 93 billion by 2028. Even considering the deviance in projections, the upward trend is clear: in-app advertising is growing, and mobile marketers are looking to tap into the reach of apps. And there’s ad revenue to be made in all kinds of app niches. It doesn’t matter if you run a productivity app or a health and fitness app. Adding ads to your app monetization mix can build you a sustainable revenue channel. So how does in-app mobile advertising actually work? Before we see how in-app advertising works, let’s see the three key ways in-app advertising works for app makers. There’s more than just revenue to be made.   Benefits of in-app advertising for app businesses Revenue Many free and freemium apps – that make the majority of the apps in the Android and iOS app stores – rely on ads. Also, studies from ad networks show that adding ads to apps actually helps get more in-app purchases. When Avid. ly, a Chinese app business, was looking to add another revenue stream to "supplement the revenue it received from the typically small percentage of players who were buying digital goods," it added ads to its app. While Avid. ly was concerned about losing a share of their in-app purchases due to introducing rewarded ads, it observed the opposite. In-app sales increased by 18%, while the total... --- In this article, we'll emphasize what mobile app deep links are, why they are important, and how you can reap the sweetest results by implementing them in your app right now! Everything is just one tap away.   Your local news about elections? Read all about it in Google News. That science book preview you read on Goodreads? Buy here on Amazon! A blueberry recipe you need to try out? Tap and Youtube start showing you the step-by-step of it. What all these situations have in common is their ability to utilize deep links to take you where you need to be, as quickly as possible, as smoothly as possible. And chances are, if you’re a mobile app developer, you need this more than you might realize. Deep links aren’t just plain URLs you can stick around to attract users to your app. No, it’s much more complex and deeper. So in this article, I want to emphasize what a mobile app deep link is, why it’s important, and how you can reap the sweetest results by implementing it in your app right now! So let’s start with the basic question... What is mobile app deep linking? The process of utilizing a custom URL to direct users to a specific page within an app is known as mobile deep linking. It allows users to bypass the app's home screen and land directly on the desired location within the app. This allows for a seamless transition from external sources, such as websites, search results, or other apps, to specific sections, features, or even personalized content within the app. There are many ways to execute a mobile deep link but here are a few common ways you might’ve come across a deep link: Website URLs (search results, links within blogs, etc) Emails In-app URLs (social media posts or clickable redirects within an app) QR codes Push notifications (more on this later) But this isn’t that simple! There are a few different types of app deep linking to keep in mind before you jump to a mobile deep link strategy for yourself. Types of deep linking You can’t understand what deep linking in apps is without understanding the 3 types of mobile app deep links!   Standard deep links A standard deep link is a URL or hyperlink that directs users to a specific location or screen within a mobile app. It allows users to bypass the app's home screen and directly access a desired feature, content, or functionality within the app. These links are often not personalized but are marketing a generic tone to a larger target audience. Take a deep link example for a pair of shoes you viewed on Amazon a few days ago.   Clicking on the link would open the shopping app and take you directly to the page displaying that particular pair of shoes. This eliminates the need for you to manually search or navigate through the app to find the product, providing a convenient and efficient user experience. Here is a simple deep link URL example. Notice how it opens the app instead of the browser on mobile devices:  Deferred deep links A deferred deep link redirects users to a specific in-app location or content after they install an app. When you click on a deferred deep link and don’t have the app installed, it will take you to the app store to download and install the app.   After the app is installed– or if you already have it installed– it takes you to the specific screen or content you were initially interested in!   Contextual deep links A contextual deep link incorporates a personal flair to a standard deep link, providing a personalized and relevant user experience with additional parameters. Have you ever come across an abandoned cart email from an online shopping app? That’s a contextual deep link! Contextual deep links leverage user attributes, preferences, or behavior to tailor the in-app experience. With personalized deep-linking apps, user engagement and retention rates can experience a great boost. History and evolution of mobile app deep linking The concept of deep linking first gained attention around 2006 when it was used to describe providing search engines with visibility into web pages beyond the home page.   However, during that time, deep linking was also associated with controversies related to copyright infringement and hotlinking, which linked directly to files hosted by third parties without permission. The true potential of deep linking in the context of mobile apps began to emerge with the release of iPhone OS 2 (now iOS) by Apple in 2008. Developers could build applications for the iPhone and submit them to the new App Store.   Initially, deep linking was primarily used to map web page items to the same item within an app. For example, if a user was reading an article on a website, deep linking enabled them to open the same article directly in the corresponding app. Companies with extensive content, such as news apps, found deep linking particularly useful. They could seamlessly transition users from web content to the app, improving the user experience and providing a more efficient way to access specific articles or information.   This was especially valuable for apps with a large amount of content, as deep linking allowed users to bypass the need to manually navigate through various options. In 2012, Google+ introduced app-to-app deep linking, showcasing the potential for seamless connections between different apps.   For instance, if a user clicked on a deep link in an email, it could open a specific section within a relevant app. This demonstrated the benefits of deep linking for app-to-app experiences and hinted at the possibilities for enhanced functionality and user engagement. Between 2013 and 2014, the rise of mobile commerce created a strong need for better tools to drive users through the conversion funnel. Deep linking played a crucial role in this context.   Brands and marketers started redirecting users from marketing emails and web ads to specific content within their mobile apps using deep links. This approach provided a higher likelihood of conversion and a better user experience compared to traditional mobile web interactions. For example,... --- Several users fail to renew their subscriptions? This might be the reason. Building a great app and getting users is only part of the job. Sometimes, you face small issues that can create big problems, like losing money. One common problem for iOS apps is something called SKErrorDomain Error 4. Because this issue happens a lot, we decided to write a simple guide to help. We already have guides about similar errors, like Error 0 and Error 2, and now it's time for the next one. Here we'll give you some easy-to-follow steps to fix the issue quickly so you can keep your users happy and prevent any loss of potential revenue. Let's dive in. What is SKErrorDomain Code=4 The SKErrorDomain Code=4 error is something you might encounter while developing iOS applications with in-app purchases and subscriptions. It is associated with the "clientInvalid" error, indicating that the client (user, Apple ID, and/or device) is not allowed to make a purchase. This error might occur in a number of situations. For example, it may happen if the user has parental controls enabled on their device that prohibits in-app purchases, or if the user is not authorized to make purchases (e. g. , due to an invalid payment method or a restriction placed by the App Store). The SKErrorDomain Code=4 is part of a suite of errors thrown by the StoreKit framework. Each one provides crucial information to help you troubleshoot issues with in-app purchases. What causes SKErrorDomain Code=4 As we just mentioned, the key reason behind the error is the lack of authorization (clientInvalid). This usually relates to the client's eligibility to perform transactions. Here are the most common reasons: User restrictions. The error can occur if the user’s guardians or parents have implemented certain restrictions on their device, such as parental controls that prohibit in-app purchases.   Invalid payment method. This usually means an expired credit card, a one-usual digital (virtual) debit card, or a banking account from a country different from the one used in the App Store.   App Store issues. Sometimes, restrictions placed by the App Store, like region-specific limitations or account-level issues, can cause the error.   Device compatibility. The error can also happen if the device running the app does not meet the requirements or compatibility standards for making purchases. Not signed into the App Store. The user must be logged in on their device to make a purchase. When this error occurs, it's critical to provide the user with information about the issue and guide them toward the appropriate corrective actions. Troubleshooting the SKErrorDomain Code=4 Error  Here's a step-by-step guide on how to potentially resolve this issue: Confirm user restrictions. Ask the user to verify whether they have disabled any restrictions on their device that might prevent in-app purchases, such as parental controls. If not, prepare a separate screen with instructions on how to disable (or ask to disable) the restrictions. Check payment method. Request the user to confirm that their payment method is valid and accepted by the App Store. If it's not, they should update their payment method. Verify App Store connection. Make sure the user is signed into the App Store. If they aren't, ask them to sign in and then retry the transaction. Inspect device compatibility. Ensure that the device meets the requirements for making purchases, like the latest version of iOS and a reliable connection. Check for App Store issues. If the error persists, the issue might be related to the App Store. In this case, it makes sense to contact Apple Support for further assistance. Don't worry: we show how later in this guide. Remember, each app and user situation is unique, so what works in one case might not work in another. If none of the above steps resolves the issue, it might be worth investigating further or contacting the user directly for specific details. And when all else fails, talk to Apple! Submitting a bug report to Apple As a last resort and after trying out everything else in your power, you can contact Apple to see if they can aid you with resolving the issue. Here’s how to do it. Go to the Feedback Assistant page or open the Feedback Assistant app on your Mac. Sign in using the Apple ID that you used to join the Developer Program. Click the "New Feedback" button to report a new issue. A form will appear. Here, give as many details as possible about the problem. This should include the exact error (SKErrorDomain Error 4 in this case), whether it's happening in the sandbox or production environment, how to reproduce the error, what you expected to happen, what actually happened, and any useful code snippets or logs. If you have any screenshots or video recordings showing the problem, attach them to the report. Once you're happy with your report and have double-checked everything, click "Submit". Apple will review your report thoroughly and often provide feedback or possible fixes. This can take up to several days, but the answer is usually worth it. Conclusion The SKErrorDomain Code=4 error is potentially disruptive yet still solvable. Understanding its causes, such as user restrictions or payment method issues, is the first step towards dealing with it. Troubleshoot it, get your app back on track swiftly, and minimize disruption to your users and your business. Of course, your app's reliability is vital for a seamless user experience. By resolving the SKErrorDomain Code=4 error, you can ensure your app remains reliable, keeping your customers satisfied. And when everything else is running smoothly, the logical next step is to work on the efficiency and effectiveness of your monetization strategies with Adapty. --- Payments keep getting canceled? Make sure it's not the StoreKit acting out. Sometimes, even creating the perfect app and acquiring users is not enough. The "last mile" issues can rob you of your potential revenue, one of them being iOS errors like SKErrorDomain Error 2. It's more common than you might think — so common, in fact, that we decided to write a short guide about it.   Here, we're going to dive deep into what this error is all about. We'll also share some foolproof solutions to help you fix it in no time. The goal is to enhance your app's reliability, boost user satisfaction, and eliminate any revenue drainers. Let's get started. What is SKErrorDomain Code=2 According to the Apple Developer site, SKError 2 is also known as SKError. paymentCancelled. It occurs when a person gets to the payment pop-up (that is, is asked to confirm a purchase or a subscription), and then declines it. Technically, it's not an error, as the cancellation is triggered by the user: even though, of course, we’d like the process to be as smooth as possible. This error can also pop up regardless of user actions and be caused by an outside factor, and this article covers explicitly such cases. What can cause SKErrorDomain Code=2 There are several potential triggers for this confounding error, the main two being network issues and StoreKit configurations. Putting it in layman’s terms, the error is mainly caused either by problems in communication between the user, the app, and the Store, or no communication at all. Network issues Network issues can be a significant catalyst for the SKErrorDomain Code=2. This is because the StoreKit framework heavily relies on consistent network connectivity with little to no lag to perform transactions effectively. Unstable or unreliable connections — for example, using a hotspot or a free VPN — can interfere with the transmission of data.   StoreKit configuration The StoreKit framework is the core engine driving your in-app transactions, and any mistake in this setup can readily lead to the SKErrorDomain Code=2 error. An incorrectly defined product ID, for example, can trigger the error. Product IDs should match precisely with those defined in App Store Connect; any discrepancy can create conflicts, leading to transaction failures. Moreover, if a transaction is not correctly processed, finalized, or saved in your app, StoreKit might misinterpret the state, resulting in this error.   How to troubleshoot SKErrorDomain Error 2 Once you've run into the issue, it makes sense to go through every detail of the process to make sure everything is good on your part. For SKErrorDomain Error 2, the process is mostly the same for the sandbox and product environments, with a couple of minor differences. Here’s what you should do while in the sandbox environment: Review StoreKit configuration. Begin by checking your app's StoreKit configuration. Ensure all product IDs in your code match the ones set in App Store Connect. Misconfigured or mismatched IDs often result in errors in the sandbox environment. Examine transaction handling. StoreKit handles a sequence of states for each transaction. Each state requires specific handling in your code, and proper handling of these states can eliminate errors. Review your transaction handling code for completeness and accuracy. Ensure you're finishing transactions upon success/failure. As we've explained before, the general cause of the error occurs at 'the last mile'. Make sure each payment, even a canceled one, finishes 'properly' in your code. Test network stability. Although it's a sandbox environment, network conditions still matter. Verify that your testing device has a stable and strong internet connection.   Use Apple's StoreKit testing tools. Apple provides specific tools to test StoreKit locally in Xcode and the sandbox. These tools allow you to simulate transactions, helping you to identify potential errors. Check OS and app versions. We know this one is obvious, but still: make sure the app and iOS versions are up-to-date. Each new iOS update, even a minor one, brings some new terms and rules to the StoreKit, so you would benefit from having the latest one. With real-life scenarios, you get some extra steps — and extra sources of information. Monitor user feedback. Users can often provide the first indication of an issue. Pay close attention to app reviews, support requests, and social media channels where users might report problems.   Analyze error logs. Use your app's error logging system to gather information about where and when the error occurs. Troubleshooting becomes that much easier where you can pinpoint a specific page or an SKU that causes the problem. Make sure the IAP hasn’t been purchased before. One of the key real-life causes reported by the developers occurred when a user tried to purchase an already active subscription. Always have the 'Restore Purchases' button at the ready and ask users to try it if they run into any problems. How to submit a bug report We’ve already covered this part in our previous article of this cycle about a similar error, Error=0. Here’s the rundown: Access either the Feedback Assistant website or its app on your Mac. Sign in with the Apple ID linked to your Developer Program membership. Click the "New Feedback" button. Make sure to fill out the feedback form with as much detailed information as you can. The specific error at hand (SKErrorDomain Error 2), during what process the error occurs, and any important pieces of code or log extracts. Attach any relevant screenshots or data, that can provide more context about the problem. Once you've filled out the form, review your submission for any errors or missing information, then hit "Submit". Apple will proceed to examine your feedback. This may take several days, but it’s often rewarded with a potential resolution. How to prevent SKErrorDomain Code=2 Implementing preventive measures and following best practices can significantly reduce the likelihood of encountering the SKErrorDomain Code=2 error in future projects. Here are some strategies to consider: Test StoreKit configuration. Test your StoreKit configuration before deploying your app. Make sure that all product IDs match those in App Store Connect and that all transactions process... --- In the 11th issue of the paywall newsletter, you’ll find a paywall by Speech Blubs that ‘absolutely nails the paywall design’ along with some not-as-perfect paywalls that could win by adding more social proof, removing unnecessary information, and adding images. In the 11th issue of the paywall newsletter, you'll find a paywall by Speech Blubs that 'absolutely nails the paywall design' along with some not-as-perfect paywalls that could win by adding more social proof, removing unnecessary information, and adding images. Paywalls of the issue are commented by... ... Volkan Taban, Co-founder and Growth Lead for Gamester Kids. Speech Blubs absolutely nails it Speech Blubs absolutely nails the main principles for a great paywall design with: A statement of a clear value proposition Appealing imagery and sliders Clean, short, and effective copywriting Clarity, a great layout, strong contrast, and a soothing color palette Social, corporate, and academic proof I especially liked the idea of using a "free trial toggle" as a limited-time trial offer trigger after the second visit. It creates a great urgency to start the trial. (If I were in their shoes, I would probably also test limited-time price discounts. ) Here's what I would test more to see if I can improve conversion (I'm sure the talented Speech Blubs team has already tested all these ideas, but hey, this is my take ? ): Presenting two subscription options or at least a way to see the yearly subscription option. Alternative CTA text such as "Start Your Free Week" since the "trial" keyword is mentioned twice both in the button and above. (I sincerely understand the concern for support and reviews ? ) Lastly, a close button for the paywall (I'm very curious about the drop-off rate of the current paywall) and limited freemium content before pushing for monetization to effectively demonstrate the value proposition. Speech Blubs Sleeptot motivates users with a sleeping baby The paywall appears immediately after launching the app, without any onboarding process. This means that the lack of a clear value proposition and benefits can make it difficult for the users to make a purchase decision. While the imagery of a little sleeping cutie melts my heart and showcases the main benefit of the app, I would still suggest testing the addition of more benefits and social proof to improve conversion. The overall design and color scheme are appealing, but there are some dark patterns that can be improved for a better user experience. Here are some suggestions: The price of the annual subscription should be clearly stated for better transparency and user experience. The current design could be rejected during App Store reviews for being misleading. The main purchase button is labeled "Continue", which goes against App Store review guidelines and may lead to rejection during the review process. The close button is difficult to see with the current design and could benefit from better contrast. The "Restore purchase" option is placed too high on the screen and may be better suited to being located under the main subscription button for a better flow. Sleeptot Face Exercise made a too-long list of benefits This paywall seems to be a variation of the classic "Calm" paywall. While it includes the value proposition and features of the app, as well as options to log in or restore purchases and a close function, all of these are listed as bullet points. I would suggest focusing on the benefits rather than trying to include all the content in bullet points and shortening the text to make it more readable. With so many bullet points and so much content, it may be hard to convince users. Additionally, I recommend implementing the following changes: Adding a clear and visible close button instead of a bullet point. Using a larger font size for the pricing and free trial lengths. Presenting different subscription options together. Testing alternative button text and color to improve conversion. Face Exercises Quizlet's discount wants to be highlighted The Blinkist-style paywall has become the industry standard and is known to increase conversion with transparency and clear messaging. I like the clear design; however, the lack of imagery made this paywall less attractive to me, especially for a gamified learning application. During the onboarding, right before the paywall, there is a popup stating the value proposition with appealing imagery, but I would suggest testing it on the paywall itself. Plus, I found the size of the main button a bit smaller compared to the pricing options on top. At first glance, the focus is mostly on the pricing options rather than the main action button placed below. So, testing with a bigger button size and color and text variations might offer a better conversion, I suppose. My last two cents would be on emphasizing the discount for the yearly subscription option. There is a huge discount for the yearly plan, but it's not emphasized here. "Best Value" is not very convincing compared to "60% Discount". Quizlet Cardi Mate can try a longer trial Here's yet another example of a Blinkist-style paywall. In this example, the developer chose a 3-day trial option and presented it in the Blinkist way. However, in this case, the Day 2 trial reminder might be a bit late, given that the Appstore asks users to cancel the trial before the last 24 hours. According to our tests, there is also a significant conversion change between 3 and 7-day trial lengths, so I would suggest testing the 7-day trial option as well for a better user experience and higher conversion. The main focus of the paywall is on the free trial process, but the value proposition and benefits are not clearly highlighted. In the first bullet, it's written that "Start your full access to all useful features," but what are those useful features? The top part of the paywall can be utilized better. I liked the social proof "Join 2 million users," but still, the value proposition is a bit weak. I would suggest using the top area for value proposition and benefits. They also used testimonials, but again, the testimonial text does not reveal much in terms of what to expect from the app. Lastly, the close button placed on the top left of the paywall with low-contrast design is a bit misleading.... --- Explore the top mobile app publishers of 2023 split by categories. The world of mobile app development is constantly in motion, and there’s always plenty of competition to create the next big thing in apps. With millions of new applications being released each year, app creators will want a strong developer behind a project. Mobile app publishers specialize in helping developers bring their ideas to life. And not only that but also gain visibility on major app stores such as Google Play and the Apple App Store. In this article, we'll take a look at the top mobile app publishers to watch out for in 2024. From industry giants to startups, these publishers have proven to be true leaders in the world of mobile app development. While the rankings of mobile app publishers may differ slightly between the iOS and Android stores, we'll be focusing on those that are commonly recognized as leaders in both markets. Understanding mobile app publishers Mobile app publishers are companies that work to bring app developers’ ideas to market. They provide a range of services, from development and design to marketing and distribution. Essentially, they act as the middlemen between developers and mobile app stores. Publishers take on many responsibilities when it comes to mobile app development. One of their primary roles is to help developers create an app that meets industry standards and user expectations. This includes providing guidance on user interface design, functionality, and performance. Publishers might also provide technical support throughout the development process and help ensure that the app is compatible with a range of devices. Once an app is ready for release, publishers take on the responsibility of marketing and promoting it to potential users. They might create engaging ad campaigns, earn positive reviews and ratings, and use social media platforms to build buzz around the app. Top 10 mobile app publishers in 2024 New apps are entering the market every day, faster than you can download them. What makes these top 10 overall mobile app publishers stand out is their ability to consistently create high-quality, engaging apps that resonate with users.   Apple and Google remain at the forefront of the industry due to their massive number of apps available. But they also have made innovative leaps in areas like augmented reality and artificial intelligence. Meanwhile, emerging startups like Voodoo and Supersonic have made strides in mobile gaming and aren’t slowing down anytime soon. Google - Known for its wide range of popular apps like YouTube, Maps, and Gmail. Meta - Boasts a range of successful apps such as Messenger, WhatsApp, and Instagram. ByteDance - The parent company behind TikTok, quickly becoming one of the biggest players in mobile app publishing thanks to its addictive short video app. Microsoft - Established tech giant offering a range of popular apps such as Microsoft Office and OneDrive. Voodoo - Known for its addictive and casual mobile games like Helix Jump and Paper. io. Supersonic Studios - Game development studio that owns hyper-casual games like Join Clash 3D and Soap Cutting. Temu - Startup that specializes in developing AI-powered health and wellness apps, including meditation app Aura and workout app FitOn. Disney - Entertainment giant with popular games like Disney Magic Kingdoms and Emoji Blitz, and streaming service Disney+. Amazon - E-commerce giant that has expanded into the mobile app industry with successful shopping and streaming apps. Uber Technologies - Revolutionizing the transportation industry with their ride-hailing app and food delivery app. Top 10 gaming app publishers in 2024 Mobile gaming has exploded in popularity over the past few years, with millions of users worldwide now enjoying their favorite games on smartphones and tablets. 1. 7 million in 2022, to be exact! These companies are leading the way when it comes to creating engaging and addictive games that keep players coming back for more. Tencent - Company behind some of the most popular mobile games, including PUBG Mobile and Honor of Kings. Voodoo - Known for its addictive and casual mobile games like Helix Jump and Paper. io. Supersonic Studios - Game development studio releasing easy-to-play games like Join Clash 3D and Soap Cutting.   Zynga - Creator of Words With Friends and FarmVille, and new titles such as Merge Dragons! and Harry Potter: Puzzles & Spells. Playrix - Thanks to their popular puzzle games Gardenscapes and Homescapes, Playrix has become one of the top three mobile gaming companies worldwide. HOMA Games - Gaming startup that specializes in developing simple games in-house like Tower Color and Idle World, in partnership with 200+ studios around the globe. Disney - The entertainment giant leverages characters and franchises to create popular games like Disney Magic Kingdoms and Emoji Blitz. Say Games - With 105 diverse games from casual game Blend It 3D to fast-paced cartoon shooter Agent Action, their wide range of genres make them a standout company. Crazy Labs - Specializes in creating fun, addictive games with simple mechanics like Soap Cutting and Tie Dye. Popcore - Their “lean creativity” approach has led them to create big, joyful hits such as Parking Jam and Pull the Pin. Top 10 fintech app publishers in 2024 We’re no longer looking at banking as a tedious, mundane task, thanks to the rise of fintech apps that are changing the way we manage our money. These fintech app publishers are redefining the way we approach money management, making it easier and more accessible for people around the world.   Whether you're looking to invest in stocks or cryptocurrencies, manage your expenses and savings, or simply make payments on the go, there is a fintech app out there that can help. These companies have proven their knack for creating innovative and user-friendly apps that are giving the financial industry a fresh new vibe. 1. Google - Known for its digital wallet and online payment system Google Pay makes payments in-store, online, and peer-to-peer transactions. 2. Square - Popular for its point-of-sale hardware, but also offers a range of mobile payment solutions with its Cash App and Square Pay apps. 3.... --- Find out how to troubleshoot and fix SKErrorDomain Error 0 in iOS applications. In iOS app development, errors are more common than one would like. The "SKErrorDomain Error 0" is among the most unpleasant: it doesn't break the app completely, but messes with the in-app purchases and subscriptions, leaving you without the potential profits. In this guide, we discuss what can cause the error, how to possibly solve it, and prevent it from recurring. For both seasoned developers and beginners, this article is your comprehensive guide to understanding and handling the SKErrorDomain Error 0. The causes of SKErrorDomain Error 0 A common culprit is network-related issues: intermittent connectivity or weak signals can trigger this error. In most cases, however, the response is too slow from Apple's side.   Another go-to reason is the errors in the StoreKit configuration, like an incorrect setup of in-app purchases or issues with the sandbox testing environment. Let's take a closer look. Network issues Unstable or weak internet connections can interfere with the smooth operation of StoreKit transactions and cause disruptions when an app tries to communicate with Apple's servers for in-app purchases or subscriptions. For instance, if the device loses internet connection during a transaction, or if the connection isn't strong enough to facilitate data exchange, the system may throw a SKErrorDomain Error 0. Run the app on several devices and networks to rule out this possibility, and check out Apple's System Status. StoreKit configuration issues StoreKit is Apple's framework for handling in-app purchases and subscriptions, and if set up correctly, it can cause several issues. A common mistake is an incorrect setup of in-app purchases: the product identifiers in your code don't match those set up in App Store Connect. Another potential pitfall lies within the sandbox testing environment. If the testing account isn't properly set up or if there's a mismatch between the environment and the app settings, this can also result in an error. Issues with receipt validation or handling transaction states can also lead to errors. Careful and correct configuration of StoreKit is crucial to prevent the SKErrorDomain Error 0 and ensure seamless in-app transactions. Troubleshooting SKErrorDomain Error 0 Troubleshooting the error involves methodically addressing its potential causes: Check network connectivity. Ensure that the device has a stable and strong internet connection: if possible, test our several devices and networks. Review StoreKit configuration. Verify the product identifiers in your code match those set up in App Store Connect. Make sure your in-app purchases are correctly configured. Check receipts validation and transaction states. Both the validation process and transaction states should be titled and working correctly.   Test in sandbox environment. Confirm that your sandbox testing account is properly set up and there's no mismatch between the environment and app settings. Test your in-app purchases in this environment to check if they are working as expected. Speaking of which, these are the steps you should follow in both Sandbox and Production environments. SKErrorDomain Error 0 in sandbox and production Verify your sandbox account. Ensure that your sandbox tester account is correctly set up in App Store Connect. Sign out of any real Apple ID accounts in your device settings and then, from within the app, attempt an in-app purchase. You'll be prompted to sign in, and you should use your sandbox account credentials.   Check product identifiers. They should match those in your code. An inconsistency here can cause the SKErrorDomain Error 0. Review transaction states. Make sure your code handles all possible transaction states, including purchased, failed, restored, and deferred. Incorrect handling of these states can lead to errors. Don't mix sandbox and production. Receipt validation can fail if it's checking against the production server while testing in the sandbox environment. The validation should occur against the sandbox server when testing, and against production in real-life. Reset test environment. If you're still encountering issues, try resetting your test environment. This can include deleting and reinstalling the app, signing out of the sandbox account, and then repeating the testing process. Verify product IDs. Confirm that the product identifiers used within your app match exactly those defined in App Store Connect. Any discrepancy here can lead to errors. Consult Apple's documentation. Apple provides extensive documentation for StoreKit. Refer to it if you're unsure about any configurations or processes. By following these steps, you can mitigate and potentially resolve the SKErrorDomain Error 0 in the production environment, ensuring a seamless experience for the end users. If the problem persists, consider reaching out to Apple's developer support: they can provide further assistance and possibly identify any hidden issues. Here's how to file a bug report. Submitting a bug report to Apple Open the Feedback Assistant page or the Feedback Assistant app on your Mac. Log in with your Apple ID associated with your Developer Program membership. Click on the "New Feedback" button. In the form that appears, provide as much detailed information as you can about the issue. Include the specific error (in this case, SKErrorDomain Error 0), the environment (sandbox or production), steps to reproduce the error, expected and actual results, and any relevant code snippets or logs. Attach any necessary files, like screenshots or screen recordings, that can further illustrate the issue. Review your report for completeness and accuracy, then click "Submit". Apple will investigate your report and, in many cases, will respond with further information or potential solutions. This can take up to several days, but the answer is usually worth it. Preventing SKErrorDomain Error 0 Understanding how to prevent errors is as important as knowing how to fix them. So, let's explore the proactive strategies to keep SKErrorDomain Error 0 at bay. Configure StoreKit properly StoreKit configuration is the bedrock of in-app purchases and subscriptions in iOS applications, and its correct setup is instrumental in preventing the SKErrorDomain Error 0. Ensuring that product identifiers match your code and App Store Connect is a fundamental starting point. Misalignments here can trigger the error, disrupting the app's operation.   Equally important is the accurate handling of transaction states. Your code should account for all possible... --- Check out the results of our diligent June work which consists of several major updates and a few useful fixes. Despite summer being the time of vacation and relaxation for most people, we’re proud to share the results of our diligent June work which consists of several major updates and a few useful fixes. LTV chart The biggest and most anticipated update of the month is the introduction of a brand-new LTV chart.   The main purpose of this chart is to provide information on the average revenue generated per each paying customer. It works with the app data gathered with the help of our SDK and in-app events. LTV is calculated using the total revenue generated from each customer cohort, minus refunds.   We developed the LTV chart to address important questions about your app's revenue and customer behavior. It helps:  Determine the total revenue brought in by each customer cohort throughout their lifetime with your app. Identify the point in time when a customer group becomes profitable.   Optimize your app's marketing and acquisition strategies to attract valuable customers with high LTV. Estimate the time required to recover the investment made in acquiring new customers. The data can be segmented by country, attribution, and other variables, giving you a more granular understanding of your customer base. This LTV chart is closely tied with the cohorts, which enables you to not only sort the view by renewals or by days, but also clearly see the detailed data for actual cohorts, grouped by day, week, month, or year.   Find out more information about the calculations and working process of the LTV panel in our docs. Paywall builder for Flutter and React Native We’re happy to announce that our paywall builder now supports apps created with Flutter and React Native! To refresh a little, Adapty’s paywall builder is a visual constructor that enables you to design and implement native paywalls in a couple of minutes – with no designer or developer involved. Check out our fresh tutorial on how to easily create paywalls with the paywall builder to learn more about this handy instrument. Although it requires a short initial integration of Adapty UI, once it’s done, the editor can be operated by just one person who can create as many paywalls as they want and test them right away. Come to our Git Hub to find the latest versions of Adapty UI for Flutter and React Native. Observer mode for StoreKit 2 Another pleasant update comes for the Observer mode as it now fully works with StoreKit 2. Back in the day, the Observer mode didn’t work for our older SDK if the client was using StoreKit 2, but it’s not an issue anymore. To provide more context, the Observer mode enables you to use Adapty SDK in a limited way, but at the same time providing you with full analytics capabilities, including integrations with attribution systems, advanced Analytics, and the Profiles CRM. It’s easy to integrate and can be used alongside some other purchase infrastructure you may be using. So, if you’re new to Adapty, check how to set up the Observer mode here. A few minor, yet useful fixes Amplitude integration now supports EU data centers. A bug was fixed for the Firebase integration involving an incorrect “value” expression. After the fix, the "value" field should start populating for the new events. Depending on the status of the "Report proceeds" checkbox, the "value" field will contain either proceeds or price. This will be expressed either in USD or in the local currency, as determined by the state of the "Report user's currency" checkbox. A new caching mechanism was added to the analytics system that would cache charts and analytics on the client’s side. This should help improve the speed of the analytics chart and provide better caching. We’re also looking for a Product Lead Adapty was created as a product from developers for developers. Having 3 significant components in its core (5 SDKs, API, and an admin panel) makes Adapty a truly professional tool. We’ve designed the product to be easy and intuitive to handle, having hidden all the complex implementations under the hood. Our customer base expanded rapidly over the last 12 months, which leads us to grow our features. We continue to make sure our customers are happy with our product and motivate them to use its full potential. That’s why we’re looking for a strong Product Lead who can help us build the best solution for our customers. If you feel interested in growing an in-app purchase infrastructure, subscription BI, and paywall builder as one product, we’re eagerly waiting for your response. --- Learn how you can use our accurate prediction model to find out what revenue and LTV your app will have in several months! Building a strong monetization strategy for your subscription-based app is vital to able to get stable recurring revenue. But it’s always a double-edged sword: to make sure that your strategy is working you need to have enough data on your revenue and lifetime value (LTV) scattered across several renewal periods, but there’s no way of gathering this data unless you just simply choose a strategy and wait. But what if there is? Imagine how great it would be to know how much money your app is going to generate in the future without having to actually wait for it to happen. Well, we’re glad to make this come true with a new prediction feature of Adapty’s cohort analysis. With the help of machine learning, we’ve managed to create an accurate prediction model that you can use to find out what revenue and LTV your user cohorts will demonstrate in 3, 6, 9, and 12 months! Let’s have a closer look at this game-changing feature. What’s the use of the revenue and LTV predictions? First of all, we should note that the prediction feature is not a separate dashboard but an important addition to the useful and informative cohort analysis tool. To quickly refresh, Adapty Cohorts enables you to understand how much money you collect from a specific cohort of users throughout several renewal periods.   The Cohorts dashboard in Adapty This helps to clearly see what day a cohort should pay off and make assumptions on how much money you can spend on user acquisition or how long it should take to recoup the ad spend. So, in a way, our cohort analysis already deals with predictions, but we’ve made a bigger step. The Predictions are designed to let you see much further while having not much real data at the moment. Such an approach opens a new range of possibilities: Find out the predicted LTV of your user cohorts. Learn which cohorts are likely to generate the highest revenue in the future. See how much you can invest by being aware of the predicted payoff. Generally make strategic decisions much quicker and with less hesitation. Overall, the prediction feature is added to help you easier make data-driven decisions and develop a much more powerful financial strategy. Let’s see how this actually works. How to work with predictions in Adapty As we mentioned above, predictions are an add-on to the cohort analysis in Adapty. It means they are natively integrated into the dashboard and do not require any additional actions from your side. Simply go to the Analytics tab and select the Cohorts dashboard. Pay attention to the right side of the dashboard – you’ll notice two new columns titled pRevenue (predicted revenue) and pLTV (predicted lifetime value). By clicking the drop-down menu above, you may select the desired prediction period, which can be 3, 6, 9, or 12 months. It’s that easy. pRevenue shows the estimated total revenue a cohort of subscribers is expected to generate during the selected time frame after cohort creation, while pLTV shows the estimated lifetime value of each user in the selected cohort. To give you even more flexibility, Adapty allows you to filter predicted revenue and LTV by product. While the default predictions are based on all purchase data, filtering by product helps you assess individual product performance and its impact on overall revenue and LTV. Please note that our current prediction model has limitations: you can filter predicted LTV by product, duration, and dates, but it doesn’t calculate proceeds. However, there may be a situation where the fields of the prediction columns will turn out empty. This may happen because of a small cohort size or an unpopular subscription type, but more often it’s the result of having not enough data for the prediction model to start working. Predictions are generated within 1-3 weeks of creating a cohort to allow for adequate data collection and analysis. For instance, if a cohort is created on January 1st, predictions will be available sometime between January 15th and January 29th. Once the initial predictions are generated, they are updated daily using the most recent transactional data for the cohort. This frequent updating ensures that the predictions stay up to date and reflect the cohort's latest behavior. Since we touched on the technical aspects of the model, let’s talk a little more about what it’s based on and how it actually functions. Prediction model If you wonder what’s under the hood of our new feature and if the predictions it makes can be trusted, let’s take a look at it from the technical perspective. Our prediction model is built using gradient boosting – a powerful machine-learning technique that combines the predictions of several weak models to make accurate predictions. It works in a step-by-step manner, where each new model corrects the mistakes made by the previous models. Error reduction through training progression. Source The model is trained using data from all of your apps. However, to provide more accurate predictions, the model refines and customizes the predicted values based on the specific behavior patterns observed in cohorts associated with each individual app. This post-correction algorithm considers each app's unique characteristics, resulting in improved accuracy. By analyzing transaction data from your apps, the model can predict the lifetime value of users one year after their profile is created. It's important to note that the data used for the model is completely anonymized. The Mean Absolute Percentage Error (MAPE) of the model is slightly below 10%, which demonstrates a high level of accuracy. However, it's worth mentioning that the model currently works for subscription-based products and doesn’t support lifetime products and one-time purchases. Additionally, the accuracy of the LTV predictions may be lower for new apps with limited data and for apps that have experienced significant changes in user traffic. To learn more about the technical aspects of the model, check out our documentation. Conclusion Adapty continues to make working with subscriptions easier and more profitable. Getting access... --- A well-executed ASO strategy can significantly improve your product's discoverability, customer base, and ultimately its success. Let's see how! Congratulations! You finally published your app in the App Store. Now what? Paid traffic is getting more expensive, and you'd love to have some organic users stumble into your app cost-free. That's where App Store Optimization, or ASO, comes in. ASO is about improving an app's visibility in stores like Google Play or App Store to increase its discoverability and the number of downloads. Think of it like SEO: in its core, you also have to mine relevant keywords, search trends, and customer behavior data to make sure your app is visible to more people. App Store Optimization metrics often include keyword rankings, conversion rates, number of downloads, as well as user reviews, ratings, and retention rates. With these datasets, publishers can understand how to measure their app's performance and user satisfaction. With the market becoming increasingly competitive, a well-executed ASO strategy backed by meticulous tracking of app KPI metrics can significantly improve your product's discoverability, customer base, and ultimately its success. That's why we prepared this ASO guide to get you up to speed with the basics and the more important details of the trade. We will go over the key performance factors of an app store presence, like store ranking and keyword tracking, as well as some user conversion and retention metrics. By finishing it off with some evaluation tools and frameworks, you will have a full picture of how ASO analytics work, and how you can quickly launch them. Source Key ASO metrics and KPIs As a solution built to boost your monetization strategy, Adapty is all about data-driven decisions. So, since ASO is about constant tracking and improvement of several app KPI metrics, we should start by learning what those are. App Store rankings. Your position in the stores is crucial: users will more likely discover and download your app if it's on the top of the page. Again, the SEO comparison is useful: most of us stop at the first page of the search results, and these 10 websites grab most of the organic traffic. Keyword rankings refer to the position your app holds when users search for specific keywords in the Store. For example, if you have a workout tracker, you'd want it to rank highly for keywords like "fitness," "workout," and "exercise. " If your app is ranking high for relevant keywords (top 10, for instance), this indicates effective keyword optimization and increases chances of discoverability. Conversion rate is the percentage of users who download your app after seeing its store page. A high CR (≈20–40%) means your store page effectively shows the value of your app. Many things influence this metric, especially the screenshots, and videos. User retention. This metric measures how many users continue to use your app over time, after downloading it. This vital indicator signifies your product's value to users, and high user retention rates indicate good user satisfaction. A benchmark retention rate for 30 days is often around 20% but can vary widely by app type and market. User reviews and ratings. Real testimonials serve as a qualitative metric providing insight into user satisfaction and perception of your app. High ratings (4+ stars) positively influence conversion rates and App Store rankings, while reviews can offer invaluable feedback for improvement. Organic and inorganic downloads. These metrics help you understand how users discover your app, either through search (organic) or advertising (paid downloads). A healthy balance of both is ideal, as it indicates a well-rounded acquisition strategy. By tracking these app store optimization metrics, you can see the full picture of your ASO strategy, improve user acquisition and retention, and ultimately, boost its revenue. Adapty can assist with effective subscription analytics and price testing, making sure all your hard work literally pays off. Tracking App Store rankings Store rankings fundamentally impact your app's visibility, influencing how easily potential users can discover it. The higher it ranks, the more visibility and downloads it gets. That's why monitoring it is crucial to understand your app's position in the marketplace relative to competitors.   App Store ranking is also essential for tracking the success of your marketing campaigns. Fluctuations in rankings are indicative of user behavior reacting to updates you've made. Think of it as a bird in the canary that signals upcoming changes in downloads and revenue. Factors that influence app rankings and tools to track them Since the app rankings are the ultimate indicator of the whole ASO strategy, the factors that influence your position in the ranks and search results are pretty much the same as we have discussed above. Most of them are about how satisfied the users are using your product.   Conversion rate shows how transparent and effective your store page is at exciting people into downloading your app. But it's not only about the share of downloads — their number is also the key indicator of quality. Be careful to bring a lot of low-quality traffic, though, because quick install-and-delete patterns can negatively affect your position in the stores.   Here is where user engagement comes in. It is another important factor that shows how often people use your app and how satisfied they are with it. Churn rate, for example, informs you about the percentage of people who leave your app, and tracking this metric helps you to detect inefficiencies in your retention strategies. Of course, there's no more direct way to learn what people think about your product than to read user reviews and ratings. That's why almost every app sooner or later asks you to rate them in the store, and you should consider employing a similar technique. Improving these factors involves a deep understanding of your users, continuous effort in maintaining and improving your product, and effectively using ASO techniques. Regular tracking and analysis of these metrics will help to gradually improve your app's ranking. Source Measuring keyword rankings Keywords play a pivotal role in App Store Optimization, functioning as the bridge between user search queries and your service. They're the crucial... --- Learn how to imporve your conversion to installs and make your App Store page more attractive. App Store screenshots play a critical role in the success of your mobile app. Since most users won't bother with a demo version, these images are the closest thing they have to trying out the service. And even if the user acquisition campaign featured some real app footage, the screenshots still have to provide important context. We've created this comprehensive guide to help developers and marketers optimize their online presence. Here we provide some useful design principles, specific examples, and some neat tips and lifehacks to make sure your app store screenshots stand out and lead to more downloads. Enjoy! Why are App Store screenshots important? What, snapping and uploading some screenshots is not enough? Not really. These images are an essential part of the App Store Optimization and should be able to do way more than just show off the app. Here are the key reasons you should care about them. First Impression. The screenshots are the first thing users see when browsing the App Store. High-quality, visually appealing images can significantly impact the way a user sees the app, increasing the likelihood that they will download it. Key Features. These pictures provide an opportunity for developers to highlight the main features of an application. By presenting a clear and concise snapshot of what the app offers, users can quickly determine if it meets their needs and preferences. App Store Ratings Boost. App Store algorithms take into account the app's downloads and user engagement. Attractive screenshots can contribute to increased downloads, which in turn, boosts the app's visibility and ranking in search results, lowering the CPI for both organic and paid sources. Demonstrate Ease of Use. Well-designed screenshots illustrate not just the user interface, but also what users can do with it. The images show how easy it is to use your application and what specific features people might enjoy trying. Competitive Advantage. With millions of apps available in various app stores, standing out from the crowd is crucial. Eye-catching screenshots can set the service apart from its competitors and ultimately lead to more downloads. AI Plant Identifier - Nature ID can boast visually attractive screenshots How App Store screenshots influence downloads In most cases, the visuals on the app page in the store are the last thing a user sees before deciding to download (or not) the application. They're an important visual peek that reveals the features, design, and user experience. These images are essential for making a strong impression and are analyzed and trusted by users more than the often misleading ads. Great screenshots boost an app's visibility and drive downloads and user loyalty. These are not about intriguing the person: rather, they are here to ensure that the application is worth downloading. Flashy colors might work for games, but clear images that convey the value of the benefits perform better for non-gaming apps. On the other hand, poorly designed or irrelevant images may scare users away. A cheap-looking presentation can harm your product's credibility, causing fewer downloads and lower rankings. That's why the app store screenshots deserve some attention. Design principles for effective App Store screenshots The screenshots convey the application's purpose, functionality, and unique features. When potential users browse the app store, they form an impression of your product based on its reviews, but mostly on its visual representation. That's why it's important to use images that are visually pleasing yet informative. Here are some basic rules of design you can't ignore. Rule of thirds The Rule of Thirds is a fundamental principle in photography, but it can be applied to app store screenshots as well. To implement this rule, divide the frame into nine equal parts by using two equally spaced horizontal and vertical lines. The idea is to place the most important elements of your visuals along these lines or at their intersections (four points in the center) to create a balanced and visually appealing composition.   The most obvious way to benefit from these rules is to place the iPhone mockup between the vertical lines and along the top horizontal line. This way the image has some air, and the upper half has enough space for a short copy or a call to action. Color and contrast Color and contrast make your app store screenshots stand out significantly. Use color schemes that are consistent with your app's branding to create a cohesive look and feel. If possible, try to coordinate the screenshots with the UA creatives as well, so that the user feels secure that he's downloading the correct app. Be cautious, however, when using overly bright or clashing colors: they can make the content hard to read and unappealing. Instead, opt for colors that are easy on the eyes and create a harmonious composition, like with a triad color composition. You can use tools like Adobe Color to create an eye-pleasing color palette. Calm made their screenshot panel all about color Feature order Your app's page in the app store is essentially the ultimate landing page. And just like any other, it should convey information using a clear and logical hierarchy. Visuals are the first thing the users see, together with the short description and price, so make sure the screenshot is not overloaded with unnecessary info. Keep the text and the feature list to a minimum. Another important point is the order of the images. At best, the users will see the first three app store screenshots, so showcase the features in order of their importance. The first two should show the most used or requested option, or new functionality added after an update. Some recommend putting the most important feature on the second image because it's in the center of the page.   Actual or simplified UI Using real, in-context screenshots is essential to show users the actual experience of using your app. Avoid using mockups or generic stock images, as they can make your app look inauthentic and unappealing. Instead, capture real screenshots of your app in action, showcasing... --- Learn how to create a winning app description with our expert guide – from catchy titles to optimized SEO. Let’s say you’re searching for an app in the App Store. How long will you spend to make a decision and why won’t it be more than a few seconds?   As users with an app market as big as the ocean, we’re overwhelmed with choices. Nobody wants to go into the nitty-gritty details of an app. Most of the time, you look at a few sentences of the description, the logo, and maybe a review or two to make a decision.   But as an app dev, this can be quite the issue. How do you retain your users to download the app you spent countless hours working on? The answer lies in writing a compelling app description.   App descriptions are made of many surface-level texts and graphics that attract users to view and possibly download your app. 5 main components make an app description, including: Title,  Subtitle,  Icon,  Screenshots,  4000-Character Description. That said, in this blog, I’m handing you the secret recipe to become a winning wordsmith. From writing a compelling app title to optimizing your app descriptions with ASO, let’s jump into how you can write your best app store description! Crafting a compelling app title and subtitle Repeat after me: less is more. Nobody wants to read a sentence for an app title! And most certainly, nobody will read past the first paragraph of your app description... And so, this makes the app title and subtitle one of the most crucial elements of an app description. The app title and subtitle play a crucial role in grabbing users' attention, conveying the app's purpose, and improving its discoverability.   A memorable, concise, and descriptive title can significantly impact an app's success. The good news is that you’ll see this realistically in all of the successful apps. For example, the app "Headspace: Meditation & Sleep" effectively communicates its purpose while being concise and descriptive.   The title mentions both meditation and sleep, indicating its focus areas. The subtitle further clarifies the app's offerings with the phrase "Guided meditation and mindfulness. " Here are some things to get you started on writing a catchy title and subtitle for your app: Reflect the app's purpose: Ensure the title aligns with the app's core function and communicates its value proposition. Use keywords that describe what the app offers. Keep it concise: Choose a title that is short and easy to remember. Avoid lengthy or complicated phrases that may confuse or bore potential users. Be descriptive: Include words or phrases that clearly describe the app's key features or benefits. This helps users understand what they can expect from the app. Consider branding: If possible, incorporate your brand name or a distinctive element into the title to improve brand recognition. At Adapty, we know the importance of A/B testing every step of the way so you’re on the most profitable path! So when you’re writing a title and subtitle, make sure to perform A/B testing by using gems like Google Optimize or Optimizely to ensure you’re on the right track! Designing an eye-catching app icon Do you remember the App Store's short description for your favorite app or its unique icon?   Did said app icon pop up in your head? It’s just as important to learn how to write an app store description as it is to create an attractive app icon. In fact, around 80% of app icons fail to generate clicks– and you certainly do not want to be part of that demographic! Your app icon is a vital element in driving downloads and fostering interactive user engagement. It’s the face of your brand and the first impression they will have of what your app is about. So, you want to give them an authentic and unique feel of what the app is truly about.   Tips for creating an icon Create an app icon that stands out from others with these hot tips: Keep the design clean, uncluttered, and easily recognizable even at smaller sizes. Aim for an icon that is distinctive and sets your app apart from competitors. Ensure the icon aligns with your brand's visual identity, using consistent colors, typography, and overall style. Design an icon that maintains clarity and impact when scaled down to smaller sizes. Check how your icon appears on different backgrounds to ensure it remains visible and distinct. Familiarize yourself with platform-specific design guidelines to ensure compliance and optimize visibility. Avoid trendy or overly complex designs that may quickly become outdated or lose relevance. Gather feedback and conduct A/B testing to refine your icon based on user preferences and performance. Learn how to design an app icon with best practices aligned with writing the best app descriptions for your app! Examples of successful app icons Instagram's camera outline against a vibrant gradient, Snapchat's ghost-shaped "Ghostface Chillah," Spotify's green circle with sound waves, Slack's hashtag symbol, and TikTok's music note on a gradient ring are all examples of successful app icons.   These icons effectively represent their brands and app functionalities. They are visually appealing, memorable, and instantly recognizable. And how do they relate to the app's use itself? Instagram's camera signifies photo sharing, Snapchat's ghost reflects its playful nature, Spotify's waves represent music streaming, Slack's hashtag symbolizes collaboration, and TikTok's music note showcases short-form music videos.   Showcasing your app with great screenshots When it comes to app descriptions, screenshots play a pivotal role in capturing users' attention and sparking their interest. These visual snapshots of your app provide a glimpse into its interface, functionality, and overall user experience.   Screenshots serve as a powerful tool to highlight key features, showcase the app's unique design, and demonstrate its usability. Users can visualize how your app looks and works, and whether it suits their preferences! By presenting an engaging visual narrative, you can effectively convey the core of your app and compel users to take the next step and hit that enticing "Download" button. Let’s be honest... who wants to go in blind-sighted?... --- We’ve collected the most important updates from the past WWDC 2023 regarding in-apps and subscriptions. Enjoy! When all the noise around the past WWDC 23 has gone down, it's time to calmly sort out all the updates related to mobile subscriptions. We’ve collected the most important moments, so you don’t have to go through tons of information. Enjoy! New merchandising views Creating native paywalls and adding in-apps will become easier with the addition of new views - ProductView, StoreView, and SubscriptionStoreView.  Let's break down what they shall be used for: ProductView - merchandises an individual in-app purchase. StoreView - merchandises a collection of in-app purchases. SubscriptionStoreView - merchandises a collection of auto-renewable subscription options in a subscription group (basically a paywall). A paywall example made with SubscriptionStoreView Thanks to the familiar features of the SwiftUI APIs, the integration of these views should be quite convenient. SubscriptionStoreView looks the most intriguing as it's basically a prepared paywall template that fetches and displays all the data for you in one line of code. Another good news is that such paywalls will work across all the Apple platforms, even WatchOS.   One paywall for iOS, iPadOS, and macOS But despite the fact that this will simplify and facilitate the process of creating a paywall, there are still a number of inconveniences, like limiting template customization and API availability only on devices with iOS 17+. As an alternative, you can consider Adapty's Paywall Builder, which allows you to personally design and build a native paywall for iOS and other platforms in a few minutes. StoreKit 2 transaction enhanced Within StoreKit 2, additional fields have been introduced to enhance transaction details. These new fields include: storefront - the region and unique identifier of the App Store storefront for the device. storefront country code - the three-letter code representing the country or region associated with the App Store storefront. reason - the field that provides valuable insights, indicating whether a purchase is user-initiated or a renewal. Moreover, RenewalInfo now incorporates the next renewal date. This addition proves highly beneficial in determining the upcoming billing cycle for the user. All these fields are introduced in Xcode 15 and are backward compatible with iOS 15 and 16. A new reason for StoreKit messages added A new message reason was introduced called billingIssue. This message is available starting in iOS 16. 4. The App Store sends this message when a subscription fails to renew because of a billing issue. StoreKit shows a Billing Problem sheet, and the user can resolve the issue without leaving the app. When the App Store fails to renew a subscription, the subscription goes into a Billing Retry state. More price points added Apple now allows you to choose a price tag for subscriptions and IAP from 900 options! More precisely, by default, only 800 points will be available, but upon request, Apple will be able to open access to another hundred. All of this applies to 44 currencies and 175 regions. Base region and base price introduced Applications now require a base region to be set for automatic pricing in other regions and currencies. For example, if you select the United States as your base region and set a base price, the App Store will automatically calculate prices for other regions based on exchange rates and taxes. Prices in the regions will be automatically updated as exchange rates and tax rates fluctuate. It will also be possible to schedule a change in the base price in advance. All this applies to paid applications and consumable in-apps. Scheduling the base price change automatically renews prices for other regions Product Page Optimization and Custom Product Pages improved There's been an update to App Store Connect that now allows you to run Product Page Optimization (PPO) tests even after you've submitted a new version of your app for publication. It is quite possible that such a change will increase the popularity of PPO among ASO specialists. In addition to PPO, the update also affected Custom Product Pages (CPP) – now you can create custom product pages and run PPO tests even for applications in pre-order status. Customization for promoted in-app purchases added A new Swift API for managing promoted in-app purchases was introduced. It allows customizing how your products are displayed locally on the current device. For example, if a user buys one of several products of yours, you can hide it, so the App Store doesn't show it again. Three states of promoted in-app purchases You can also manage the product order, or the subset of products featured, based on a current state in your app, for example, a level advancement in a game. You’ll also have the option to use the App Store promotion image in the product view in your app. The icon will appear alongside the in-app purchase in your app. App Store promotion image More possibilities for App Clips added It's worth mentioning that App Clips has also been updated: now the “mini-app” can weigh up to 50 MB, and can also be opened by a link inside other applications, including other apps that you own, providing more cross-selling opportunities. Evoking an App Clip from an app Guidelines and privacy renewed If you have ads in your app, you should pay attention to the new paragraph 2. 5. 18 of the App Review Guidelines. It states: “Apps that contain ads must also include the ability for users to report any inappropriate or age-inappropriate ads”. It's not yet very clear whether Apple will require a specific button in the app or something like that, but this needs to be monitored and taken into account during the development phase. This is likely due to security and privacy updates, where a lot of attention was paid to labeling inappropriate content. They also updated section 4. 1 on Copycats, where they stated: “Submitting apps which impersonate other apps or services is considered a violation of the Developer Code of Conduct and may result in removal from the Apple Developer Program”. This hints that Apple will spend even more time checking applications for... --- Paywall A/B testing in subscription-based apps is a key means of growing revenue – and we’ve just made it easier! Paywall A/B testing in subscription-based apps is a key means of growing revenue, improving conversions, and reducing bounce rates. And we’ve just made it easier!   We’re proud to present you with our highly anticipated paywall builder – an easy-to-use tool for creating native mobile app paywalls in a few clicks. Introduction Judging by the name, the main purpose of Adapty's paywall builder is creating mobile paywalls, and frankly, it is so. You’re now able to conveniently and rather quickly design a modern-style paywall on your own within Adapty’s admin panel and immediately show it in your app, with no releases or coding (well, almost no coding, but we’ll get to that later). However, there’s one more important use case for the paywall builder, as the ability to make a good-looking paywall in a couple of minutes significantly improves the A/B testing possibilities. Create an original paywall, make as many copies as you want, tweak them according to your hypotheses, and launch the tests. No need to wait for the designer to come up with a new mockup or a developer to apply the changes to the code. The whole process, from creating a paywall to launching a test, can now take about 10 minutes and be carried out by just one person!   In this article, we’ll talk in more detail about the general aspects of the paywall builder, learn what it can be used for, check on how to integrate it with your app, and end up with a step-by-step guide to designing your own paywall. Why do you need the paywall builder? Creating native paywalls in minutes We’ll never get tired of saying that the paywall is a crucial part of any subscription-based app. It’s the place where you ask the user to confide in your app and make a purchase, which is probably the most stressful point of the user journey. So in order to create a nice first impression you have to have a neat and comprehensible paywall.   Many inexperienced developers, tired after dealing with all the atrocities of integrating in-app purchases, create paywalls for their apps from the perspective of just making something a bit better than a placeholder. But in this case, no matter how good the app is, when the user faces a poorly designed and unclear page extorting their money – chances are you’ll never see them again. Having just a wall of text is not the best approach Adapty’s paywall builder helps solve this problem with style. We’ve checked dozens of the most popular and profitable apps and came up with a number of versatile templates split into 3 categories: Overlay – consisting of two layers, combining an image at the bottom and a layer showcasing your products or content on top. Transparent – offering a captivating visual experience by featuring a full-screen image that immediately grabs users' attention. Flat – reminiscent of a streamlined landing page, presenting all the essential elements in a single continuous layer. By choosing a template you already get a paywall that will look native and neat, but then you’ll be able to style it to your own liking, by manually changing the color scheme, uploading the background of your choice, adjusting button shapes, writing text for the feature list and buttons, adding subscription offers, and more. But most importantly – all this is done within one panel with a user-friendly interface. A paywall made with the paywall builder Facilitating paywall A/B testing A/B testing is a universal and powerful way to find what works best for your app and in the end, come up with an ultimate version of the paywall that easily hooks the users. However, finding “the one” paywall is usually a never-ending process – it’s impossible to find something that will work perfectly for a long time, as the mobile industry, user demands, and store policies are constantly changing. So once you find the right combination of design, offers, prices, and copy, you may have a sigh of relief, enjoy it for a while, keep it as a “working safe point”, and move on to testing new things. Although Adapty already makes the paywall A/B testing process easy and convenient – an experiment can be launched in just 10 minutes – creating different versions of the paywall to test may be time-consuming. If you’re not an indie developer, pretty sure your process of hypothesis testing looks something like that: Coming up with a hypothesis Discussing it with the team and giving tasks Waiting for the designer to finish the new variant Waiting for the developer to add fixes to the code Setting up the experiment Changing one or two even minor things on the paywall, in this case, may turn into 1-2 days of leisurely “teamwork”. To solve this problem back in the day we provided Adapty users with the remote config feature. It’s based on a JSON file where the user mentions all the elements of the paywall that can be later changed remotely, meaning that all the changes appeared in the app right away, bypassing the need for another store review.   However, using remote config requires initial preparation, like coming up with the list of elements you’d want to change in the future, adding “placeholders” for these elements in the app code, and inserting certain fetch, activate, and get methods. Here’s a more detailed explanation of how it works. But once you’re set, you can change the selected paywall elements via the JSON field in real-time with no involvement from the developer or designer.   The only downside here is that you can change only the elements that you selected in advance and only for one paywall. For example, if you didn’t put the CTA button in the list and now feel like changing it for a hypothetical conversion improvement – you need to add more code and send the app for the store review. Or if you want to create a new paywall to place it... --- The month of May brought several exciting updates designed to streamline your workflow, provide valuable insights, and optimize your revenue generation. The month of May brought several exciting updates designed to streamline your workflow, provide valuable insights, and optimize your revenue generation. Let's dive into the latest enhancements: Predictions in cohorts: gain revenue and LTV insights Understanding revenue trends and customer lifetime value (LTV) is crucial for making informed business decisions. With our latest update, we have introduced a powerful addition to cohorts. You will now find two new columns displaying predicted revenue and LTV. This predictive analysis allows you to forecast for various periods: 3 months, 6 months, 9 months, and 12 months. By leveraging these predictions, you can optimize your marketing strategies, plan budgets, and track the performance of your cohorts more accurately. Event feed updates: track integration errors and ensure smooth data flow I’m happy to announce enhancements to the Event Feed, supporting your ability to monitor the health of your analytics ecosystem and ensure a seamless data flow. Now, within the Event Feed section, you can easily identify integration errors with other systems. A red error color notifies you of issues, and by hovering over it, you can quickly understand the specific type of error encountered. At the same time, the grey color shows that the event is not sent because it’s disabled. Introductory offers eligibility using StoreKit 2 We have introduced a new functionality for retrieving introductory offers eligibility using StoreKit 2. With this update, the introductoryOfferEligibility field is no longer a part of AdaptyPaywallProduct. To fetch introductory offers eligibility, you can now use a separate method called . getProductsIntroductoryOfferEligibility. The behavior of this function depends on your Adapty SDK configuration. It will utilize StoreKit 2 if available, or fallback to a legacy logic based on receipt analysis. For more detailed information and implementation guidelines, you may refer to the documentation. These May updates represent our commitment to enhancing your analytics and monetization experience with Adapty. We strive to provide you with advanced tools and insights to drive your business growth effectively. Stay tuned for more updates as we continue to innovate and improve our platform. If you have any questions or need assistance, don’t hesitate to contact us. --- Let's look into how app ratings and reviews affect user behavior and how you can use them in your favor. Your app reviews and ratings are one of the first things that users see when they land on your Google Play Store or App Store listing. In its mobile app insights study, Google found that these are two of the top five factors that influence app downloads. About 60% of users that land on an app listing use its reviews to decide if they want to download it. The same percentage also considers app ratings to be important.   It's simple: the more positive reviews and ratings your app has, the more users will download it. App reviews and ratings also influence your app store visibility (in multiple ways, as we'll see below! ), as well as attract more users through customer advocacy while retaining your existing customers. So if you're looking to get more app downloads, you need to know 1) how to get more (positive) reviews and ratings for your mobile app, 2) how to respond to all the user feedback you get, and 3) how to avoid negative reviews that can be avoided by working on your app’s performance and user experience and working on how you release updates. A lot of negative feedback related to an app's performance can actually be fielded much better.   In today's article, we are going to look at all of this and more, but first, let's see how app reviews and readings actually influence app downloads. The importance of mobile app reviews and ratings Higher downloads Alchemer Mobile (formerly Apptentive) has found that app ratings and reviews tie directly to app downloads. In its study, Alchemer Mobile found that about half of mobile app users don't download an app if it has an average rating of 3 stars or lower. With a rating of 2 stars, this figure drops to 85%.   And when it comes to reviews, about 77% of customers check at least one review before downloading a free app, whereas for a premium app, this figure sits at 80%. Put simply: Ratings and reviews reflect app experiences and that’s why they work as social proof driving downloads. Higher app store visibility There are three ways app ratings and reviews impact your app store visibility. If you land in the app store, one of the ways that users can filter the apps they see for their search is by using ratings. So if they set it to 4 stars, only apps with 4 or higher ratings can appear. Lower-rated apps don't get a chance. Here’s an example from Google’s Play Store:  Next, come the app store's featured listings. You'll notice that apps that app stores feature, too, are highly rated, with an average of 4+ rating. Here’s Google’s “Editor’s Choice” list for the same search: Exports also explain that reviews and ratings influence your app's organic app store optimization. They're an important ranking factor for both app stores. So higher and more positive reviews can boost your organic visibility. Also, if you run app ads, the app store actually shows your app's ratings inside your ad, which means it can directly influence your click-through rates (and paid conversions) as a result. Google Play’s ads displaying the apps’ ratings: Customer advocacy App makers who have an app ratings and reviews strategy in place shine light on one more way they're an essential part of a mobile app's marketing mix. They explain how responding to reviews (both positive and negative) helps you show that you "care. "  When you engage with users, "you're not a faceless corporation anymore. " Doing so lets you come across as somebody who's "worked hard to make something" by putting in a lot of time and effort and that you hear what your users have got to say. This helps convert your users into advocates, who eventually bring you even more users. Hear it from the app makers themselves. Did you know that recommendations are what drive 33% of app downloads? This also helps with retaining app users.   Now before we see how you can get more reviews for your app and get all these benefits that come with a high number of positive reviews and ratings, let's quickly go over how an app's performance and user experience lie at the core of how users leave reviews. How to minimize “critical” feedback by focusing on app performance and user experience If you review the negative reviews on any app, you'll see that the majority are related to app performance. Now, app performance means many things.   Take an app's loading time, for instance. Users expect apps to be fast. In fact, they expect an app to load within two seconds — and the faster, the better. Half of an app's users actually abandon it if it takes three seconds or longer to load. So if users find your app to be slow, they’ll not just abandon your app but some will also mention it in their reviews, discouraging others from downloading it. App stability is another common theme in reviews. Bugsnag, an app stability management solution, explains in its stability report that apps with a lower stability score (that tend to crash more often) see a drop in ratings. According to its Application Stability Index insights, a drop in the stability score of just 1% can result in an app store rating loss of almost a full star. Naturally, apps that crash frustrate users. Not only are such users quick to uninstall, but a good percentage will also leave you a negative review. App freezes, like app crashes, are another mobile app performance issue that users find frustrating and report with their low ratings and feedback.   Like app performance, your app's user experience, too, reflects directly in your mobile app's app store ratings and reviews. Again, much like app performance, your app's mobile user experience, too, encompasses many things. Take permissions, for instance. Your app's "permissions" are also a factor contributing to your overall app experience. With users becoming increasingly conscious about the... --- Subscription analytics is the joy and bane of every app owner in the threatening jungle of mobile apps. Let's find how to handle it. Let's get one thing straight.   Subscription analytics is the joy and bane of every app owner in the threatening jungle of mobile apps. Nearly all developers who cracked the code of a successful subscription strategy today started just like you: stumbling upon the obstacles of comprehending the challenges of subscription metrics analytics. With so much data to process and analyze, it can be difficult to gain meaningful insights into user behavior and subscription revenue. Moreover, factors such as consumer preferences, market competition, and data privacy regulations further complicate the subscription analytics process.   Despite these difficulties, subscription-based models are critical for the future of mobile apps, as people increasingly rely on smartphones for accessing content and services. They no longer choose laptops over smartphones - they want fast, top-notch experiences that are just a tap away from their fingers.   So, let’s recapitulate before continuing.   Subscription-based models enable app owners to turn one-time downloads into lifelong subscribers. AKA: long-term revenue. Subscription apps are based on the success of understanding subscription analytics.   Subscription analytics comes with a series of challenges that you’d learn how to overcome throughout the length of this article. So, buckle up, grab a coffee, and prepare to conquer the wild jungle of subscription analytics! Why is subscription analytics hard? Simply put, subscription metrics analytics becomes a challenge for app owners because it involves constant monitoring in order to understand whether your app revenue data is positive or negative.   Revenue analytics in Adapty Firstly, app owners need to accurately estimate app revenue and track data to gain meaningful insights into user behavior and subscription revenue. This includes analyzing a diverse range of data sources, data formats, and data integrations, including app store revenue, payment gateways, and ad networks. IDFA changes and SKAN attribution have significantly impacted the ability to track user data, affecting churn prediction and retention strategies. With Apple's IDFA changes, user privacy has been prioritized, limiting the granularity of data collected, which in turn influences the accuracy of churn prediction models.   The introduction of SKAN limits attribution, further complicating user behavior analysis. As a result, marketers are increasingly relying on alternative data sources, probabilistic models, and cohort-based analyses to predict churn and develop retention strategies. Another significant challenge is identifying the correct attribution model for a subscription-based business. Cohort segmentation issues and predicting churn can also make it difficult to track user behavior and subscriptions over time.   Privacy and data security also enter the game for subscription apps. Evolving data privacy regulations and laws can also pose a challenge to subscription metrics analytics. App owners must ensure that they comply with data privacy regulations while collecting and analyzing data in order to successfully apply subscription strategies. Welcome to the data jungle  Subscription analytics in mobile apps can be a wild ride, with a diverse range of data sources, data formats, and the need for data integration.   Let's start with the diversity of data sources. There are so many different platforms and channels that app owners must monitor to gain meaningful insights into user behavior and subscription revenue. This includes app stores such as Google Play and Apple App Store, payment gateways, and ad networks.   The existence of diverse data sources plays a crucial role in subscription analytics, empowering businesses to optimize their services. According to a 2020 McKinsey study, firms leveraging extensive data sources experienced a 30% increase in annual revenue. Various data sources, such as social media, web analytics, and customer behavior logs, contribute to comprehensive subscription analytics. For example, Adobe's Digital Economy Index (2020) reported that 80% of digital subscriptions are now based on consumer data collected across multiple channels.  Next up, we have the differences in data formats. Each platform and channel has its own unique data format, which can make it challenging to compare and analyze data. Then, we have the need for data integration advertising platforms such as Facebook and Google AdWords to get a complete picture of their subscription strategy and app revenue data. Attribution and cohort analysis Subscription analytics relies heavily on identifying the correct attribution model and cohort analysis. Attribution models are critical in attributing revenue generated from subscriptions to specific marketing channels. App owners need accurate attribution models to allocate marketing budgets effectively.   Types of marketing attribution models. Source. Cohort analysis involves segmenting users based on a specific characteristic to identify patterns related to user behavior. For example, it can reveal that users who sign up during summer months have a higher churn rate or users from social media channels have a higher lifetime value.   Without accurate attribution models and cohort analysis, app owners may make decisions based on incorrect data, leading to ineffective marketing campaigns and loss of app revenue. Predicting churn and keeping users Predicting churn and keeping users engaged is crucial for a subscription-based app. To improve retention and churn, app owners must monitor user engagement metrics and track user feedback to address concerns and identify areas for improvement that could potentially hurt the user experience. Factors influencing churn include inadequate customer service, lack of personalization, and pricing issues. A 2021 study by Deloitte revealed that 70% of customers consider personalized experiences essential. Predictive models, such as machine learning algorithms like logistic regression and random forests, help identify churn indicators with up to 80% accuracy. Implementing retention strategies involves complex, data-driven methods, such as targeted campaigns, dynamic pricing, and customer segmentation. Companies like Amazon have reduced churn rates significantly through advanced analytics and personalized recommendations, showcasing the significance of these strategies. Developing accurate models for predicting churn involves machine learning algorithms analyzing app usage data to identify patterns. This helps predict when a user may cancel their subscription, allowing app owners to implement retention strategies such as personalized offers, incentives, or rewards for users who engage regularly. By keeping users satisfied, app owners can increase app revenue estimates and build a loyal user base. Privacy and data security When collecting user data, app owners... --- In this guide, we'll explore the best practices for designing an effective app icon that drives downloads and engages users. Your app icon is the first visual element that potential users see, making it an essential component of mobile app success. After all, the saying goes “first impression is the last impression,” for a reason! And with over 2 million apps out there on Google Play Store and App Store, it’s more important now than ever. But how do you exactly create the best app icon ever? !   In this guide, we'll take you through the crucial elements of app icon design, including color, shape, and visual style, and show you how to optimize your app icons for different app stores. We'll also share tips on using A/B testing to refine your design and create a mobile app icon that resonates with your target audience. What is an app icon? In simple words, an app icon is an image or symbol that shows up in a phone’s application menu to represent a specific mobile app. It’s an identifying marker for that app and acts as a recognizable brand image that users associate with the mobile app itself! Just the way people associate your face with you, an app icon is an important identity for an app. Therefore, your own app icon is a critical component of a mobile application's design and success. And so an eye-catching icon can play a significant role in driving your CTR (click-through rates), user engagement, and downloads!   Essential elements of app icon design As you go through the app icon design stages one by one, keep a few essential elements in mind. Not only have Apple and Google clearly emphasized their importance in their own press releases, but you’ll also hear famous app developers swear by these design elements too! Color and contrast When it comes to your own app icon design, color, and contrast are essential elements that can greatly impact the icon's visibility and appeal. The right color scheme can help your icon stand out from the competition and attract users. However, it's important to choose visually appealing colors while staying on-brand for your app. When it comes to contrast, don’t take it lightly either. It helps ensure that the icon is easily recognizable and distinguishable, even in tiny sizes. By using contrasting colors or adding borders, you can make your app icon pop and increase its visibility on the app store. For example, the Spotify app icon uses a bold green color that contrasts with the black background, making it instantly recognizable. Plus, with the iconic use of sound waves to depict what the app is about, Spotify leaves little in the way of confusion.   Shape and composition The shape and composition of your app icons can greatly influence how users perceive your app. The right shape can convey a sense of professionalism or playfulness, while the wrong shape can be confusing or off-putting. But what do they mean? Composition refers to the way in which different elements within the icon are arranged in the space provided. And the shape is... well, shapes! For example, the Evernote app icon uses a simple, clean shape that communicates its note-taking functionality. The Instagram app icon, on the other hand, uses a fun, rounded shape that complements the playful nature of the app. When designing your mobile app icon, it's important to consider the overall composition as well. A cluttered or overly complex design can be difficult to recognize at smaller sizes, while a simple and balanced composition can help your icon stand out. Here are some quick tips about the shape and composition of your own app icon to check off as you create one: Keep your icon minimally cluttered. Use shapes that are relevant to your app’s function or brand. Pay attention to the symmetry and balance of your design. Consider using negative space to generate a dynamic composition. Visual style and branding I mentioned this earlier but I’ll say it again! Your own app icon is the face of what your brand has to offer users. Using a somber visual style with dull colors for a playful social media app is a recipe for disaster. Why? Because it’s simply not giving you an accurate brand image.   The visual style and branding of your app icon are essential elements of app icon design that can significantly impact user engagement. A well-designed app icon that incorporates your brand identity can help to: Build brand recognition,  Establish credibility, and  Communicate the unique value proposition of your app to potential users.   When designing your app icon, consider incorporating elements of your app's overall visual style. This can create a cohesive and consistent brand identity across all touchpoints. Here are some elements that count as important parts of your visual style: Color scheme,  Typography, Logo, Imagery. You may also want to consider incorporating visual metaphors or symbols that relate to the app's purpose and functionality, further reinforcing your brand identity and enhancing the user experience. For example, if your brand has a specific and recognizable logo or symbol, consider incorporating it into the icon to reinforce brand recognition. In the end, you have an app that stands out in the crowded app marketplace of today and drives downloads and user engagement. Optimizing your app icon for different app stores Now that you’re familiar with what makes an iconic app icon— pun intended— let’s talk optimization. Did you know that according to multiple Google Experiments, about 80% of app icons fail in generating clicks?   Optimizing your app icons for different app stores is crucial for gaining maximum visibility and downloads. These rules and regulations make a great impact so it’s better to keep them in mind while designing your app icons. However, the optimization process can differ depending on the app store, especially when it comes to iOS vs Android.   iOS vs. Android Ah, the age-old war of Android versus Apple. Did you know it trickles down into app icons too? With both systems offering their users a unique vantage point... --- Learn how to create a perfect personalized paywall for your mobile app and cement the relationship with your users. Introduction Today developers and app makers face the challenge of monetizing their mobile applications while still providing value to their audience. One solution to this problem is the digital paywall. It allows developers to restrict access to their app content or features until users become paying subscribers. But paywalls can also limit audience reach and engagement. A traditional paywall presents the same subscription options to all visitors. A personalized paywall tailors the user experience based on individual preferences, behavior, and demographic data. By providing a customized experience, you can increase the likelihood of a user converting into a paying subscriber. At the same time, it allows you to still maintain engagement and reach for non-subscribers. We will explore the reasons why a personalized paywall may be the best solution for you as a developer to monetize your mobile apps. We will also provide a step-by-step guide on how to implement a personalized paywall, including best practices and examples from successful implementations. Why a paywall matters Paywalls are an important tool for you as an app developer to monetize your app. You can generate revenue by restricting access to your app features for all users until they turn into paying subscribers. This can help sustain and grow your business by providing a steady monthly stream of income. One of the main benefits of a paywall is that it allows to build a dedicated audience of loyal users. You can provide and promote exclusive content, features, and other perks to paying subscribers. It will create a sense of community and loyalty that can help drive long-term growth and success. By restricting access to all users, developers face the risk of losing potential audiences. Some of your users may not be ready or willing to pay. A poor user experience also can turn off users and drive them to stop using your app. Personalization can mitigate some of these issues and offer a solution to the challenges of traditional paywalls. You can personalize user experience based on individual preferences, behavior, and demographic data. It will increase the likelihood of a user converting into a paying subscriber. Personalization can also help to maintain engagement and reach for non-subscribers. It reduces the risk of negative user experiences. Addressing the user by name is a common way to personalize your paywall. To make the most of a personalized paywall, you need access to robust subscription analytics tools. They can help you track user behavior, identify trends, and optimize your paywall strategy. Adapty analytics platform is an excellent example of such a tool. It has a simple interface and powerful analytics capabilities. Adapty helps you gain deep insights into your audience and optimize your paywall strategy for maximum revenue and engagement. The power of personalization Users often look up “How do I personalize my phone? ”. And they look for the best personalization apps for Android and iOS. As a developer, you should be asking yourself how to personalize your app for your users.   Personalization is the process of tailoring experiences to individual preferences, behavior, and demographic data. Mobile app personalization can significantly enhance the user experience. It increases engagement and satisfaction, as well as your revenue. Personalization can make users feel valued and understood by offering them content that resonates with their interests and needs. This can increase engagement and encourage users to spend more time on an app. They explore more content and become more invested in the brand. Loyal users are more likely to pay, subscribe, and buy your products.   Personalization can also improve user satisfaction with a paywall service. Offer users a subscription package that aligns with their interests. It can make the subscription process feel more natural and less intrusive. This can lead to more positive user experiences and a greater likelihood of conversion. A personalized experience can demonstrate the value of your app and build a more loyal and dedicated subscriber base. All this helps you grow your revenue.   Examples of successful personalized services There are a lot of examples of personalized services. The digital market is full of personalized apps. Modern algorithms improve rapidly and allow for ever more personalization of user experience.   Netflix and YouTube are excellent examples of successful personalized services. Both platforms use algorithms to tailor content and recommendations to individual users. These recommendations are based on their viewing or listening history, preferences, and behavior. This approach has helped both companies build a loyal and dedicated subscriber base.   Netflix may use several thumbnails for one piece of content in order to find what attracts a particular user (or group) the most. There are also successful mobile app personalization examples. Spotify achieved significant growth due to its personalization features. It utilizes user data and machine learning algorithms to personalize its service. This includes recommendations, playlists, and other features that are tailored to each user's listening preferences. Benefits of a personalized paywall A personalized paywall provides a unique and individualized experience for users. It increases the probability of them subscribing. By leveraging user data and behavior, you can offer users subscription packages that align with their interests and needs. It makes this process feel more natural and less intrusive.   Use this strategy to enhance user satisfaction and minimize any resistance between the user and the paywall. It will result in a greater likelihood of conversion. Personalization enables you to establish a more devoted and committed subscriber base. A personalized paywall makes users feel appreciated and acknowledged by the brand. It is as if it speaks to them directly. This adds a personal touch to the relationship between a customer and your brand.   All this leads to increased revenue and long-term growth for your app. How does a personalized paywall increase conversions? You should aim at offering users a subscription package that aligns with their interests and needs. With such personalization, you can demonstrate the value of your mobile application to your returning users. This will help you build a more loyal and... --- Not sure how to choose a financial provider? Adapty has put together metrics that are to tell you what kind of app financial providers are in front of you! Got your app ready to go into the big unknown? Or are you simply in the process of calculating just how much time, money and effort your next big idea will take? Building, launching, and maintaining an app requires a capital investment, something that many app developers don’t have at the start. Plus, how do you figure out all the customer support hassle? Here’s where financial providers come in! These providers tackle a large chunk of your business ordeals for a fee and can make everything so much easier on your end.   The bad news is that there are way too many options out there and not all of them are good for you. With so many choices, it's important to choose a financial provider that aligns with your unique business goals and can support your app's growth in the long run.   From fees and charges to security features, scalability, and customer support, let’s dive deep into all the key factors you need to consider to make an informed decision. So, buckle up and get ready to learn how to choose the perfect financial provider to take your subscription app to the next level! Understanding your subscription model Before you start researching the best financial service provider, understand your own subscription model. There are 6 main types of subscription models out there, including: Freemium: A combination of "free" and "premium," this model offers a basic version of the app or service for free, but charges for premium features or access to additional content. Tiered Pricing: This model offers multiple tiers of service, with each tier providing more features or benefits at a higher cost. Pay-Per-Use: Users are charged only for the amount of service or content they use. Flat-rate Subscription: A fixed monthly or yearly fee is charged for unlimited access to the app or service. Usage-based Subscription: Charges are based on the amount of usage or number of users accessing the app or service. Perpetual License: A one-time fee is charged for unlimited use of the app or service. The reason I’m emphasizing these models is that each of them comes with a different set of financial provider requirements. A pay-per-use model might not be well suited to a financial provider with a high transactional fee and a perpetual license model might not profit from a financial provider with high monthly fees! Always make informed decisions when it comes to selecting a financial provider. In this case, it’s important to have your subscription analytics tell you the story. Then, find a provider that compliments what your app does! What is subscription finance? Subscription finance refers to a type of financing used by businesses with a subscription-based revenue model. While these businesses generate recurring revenue through ongoing subscriptions, subscription finance enables them to acquire capital based on the predictable and recurring nature of their revenue streams. Subscription finance can take several forms, such as: Revenue-based financing – Provides businesses with capital in exchange for a percentage of their future revenue streams, Asset-backed financing – Uses the business's subscription revenue streams as collateral for a loan, Debt funding – Offers a flat loan with a set interest rate in the traditional banking method with a set time period for loan returns.   What is an app provider? If you’re wondering, “What is a financial service provider after all? ”, you’re not the only one.   An easy financial service provider definition is an app provider that offers services including payment processing, subscription management, revenue and subscription analytics, and other financial tools to help businesses manage their subscription-based revenue models.   These providers often offer software development kits (SDKs) and application programming interfaces (APIs) that enable businesses to integrate their platforms with the financial provider's services.   This integration allows businesses to manage and process payments, monitor revenue, and analyze user data easily through a single platform. Thanks to all these features, app developers enjoy better overall management, accurate analytics, and a better shot at scalability. Assessing the fees and charges The good news is that there are tons of eager teams out there, waiting to finance your subscription app, no matter what mobile app monetization strategy you’re implementing. But before you shake hands with any of them, it’s crucial to discuss and analyze the cost that comes with that.   Just like any other financer in the world, financial services providers have costs, interest, and charges that you’ll pay at the end of the day. In the end, choosing a financial service provider app depends on competitive rates and transparent pricing structures!   Various fees and charges Subscription financing apps may charge a variety of fees and charges, which can vary depending on the provider and the services offered. Some of the most common fees and charges include: Transaction fees: These fees are charged every time a transaction is processed, and can be a percentage of the transaction amount or a flat fee.   Monthly fees: Some financial providers may charge a flat monthly fee for access to their platform and services. Monthly fees can be a good option for businesses that process a high volume of transactions or require access to advanced features. Chargebacks: Chargebacks occur when a customer disputes a transaction and requests a refund. Financers may then charge fees for chargebacks. Refund fees: If you’re requesting refunds, some financers may charge fees for processing these refunds. Integration fees: If a business requires custom integration with a financer's platform, the financer may charge an integration fee. Early termination fees: Some financers may charge early termination fees if a business cancels its contract before the end of the agreed-upon term. Foreign transaction fees: If a business processes transactions in currencies other than its own, the financer may charge foreign transaction fees. However, this is not applicable to every financial service provider. How fees can impact your revenue and profits? The fees charged by provider apps and financial IT providers can have a significant impact on a business's revenue... --- In this guide, we’ll see what an app funnel is, how it can look different for different app monetization models, and more App funnel analysis is the process of visualizing your users’ journey with your app so you can “see” how your users engage with it, right from the moment they discover and download it all the way to making in-app purchases or renewing (or canceling! ) their subscriptions. By analyzing your mobile app's funnel, you can identify areas where users abandon their buying journey and optimize them to improve retention.   In addition to zooming in on where you lose the most of your users, app funnel analytics also provides insights into the entire lifecycle of your different app user segments, showing you what user journeys convert the best, who your best and most loyal users (more so, user segments) are, and which user segments offer the best lifetime value, among other things. In this mobile app funnel guide, we’ll see what an app funnel is, how it can look different for different apps depending on the monetization model they use, the various stages of the mobile app funnel, how to add app funnel analytics to your mobile app marketing mix, and a few best practices when doing so. But first, let's look more closely at the app funnel. What is an app funnel? Simply put, a mobile app funnel maps a user’s journey with a mobile app right from the point they discover it—via a search in the app store or through a Facebook ad or a PR story—to converting. App funnels include stages of the app user lifecycle, such as the initial app install, in-app purchases, and other desired in-app actions (like inviting a friend to try the app). Understanding and optimizing your app funnel helps you improve app user acquisition, engagement, and retention. Depending on an app's monetization model, its conversion funnel analysis can look very different. For example, for a paid-to-download app where users need to pay to download (the paid app share sits at 3% in Google Play and 5. 5% in the App Store, by the way), the app user pretty much completes their journey by making the payment on the app store. Unless it’s a subscription app where users must make recurring payments based on their subscription plan, the app user journey ends with the purchase. Roughly, here’s what this user journey looks like: First, users discover the app. (App discovery! ) Next, they land on the app’s listing and decide if they want to purchase. (This is the consideration stage. ) Finally, they purchase and download the app or abandon their buying journey. (As noted above, the user journey doesn’t end here if it's a subscription app. Otherwise, this is the final conversion stage. ) The app funnel for this app is pretty simple.   In contrast, the app funnel goes beyond the download stage for an app that offers a free trial. Say, if an app offers a 7-day trial, the conversion event only happens when the app user is actually billed at the end of the free trial. So here, the app user: discovers the app decides to download it downloads it “tries” the app and chooses to migrate to the paid plan (by not canceling the trial during the trial period).   As you can tell, the conversion funnel analysis of such apps that offer trials looks quite different, with several additional stages. Funnel analytics looks even more different for a freemium app with an in-app purchase that unlocks the premium version. Here, users start by discovering the app, installing it, and then hitting the paywall at some point. You’re likely looking at the following funnel in this case: But what if this freemium app used the subscription model and offered a free trial? In this case, you’d be looking at even more stages in its app funnel. Below, you can see Adapty showing the funnel for such a freemium subscription app that also offers a trial: You get the drift. Let's now look in detail at the various stages of the mobile app funnel. Mobile app funnel phases Before we get to the different stages of a mobile app funnel, let's discuss its three phases, each including a couple of stages. Acquisition  Stages like app discovery, consideration, and conversion fall in the acquisition phase of the mobile app funnel. These stages involve bringing people to your app store listings and getting them to download your app. Engagement  This mobile app phase/stage deals with everything from onboarding (which includes steps like user signup, registration, and completion of a few in-app actions) and app usage to in-app spending. Retention Retention is a bottom-funnel phase/ stage where you try to convert your app users into users for life and encourage repeat purchases and boost long-view metrics like your customer lifetime value. Here's a closer look at the different mobile app funnel stages. Mobile app funnel stages Acquisition The acquisition stage of the mobile app funnel shows you how you acquire new app users. There are several substages to the acquisition stage. First comes app discovery. Before users download and install your app, they probably discover it somewhere—perhaps through organic search, a paid ad, or a news story. If you see that you’re failing to bring a decent traffic volume to your Google Play or App Store app listing—metrics like your app store listing views give you this data—you might want to work on your app discovery channels.   In a 2015 study, Google found that the top three ways people discovered new apps were: 1) through their friends, family, and colleagues (52%), 2) inside the app store (40%), and 3) from search engines (27%).   The app store channel can be the one you start with. Since app discovery happens via ads or organically, you can do both (run ad campaigns and invest in app store optimization). Generally, the more high-quality traffic you bring to this top-funnel stage, the more users will enter your funnel. Ad in the App Store search results Next comes consideration. This is when a potential new app... --- In the 11th issue, we included apps with millions and hundreds of thousands MRR, and all of them still have room for improvement In the 10th issue, we included apps with millions and hundreds of thousands MRR, and all of them still have room for improvement. Paywalls of this issue are commented by... Karan Tibdewal, a Growth Consultant working with Blinkist, Soundcloud, Deezer, and others. He is also a host of the podcast "LTV Talks with Karan". Ultimate Guitar: Less is more Pros: Emphasis on the “saving” with the highest plan. Cons: Too many choices.  In my experience, instead of showing users all the options available to them, it’s better to show the option that is personalized, based on their onboarding inputs or usage. The expected impact (based on my first-hand experience) is ~20-50% uplift in trial conversion. Additional comments: Too many numbers on this screen, although it’s a best practice to add numbers in the paywall. I feel that this paywall has a lot of content fit into it, including numbers. “1. 4+ million ad-free tabs & chords” would scare me as a newbie, whereas “Interruption free learning experience” might be more enticing. “Activate your full access” is a great way to present the paywall. However, with that, I’d expect a free option here as well with the notes such as “With ads, etc. ”. Just for the users to be able to compare what they “activate” other than the chords & lessons.   Making the terms all outlined in a clickable terms & conditions section might help de-clutter the paywall. Ultimate Guitar Bazaart: Room for improvement where implementing best practices would already be a great start! Pros: The video clearly helps the users see the benefits, although it seems like the app's only function is to remove objects. It would be better to have more use cases and features included. Cons: The design is not seamless and seems like stacked boxes. The copy is transactional and does not encourage action. For example, "Get started with your 7-day full-access trial," along with the call-to-action, "then $11. 99/month," would be a good start. This is similar to many other apps out there. Additional comments: Having more common object removal video illustrations might be better since few users would want to remove dogs from the first picture or the father tossing his kid in the next one. Bazaart Promeo: Unique elements with some potential opportunities Pros: I love how the prices and options are displayed on this paywall. As a user, this makes my decision very easy. The call-to-action (CTA) makes the offer very clear and visible. Cons: I am not a big fan of the headline on the image/video as it is a bit hidden and wastes a substantial amount of screen space. Instead, I would opt for a cleaner look on the headline and more focus on the feature carousel below. Showing how the app works in the header could also be a good strategy for a design-aid app. Additional comments: I feel that the experience of using the carousel as a video was a bit laggy and didn't feel smooth. If the paywall is the storefront, it needs to be flawless to get users to trust the app. Promeo Yazio: Great design, packed with a lot of powerful elements! Pros: I love the dated goal outline.  It helps the user to draw a very clear line to how this app will help them and how quickly. Having a social cue via a testimonial here is also a great addition without making the screen cluttered. The monthly rate comparison between 3 and 12 months is also a great subheadline as it helps me see very clearly that the annual subscription is a much cheaper option. Perhaps having "x% less" could be an interesting test here. Terms of use are also organized via a link rather than putting the entire text in there. Cons: There is no trial.  Offering a trial for this subscription could be a powerful motivator in my opinion. Additional comments: Having a video/GIF showing the progress weight loss chart with the user's desired target weight would be an interesting test to run as it would help the user visualize their journey. Yazio Relive: Clean & clear with potential to improve Pros: The UI is clean with minimal background noise. The CTA is positioned as "Redeem," which typically performs better than "Continue" or "Start your trial," etc. Cons: Only using emojis in the paywall is a bit limiting.  Adding more imagery or product feature demonstrations here could go a long way, especially if this is the paywall that the new users see on their first session. "Cancel anytime" should be a point for the CTA, not the product feature list. Additional comments: "1-month free" is a clear heading here. I wonder if this drives more users to use the app and then cancel their subscriptions sooner than later. Relive --- The beauty of the subscription-based app monetization models is that they allow publishers and developers to foresee and plan incoming cash flow. Recurring revenue, resulting from regular user payments, is a far more stable business model, that can be scaled down or up when needed. However, with factors like customer churn, local prices, and currency fluctuations playing into global instability, predicting and maintaining a steady stream of revenue can be a challenge. This article is our definitive guide on strategies and frameworks on how to test out, introduce, and harness a subscription-based monetization model for your app. The key subscription app metric: MRR Any conversation starts with MRR: Monthly Recurring Revenue. It measures the predictable revenue generated by subscription-based products or services over a month. MRR can be calculated by multiplying the total number of subscribers by the monthly subscription price, or, if an app has several offers, by the average revenue per user (ARPU) over a month.   Even though the unit economics for a subscription app is more complex, MRR is the key metric. It provides insight into the company’s financial health and growth potential, as well as the efficacy of its acquisition and retention strategies. By taking MRR quarter-to-quarter or unit-to-unit, you can see which offers are working, and which ones require an update. Speaking of which: let's see what subscription-based offers you can introduce to your app. Different types of subscription products A subscription is a payment made on a regular basis — plain and simple. The value your customer gets in exchange for this recurring payment, however, varies greatly from industry to industry and app to app. Here we list, paired with some examples and insights, the most popular subscription-based app offers. Prepaid subscription plans Most offers imply that some part, if not all, of the product, is available only after the payment. However, asking a customer to pay for something they have not yet seen can be a tall order. Later we'll discuss app monetization strategies in more detail, but for now, just assume that some part of your product needs to be brought in front of the paywall to allure the customers inside. Pay-per-delivery subscription The pay-per-delivery subscription model allows customers to pay for each delivery they receive, rather than committing to a fixed monthly or yearly fee. This model offers flexibility to customers as they can choose to use the service only when they need it. At the same time, it generates recurring revenue as customers who use the service regularly will continue to pay for each delivery. A subscription can be introduced even in this case. For example, a groceries delivery service Everli offers a yearly subscription that makes all deliveries free. For most customers, it's a simple comparison: is the subscription more expensive than pay-per-delivery? And for the developer, it's a way to plan revenue. Streaming subscriptions The streaming service subscription model involves offering customers access to a library of digital content, such as movies, TV shows, and music, for a fixed monthly or yearly fee. This model has grown in popularity in recent years, as more consumers shift away from traditional cable and satellite TV and towards on-demand streaming services. A sub-type of this model is media access, where customers of a subscription app are paying for the ability to read or listen to a specific news site magazine, or even just one author. This type of subscription is harder to make profitable, as text content is much easier to download, copy and share with others for free. To see how media and entertainment brands showcase their features, check out our paywall library. There we’ve collected the best cases from many well-performing services and apps. Trying to reverse-engineer the logic behind some of these decisions, and why they are so successful, is a great way to get inspired for your own revenue-generating products. Online course memberships Online and ongoing education is the new norm, with video tutorials, webinars, and interactive courses becoming a part of and even replacing old-school (pun intended) formats. Even better, this type of education can be offered for a recurring fee. Coursera Plus, with its monthly or annual fees, is a prime example. Interestingly, different people expect different results from the same courses. One video lecture can be reformatted into audio, text, and an interactive quiz, some of which can be offered for a fee. Several tiers can be introduced: not just for access to the course, but for a certificate at the end of a course or for a live conversation with the professor. Fixed usage In a fixed usage subscription model, customers pay a predetermined fee for a set amount of a product or service over a specified period of time. This model is often used with VPNs, private clouds and other digital services where the amount of service bought can be quantified and limited. While not strictly a subscription, most apps offer recurring payment options with the number of services (like data to be used with VPN) 'refreshing' monthly.   Gift subscription And for the final touch: all offers we've discussed so far can be given as a gift. Usually, those are provided at a lowered price to motivate customers to invite their friends by giving them a subscription as a present. More importantly, after the 'gift' period is over, a certain percentage of invited customers may choose to stay with the app, and constitute paying for the subscription themselves.   Even the mobile OSs are on this trend, with both Apple and Android allowing you to share the in-app purchases and subscriptions with your family — here's our guide, by the way. An example of a gift subscription. Source. Key subscription revenue models All these models, at their core, have one of three benefits. You as a publisher either choose specific, high-quality goods or services for the user, or make sure of their reliable and stable delivery, or allow the customer to enjoy said services in the first place. The underlying need is time-saving... --- Learn more about purchase sharing with family members and close friends. From Netflix subscriptions to an ad-free Spotify experience, in-app purchases are revolutionizing the way we use our favorite apps. And with all the offers you’re getting, it’s hard not to give in to a few subscriptions here and there. If you’re struggling with justifying the costs of it all, let me deliver the good news. With “Family Sharing,” you can enjoy purchase sharing with family members and close friends. This way, you save some cash and can easily manage multiple subscriptions with a digital app library! Now how does one get all that? Let’s start by setting up your family group! How to set up a family group? Setting up a family group can look different, depending on the operating system and platform you’re using. You’ll have to fulfill some basic prerequisites of family sharing, such as: The family organizer/manager should be 18 years or older, The family members must be 13 years or older, All family members must have an account on Google Play or Apple App Store, The family organizer/manager should have a valid payment method.   On Google Play, go to the Family tab within Settings and click on “Sign up for Family Group. ” You can add the members using their Google account details and you’ll have a family group ready to go.   On App Store, you’ll have to click on your Apple ID within the Settings app. Once there, tap on “Family Sharing” and then “Set up your family. ” Voila, you’ve got a family group ready to share some purchases! Setting up family sharing on iOS When it comes to iOS, you’ll find purchase sharing within the settings app as “Family Sharing. ” At one time, a family group can have 6 members, all of whom require a valid Apple ID to enjoy sharing in-app purchases. Open the Settings app on your iOS device. Tap on your Apple ID at the top of the screen. Select "Family Sharing" from the menu. Tap "Get Started" and follow the prompts to set up your family group. Choose the features you want to share with your family members, such as In-App Purchases, Apple Music, iCloud Storage, and more. Invite family members to join your group by sending them an invitation for purchase sharing through the Family Sharing settings. You’ll need their Apple ID for this part and they’ll need to accept the invite on their devices! Once everyone is part of the group, you can start sharing your purchases, subscriptions, and other features with each other. Setting up a family library on Google Play If you’re an Android type of guy, you’ve got the power to share your subscriptions too! In Google Play, you’ll find in-app purchase sharing to be under the title of “Family Library. ”  Open the Google Play app on your Android device. Tap on the menu icon in the upper-left corner of the screen and select "Account. " Select "Family" from the list of options. Tap "Sign up for Family Library" and follow the prompts to set up your family group. Invite family members to join your group by sending them an invitation through the Family Library settings, through their Google accounts. Once everyone is part of the group, you can start sharing your eligible purchases with each other. To share an item, go to the item's page on the Google Play Store and tap "Share. " Select "Family Library" and choose the family members you want to share the item with. How to share in-app purchases with family members Once you’ve successfully set up your family library or group, it’s time to share. But keep in mind, you can’t share each and every in-app purchase with your family. Each platform comes with its own set of restrictions on what you can and can’t share.   Ready to jump into purchase sharing on different platforms?   Sharing in-app purchases on iOS Ensure that Family Sharing is enabled on your device. You can check this by going to Settings, tapping on your name, and selecting "Family Sharing. " Next, open the App Store and tap on your profile picture in the top right corner. Select "Purchased" and then choose the app with the in-app purchase you want to share. Tap on the app and scroll down until you see "In-App Purchases. " Tap the "Share" icon next to the purchase you want to share. Select the family member(s) you want to share the in-app purchase with and tap "Send. " Sharing in-app purchases on Google Play Google Play offers a similarly easy path to enjoying purchase sharing with your family and friends. Once you’ve got a family group set up in the app, follow these steps to share your in-app purchases: Open the Google Play app and go to the “My Apps & Games” section. Select the app that contains the in-app purchase you want to share. Tap on the in-app purchase you want to share and select “Share. ” Choose the family members you want to share the in-app purchase with and tap “Send. ” Consumable in-app purchases, such as game currency or lives, can’t be shared. Non-consumable in-app purchases, such as unlocking a feature or removing ads, can be shared among family members. Shared in-app purchases will be visible to all family members in your Family Library so you may want to refrain from adding anything that you don’t want others to see! Additionally, shared purchases may not be available in all countries or regions. Troubleshooting common issues Once you’re finally done setting up your family sharing, you’re expecting smooth sailing... And here comes an error popup! It can be frustrating when other family members cant access your in-app purchases.   From unauthorized access problems to restricted sharing, here are some of the most common issues when it comes to sharing purchases. In-app purchases not appearing for family members This one’s perhaps the most common question asked in Apple support communities and can be easily solved on your own! You can... --- Learn about new Adapty features now New charts We have some exciting news to share with you today about the latest update to the Adapty analytics. Three new charts will make it easier to track your app's performance and make informed decisions about your mobile strategy. The first chart allows you to track your installs over time, providing you with valuable insights into how your user acquisition efforts are paying off. With this data, you can identify trends and adjust your marketing campaigns accordingly to drive even more downloads. The second chart tracks your ARPU (average revenue per user) over time, a crucial metric for any mobile app that generates revenue through in-app purchases or subscriptions. By closely monitoring your ARPU, you can identify areas where you can optimize your pricing and monetization strategies to increase revenue. Finally, the third chart allows you to track non-subscription purchases (lifetime, consumable, etc) over time, providing you with a clear picture of how many purchases are being generated outside of your subscription model. Previously, you could track the impact of non-subscription products using filters and grouping by product for the revenue chart. Now you have this new chart providing the number of non-subscriptions as an additional perspective for insights and growth. Timezone support App settings also received updates in April. Firstly, we now support timezones for reporting so you can set a timezone to determine how your app's analytics is displayed in the dashboard. This makes it easier to work with data especially if you select equal zones in Adapty, App Store Connect, and Google Play Console to maintain consistency.   Apple Small Business Program and Google Reduced Fee Program reporting Additionally, you can now set the dates of the app's participation in App Store Small Business Program or Google Reduced Service Fee. After the period is set, Adapty will recalculate the data with the appropriate percent of store fee, allowing you to accurately track and analyze numbers during and after the program. Paywall builder for Android Finally, we’ve extended the paywall builder tool to support Android apps. This is excellent news, as it allows you to quickly and easily build and test custom paywalls for Google Play apps without coding or having development skills.   We believe that these updates will provide you with valuable tools to increase the performance of your mobile apps, and we are excited to see how they will be used to drive growth and success. As always, we welcome your feedback and suggestions for future updates to Adapty. --- A retenção de usuários é um componente essencial para o sucesso de qualquer aplicativo, especialmente quando se trata de usuários pagantes. Um aplicativo bem-sucedido não só atrai novos usuários, mas também os mantém engajados e satisfeitos a longo prazo. Como desenvolvedor de apps, compreendo a importância de manter os usuários engajados para garantir que eles continuem utilizando a plataforma e renovando suas assinaturas. Neste artigo, vou compartilhar algumas estratégias eficazes de retenção de usuários pagantes muito utilizadas e embasadas métricas recentes. Importância da retenção A importância da retenção de usuários não pode ser subestimada. De acordo com dados de 2021, a taxa média de retenção de aplicativos após 90 dias é de apenas 29% (Appsflyer, 2021). Quando um usuário decide pagar pela assinatura de um aplicativo, está investindo tempo e dinheiro na plataforma. Portanto, é crucial fornecer valor contínuo para que eles percebam a assinatura como uma opção vantajosa e não cancelem. No entanto, a problemática de manter os usuários utilizando o aplicativo pode levar a uma série de consequências negativas. A perda de receita é uma preocupação primária, pois usuários desengajados são menos propensos a fazer compras no aplicativo ou renovar suas assinaturas. Além disso, a falta de retenção de usuários pode resultar em uma diminuição da base de usuários ativos, o que, por sua vez, pode afetar negativamente a visibilidade e a classificação do aplicativo nas stores. Adicionalmente, usuários insatisfeitos podem compartilhar suas experiências negativas com outros, prejudicando a reputação do app e dificultando a aquisição de novos usuários. Considerando a importância da retenção de usuários e os riscos associados à sua falta, é essencial buscar estratégias eficazes para manter os usuários engajados e satisfeitos. Cinco estratégias para manter usuários engajados e satisfeitos: Oferecer conteúdo exclusivo: Pesquisas mostram que oferecer conteúdo exclusivo para usuários pagantes é uma das maneiras mais eficazes de mantê-los engajados (Forrester, 2021). Isso pode incluir tutoriais avançados, dicas de especialistas, acesso a recursos e ferramentas exclusivas, com o objetivo de tornar a experiência paga mais valiosa do que a gratuita. Personalização: A personalização é essencial para a retenção de usuários. Estudos indicam que adaptar a experiência do usuário às suas necessidades e interesses específicos pode aumentar a fidelidade dos usuários em até 45% (Accenture, 2020). Exemplos incluem o uso do histórico de uso do usuário para oferecer recomendações personalizadas de conteúdo ou recursos. Incentivar o feedback dos usuários: O feedback dos usuários é inestimável para melhorar a plataforma. Incentivar os usuários a fornecer feedback sobre sua experiência ajuda a entender melhor suas necessidades e desejos. Além disso, os usuários são mais propensos a continuar usando o aplicativo se sentirem que suas opiniões são valorizadas. Oferecer promoções e descontos: Os usuários apreciam promoções e descontos. Segundo dados do Appsflyer (2021), oferecer essas oportunidades aos usuários pagantes pode incentivar a retenção e a renovação de assinaturas em até 32%. Comunicação constante: Manter uma comunicação constante com os usuários é fundamental para mantê-los engajados e satisfeitos. Atualizações regulares sobre novos recursos ou conteúdo, bem como respostas rápidas às dúvidas e comentários dos usuários, podem aumentar a retenção de usuários em até 50% (Intercom, 2021). É importante lembrar que cada aplicativo é único e pode exigir abordagens diferentes para manter seus usuários engajados. Mas, implementar essas estratégias comprovadas pode ajudá-lo a aumentar a retenção de usuários e criar uma base de usuários fiéis. Como dica, queria ressaltar que o SDK da Adapty é uma ferramenta valiosa para implementar e gerenciar essas estratégias. Com ele, você pode oferecer diferentes opções de assinatura para seus usuários, realizar testes A/B e muito mais. De acordo com a análise da Adapty (2022), empresas que utilizam seu SDK podem experimentar um aumento de até 25% na retenção de usuários pagantes. Se você está buscando mais informações sobre retenção de usuários pagantes ou como o SDK da Adapty pode ajudá-lo a alcançar seus objetivos de negócio, entre no nosso chat no Telegram (https://t. me/subhub_brazil). Estamos sempre produzindo conteúdos e prontos para tirar dúvidas e discutir ideias com nossa comunidade! A retenção de usuários é fundamental para o sucesso do seu aplicativo. A aplicação destes e outras dicas e também com a ajuda de ferramentas como o SDK da Adapty, é possível otimizar a experiência do usuário, gerenciar assinaturas e monitorar o desempenho da retenção de usuários de maneira eficaz. E ai, bora monetizar e ganhar mais com nossos apps? --- Not sure how to choose a publisher for a subscription app? Adapty has put together metrics that are to tell you what kind of app publishers are in front of you! Introduction The subscription app market has experienced significant growth in recent years. It offers developers lucrative opportunities for monetization. One crucial decision that can make or break the success of a subscription app is choosing the right publisher.   App publishers work with app developers to bring the app to market and ensure its success. The scope of their work varies from marketing and promotion to financial support.   The choice of a publisher can greatly impact your app's visibility, reach, revenue potential, and overall success in a highly competitive app market. This article will provide guidance on how to choose a publisher for your app.   We will discuss key factors such as understanding the subscription app market, identifying your target audience, evaluating potential publishers, analyzing publisher platforms and tools, and the importance of a publisher-developer relationship. By making an informed decision when selecting a publisher, you can significantly increase the chances of your subscription app thriving in the ever-evolving app ecosystem. Understanding the subscription app market A subscription app is an application that requires users to pay a recurring annual or monthly fee to access premium features or content. The subscription-based business model is on the rise and the market is expanding. Health, fitness, and meditation apps are taking over the subscription app market. Gaming apps are joining the market as well.   Whichever niche you are in, it is essential to understand the dynamics of the subscription app market. The best way to do this is to analyze your app. It will help you find the right approach for the subscription revenue model to fit the needs of your users.   Adapty offers powerful subscription analytics tools to check on your app's health. These tools provide valuable data and metrics, such as subscription retention rates, revenue trends, and user behavior. They help developers optimize their app's performance and revenue generation strategies. Understanding the subscription app market and utilizing analytics tools help developers make informed decisions and stay ahead of the competition in the ever-evolving app landscape. Benefits of subscription-based apps for developers and users Subscription apps offer significant benefits for both developers and users.   For developers, the recurring revenue model provides a predictable and stable income stream. It allows for better financial planning and investment in app development. It also encourages ongoing engagement and retention. Users are incentivized to continue their subscriptions to maintain access to premium features or content. Subscription apps can foster a closer relationship between developers and users, leading to valuable feedback and ideas for app improvement. For users, subscription apps often provide a more affordable and flexible option compared to one-time purchases. Subscribers can access premium features or content without the hassle of additional one-off payments. Users can easily cancel or change their subscriptions based on their needs. Subscription apps also offer continuous updates and improvements. It ensures users always have access to the latest features and content.   An example of a paywall prioritizing subscriptions over the lifetime option Subscription apps can benefit developers by providing a stable revenue stream and fostering user engagement while offering users affordability, flexibility, and access to updated content. Trends in the subscription app market-2023 As of 2023, the subscription app market continues to grow with notable trends. One significant trend is the increasing adoption of subscription-based models across various app categories, including health and fitness, entertainment, productivity, and education. Health and fitness apps dominate the subscription app market. They offer personalized workouts, nutrition plans, and wellness resources. Entertainment apps include streaming services for music, video, and gaming. They remain highly popular, with users subscribing to access a vast library of licensed content.   Productivity subscription apps offer tools for project management, note-taking, and cloud storage. They are gaining more traction among self-employed professionals and businesses. They are especially popular among those who are working from home. Education-based apps that offer online courses, language learning, and skill development are experiencing increased demand. The subscription app market in 2023 is witnessing a surge in adoption across diverse categories. Users seek premium content, features, and services through subscription-based models for a seamless personalized app experience. Identifying your target audience Defining your target audience is one of the most important steps in developing a successful subscription app. By identifying your target audience, you can tailor your app's features, content, and marketing strategies to meet their specific needs and preferences. It is essential both for your app design and its promotion.   Understanding your target audience allows you to create a more personalized and engaging app experience. It can lead to higher user retention and increased subscription rates.   Below we will explore methods for identifying your target users and understanding the expectations of your audience. Methods for identifying your target users There are several effective methods for identifying your target user: Market research: Conducting market research through surveys, interviews, and data analysis can help you understand the demographics, preferences, and behaviors of your potential users. App analytics: Utilizing app analytics tools, such as in-app analytics or user tracking, can provide insights into user behavior, engagement, and demographics. User feedback: Soliciting feedback from your existing or potential users can offer valuable insights into their needs, preferences, and pain points. Competitor analysis: Analyzing your competitors' apps and user base can help you identify any gaps or opportunities in the market that you can capitalize on. Social media and user communities: Monitoring social media conversations, online forums, and user communities related to your app's niche can provide valuable insights into the preferences, interests, and behaviors of your target audience. These methods provide valuable insights into your target audience's demographics, preferences, and behaviors. It will help you create a subscription app for increased user engagement and subscription rates. How do you understand the expectations of your audience? By understanding the preferences and expectations of your audience, you can make informed decisions on app features, content, and improvements. This results in a more satisfying and engaging user experience that encourages continued subscriptions. Here are... --- Learn why it's important to calculate unit economics for your subscription app. Foreword Leading apps are prioritizing unit economics to increase short-term gains and endure uncertain times. Measuring one unit of economics lets app owners focus on what matters by unlocking a real-time view of profits and costs. For subscription apps, a unit is a user. And by assessing financial returns at the user level, app owners can streamline product features, reduce transactional costs and boost investment. In this post, we’ll get into more detail and reveal how to calculate unit economics in your context. What is unit economics? Unit economics definition is the measurement of profits made from a single item. It’s an analytical method measuring the direct financial gains and losses – aka revenues and costs – from a specific item or unit. So what is a unit in business? For a subscription app, it’s a user. And users come in different forms. By tracking their activity and financial behavior, subscription app owners can realize precise forecasts of gross profits or losses. And they can use these forecasts to alter their tactics and achieve greater financial returns.   Most often, a unit economics calculation uses two key metrics: Customer Acquisition Cost (CAC) - Cost to acquire new paying users Lifetime Value (LTV) - Average revenue a customer will generate in their lifespan  Typical unit economics calculations for in-app subscription apps include: LTV/CAC = A unit economics cost ratio for investment LTV - CAC = A unit economics profit margin  Other metrics also help with understanding the economics of a unit. Plus, Adapty has its own bespoke in-app subscriptions calculator for boosting in-app purchases. And we’ll talk about that more later on. Moving subscribers up the paywall to become the #1 mediation app To offer a strong unit economics example for in-app subscriptions let’s take Calm, the #1 meditation app. In an episode of Apple’s “Business Breakdowns” podcast, brothers Jesse and Vinny Pujji review Calm’s strategy to target TOFU freemium users to convert them into paying in-app subscribers. Recognizing how user activity was at its highest during sleeping hours, Calm put more sleep-based content behind paywalls and increased in-app subscriptions. Calm's paywall The Pujji brothers also estimate a unit economics calculation for Calm by breaking down costs into the following: Each paying user delivers an average of $70 per year. 60% of paying users are retained in year one with 80% retained every year after, arriving at a rough gross LTV of $200.   To calculate the potential margin, they estimate Apple App Store’s fees at $40, less $20 for producing high-quality content and another $20 for maintenance R&D.   They conclude with an LTV at $120 and suggest a $40 CAC.   Calm’s unit economics according to the Pujji brothers  LTV/CAC = $120/$40 = 3 or a ratio of 3:1 LTV - CAC = $120/$40 = $80 Such a strong ratio suggests Calm’s model is not only highly attractive to investors but also indicates potential for longer-term profits.   The importance of monitoring unit economics Analyzing user behavior in unit economics is one way to unlock clues to more cost-effective or revenue-generating strategies. Basing decisions on data, unit economics can leverage improvements that boost profits, performance, and investment. But there are some other specific ways it can help too. Better profitability forecasting Working with a unit economics model helps to review cost infrastructures that surround app users. By working outwards from a user-based starting point, app owners may find it easier to analyze the factors that influence the revenues and costs of each user. Unit economics can also reveal the amount of capital available to invest in future growth and unlock accurate profit forecasting.   Accurate viability assessments Engaging in a unit economics analysis helps to make a business case for a subscription app based on market viability. Questions may include: Does the app have a clear position in the market? What are the costs for user engagement? Which promotions can you run beyond ASO? ASO organic user growth maxes out between 10-20% but there are other promotions that can prove cost-effective. Unit economics offers a holistic view of user gains and losses and leverages improvements to costs and pricing plans. Clearer determination of scalability Working within the economics of one unit definition can reveal a sense of scalability potential. Breaking analysis into specific users makes it easier to assess an app’s value and determine the amount spent and earned from a single user. Gaining clarity on user and subscriber numbers also helps when forecasting ROI and when driving optimization and monetization potential.   Improved pricing structures Unit economics can help with recognizing the impact of user activity on profit margins. By determining payment behaviors like in-app payments or retention costs for features like paywalls, unit economics helps to streamline decision-making on pricing. It also justifies making adjustments to pricing or features that may be adding unnecessary costs.   Enhanced sustainability Companies can expect better long-term growth and sustainability when they provide insights into investment levels and budget allocations. From the cost of acquisition to activities that promote long-term retention, unit economics offers an effective health check on the balance sheet during uncertain economic times and major shifts in consumer behavior. And this can help investors make wiser decisions and app owners reduce unnecessary spending or waste. Which metrics should you track in unit economics? Knowing how to calculate units makes it easier to unlock insights into the costs and gains of app users. And since subscription apps focus on users as their unit, it’s a similar setup to calculating gains from a SaaS business. The main difference is the way that subscription apps account for all user actions. Instead, SaaS focuses on the total number of subscriptions.   So, with a focus on all activity associated with a user, you can reveal your unit economics calculation by dividing the cost of acquisition by the value of the user. This is also known as Lifetime Value (LTV) and Customer Acquisition Cost (CAC).   Below, we’ll explain more about these metrics... --- Choosing an app marketing agency can be daunting, so we're here to help you find the right one. Introduction Choosing an app marketing agency can be daunting, especially if you're new to the game since so many agencies are out there. It's easy to get lost in all the jargon and buzzwords, even though they can be crucial to your app's success. We're here to help you find the right agency for your mobile app. Let us start with some basic things. Figuring out your needs and scouting potential app marketing agencies Are you just going live, or do you already have a product-market fit? Is your app monetized via ads, or do you need help integrating a dedicated subscription analytics tool? Are you looking for a mobile app marketing agency to help you with all aspects of your business, or are there specific areas where the agency should focus its efforts (e. g. , paid user acquisition)? How much do you plan on spending on marketing? Are there any special requirements inside your company or vertical (e. g. , privacy policies)? There are many things to consider, but don't worry! We will address each of them one by one. Identifying target audience and marketing objective Before you search for an agency, it's essential to understand your target audience and marketing objective: Target Audience: This is the group of people you want to reach through your marketing efforts. It could be anyone from current users who have used the app before or potential users who have yet to download the app but might benefit from the value it's providing. For example, if your app offers public transport services, reach users living in the city where your service is available and who buy tickets on their smartphones. Marketing Objective: The goal for each campaign should be clearly defined so that everyone on the team knows what success looks like. Examples include increasing downloads, converting more users into paid subscribers, or delivering a positive Return on Ad Spend (ROAS) at scale. The next step is to break down your mobile marketing objective into actionable items. From there, you can begin building out a plan for how to accomplish them. Deciding on Key Performance Indicators (KPIs) When choosing KPIs, ensure they are measurable, specific, relevant, and time-bound: Measurable: "If you can't measure it, you can't manage it. " However, this famous Peter Drucker quote remains accurate within app marketing nowadays. Thus, instead of "improve customer satisfaction" better use "increase app store rating". Specific: It's essential to have a clear idea of when the agency has achieved its goals and what needs to be done for improvement. This could translate to an "increase trial starts by 30%" for a subscription app. Relevant: KPIs must always tie back to your overall business goals, like revenue or active users, to drive real impact. Famous examples of app vanity metrics would be downloads or registered users. They may look impressive but don't inform whether these users engage with the app or become paying customers. Time-bound: Setting clear deadlines creates a sense of urgency and accountability to achieve specific goals within a set timeframe. Regarding user acquisition, this usually ends up being 2nd week/month ARPU or retention, depending on the vertical and business model. Now that you know what you want to achieve, let's explore the research methods for finding the right app marketing agency. Online search, industry referrals, and agency shortlisting Begin by running a Google search using industry-specific keywords like top app marketing companies or mobile app marketing services (maybe you found this article by typing one of these). This will help you find agencies with relevant expertise while also allowing you to explore their websites and better understand their capabilities. Also, you can search for longtails that include the city your company is based in or those near you to find agencies who communicate in your native language and operate during the same time zone. As you gather potential candidates, reaching out to references on their websites and other industry professionals in your network can provide valuable insights into their know-how, performance, and work ethics. Feel free to ask if they would recommend the agency. This way, you can quickly identify bad apples. Checking out reviews, testimonials, and success stories If you cannot talk to their references because they're competitors or your project is highly confidential, another way to create an agency shortlist is by skimming through reviews and case studies. Here are some strategies to differentiate between true success stories and fabricated ones: Check multiple sources: Gather reviews from several platforms, such as Google, Linkedin, and their website. This way, you'll have a broader sample to analyze and identify patterns. Look for specific details: Honest reviews often contain information on the project, the working relationship, or the results achieved. Fictitious reviews may lack these specifics, using generic language and broad claims. Analyze the language: Watch for excessive praise or overly optimistic language that seems unnatural. Additionally, pay attention to the writing style; if multiple reviews seem to have the same tone or wording, they could be fake. Watch for timing patterns: If many positive reviews appear within a short timeframe, it could indicate a coordinated effort to inflate the agency's reputation. Genuine reviews will generally be spread out over time. Use 3rd party verification: Some review sites, like Clutch. co, perform rigorous validation processes, including client interviews, to ensure the authenticity of reviews. Phiture’s case studies and favorable client reviews Excellent, you've completed the second step of finding a new app marketing agency. Now it's time to contact them directly and learn more about the knowledge and services they bring. Checking Agency Expertise and Services Offered Every agency's qualifications and offerings must be assessed to ensure they can deliver the desired results. To conduct this assessment, schedule intro calls with them to discuss your project requirements and inquire about their approach, strategies, and tools. Ask if you can also talk to those potentially working on your project (marketing managers, data analysts, designers, etc. ) to avoid meaningless sales pitches. Mobile app marketing... --- React Native モバイルアプリのアプリ内購入を実装する方法に関するクイック ガイド | Adapty クロスプラットフォームのアプリ開発フレームワークは、開発者の負担を確実に軽減して、一度に複数のプラットフォーム用のアプリを構築できるようにします。ただし、いくつかの欠点があります。たとえば、React Nativeには、アプリ内購入 (in-app purchase) を実装するための既成のツールがありません。そのため、必然的にサードパーティのライブラリに着目する必要があります。 アプリ内購入の実装にはどのようなオプションがありますか? React Nativeアプリのアプリ内サブスクリプション (in-app subscription) で人気のあるライブラリは、react-native-iapとexpo-in-app-purchasesです。ただし、他のライブラリと比較して、react-native-adaptyには多数のメリットがあるため、このライブラリについて説明します。 ● 他のライブラリとは異なり、サーバーベース (server-side) の購入検証 (purchase validation) に対応しています。 ● プロモーションオファー (promo offer) から前払い (pay upfront) 機能まで、App Storeで最近実装されたすべての機能をサポートしています。また、今後の新機能への対応も迅速です。 ● より明確でシンプルなコードになります。 ● 完全なリリースサイクルを通過しなくても、提供するプロダクトを変更したり、新しいオファーを追加または削除したりできます。ベータ版をリリースして承認を待つ必要はありません。 その他にもAdapty SDKには、充実した機能が揃っています。すべての主要な指標、コホート分析 (Cohort analysis)、サーバーベースの購入検証、ペイウォール (paywall) のA/Bテスト (A/B test) 、柔軟なセグメンテーションによるプロモーションキャンペーン、サードパーティの分析ツールの統合など、組み込みの分析ツールを利用できます。 記事の内容 ここでは、React Nativeアプリでのアプリ内購入の設定について説明します。今回の内容は次のとおりです。 1. React Nativeアプリのアプリ内購入でExpoを使用できない理由 2. デベロッパーアカウントの作成 3. Adaptyの設定: App Storeの設定 Playストアの設定 4. サブスクリプションの追加 5. ペイウォールの作成 6. React Native-adaptyのインストール 7. サンプルアプリと結果 このガイドでは、サブスクリプションユーザーに猫の写真を表示して、その他のユーザーにサブスクリプションのオファーを提示するアプリの構築を試みます。 React Native アプリのアプリ内購入でExpoを使用できない理由 簡単に言うと、Expoの「マネージド」は、App Storeが提供する購入処理用のネイティブメソッド (別名StoreKit) をサポートしていません。引き続きReact Nativeを使用するか、Expo Bare Workflowを使用する必要があります。 Expoの使用を検討していた方はがっかりするかもしれませんが、使うことはできません。 Expoは、アプリ開発を効率化するReact Nativeフレームワークです。ただし、マネージドワークフローは、購入やサブスクリプションの処理と互換性がありません。Expoでは、StoreKitに必要なメソッドとコンポーネント (両方ともJavaScriptのみ) でネイティブコードを使用しません。モバイルストアでJavaScriptを使用してアプリ内購入を実装する方法はないため、「イジェクト」する必要があります。 デベロッパーアカウントの作成 まず、App Storeアカウントを作成して、iOSとAndroid の両方で購入とサブスクリプションを作成して設定する必要があります。20分以内で完了できるはずです。 App Store ConnectやGoogle Play Consoleでデベロッパーアカウントとプロダクトをまだ設定していない場合は、次のガイドを参照してください。 ● iOSの場合:ガイドの最初から「SKProductのリストの取得」の見出しまでお読みください。その後、ネイティブ実装について説明します。 ● Androidの場合:ガイドの最初から「アプリ内のプロダクトリストの取得」の見出しまでお読みください。 Adaptyの設定 react-native-adaptyの場合、最初にAdaptyダッシュボードを設定する必要があります。それほど時間はかかりませんが、Adaptyがハードコーディングよりも優れているという上記のすべてのメリットを得られます。 3番目の手順では、App StoreとGoogle Playの設定を求められます。 iOSの場合、次のことを行う必要があります。 ● バンドルIDを指定する ● App Storeサーバ通知を設定する ● App Store Connect共有シークレットを指定する これらのフィールドは、購入を完了するために必要です。 各フィールドには、手順ごとの方法を含む「説明」のヒントがあります。不明な点がある場合は、これらのヒントを確認してください。 バンドルIDは、アプリの一意のIDです。 Xcodeの > > で指定したIDと一致する必要があります。 Androidの場合、必須フィールドは「パッケージ名」と「サービスアカウントキーファイル」です。これらすべてのフィールドには、説明に関するヒントがあります。Androidでのパッケージ名は、iOSでのバンドルIDに対応しています。コードで指定したものと一致する必要があります。これは、android. defaultConfig. applicationIdの/android/app/build. gradleファイルで確認できます。 4番目の手順では、Adapty SDKをアプリに連携するよう求められます。ただし、後で説明するため、今はこの手順を飛ばしてください。 新規登録したら、 タブを確認してください。ここにパブリックSDKキーが表示されているため、覚えておきましょう。キーは後で必要になります。 サブスクリプションの追加 Adaptyでは、さまざまなサブスクリプションのプロダクトを使用します。猫の写真のサブスクリプションプランは、毎週、半年ごと、または毎年のいずれかです。これらのオプションは、それぞれ個別のAdaptyプロダクトになります。 ダッシュボードで、プロダクトが1つあることを指定しましょう。 → をクリックし、 をクリックします。 ここでは、プロダクト名、つまりサブスクリプションがAdaptyダッシュボードでどのように表示されるかを指定する必要があります。 App StoreプロダクトID と Play StoreアイテムID も指定する必要があります。必要に応じて、期間と分析用の名前も指定します。 をクリックします。 ペイウォールの作成 ここでは、ユーザーの有料機能へのアクセス権を制限して、サブスクリプションのオファーを表示する画面として、ペイウォールを設計する必要があります。作成したプロダクトをペイウォールに追加する必要があります。これを行うには、同じセクション ( → ) で をクリックします。 ● 名前を見ただけで、どのペイウォールであるかを簡単に推測できるようなペイウォール名を選択してください。 ● ペイウォールIDを使用して、このペイウォールをアプリに表示します。サンプルアプリでは、「cats_paywall」を使用します。 ● ドロップダウンで、サブスクリプションを選択します。 をクリックします。 設定は以上です。次に、依存関係を追加してコードを記述します。 react-native-adaptyのインストール 1. まず、依存関係を追加します。 yarn add react-native-adapty 2. iOSポッドをインストールします。CLIポッドをお持ちでない場合は、ダウンロードすることを強くお勧めします。iOS開発では、確かに多くのポッドが必要になります。 #pods get installed into the native iOS project, which, by default, is the /ios folderpod install --project-directory=ios 3. iOS React NativeプロジェクトはObj-Cで記述されているため、Obj-CがSwiftライブラリを読み取れるように、Swift Bridging Headerを作成する必要があります。そのためには、Xcodeプロジェクトを開いて新しいSwiftファイルを作成するだけです。Xcodeでは、Swift Bridging Headerを作成するかどうかを尋ねられるため、 をクリックします。 4. Android の場合、プロジェクト (デフォルトでは「/android/build. gradle」) がバージョン1. 4. 0以降のkotlin-gradle-pluginを使用していることを確認します。 ... buildscript { ... dependencies { ... classpath "org. jetbrains. kotlin:kotlin-gradle-plugin:1. 4. 0" } } ... 5. Androidの場合、アプリの設定ファイル (デフォルトでは「/android/app/build. gradle」) にあるmultiDexを有効にする必要があります。 ... android { ... defaultConfig { ... multiDexEnabled true } } これで準備が完了したので、コーディングを開始できるようになりました アプリでのプロダクトリストの取得 react-native-adaptyには、さまざまな便利な機能があります。遅かれ早かれ必ず必要になるため、フローの最初でライブラリを初期化する必要があります。アプリのコーディング画面で上にスクロールして (App. tsxでも同様に実行できます)、初期化を開始しましょう。 // import the method import { activateAdapty } from 'react-native-adapty'; // We’ve had this App component in our app’s root const App: React. FC = => { ... // we’re invoking it once in a root component on mount useEffect( => { activateAdapty({ sdkKey: 'MY_PUBLIC_KEY' }); },); ... } ここでは、MY_PUBLIC_KEYをダッシュ ボード設定にあるパブリックSDKキーに置き換えます。実際には、 activateAdaptyメソッドは複数回、複数の場所で呼び出すことができますが、引き続きこの方法を使用してください。 これで、Adapty ダッシュボードに追加したプロダクトを取得できます。 import { adapty } from 'react-native-adapty'; async function getProducts { const {paywalls, products} = await adapty. paywalls. getPaywalls; return products; } それでは、実践してみましょう。ペイウォールからプロダクトを閲覧して購入できる軽量アプリを作成してみます。 サンプルアプリ 基本ロジックが複雑になりすぎないように、ここから先は簡潔にします。また、TypeScriptでコーディングして、どのタイプがどこで使用されているかを示します。テストには、懐かしいiPhone 8を使用します。iOS 14以降、App StoreではエミュレーターでStoreKitを使用することが禁止されるようになりました。実機を使ってのみテストできます。 App. tsxルートコンポーネント 1. まず、ペイウォール表示ボタンを含むApp. tsxルートコンポーネントを作成しましょう。すでにreact-native-navigationからナビゲーションを設定しています。公式ドキュメントで推奨されているreact-navigationオプションよりもはるかに優れていると考えられます。 問題 import React, { useEffect, useState } from "react"; import { Button, StyleSheet, View } from "react-native"; import { adapty, activateAdapty, AdaptyPaywall } from "react-native-adapty"; export const App: React. FC = => { const = useState; useEffect( => { async function fetchPaywalls: Promise { await activateAdapty({ sdkKey: "MY_PUBLIC_KEY" }); const result = await adapty. paywalls. getPaywalls; setPaywalls(result. paywalls); } fetchPaywalls; }, ); return ( { const paywall = paywalls. find( (paywall) => paywall. developerId === "cats_paywall" ); if (! paywall) { return alert("There is no such paywall"); } // Switching to a paywall... }} /> ); }; const styles = StyleSheet. create({ container: { flex: 1, alignItems: "center", justifyContent: "center" }, }); 何が起きているのでしょうか?マウント時に、fetchPaywalls関数が呼び出されます。 SDK をアクティベーションして、ペイウォールをその状態で保存するため、ユーザーはボタンをタップした後に取得されるまで待つ必要がありません。ビューには、ダッシュボードで以前に設計したペイウォール画面に移動するボタンが1つのみ表示されます。 実際、ペイウォールを状態に保存せずに、ここで取得することは可能です。デフォルトでは、adapty. paywalls. getPaywallsは (起動時にキャッシュした後) キャッシュストレージから取得します。つまり、メソッドがサーバーと通信するのを待つ必要はありません。 結果は次のとおりです。 ペイウォールコンポーネント 2. 同じファイルにペイウォールコンポーネントを書きましょう。 // there are more imports here import React, { useEffect, useState } from "react"; import { Button, SafeAreaView, StyleSheet, Text, View, PlatformColor, } from "react-native"; import { adapty, activateAdapty, AdaptyPaywall, AdaptyProduct, } from "react-native-adapty"; import { Navigation } from "react-native-navigation"; // ... interface PaywallProps { paywall: AdaptyPaywall; onRequestBuy: (product: AdaptyProduct) => void | Promise; } export const Paywall: React. FC = ({ paywall, onRequestBuy }) => { const = useState(false); return ( {paywall. products. map((product) => ( {product. localizedTitle} { try { setIsLoading(true); await onRequestBuy(product); } catch (error) { alert("Error occured :("); } finally { setIsLoading(false); } }} /> ))} ); }; // A new key const styles = StyleSheet. create({ container: { flex: 1, alignItems: "center", justifyContent: "center" }, paywallContainer: { flex: 1, alignItems: "center", justifyContent: "space-evenly", backgroundColor: PlatformColor("secondarySystemBackground"), }, }); ここでは、ペイウォールからプロダクトをマッピングし、各プロダクトの横に購入ボタンを表示します。 画面の登録 3. 表示を確認するために、この画面をreact-native-navigationに登録しましょう。他のナビゲーションを使用している場合は、この手順をスキップしてください。ルートindex. jsファイルは次のようになります。 import "react-native-gesture-handler"; import { Navigation } from "react-native-navigation"; import { App, Paywall } from ". /App"; Navigation. registerComponent("Home", => App); Navigation. registerComponent("Paywall", => Paywall); Navigation. events. registerAppLaunchedListener( => { Navigation. setRoot({ root: { stack: { children: } }, }); }); 「ペイウォールを表示する」ボタン 4. 次に、「ペイウォールを表示する」ボタンにアクションを割り当てる必要があります。この場合、 を介してモーダルが表示されます。 Navigation. showModal({ component: { name: "Paywall", passProps: { paywall, onRequestBuy: async (product) => { const purchase = await adapty. purchases. makePurchase(product); // Doing everything we need console. log("purchase", purchase); }, }, }, }); App. tsxファイル全体: import React, { useEffect, useState } from "react"; import { Button, SafeAreaView, StyleSheet, Text, View, PlatformColor, } from "react-native"; import { adapty, activateAdapty, AdaptyPaywall, AdaptyProduct, } from "react-native-adapty"; import { Navigation } from "react-native-navigation"; export const App: React. FC = => { const = useState; useEffect( => { async function fetchPaywalls: Promise { await activateAdapty({ sdkKey: "MY_PUBLIC_KEY", }); const result = await adapty. paywalls. getPaywalls; setPaywalls(result. paywalls); } fetchPaywalls; }, ); return ( { const paywall = paywalls. find( (paywall) => paywall. developerId === "cats_paywall" ); if (! paywall) { return alert("There is no such paywall"); } Navigation. showModal({ component: { name: "Paywall", passProps: { paywall, onRequestBuy: async (product) => { const purchase = await adapty. purchases. makePurchase(product); // Doing everything we need console. log("purchase", purchase); }, }, }, }); }} /> ); }; interface PaywallProps { paywall: AdaptyPaywall; onRequestBuy: (product: AdaptyProduct) => void | Promise; } export const Paywall: React. FC = ({ paywall, onRequestBuy }) => { const = useState(false); return ( {paywall. products. map((product) => ( {product. localizedTitle} { try { setIsLoading(true); await onRequestBuy(product); } catch (error) { alert("Error occured :("); } finally { setIsLoading(false); } }} /> ))} ); }; const styles = StyleSheet. create({ container: { flex: 1, alignItems: "center", justifyContent: "center" }, paywallContainer: { flex: 1, alignItems: "center", justifyContent: "space-evenly", backgroundColor: PlatformColor("secondarySystemBackground"), }, }); 以上で、ペイウォールをユーザーに表示できるようになりました。 サンドボックスでiOSのサブスクリプションをテストする場合は、独自のサンドボックステスターアカウントを作成する必要があります。テストを効率化するために、サンドボックスサブスクリプションはすぐに無効になることに注意してください。Androidの場合、追加のアカウントは必要ありません。エミュレーターでテストを実行することもできます。 ユーザーにアクティブなサブスクリプションがあるかどうかを確認する エンドユーザーに有料コンテンツへのアクセスを許可するために、アクティブなサブスクリプション データをどこに保存するかを指定しなければなりません。Adaptyでは、ユーザーに関連付けられたすべての購入情報が保存されるため、この場合にも役立ちます。仮にユーザーがサブスクリプションを利用していない場合は、ペイウォールボタンが表示されるとします。サブスクリプションを利用している場合は、ユーザーに猫の写真を表示します。. アクティブなサブスクリプションデータはサーバーまたはキャッシュストレージから取得されるため、ローダーが必要になります。効率化のために、isLoadingとisPremiumの状態を追加しましょう。 // ... export const App: React. FC = => { const = useState(true); const = useState(false); const = useState; useEffect( => { async function fetchPaywalls: Promise { try { await activateAdapty({ sdkKey: "MY_PUBLIC_KEY", }); const profile = await adapty. purchases. getInfo; const isSubscribed = profile. accessLevels. premium. isActive; setIsPremium(isSubscribed); if (! isSubscribed) { const result = await adapty. paywalls. getPaywalls; setPaywalls(result. paywalls); } } finally { setIsLoading(false); } } fetchPaywalls; }, ); // ... } // ... 変更点は次のとおりです。状態にフラグを追加しました。fetchPaywallsの記述全体がtry-catchブロックにラップされるようになり、あらゆる想定されるシナリオでコードがsetIsLoading(false)に到達するようになりました。ユーザーにアクティブなサブスクリプションがあるかどうかを確認するために、ユーザーのプロファイル (すべてのサブスクリプションデータを含む) を取得し、profile. accessLevels. premium. isActiveの値を確認します。必要に応じてアクセスレベル (accessLevels) を使用できますが (基本的には「ゴールド」や「プレミアム」などのサブスクリプションレベルにすぎません)、ここでは既定値のままにします。Adaptyでは、有料機能へのアクセスレベルを自動的に作成します。ほとんどのアプリでは、これで十分です。isActiveは、このアクセスレベルのアクティブなサブスクリプションがある間は「true」のままになります ここからは、すべてが簡単に思えるはずです。ユーザーにプレミアムレベルのサブスクリプションステータスがある場合、ペイウォールを取得する必要はありません。ローダーを無効にしてコンテンツを表示するだけです。 export const App: React. FC = => { // ... const renderContent = : React. ReactNode => { if (isLoading) { return Loading... ; } if (isPremium) { return ; } return... --- 리액트 네이티브 모바일 앱용 인앱 구매를 구현하는 방법에 대한 빠른 단계별 가이드입니다. 서버 측 영수증 검증이 포함됩니다 플랫폼간 앱 (app)개발프레임워크는 확실히 개발자의 삶을 더 쉽게 만들어주어, 한번에 여러 플랫폼용 앱을 빌드할 수 있게 해줍니다. 하지만몇 가지 단점이 있습니다. 예를들어,리액트네이티브 (ReactNative)에는인앱 구매 (in-apppurchase)를구현하기 위한 기성 도구가 없습니다. 따라서,제3자라이브러리를 바라볼 수 밖에 없습니다. 인앱구매 구현 (purchase implementation)을위한 옵션 리액트네이티브 앱의 인기 있는 인앱 구독 (in-appsubscription) 라이브러리는react-native-iap와expo-in-app-purchases입니다. 하지만react-native-adapty에대해 이야기할 건데,다른라이브러리에 비해 상당한 이점이 있기 때문입니다: 다른 라이브러리와는 달리, 서버 기반 구매 검증 (purchase validation)을 제공합니다. 프로모션 할인부터 선불 (pay-upfront) 기능에 이르기까지, 앱스토어에서 최근 구현된 모든 기능을 지원합니다. 또한 새로운 기능을 빠르게 지원합니다. 코드는 더 명확하고 간단해집니다. 전체 출시 주기가 지나지 않아도, 제품 판매를 수정하고 새로운 판매를 추가하거나 제거할 수 있습니다. 베타 버전을 출시하고 승인을 기다릴 필요가 없습니다. AdaptySDK에는그보다 훨씬 더 많은 것이 있습니다. 모든주요 메트릭,코호트분석 (cohortanalysis), 서버기반 구매 검증,페이월(paywall)에대한 AB테스트(ABtesting), 유연하게세분화할 수 있는 프로모션 캠페인,제3자분석 도구 통합 등을 위한 내장 분석 도구가 제공됩니다. 이기사에서 다룰 내용 지금은리액트 네이티브 앱에서 인앱 구매를 설정하는 방법에대해 이야기해 보겠습니다. 오늘다룰 내용은 다음과 같습니다. 리액트 네이티브 앱의 인앱 구매에 Expo가 작동하지 않는 이유. 개발자 계정 만들기. Adapty 환경설정하기:App Store 환경설정Play Store 환경설정 구독을 추가하기. 페이월 생성하기. react-native-adapty 설치하기. 샘플 앱 및 결과. 이가이드에서는,구독한사용자에게 고양이 사진을 표시하고 다른 모든 사용자에게구독 제안을 표시하는 앱을 빌드하려고 합니다. 리액트네이티브 앱의 인앱 구매에 Expo가작동하지 않는 이유 간단하게말하자면:Expo"managed”는구매 처리를 위해 앱 스토어에서 제공하는 네이티브메소드 (스토어키트 (storekits)라고도함)를지원하지 않습니다. 순수한RN을고수하거나,Expo 베어워크플로우를 사용해야 합니다. 단도직입적으로,Expo를사용하려고 생각한 사람들에게는 실망스럽지만,이것은작동하지 않습니다. Expo는앱 개발을 훨씬 쉽게 해주는 리액트 네이티브프레임워크입니다. 그러나매니지드 워크플로우는 구매/구독처리와 호환되지 않습니다. Expo는스토어 키트에 필요한 메소드와 컴포넌트 (둘다 JS전용)에네이티브 코드를 사용하지 않습니다. JavaScript를사용하는 모바일 스토어에서 인앱 구매를 구현할 수있는 방법이 없으므로,"나야합니다". 개발자계정 만들기 먼저앱 스토어 계정을 설정하고 iOS및Android모두에대한 구매 및 구독을 생성 및 구성해야 합니다. 20분이상 걸리지 않을 것입니다. AppStore Connect 및/또는GooglePlay Console에서개발자 계정 및 제품을 아직 구성하지 않은 경우,다음가이드를 참조하세요. iOS용: 가이드를 처음부터 "SKProduct 목록 가져오기" 제목까지 읽으십시오. 여기에서 네이티브 구현에 대해 다루기 시작하는 부분이기 때문입니다. Android용: 가이드를 처음부터 "앱에서 제품 목록 가져오기" 제목까지 읽으십시오. Adapty 환경설정 react-native-adapty의경우 먼저 Adapty대시보드를구성해야 합니다. 시간이많이 걸리지는 않지만,위에나열된 Adapty가하드 코딩에 비하여 갖는 모든 이점을 얻을 수 있습니다. 세번째 단계에서는 AppStore 및GooglePlay 구성을묻는 메시지가 표시됩니다. iOS의경우, 번들 ID를 지정합니다. App Store 서버 알림 (Server Notifications)을 설정합니다. App Store Connect 공유 암호를 지정합니다. 이필드는 구매가 작동하는 데 필요합니다. 각필드에는 단계별 방법 가이드가 포함된 'Readhow' 힌트가있습니다. 질문이있는 경우 이를 확인하십시오. 번들ID는앱의 고유 ID입니다. Xcode의Targets> > General에서지정한 것과 일치해야 합니다: Android의경우,필수필드는 패키지 이름 및 서비스 계정 키 파일입니다. 이모든 필드에는 각각 Readhow 힌트도있습니다. Android에서패키지 이름은 iOS에서번들 ID와같은 역할을 합니다. 이는android. defaultConfig. applicationId의/android/app/build. gradle파일에서찾을 수 있는 코드에 지정한 것과 일치해야 합니다. 네번째 단계에서는 AdaptySDK를앱에 연결하라는 메시지가 표시됩니다. 지금은이 단계를 건너뛰십시오. 잠시후에 다시 설명하겠습니다. 가입한후 설정 탭을 확인하고,여기에서공개 SDK키를찾을 수 있다는 점을 기억하십시오. 나중에키가 필요합니다. 구독추가하기 Adapty는다양한 구독에 제품을 사용합니다. 고양이사진 구독은 주간,6개월또는 연간이 될 수 있습니다. 이러한각 옵션은 별개의 Adapty제품이됩니다. 하나의제품이 있다고 대시보드에 지정해 보겠습니다. 이렇게하기 위해,Products & A/B Tests → Products 로이동하여 Createproduct를클릭합니다. 여기에서제품 이름,즉이 구독이 Adapty대시보드에표시되는 방식을 지정해야 합니다. AppStore 제품ID와PlayStore 제품ID도지정해야 합니다. 원하는경우,분석을위한 기간과 이름도 지정합니다. Save를클릭합니다. 페이월생성하기 이제사용자의 프리미엄 기능 접근을 제한하고 구독 제안을표시하는 화면인 페이월을 디자인해야 합니다. 생성한제품을 페이월에 추가해야 합니다. 그렇게하려면 동일한 섹션에서 Createpaywall을클릭합니다. (Products & A/B Tests → Paywalls) 귀하와 귀하의 팀이 이름만 보고 어떤 페이월인지 쉽게 알 수 있는 페이월 이름을 선택하십시오. 페이월 ID를 사용하여 앱에 이 페이월을 표시합니다. 샘플 앱의 경우, "cats_paywall"을 사용하겠습니다. 제품 드롭다운에서 구독을 선택합니다. Save &publish를클릭합니다. 이렇게하면 환경 설정이 됩니다. 이제종속성을 추가하고 코드를 작성합니다. react-native-adapty 설치하기 1. 먼저종속성을 추가합니다. yarn add react-native-adapty 2. iOS포드를설치합니다. 아직CLI 포드가없다면 다운로드하기를강력히 추천합니다. iOS 개발에서확실히 많이 필요할 것입니다. #pods get installed into the native iOS project, which, by default, is the /ios folderpod install --project-directory=ios 3. iOS리액트네이티브 프로젝트는 Obj-C로작성되었으므로,Obj-C가Swift라이브러리를읽을 수 있도록 SwiftBridging Header를생성해야 합니다. 그렇게하려면 Xcode프로젝트를열고 새 Swift파일을생성하기만 하면 됩니다. Xcode는브리징 헤더를 생성할 것인지 물어보는데,바로그걸 하려는 거죠. Create을클릭합니다. 4. Android의경우,프로젝트(기본적으로/android/build. gradle)가버전 1. 4. 0이상의kotlin-gradle-plugin을사용하고 있는지 확인하세요... . buildscript { ... dependencies { ... classpath "org. jetbrains. kotlin:kotlin-gradle-plugin:1. 4. 0" } } ... 5. Android의경우,앱의구성 파일 (기본적으로/android/app/build. gradle)에서찾을 수 있는 multiDex를활성화해야 합니다... . android { ... defaultConfig { ... multiDexEnabled true } } 자,이제준비가 끝났고 코딩을 시작할 수 있습니다! 앱에서제품 목록 검색하기 react-native-adapty아래에서많은 일이 일어나고 있습니다. 조만간이것들이 반드시 필요할 것이므로,플로우의시작 지점에서 라이브러리를 초기화해야 합니다. 앱코드에서 가능한 한 높이 이동하여 (App. tsx에서도바로 수행할 수 있음)초기화를시작합니다. // import the method import { activateAdapty } from 'react-native-adapty'; // We’ve had this App component in our app’s root const App: React. FC = => { ... // we’re invoking it once in a root component on mount useEffect( => { activateAdapty({ sdkKey: 'MY_PUBLIC_KEY' }); },); ... } 여기에서MY_PUBLIC_KEY를대시보드 설정에 있는 공개 SDK키로바꾸십시오. 사실,activateAdapty 메소드는한 번 이상 그리고 여러 곳에서 호출될 수 있지만,우리는이 디자인을 고수할 것입니다. 이제Adapty대시보드에추가한 제품을 검색할 수 있습니다. import { adapty } from 'react-native-adapty'; async function getProducts { const {paywalls, products} = await adapty. paywalls. getPaywalls; return products; } 이제연습해 보겠습니다. 우리는페이월에서 제품을 검색하고 구매할 수 있는 작은 앱을만들어 볼 것입니다. 샘플앱 기본논리가 지나치게 복잡해지지 않도록 이 정도로 짧게유지하겠습니다. 또한TypeScript로코딩하여,사용되는유형과 위치를 보여줍니다. 테스트를위해 iPhone8을사용하겠습니다. iOS 14부터AppStore는에뮬레이터에서 스토어 키트 사용을 금지합니다. 물리적기기를 사용해서만 테스트할 수 있습니다. App. tsx루트컴포넌트 1. 먼저,페이월표시 버튼이 있는 App. tsx루트컴포넌트를 생성합니다. 우리는이미 react-native-navigation을통해 네비게이션을 구성했습니다. 공식문서에서 권장하는 react-navigation옵션보다훨씬 낫다고 생각합니다. 문제 import React, { useEffect, useState } from "react"; import { Button, StyleSheet, View } from "react-native"; import { adapty, activateAdapty, AdaptyPaywall } from "react-native-adapty"; export const App: React. FC = => { const = useState; useEffect( => { async function fetchPaywalls: Promise { await activateAdapty({ sdkKey: "MY_PUBLIC_KEY" }); const result = await adapty. paywalls. getPaywalls; setPaywalls(result. paywalls); } fetchPaywalls; }, ); return ( { const paywall = paywalls. find( (paywall) => paywall. developerId === "cats_paywall" ); if (! paywall) { return alert("There is no such paywall"); } // Switching to a paywall... }} /> ); }; const styles = StyleSheet. create({ container: { flex: 1, alignItems: "center", justifyContent: "center" }, }); 무슨일이죠? 마운트시,fetchPaywalls 함수가호출됩니다. SDK를활성화하고 페이월을 스테이트에 저장하여,사용자가버튼을 탭한 후 가져오기를 기다릴 필요가 없습니다. 겉으로보기에는,이전에대시보드에서 디자인한 페이월로 사용자를 안내하는버튼 하나만 있습니다. 사실,페이월을스테이트에 저장하지 않고 바로 여기에서 가져올 수있습니다. 기본적으로adapty. paywalls. getPaywalls는(시작할때 캐시한 후)캐시저장소에서 페이월을 가져오기 때문에,메소드가서버와 통신할 때까지 기다릴 필요가 없다는 뜻입니다. 결과는다음과 같습니다. 페이월컴포넌트 2. 같은파일에 페이월 컴포넌트를 작성해 보겠습니다. // there are more imports here import React, { useEffect, useState } from "react"; import { Button, SafeAreaView, StyleSheet, Text, View, PlatformColor, } from... --- Un guide rapide sur la façon de mettre en œuvre les achats intégrés à l'application pour une application mobile React Native. Les cadres de développement d'applications multi-plateformes facilitent certainement la vie des développeurs, en leur permettant de créer des applications pour plusieurs plateformes à la fois. Il y a cependant quelques inconvénients. Par exemple, React Native ne dispose d'aucun outil prêt à l'emploi pour la mise en œuvre des achats intégrés (in-app purchases). Par conséquent, vous devrez inévitablement vous tourner vers des bibliothèques tierces.   Quelles sont les options disponibles pour la mise en œuvre des achats intégrés ? Les bibliothèques les plus populaires pour les abonnements (subscriptions) intégrés dans les applications React Native sont react-native-iap et expo-in-app-purchases. Je vais cependant parler de react-native-adapty, car elle présente un certain nombre d'avantages par rapport aux autres bibliothèques : Contrairement à ces derniers, il assure la validation des achats (purchase validation) sur le serveur. Il prend en charge toutes les fonctionnalités récemment implémentées par les magasins d'applications, depuis les offres promotionnelles (promo offers) jusqu'aux fonctionnalités de paiement anticipé (pay-upfront). Il est également rapide pour prendre en charge les nouvelles fonctionnalités à venir. Le code finit par être plus clair et plus simple. Vous pouvez modifier votre offre de produits et ajouter ou supprimer de nouvelles offres sans devoir passer par le cycle complet de publication. Il n'est pas nécessaire de publier des versions bêta et d'attendre l'approbation. Il y a bien plus dans le SDK Adapty que ça. Vous disposez d'outils d'analyse intégrés pour tous les indicateurs clés, d'une analyse de cohorte (cohort analysis), d'une validation des achats sur serveur, d'un test AB pour les paywalls, de campagnes promotionnelles avec une segmentation flexible, d'intégrations d'outils d'analyse tiers, etc. Dans cet article Pour l'instant, nous allons parler du paramétrage des achats intégrés dans les applications React Native. Voici ce que nous allons couvrir aujourd'hui : Pourquoi Expo ne fonctionne pas pour les achats intégrés dans les applications React Native. Création d'un compte de développeur. Configuration de Adapty:Configuration de l'App StoreConfiguration de Play Store Ajout d'abonnements. Création d'un paywall. Installation de react-native-adapty. Un exemple d'application et le résultat.   Dans ce guide, nous allons essayer de créer une application qui affiche des photos de chats pour les utilisateurs abonnés et propose une offre d'abonnement à tous les autres.   Pourquoi Expo ne fonctionne pas pour les achats intégrés dans les applications React Native ? Pour résumer brièvement la situation : Expo "managed” ne prend pas en charge les méthodes natives des magasins d'applications pour le traitement des achats (également connues sous le nom de kits de magasin). Vous devrez soit vous en tenir au RN pur, soit utiliser le flux de travail de Expo. D'emblée, je dois décevoir ceux qui ont pensé à utiliser Expo : ça ne marchera pas. Expo est un cadre React Native qui facilite grandement le développement des applications. Leur flux de travail géré n'est cependant pas compatible avec le traitement des achats et des abonnements. Expo n'utilise pas de code natif dans ses méthodes et ses composants (les deux sont en JS uniquement), ce qui est requis pour les kits de magasin. Il n'y a aucun moyen d'implémenter les achats intégrés dans les boutiques mobiles avec JavaScript, vous devrez donc vous "éjecter". Création d'un compte de développeur Tout d’abord, vous devrez configurer des comptes app store, ainsi que créer et configurer les achats et les abonnements pour iOS et Android. Cela ne devrait pas vous prendre plus de 20 minutes. Si vous n'avez toujours pas configuré votre compte de développeur et vos produits dans App Store Connect et/ou Google Play Console, consultez ces guides : Pour iOS: lisez le guide depuis le début et jusqu'à la rubrique "Obtenir la liste de SKProduct"(Getting the list of SKProduct), car c'est là que nous commençons à parler des implémentations natives.   Pour Android: lisez le guide depuis le début et jusqu'à la rubrique "Obtenir une liste de produits dans une application". Configurer Adapty Pour react-native-adapty, vous devrez d'abord configurer votre tableau de bord Adapty. Cela ne prendra pas beaucoup de temps, mais vous obtiendrez tous les avantages énumérés ci-dessus qu'Adapty a sur le codage en dur. À la troisième étape, vous serez invité à configurer l'App Store et Google Play. Pour iOS, vous aurez besoin de : Spécifiez l'ID du Bundle ; Paramétrez les notifications du serveur (server notifications) App Store ; Spécifiez le secret partagé (shared secret) App Store Connect.   Ces champs sont obligatoires pour que les achats fonctionnent.   Chaque champ dispose d'une indication "Découvrez comment"(Read how) qui contient des guides pratiques étape par étape. Consultez-les si vous avez des questions. L'ID du Bundle est l'ID unique de votre application. Il doit correspondre à celui que vous avez spécifié dans Xcode, dans Targets > > General : Pour Android, les champs obligatoires sont le nom du paquet et le fichier clé du compte de service. Tous ces domaines ont également leurs propres conseils de lecture. Le nom du paquet fait sous Android ce que l'ID du Bundle fait sous iOS. Il doit correspondre à celui que vous avez spécifié dans votre code, qui se trouve dans le fichier /android/app/build. gradle dans android. defaultConfig. applicationId : A la quatrième étape, vous serez invité à connecter SDK Adapty à votre application. Mais sautez cette étape pour l'instant, nous y reviendrons un peu plus tard. Une fois que vous vous êtes inscrit, consultez l'onglet des paramètres et n'oubliez pas que c'est là que se trouve votre clé publique SDK. Vous aurez besoin de la clé plus tard. Ajout d'un abonnement Adapty utilise des produits pour différents abonnements. Votre abonnement aux photos de chats peut être hebdomadaire, semestriel ou annuel. Chacune de ces options sera un produit Adapty distinct. Spécifions dans le tableau de bord que nous avons un seul produit. Pour ce faire, allez dans Products & A/B Tests → Products et cliquez sur Create product.   Ici, vous devrez spécifier le nom du produit, c'est-à-dire comment cet abonnement apparaîtra dans votre tableau de bord Adapty.   Vous devrez également indiquer l'ID du produit App Store et l'ID du produit Play Store. Si... --- Schnellanleitung zur Implementierung von In-App-Käufen für die React Native App Verschiedene plattformübergreifende App-Entwicklungs-Frameworks erleichtern Entwicklern das Leben, da sie Apps für mehrere Plattformen gleichzeitig erstellen können. Leider haben sie jedoch auch einige Nachteile. So hat React Native kein Tool zur Implementierung von In-App-Käufen (in-app purchases). Dies bedeutet also, dass Sie zwangsläufig Bibliotheken von Drittanbietern verwenden müssen.   Wie können In-App-Käufe noch implementiert werden? Zu den beliebten Bibliotheken für In-App-Abonnements in React Native-Apps zählen react-native-iap und expo-in-app-purchases. An dieser Stelle möchte ich aber über React-Native-Adapty sprechen, da es im Vergleich zu den anderen Bibliotheken einige Vorteile bietet: Es bietet eine serverbasierte Kaufvalidierung. Es unterstützt alle kürzlich von den App Stores implementierten Funktionen, von Werbeangeboten bis hin zu Vorauszahlungen. Der Code ist klarer und einfacher. Sie können ganze ohne das Durchlaufen des ganzen Veröffentlichungskreislaufs Ihr Produktangebot ändern und neue Angebote hinzufügen. Sie müssen keine Betaversionen veröffentlichen und auf Genehmigungen warten. Adapty SDK bietet Ihnen aber noch viel mehr. Sie erhalten verschiedene Analysetools für alle wichtigen Kennzahlen, Kohortenanalysen, eine serverbasierte Kaufvalidierung, AB-Tests für Paywalls, Werbekampagnen mit flexibler Segmentierung, integrierte Analysetools von Drittanbietern und mehr. Worauf ich zu sprechen kommen werde Zuerst möchte ich über das Einrichten von In-App-Käufen in React Native-Apps sprechen. Dazu gehört Folgendes: Warum Expo nicht für In-App-Käufe in React Native-Apps funktioniert. Die Erstellung eines Entwicklerkontos Die Konfiguration von Adapty:Konfiguration im App StoreKonfiguration im Play Store Das Hinzufügen von Abonnements. Die Erstellung einer Paywall. Die Installation von react-native-adapty. Eine Sample App und das Ergebnis. In diesem Tutorial versuchen wir, eine App zu erstellen, in der Abonnenten Katzenbilder zu sehen bekomme. Alle anderen Nutzer sollen aufgefordert werden, ein Abonnement abzuschließen. Warum Expo nicht für In-App-Käufe in React Native-Apps funktioniert In wenigen Worten: Expo unterstützt nicht die nativen Methoden, die der App Store für die Kaufabwicklung anbietet (auch bekannt als Store-Kits). Sie müssen sich entweder an RN halten oder den Expo-Bare-Workflow verwenden. Ich muss Sie gleich zu Beginn leider enttäuschen, falls auch Sie Expo verwenden wollten. Denn das wird nicht funktionieren. Natürlich ist Expo ein React Native-Framework, das die App-Entwicklung erheblich vereinfacht. Ihr verwalteter Workflow ist jedoch nicht mit der Kauf-/Abonnementverarbeitung kompatibel. Expo verwendet keinen nativen Code in seinen Methoden und Komponenten (beide sind JavaScript), was für Shop-Kits jedoch erforderlich ist. Es gibt keine Möglichkeit, In-App-Käufe in Stores mit JavaScript zu implementieren. Sie müssen diese Idee daher verwerfen und stattdessen einen “Eject" wagen. Die Erstellung eines Entwicklerkontos Erst einmal müssen Sie App Store-Konten einrichten sowie Käufe und Abonnements für iOS und Android erstellen und konfigurieren. Das sollte kaum länger als 20 Minuten dauern. Falls Sie Ihr Entwicklerkonto und Ihre Produkte noch nicht in App Store Connect und/oder in der Google Play Console konfiguriert haben, folgen Sie bitte diesen Schritten: Für iOS: Lesen Sie das Tutorial von Anfang an bis zur Überschrift „Die Liste des SKProduct“, wo wir über die nativen Implementierungen sprechen. Für Android: Lesen Sie das Tutorial von Anfang an bis zur Überschrift „Erstellen einer Produktliste in einer App“. Die Konfiguration von Adapty Für React-native-adapty müssen Sie zunächst Ihr Adapty-Dashboard konfigurieren. Dies nimmt nicht viel Zeit in Anspruch. Gleichzeitig genießen Sie alle oben genannten Vorteile von Adapty im Vergleich zur harten Codierung. Im dritten Schritt werden Sie aufgefordert, die Konfigurationen für den App Store und Google Play vorzunehmen. Für iOS müssen Sie: Die Bundle ID angeben; App Store Serverbenachrichtigungen einrichten; Die gemeinsame Geheimnis für App Store Connect angeben. All diese Felder sind erforderlich, damit die Käufe funktionieren.   Jedes dieser Felder bietet weitere Informationen mit Schritt-für-Schritt-Anleitungen. Nutzen Sie diese, wenn Sie Fragen haben. Die Bundle-ID ist die eindeutige ID Ihrer App. Sie muss mit der ID übereinstimmen, die Sie in Xcode angegeben haben: Targets > > General: Im Falle von Android sind die erforderlichen Felder der Package Name und die Service Account Key File. Auch diese Felder haben ihre eigenen Hinweise. Der Package Name macht in Android das, was die Bundle-ID in iOS macht. Er muss mit dem Namen übereinstimmen, den Sie in Ihrem Code angegeben haben. Prüfen Sie dies in der /android/app/build. gradle Datei in android. defaultConfig. applicationId: Im vierten Schritt werden Sie dazu aufgefordert, Adapty SDK mit Ihrer App zu verbinden. Überspringen Sie diesen Schritt jedoch vorerst – wir werden etwas später darauf zurückkommen. Nachdem Sie sich angemeldet haben, sehen Sie sich die Registerkarte „Einstellungen“ an. Beachten Sie bitte, dass hier Ihr öffentlicher SDK-Key zu finden ist. Diesen werden Sie später benötigen. Hinzufügen eines Abonnements Adapty verwendet für die verschiedenen Abonnements Produkte. Ihr Abonnement für Katzenbilder kann wöchentlich, halbjährlich oder jährlich verlängert werden. Jede dieser Optionen ist ein separates Adapty-Produkt. Im Dashboard geben Sie an, dass Sie ein Produkt haben. Gehen Sie dazu zu Produkte & A/B-Tests → Produkte und klicken Sie auf Produkt erstellen.   Nun müssen Sie den Produktnamen angeben. Dies bestimmt, wie das Abonnement in Ihrem Adapty-Dashboard aussehen wird. Zusätzlich müssen Sie die App Store Produkt-ID und die Play Store Produkt-ID angeben. Sie können auch den Zeitraum und den Namen für die Analyse angeben. Klicken Sie auf Speichern. Die Erstellung einer Paywall Nun müssen Sie eine Paywall entwerfen. Dabei handelt es sich um einen Screen, der den Zugriff des Nutzers auf Premium-Funktionen einschränkt und ihn dazu auffordert, ein Abonnement abzuschließen. Sie müssen das von Ihnen erstellte Produkt zu Ihrer Paywall hinzufügen. Klicken Sie dazu im selben Abschnitt auf Paywall erstellen (Produkte & A/B-Tests → Paywalls). Wählen Sie einen Paywall-Namen aus, bei dem Sie und Ihr Team direkt erkennen, um welche Paywall es sich handelt. Verwenden Sie die Paywall-ID, um sie in Ihrer App anzuzeigen. Für unsere Beispiel-App verwenden wir „cats_paywall“. Wählen Sie in der Dropdown-Liste Produkt Ihr Abonnement aus. Klicken Sie auf Speichern und Veröffentlichen. Die Konfiguration ist nun abgeschlossen. Jetzt fügen Sie die Abhängigkeiten hinzu und schreiben den Code. Installation von react-native-adapty 1. Fügen Sie als erstes die Abhängigkeit hinzu: yarn add react-native-adapty 2. Installieren Sie iOS-Pods. Falls Sie noch nicht den CLI-Pod haben, empfehle ich Ihnen wärmstens, ihn herunterzuladen. Sie werden ihn in der iOS-Entwicklung sicherlich häufig brauchen. #pods get installed into the native iOS project, which, by default, is the /ios folderpod install --project-directory=ios 3. Weil iOS React Native-Projekte in Obj-C geschrieben sind, müssen... --- Krótki przewodnik, jak zaimplementować zakupy w aplikacji dla aplikacji mobilnej React Native Międzyplatformowe frameworki tworzenia aplikacji z pewnością ułatwiają życie programistom, umożliwiając im tworzenie aplikacji na wiele platform jednocześnie. Są jednak też pewne ich wady. Na przykład React Native nie posiada gotowego narzędzia do wdrażania zakupów w aplikacji. Dlatego nieuchronnie będziesz musiał zwrócić się do bibliotek innych firm.   Jakie istnieją opcje wdrożenia zakupów w aplikacji Popularne bibliotek dla subskrypcji aplikacji (in-app subscriptions) w aplikacjach React Native to react-native-iap i expo-in-app-purchases. Będę jednak opowiadać o react-native-adapty, ponieważ istnieje sporo korzyści korzystania właśnie z niej, w porównaniu do innych bibliotek: W przeciwieństwie do ich zapewnia walidację zakupu na serwerze (purchase validation). Obsługuje wszystkie funkcje ostatnio zaimplementowane przez sklepy z aplikacjami, od ofert promocyjnych (promo offers) aż po funkcje płatności z góry. Szybko zaczyna też obsługiwać wszelkie nowo pojawiające się funkcje. Kod staje się bardziej przejrzysty i prosty. Możesz modyfikować swoją ofertę produktową i dodawać lub usuwać nowe oferty bez konieczności przechodzenia przez pełny cykl wydawniczy. Nie ma potrzeby wydawania wersji beta i oczekiwania na zatwierdzenie. Ale Adapty SDK to o wiele więcej. Otrzymujesz wbudowane narzędzia analityczne dla wszystkich kluczowych wskaźników, analizy kohortowej (cohort analysis), walidacji zakupów na serwerze (purchase validation), testów AB dla paywall (AB testing), kampanii promocyjnych z elastyczną segmentacją, integracji narzędzi analitycznych innych firm i wiele więcej. W tym artykule Na razie porozmawiajmy o konfigurowaniu zakupów w aplikacji w aplikacjach natywnych React. O czym dziś porozmawiamy: Dlaczego Expo nie będzie działać w przypadku zakupów wewnątrz aplikacji w aplikacjach React Native. Tworzenie konta dewelopera. Konfigurowanie Adapty:Konfigurowanie App Store Konfigurowanie Play Store Dodawanie subskrypcji. Tworzenie paywalla. Instalacja react-native-adapty. Przykładowa aplikacja i wynik.   W tym przewodniku postaramy się stworzyć aplikację, która wyświetli zdjęcia kota subskrybowanym użytkownikom i zaproponuje wszystkim innym ofertę subskrypcji.   Dlaczego Expo nie będzie działać w przypadku zakupów wewnątrz aplikacji w aplikacjach React Native Krótko mówiąc: Expo "zarządzane" nie obsługuje natywnych metod przetwarzania zakupów w sklepach z aplikacjami (znanych również jako zestawy sklepowe). Musisz albo trzymać się czystego RN, albo używać prostego przepływu Expo. Od razu muszę rozczarować tych, którzy myśleli o korzystaniu z Expo: to nie zadziała. Expo to framework React Native, który znacznie ułatwia tworzenie aplikacji. Ich zarządzany przepływ pracy nie jest jednak zgodny z przetwarzaniem zakupów/subskrypcji. Expo nie używa żadnego natywnego kodu w swoich metodach i komponentach (są bazowane na JS), co jest wymagane dla zestawów sklepowych. Nie ma sposobu na wdrożenie zakupów w aplikacji w sklepach mobilnych z JavaScript, więc będziesz musiał "wysuwać". Tworzenie konta dewelopera Najpierw musisz skonfigurować konta w app store, a także utworzyć i skonfigurować zakupy oraz subskrypcje dla systemów iOS i Android. To nie powinno zająć więcej niż 20 minut. Jeśli nadal nie skonfigurowałeś konta dewelopera i produktów w App Store Connect i/lub konsoli Google Play, zapoznaj się z tymi poradnikami: Dla iOS: przeczytaj poradnik od początku, aż do nagłówka "Uzyskiwanie listy SKProduct", ponieważ tam zaczynamy omawiać natywne implementacje.   Dla Androida: przeczytaj poradnik od początku do nagłówka "Pobieranie listy produktów w aplikacji". Konfigurowanie Adapty W przypadku react-native-adapty musisz najpierw skonfigurować pulpit nawigacyjny Adapty. To nie zajmie dużo czasu, a zapewni Ci wszystkie zalety wymienione powyżej, które posiada Adapty w porównaniu do twardego kodowania. W trzecim kroku pojawi się przypomnienie o konfiguracji App Store i Google Play. W przypadku systemu iOS musisz: Określić identyfikator pakietu (Bundle ID); Skonfigurować powiadomienia serwera App Store (App Store Server Notifications); Określić shared secret App Store Connect.   Te pola są wymagane, aby zakupy działały.   Każde pole zawiera podpowiedzi "Przeczytaj, jak", które zawierają instrukcje krok po kroku. Sprawdź je, jeśli masz jakieś pytania. Bundle ID to unikalny identyfikator Twojej aplikacji. Musi pasować do tego, który podałeś w Xcode, w Targets > > General: W przypadku systemu Android wymagane pola to nazwa pakietu (Package Name) i plik klucza konta usługi (Service Account Key File). Wszystkie te pola mają swoje własne wskazówki, które również warto przeczytać. Nazwa pakietu w systemie Android działa tak, jak identyfikator pakietu w systemie iOS. Musi pasować do tego podanego w kodzie, który można znaleźć w pliku /android/app/build. gradle w android. defaultConfig. applicationId: W czwartym kroku pojawi się żądanie podłączenia zestawu Adapty SDK do aplikacji. Pomiń na razie ten krok — wrócimy do tego nieco później. Po zarejestrowaniu się sprawdź zakładkę ustawienia i pamiętaj, że tutaj można znaleźć publiczny klucz SDK. Będziesz potrzebować tego klucza później. Dodawanie subskrypcji Adapty wykorzystuje produkty dla różnych subskrypcji. Twoja subskrypcja zdjęć kotów może być tygodniowa, półroczna lub roczna. Każda z tych opcji będzie osobnym produktem Adapty. Określmy na pulpicie nawigacyjnym, że mamy jeden produkt. Aby to zrobić, przejdź do Products & A/B Tests → Products i kliknij Create product.   W tym miejscu musisz określić nazwę produktu, czyli sposób, w jaki ta subskrypcja będzie wyglądać na pulpicie nawigacyjnym Adapty.   Musisz również określić App Store Product ID i Play Store Product ID. Jeśli chcesz, określ okres i nazwę dla analityki. Zapisz zmiany (Save). Tworzenie paywalla Teraz musisz zaprojektować paywall, który jest ekranem, ograniczającym dostęp Użytkownika do funkcji premium i wyświetlającym mu ofertę subskrypcji. Musisz dodać utworzony produkt do paywalla. Aby to zrobić, kliknij "Create paywall" w tej samej sekcji (Products & A/B Tests → Paywalls). Wybierz taką nazwę Paywall, którą ty i twój zespół będziecie mogli łatwo skojarzyć z produktem na podstawie samej nazwy paywalla. Identyfikator paywalla (Paywall ID) będzie używany do wyświetlania tego paywalla w aplikacji. Dla naszej przykładowej aplikacji użyjemy "cats_paywall. ” Z listy rozwijanej Product wybierz subskrypcję. Kliknij zapisz i opublikuj. To wszystko, jeśli chodzi o konfigurację. Teraz będziemy dodawać zależności i pisać kod. Instalacja react-native-adapty 1. Najpierw dodaj zależność: yarn add react-native-adapty 2. Zainstaluj iOS pods. Jeśli nie masz jeszcze CLI pod, zdecydowanie polecam go pobrać. Na pewno będzie to bardzo potrzebne przy pracy z iOS. #pods get installed into the native iOS project, which, by default, is the /ios folderpod install --project-directory=ios 3. Ponieważ projekty React Native iOS są pisane w Obj-C, musisz utworzyć Swift Bridging Header, aby Obj-C mógł czytać biblioteki Swift. Aby to zrobić, po prostu otwórz projekt Xcode i utwórz nowy plik Swift. Xcode zapyta, czy chcesz utworzyć nagłówek pomostowy (bridging header), który jest dokładnie tym, czego potrzebujesz. Kliknij utwórz... --- Una guía rápida sobre cómo implementar las compras dentro de la aplicación para una aplicación móvil React Native Los frameworks de desarrollo de aplicaciones multiplataforma ciertamente facilitan la vida de los desarrolladores, permitiéndoles crear aplicaciones para varias plataformas a la vez. Sin embargo, existen algunas desventajas. Por ejemplo, React Native no tiene ninguna herramienta preparada para implementar las compras dentro de la aplicación (in-app purchases). Por lo tanto, tendrás que recurrir inevitablemente a bibliotecas de terceros.   Qué opciones hay para implementar las compras dentro de la aplicación Las bibliotecas más populares para las suscripciones (subscriptions) dentro de la app en las aplicaciones React Native son react-native-iap y expo-in-app-purchases. Sin embargo, hablaré de react-native-adapty, porque tiene bastantes ventajas en comparación con las otras bibliotecas: A diferencia del resto, proporciona una validación de compra (purchase validation) basada en el servidor. Es compatible con todas las funciones implementadas recientemente por las tiendas de aplicaciones, desde las ofertas promocionales (promo offers) hasta las funciones de pago por adelantado (pay-upfront). Además, es rápida para admitir las nuevas funciones que surjan. El código acaba siendo más claro y sencillo. Puedes modificar tu oferta del producto y añadir o eliminar nuevas ofertas sin tener que pasar por el ciclo completo de lanzamiento. No hay necesidad de lanzar versiones beta y esperar a la aprobación. El SDK (SDK) de Adapty es mucho más que eso. Tienes herramientas de análisis integradas para todas las métricas clave, análisis de cohortes (cohort analysis), validación de compra basada en el servidor, pruebas AB (AB testing) para muros de pago, campañas de promoción con segmentación flexible, integraciones de herramientas de análisis de terceros y mucho más. En este artículo Por ahora, vamos a hablar de la configuración de las compras dentro de la aplicación en las aplicaciones React Native. Esto es lo que vamos a cubrir hoy: Por qué la Expo no funcionará para las compras dentro de la aplicación en las aplicaciones React Native. Crear una cuenta de desarrollador. Configurar Adapty:Configurar la App Store Configurar la Play Store Añadir suscripciones. Crear un muro de pago. Instalar react-native-adapty. Un ejemplo de aplicación y el resultado.   En esta guía, intentaremos crear una aplicación que muestre imágenes de gatos a los usuarios suscritos y que ofrezca a todos los demás una oferta de suscripción.   Por qué la Expo no funcionará para las compras dentro de la aplicación en las aplicaciones React Native Resumiendo: la Expo "gestionada" no es compatible con los métodos nativos que ofrecen las tiendas de aplicaciones para procesar las compras (también conocidos como kits de tienda). Tendrás que ceñirte al RN puro o utilizar el flujo de trabajo de Expo bare. De entrada, tendré que decepcionar a los que pensaron en usar Expo: esto no funcionará. Expo es un framework React Native que facilita mucho el desarrollo de aplicaciones. Sin embargo, su flujo de trabajo gestionado no es compatible con el procesamiento de compras/suscripciones. Expo no utiliza ningún código nativo en sus métodos y componentes (ambos son sólo JS), lo cual es necesario para los kits de tienda. No hay forma de implementar las compras dentro de la aplicación en las tiendas móviles con JavaScript, así que tendrás que "expulsar". Crear una cuenta de desarrollador En primer lugar, tendrás que configurar las cuentas de la tienda de aplicaciones, así como crear y configurar las compras y las suscripciones tanto para iOS como para Android. Esto no debería llevarte más de 20 minutos. Si todavía no has configurado tu cuenta de desarrollador y tus productos en App Store Connect y/o Google Play Console, consulta estas guías: Para iOS: lee la guía desde el principio y hasta el epígrafe "Obtener la lista de SKProduct", ya que es donde empezamos a hablar de las implementaciones nativas.   Para Android: lee la guía desde el principio y hasta el encabezado "Obtener una lista de productos en una aplicación". Configurar Adapty Para react-native-adapty, primero tendrás que configurar tu dashboard de Adapty. Esto no te llevará mucho tiempo, pero te proporcionará todas las ventajas mencionadas anteriormente que tiene Adapty sobre el codificado de forma rígida. En el tercer paso, se te pedirá que configures la App Store y Google Play. Para iOS, necesitarás: Especificar el ID del paquete; Configurar las notificaciones del servidor (server notifications) de la App Store; Especificar el secreto compartido (shared secret) de App Store Connect.   Estos campos son necesarios para que las compras funcionen.   Cada campo tiene una sugerencia de "Leer cómo" que contiene guías paso a paso. Consúltalas si tienes alguna duda. El ID del paquete es el ID único de tu aplicación. Debe coincidir con el que hayas especificado en Xcode, in Targets > > General: Para Android, los campos necesarios son el Nombre del Paquete y el Archivo de Clave de la Cuenta de Servicio. Todos estos campos tienen también sus propias sugerencias para Leer cómo. El nombre del paquete hace en Android lo mismo que el ID del paquete en iOS. Debe coincidir con el que hayas especificado en tu código, que se encuentra en el archivo /android/app/build. gradle en android. defaultConfig. applicationId: En el cuarto paso, se te pedirá que conectes el SDK de Adapty a tu aplicación. Omite este paso por ahora, aunque volveremos a él un poco más tarde. Una vez que te hayas registrado, comprueba la pestaña de configuración y recuerda que aquí es donde se encuentra tu clave de SDK pública. Necesitarás la clave más adelante. Añadir una suscripción Adapty utiliza productos para diferentes suscripciones. Tu suscripción de fotos de gatos puede ser semanal, bianual o anual. Cada una de estas opciones será un producto separado de Adapty. Vamos a especificar en el dashboard que tenemos un producto. Para ello, ve a Products & A/B Tests → Products y haz clic en Create product.   Aquí tendrás que especificar el nombre del producto, es decir, cómo se verá esta suscripción en tu dashboard de Adapty.   También tendrás que especificar el ID de producto de App Store y el ID de producto de Play Store. Si quieres, especifica también el periodo y el nombre para los análisis. Haz... --- A quick guide on how to implement IAPs for a React Native mobile app. TL;DR: Building React Native IAP from scratch takes 2-6 weeks and creates technical debt that haunts you for months. Using Adapty's SDK gets you production-ready in 2-3 hours with enterprise-grade features built-in. Hey there! I'm Ben, a Developer Advocate at Adapty. When I first jumped from web apps to mobile development, I thought React Native would be a piece of cake. I mean, it looks just like React, right? Well... not exactly. Especially when you start messing with in-app purchases in React Native. Let me be honest – out of everything I've built, my React Native IAP flow was by far the messiest part of my code. It wasn't scalable, wasn't clean, and was definitely a nightmare to maintain. Every time I found a bug or needed to add a feature to my React Native in-app purchase system, it felt like I was starting from scratch. If you've been there (or you're just getting started with React Native IAP), I want to walk you through how I would've done things differently. Hopefully, I can save you from the headaches I went through. Jump to implementation: Quick Setup with Adapty | See the complete working example What you'll need before we begin Before we dive in, let's cover some prerequisites. I'm assuming you already have developer accounts set up on the appropriate platforms and that you've configured products in the applicable store for one-time or subscription purchases. I'm also assuming you know how to sign your app binaries and distribute them through the right channels. If not, no worries – there are tons of guides online to help you get those things set up. Since I don't know your current experience level with React-Native-IAP, here are some concepts that might be new to you: Paywall — that screen that blocks users from accessing content until they buy a subscription or product. Consumable — a non-subscription product that users can purchase. Xcode — Apple's IDE for iOS development. Super helpful for React Native work, though it's only available on macOS. Expo — a toolkit that makes React Native development way more high-level. It comes pre-configured with native modules and services baked in. Expo Go — Expo's app for debugging your Expo code on the fly. The reality check: DIY vs. Ready-made solution Sooner or later in your mobile dev journey, you'll want to monetize your app with React Native in-app purchases or subscriptions. I'm not gonna sugarcoat it – this part of app development can be really tough. You might spend weeks writing React Native IAP logic, debugging it, shipping to app stores, debugging again, adding features you forgot... So many moving parts need attention: Is the user still subscribed? Have they canceled? How many subscribers do you have now? It can quickly turn into a massive time sink. Here's what building it yourself actually involves: What you need to buildTime investmentOngoing maintenceBasic purchase flow2-3 weeksHighCross-platform compatibility1-2 weeksMediumReceipt validation1 weekMediumAnalytics & tracking2-3 weeksHighA/B testing infrastructure3-4 weeksHighRefund handling1-2 weeksMedium Total: 10-15 weeks of development + ongoing maintenance headaches. And that's not even mentioning other challenges like localizing prices, figuring out which products sell better, finding the right way to promote your React-Native-IAP products in-app, and so on. While most React Native purchase SDKs help, they still leave you with plenty of headaches to solve yourself when implementing in-app purchases in React Native. I've tested pretty much all of them, and I've found Adapty to be the most flexible and easiest to implement for React Native IAP. I genuinely believe it'll minimize the work you need to do. Full disclosure – I'm currently part of the Adapty team. Feel free to take my recommendations with a grain of salt, but I think this article covers a lot beyond just installing our SDK. Adapty setup Let's walk through what Adapty actually is before jumping into the setup. At its core, Adapty provides a Dashboard where you can configure your paywalls and products, run A/B tests, check analytics, and track user subscription status. It's essentially a toolkit that combines backend infrastructure for purchases with client-side libraries to integrate into your app. This saves you from building all that subscription logic yourself, which is what I initially tried to do and regretted. The Adapty React Native SDK makes implementing React Native in-app purchases much simpler than trying to build everything from scratch. If you're interested in learning more after this tutorial, the documentation has additional information. But for now, let's focus on getting everything set up for our implementation. Signing up & configuration First things first – you'll need an account. Head over to the Adapty homepage to sign up. You can skip the last step about installing the SDK – we'll get into that later. Once you're looking at the Adapty Dashboard, you're ready for the next step. Creating products Pro tip: Check out this docs page to help you create products in your Adapty account that match what you've set up in the stores. Go to the Products page, click the Products tab, and hit Create product. Create a product with a name, access level, and appropriate period. This info should match the App Store and Google Play products you set up earlier. Enter the App Store and/or Google Play IDs as you created them in the stores. This is how Adapty maps store products to the product you're creating. It also lets you treat an App Store product and a Play Store product as the same thing. Repeat for all the products you plan to use in your app. Creating a paywall  Go to the Paywalls page and click Create paywall. Give your paywall a name, add the products you want to offer, then save it as a draft. For our case, one paywall is plenty. You can always tweak your flow later. Getting your SDK key In your App Settings, copy the public SDK key and keep it somewhere safe. We'll need it shortly. That's all we need for our app setup. Installation... --- Um guia rápido que descreve como implementar compras um aplicativo móvel React Native As estruturas de desenvolvimento de aplicativos (apps) multiplataforma certamente facilitam a vida dos desenvolvedores, permitindo a construção de aplicativos para diversas plataformas simultaneamente. No entanto, há alguns pontos negativos. Por exemplo, o React Native não tem uma ferramenta pronta para implementar compras no aplicativo (in-app purchases). Portanto, você inevitavelmente terá que recorrer a bibliotecas de terceiros.   Que opções existem para a implementação de compras no aplicativo Bibliotecas populares para assinaturas no aplicativo em aplicativos React Native são a react-native-iap e a expo-in-app-purchases. Mas vou falar sobre a react-native-adapty, porque são muitos os benefícios, em comparação com as outras bibliotecas: Ao contrário dessas, a react-native-adapty permite a validação de compra baseada em servidor. Ela é compatível com todos os recursos implementados recentemente pelas lojas de aplicativos, desde ofertas promocionais até funcionalidades de pagamento antecipado. Ela também está pronta para suportar novos recursos que venham a surgir. O código acaba se tornando mais claro e direto. Você pode modificar sua oferta de produtos e adicionar ou remover novas ofertas sem ter que passar por todo o ciclo de entrega. Não é preciso lançar versões beta e esperar pela aprovação. O SDK da Adapty tem muito mais para oferecer. Você dispõe de ferramentas analíticas integradas para todas as principais métricas, análise de coorte, validação de compra baseada no servidor, testes AB para paywalls, campanhas promocionais com segmentação flexível, integrações de ferramentas analíticas de terceiros e muito mais. Sobre este artigo No momento, vamos tratar da configuração de compras no aplicativo no React Native. O que vamos abordar hoje: Porque o Expo não funciona com compras no aplicativo no React Native. Como criar uma conta de desenvolvedor. Como configurar com Adapty:Configurando a App StoreConfigurando a Play Store Adição de assinaturas. Criação de um paywall. Instalação de react-native-adapty. Um exemplo de aplicativo e o resultado.   Neste guia, vamos tentar construir um aplicativo que exiba fotos de gatos para os usuários assinantes e que induza a todos os outros com uma oferta de assinatura.   Por que o Expo não funciona com compras no aplicativo no React Native Para resumir uma longa história: O Expo “managed” (geranciado) não é compatível com os métodos nativos que as lojas de aplicativos oferecem para o processamento de compras (também conhecidos como kits de loja). Você precisa se ater ao RN puro ou usar o fluxo de trabalho básico (bare workflow) do Expo. Sendo bem direto, vou desapontar aqueles que pensaram em usar o Expo: não vai funcionar. O Expo é um framework React Native que facilita e muito o desenvolvimento de aplicativos. No entanto, seu fluxo de trabalho gerenciado não é compatível com o processamento de compras/assinaturas. O Expo não utiliza nenhum código nativo em seus métodos e componentes (os dois são apenas JS), o que é necessário para os kits de loja. Não é possível implementar compras no aplicativo com JavaScript, de modo que você terá que "ejetar". Como criar uma conta de desenvolvedor Primeiro, você precisa criar contas na loja de aplicativos, bem como criar e configurar compras e assinaturas para os sistemas iOS e Android. Esse processo não deve levar mais de 20 minutos. Caso você ainda não tenha configurado sua conta de desenvolvedor e produtos no App Store Connect e/ou Google Play Console, confira as seguintes orientações: Para  iOS: leia o guia do início até o título “Como conseguir a lista SKProduct”, pois é onde começamos a discutir as implementações nativas.   Para Android: leia o guia do início até o título "Como conseguir uma lista de produtos em um aplicativo". Como configurar no Adapty Para o react-native-adapty, é necessário primeiro configurar seu dashboard no Adapty. Este procedimento não leva muito tempo, mas você obterá todas as vantagens listadas acima que o Adapty tem em relação à codificação dura. Na terceira etapa, você receberá instruções com as configurações da App Store e do Google Play. Para o sistema iOS, você precisa fazer o seguinte: Especificar o ID do pacote; Configurar as Notificações do App Store Server; Especificar o segredo compartilhado da App Store Connect.   Estes campos são necessários para que as compras funcionem.   Cada campo tem uma dica de “Leia como” que contém orientações passo a passo de como proceder. Verifique-os caso tenha alguma dúvida. O ID de pacote é como se identifica de maneira única o seu aplicativo. Deve corresponder àquele que você especificou no Xcode, em Targets > > General: No caso do sistema Android, os campos obrigatórios são o Nome do Pacote e o Arquivo de Chave da Conta de Serviço. Todos estes campos têm suas próprias dicas de “Leia como” também. O nome do pacote tem a mesma função no Android que o ID do pacote tem no iOS. Ele deve corresponder ao que você especificou no seu código, que pode ser encontrado no arquivo /android/app/build. gradle em android. defaultConfig. applicationId: Na quarta etapa, você deverá conectar o SDK da Adapty ao seu aplicativo. Ignore esta etapa por enquanto, mas voltaremos a ele um mais adiante. Após se inscrever, verifique a guia de configurações e lembre-se de que é aqui que sua chave SDK pública pode ser encontrada. Você vai precisar da chave posteriormente. Como adicionar uma assinatura A Adapty utiliza produtos para diferentes assinaturas. Sua assinatura de fotos de gatos pode ser semanal, semestral ou anual. Cada uma destas opções constitui um produto Adapty à parte. Vamos especificar no dashboard que temos um produto. Para isso, navegue até Produtos & Testes A/B → Produtos e clique em Criar produto.   Agora você precisa especificar o nome do produto, ou seja, como a assinatura aparecerá no seu dashboard da Adapty.   Você também deve especificar o ID do produto na App Store e o ID do produto na Play Store. Caso deseje, especifique o período e o nome também para o processo de analytics. Clique em Salvar. Como criar um paywall Em seguida, você deve criar um paywall, que é uma tela que restringe o acesso do usuário a recursos premium e os estimula com uma oferta... --- 以下是如何在React Native手机应用中实现应用内购买的快速分步指南。包括服务器端收据验证 | Adapty 跨平台应用(APP)开发框架无疑让开发人员的生活更轻松,因为他们可以同时为多个平台开发应用了。不过,也有一些缺点。例如,React Native没有现成的工具来实现应用内购买(in-app purchase)。因此,您将不可避免地转向第三方库。  实现应用内购买都有什么选择 React Native应用中流行的应用内订阅(in-app subscription)库是react-native-iap和expo-in-app-purchases。不过,我要讨论的是react-native-adapty,因为与其他库相比,它有很多好处: 与这些不同,它提供基于服务器的购买验证(purchase validation)。 它支持应用商店最近实现的所有功能,从 优惠推广(promo offer)到事先付款(pay-upfront)功能,应有尽有。它还能快速支持新特性。 代码最终变得更加清晰且直接。 您可以修改您的产品报价,添加或删除新的报价,而无需经过完整的发布周期。没有必要发布测试版并等待批准。 Adapty软件开发工具包(SDK)的功能远不止这些。您可以获得针对所有关键指标的内置分析工具:群组分析(cohort analysis)、基于服务器的购买验证、付费墙(paywall)的AB测试(AB testing)、具有灵活细分的促销活动、第三方分析工具集成等等。 在本文中 现在,让我们谈谈如何在React Native应用中设置应用内购买。这是我们今天要讲的内容: 为什么Expo不能用于React Native应用中的应用内购买功能? 创建开发人员账户。 配置Adapty:配置苹果商店配置安卓市场 添加订阅。 创建付费墙。 安装react-native-adapty。 示例应用程序与结果。  在本指南中,我们将尝试构建一个应用程序,向订阅用户显示猫的图片,并向其他人提示订阅优惠。  为什么Expo不能用于React Native应用中的应用内购买功能 长话短说:Expo的“管理型”不支持应用商店提供的本地(native)购买处理方法(也称为商店工具包)。您要么坚持使用纯RN,要么使用Expo裸工作流。 马上,我将不得不让那些想使用Expo的人失望了:这行不通。Expo是一个React Native框架,它让应用程序开发变得更容易。不过,他们的管理工作流与购买/订阅处理并不兼容。Expo在其方法和组件中都没有使用任何本地代码(两者都只针对JS),而这是商店工具包所必需的。我们无法在手机商店中使用JavaScript实现应用内购买,所以您只能“退出”。 创建开发人员账户 首先,您需要设置应用商店账户,以及创建和配置iOS和安卓的购买和订阅。这应该不会超过20分钟。 如果您还没有在App Store Connect和/或Google Play Console中配置您的开发者账户和产品,可以参阅以下指南: 关于iOS:从头开始阅读指南,一直读到“获取SKProduct列表”,因为我们就是从这里开始讨论本地实施的。  关于安卓:从头开始阅读指南,一直读到“在应用程序中获取产品列表”。 配置Adapty 对于react-native-adapty,您首先需要配置您的Adapty指示板。这不会花费太多时间,但会让您获得上面列出的Adapty相对于硬编码的所有优势。 第三步,您将收到关于苹果应用商店和Google Play的配置提示。 对于iOS,您需要: 明确Bundle ID; 设置苹果应用商店服务器通知(Server Notification); 明确App Store Connect共享密钥(shared secret)。  这些项是购买有效所必需的。  每一项都有一个“如何阅读”的提示,其中包含了一步一步的操作指南。如果您有任何问题,可以看看这些。 Bundle ID是应用的唯一ID。它必须匹配您在Targets > > General的Xcode中所指定的: 对于Android,必需的项是包名和服务账户密钥文件。所有这些项也都有自己的“如何阅读”提示。包名在安卓中的作用就像Bundle ID在iOS中的作用一样。它必须匹配您在代码中所指定的,可以在android. defaultConfig. applicationId的/android/app/build. gradle文件中找到。 第四步,提示您将Adapty软件开发工具包连接到您的应用程序。不过,现在先跳过这一步——我们稍后会返回这一步。 注册后,查看设置选项卡,并记住在这里可以找到公共软件开发工具包密钥。您以后会需要这个密钥。 添加订阅 Adapty使用适用于不同订阅的产品。您的猫的照片订阅可以是每周一次、每半年一次,或者每年一次。这些选项中的每一个都将是一个单独的Adapty产品。 让我们在指示板中明确指出,我们有一个产品。为此,请转到“Products & A/B Tests → Products”,并点击“Create product”。  您在这里需要明确产品名称,即该订阅在Adapty指示板中显示的样子。  您还需要明确苹果应用商店产品ID和安卓市场产品ID。如果需要,可以明确用于分析的周期和名称。点击“Save”。 创建付费墙 现在,您需要设计一个付费墙,这是个限制用户使用高级功能,并为他们提供订阅服务提示的过滤屏。您需要将您所创造的产品添加到付费墙中。为此,您需要点击同一部分中的“Create paywall”(Products & A/B Tests → Paywalls)。 您选择的付费墙名称应该是那种只要您和您的团队看一眼名称就能轻松推断出是哪个付费墙的名称。 在您的应用程序中将使用付费墙ID显示此付费墙。我们将使用“cats_paywall”作为我们的示例应用程序。 在“Product”下拉菜单中,选择您的订阅。 点击“Save & publish”。 关于配置大概就是这样。现在,我们将添加依赖项并编写代码。 安装react-native-adapty 1. 首先,添加依赖项: yarn add react-native-adapty 2. 安装iOS POD。如果您还没有CLI POD,我强烈建议您下载。在iOS开发中,肯定会经常用到。 #pods get installed into the native iOS project, which, by default, is the /ios folderpod install --project-directory=ios 3. 因为iOS React Native项目是用Obj-C编写的,所以您需要创建一个Swift Bridging Header,以便Obj-C读取Swift库。为此,只需打开您的Xcode项目并创建一个新的Swift文件即可。Xcode会询问您是否想要创建一个Bridging Header,而这正是您想要的。点击“Create”。 4. 对于安卓,请确保默认/android/build. gradle项目使用的是1. 4. 0或更高版本的kotlin-gradle-plugin: ... buildscript { ... dependencies { ... classpath "org. jetbrains. kotlin:kotlin-gradle-plugin:1. 4. 0" } } ... 5. 对于安卓,您需要启用multiDex,您可以在应用程序的配置文件(默认/android/app/build. gradle)中找到。 ... android { ... defaultConfig { ... multiDexEnabled true } } 瞧,您都准备好了,可以开始编写代码了! 在应用程序中检索产品列表 在“react-native-adapty”下,发生了大量有用的事。您肯定迟早会需要这些,这就是为什么您应该在流的最开始就把库初始化。在您的应用程序代码中尽可能地向上滚动代码(您也可以在app. tsx中这样做),并开始初始化: // import the method import { activateAdapty } from 'react-native-adapty'; // We’ve had this App component in our app’s root const App: React. FC = => { ... // we’re invoking it once in a root component on mount useEffect( => { activateAdapty({ sdkKey: 'MY_PUBLIC_KEY' }); },); ... } 在这里,用指示板设置中找到的公共软件开发工具包密钥替换MY_PUBLIC_KEY。实际上,activateAdapty方法可以在多个地方被多次调用,但我们将坚持现在这种设计。 现在,我们可以检索在Adapty指示板中添加的产品: import { adapty } from 'react-native-adapty'; async function getProducts { const {paywalls, products} = await adapty. paywalls. getPaywalls; return products; } 现在,让我们开始练习吧:我们会尝试建立一个小的应用程序,在这个应用里,我们可以从我们的付费墙浏览产品并购买。 示例应用程序 从现在起,我会尽量精简,以避免让基本逻辑过于复杂。我也会用TypeScript编写代码,告诉您在哪里使用了哪种类型。为了进行测试,我会使用我的老款苹果8。请记住,从iOS 14开始,苹果应用商店就禁止在模拟器中使用商店工具包——您只能使用实际设备进行测试。 App. tsx根组件 1. 首先,让我们创建一个App. tsx根组件,它会有一个付费墙显示按钮。我们已经通过react-native-navigation配置了导航——我们相信它比官方文档中推荐的react-navigation要好得多。 发行 import React, { useEffect, useState } from "react"; import { Button, StyleSheet, View } from "react-native"; import { adapty, activateAdapty, AdaptyPaywall } from "react-native-adapty"; export const App: React. FC = => { const = useState; useEffect( => { async function fetchPaywalls: Promise { await activateAdapty({ sdkKey: "MY_PUBLIC_KEY" }); const result = await adapty. paywalls. getPaywalls; setPaywalls(result. paywalls); } fetchPaywalls; }, ); return ( { const paywall = paywalls. find( (paywall) => paywall. developerId === "cats_paywall" ); if (! paywall) { return alert("There is no such paywall"); } // Switching to a paywall... }} /> ); }; const styles = StyleSheet. create({ container: { flex: 1, alignItems: "center", justifyContent: "center" }, }); 这是怎么回事?在挂载时,调用fetchPaywalls函数。它激活了软件开发工具包并保存了付费墙状态,这样用户就不必在点击按钮后还苦苦等待获取了。在视图中只有一个按钮,这将把用户带到我们之前在指示板中设计的付费墙。 实际上,我们可以在这里获取付费墙,无需将其保存到状态中。默认情况下,adapty. paywalls. getPaywalls将从缓存存储中获取它们(在启动时缓存它们之后),这意味着您不必等待该方法与服务器对话。 结果如下: 付费墙组件 2. 让我们在同一个文件中编写一个付费墙组件。 // there are more imports here import React, { useEffect, useState } from "react"; import { Button, SafeAreaView, StyleSheet, Text, View, PlatformColor, } from "react-native"; import { adapty, activateAdapty, AdaptyPaywall, AdaptyProduct, } from "react-native-adapty"; import { Navigation } from "react-native-navigation"; // ... interface PaywallProps { paywall: AdaptyPaywall; onRequestBuy: (product: AdaptyProduct) => void | Promise; } export const Paywall: React. FC = ({ paywall, onRequestBuy }) => { const = useState(false); return ( {paywall. products. map((product) => ( {product. localizedTitle} { try { setIsLoading(true); await onRequestBuy(product); } catch (error) { alert("Error occured :("); } finally { setIsLoading(false); } }} /> ))} ); }; // A new key const styles = StyleSheet. create({ container: { flex: 1, alignItems: "center", justifyContent: "center" }, paywallContainer: { flex: 1, alignItems: "center", justifyContent: "space-evenly", backgroundColor: PlatformColor("secondarySystemBackground"), }, }); 在这里,我们将从付费墙绘制产品地图,并在每个产品旁显示一个购买按钮。 注册过滤屏 3. 为了看看它的样子,让我们在react-native-navigation中注册这个过滤屏。如果您正在使用其他导航,请跳过此步骤。我的根index. js文件看起来是这样的: import "react-native-gesture-handler"; import { Navigation } from "react-native-navigation"; import { App, Paywall } from ". /App"; Navigation. registerComponent("Home", => App); Navigation. registerComponent("Paywall", => Paywall); Navigation. events. registerAppLaunchedListener( => { Navigation. setRoot({ root: { stack: { children: } }, }); }); “显示付费墙”按钮 4. 现在,我们只需要给“显示付费墙”按钮分配一个动作即可。在我们这个例子里,会通过“Navigation”提示一个模态。 Navigation. showModal({ component: { name: "Paywall", passProps: { paywall, onRequestBuy: async (product) => { const purchase = await adapty. purchases. makePurchase(product); // Doing everything we need console. log("purchase", purchase); }, }, }, }); 整个App. tsx文件: import React, { useEffect, useState } from "react"; import { Button, SafeAreaView, StyleSheet, Text, View, PlatformColor, } from "react-native"; import { adapty, activateAdapty, AdaptyPaywall, AdaptyProduct, } from "react-native-adapty"; import { Navigation } from "react-native-navigation"; export const App: React. FC = => { const = useState; useEffect( => { async function fetchPaywalls: Promise { await activateAdapty({ sdkKey: "MY_PUBLIC_KEY", }); const result = await adapty. paywalls. getPaywalls; setPaywalls(result. paywalls); } fetchPaywalls; }, ); return ( { const paywall = paywalls. find( (paywall) => paywall. developerId === "cats_paywall" ); if (! paywall) { return alert("There is no such paywall"); } Navigation. showModal({ component: { name: "Paywall", passProps: { paywall, onRequestBuy: async (product) => { const purchase = await adapty. purchases. makePurchase(product); // Doing everything we need console. log("purchase", purchase); }, }, }, }); }} /> ); }; interface PaywallProps { paywall: AdaptyPaywall; onRequestBuy: (product: AdaptyProduct) => void | Promise; } export const Paywall: React. FC = ({ paywall, onRequestBuy }) => { const = useState(false); return ( {paywall. products. map((product) => ( {product. localizedTitle} { try { setIsLoading(true); await onRequestBuy(product); } catch (error) { alert("Error occured :("); } finally { setIsLoading(false); } }} /> ))} ); }; const styles = StyleSheet. create({ container: { flex: 1, alignItems: "center", justifyContent: "center" }, paywallContainer: { flex: 1, alignItems: "center", justifyContent: "space-evenly", backgroundColor: PlatformColor("secondarySystemBackground"), }, }); 就是这样!现在,您可以向您的用户展示这些付费墙啦。 如果您想在沙盒(sandbox)中测试您的iOS订阅,您需要创建自己的沙盒测试员账户。请记住,沙盒订阅很快就会失效,从而使测试更容易。对于安卓,您不需要任何额外的账户——您甚至可以在模拟器中运行测试。 检查用户是否有任何活跃订阅 我们仍然需要决定在何处存储活跃订阅数据,以授予终端用户访问其优质内容的权限。Adapty也会在这方面帮助我们,因为它保存了与用户相关的所有购买。让我们这样做吧:如果用户没有订阅,他们会收到一个付费墙按钮提示。如果有,我们就给他们看猫的照片。  由于活跃订阅数据是从服务器或缓存存储中检索的,因此需要一个加载器。为了简单起见,我们会添加isLoading和isPremium状态。 // ... export const App: React. FC = => { const = useState(true); const = useState(false); const = useState; useEffect( => { async function fetchPaywalls: Promise { try { await activateAdapty({ sdkKey: "MY_PUBLIC_KEY", }); const profile = await adapty. purchases. getInfo; const isSubscribed = profile. accessLevels. premium. isActive; setIsPremium(isSubscribed); if (! isSubscribed) { const result = await adapty. paywalls. getPaywalls; setPaywalls(result. paywalls); } } finally { setIsLoading(false); } } fetchPaywalls; }, ); // ... } // ... 改变的地方是:我们在状态中添加了两个标志。fetchPaywalls的整个内容现在都被包装在了一个try-catch块中,以便代码在任何可能的场景中都能到达setIsLoading(false)。为了检查用户是否有活跃订阅,我们会检索用户的配置文件(其中包含他们所有的订阅数据),并查看profile. accessLevels. premium. isActive的值。您可以根据自己的想法使用任意数量的访问级别(accessLevels)——基本上就是黄金或高级订阅等订阅级别——但是现在暂时我们还是保持默认值。Adapty会自动创建高级访问级别,对于大多数应用程序来说,这就够了。当有一个具有此访问级别的活跃订阅时,isActive会保持为true 从这里开始,一切看起来就都很简单了。如果用户具有高级订阅状态,则不需要获取付费墙——只需禁用加载器并显示内容即可。  export const App: React. FC = => { // ... const renderContent = : React. ReactNode => { if (isLoading) { return Loading... ; } if (isPremium) { return ; } return ( { const paywall = paywalls. find( (paywall) => paywall. developerId === "cats_paywall" ); if (! paywall) { return alert("There is no such paywall"); } Navigation. showModal({ component: { name: "Paywall", passProps: { paywall, onRequestBuy: async (product) => { const purchase = await adapty. purchases. makePurchase(product); const isSubscribed = purchase. purchaserInfo. accessLevels? . premium. isActive; setIsPremium(isSubscribed); Navigation. dismissAllModals; }, }, }, }); }} /> ); }; return {renderContent}; }; 在这里,我们添加了一个函数来呈现onRequestBuy的内容和一些逻辑:即更新isPremium的状态和关闭模态。 这就是最终结果: 整个文件: import React, { useEffect,... --- If you have a cool mobile app idea in 2023 or even launched an app, but don’t have a decent mobile user acquisition strategy, then consider that you have nothing. Since the birth of the era of the subscription business in 2017 a lot has changed, and now it’s impossible to earn decent money only organically, especially if you are a beginner. Here it becomes clear that you need to start paid advertising. What traffic source should you start with? Choose Facebook or Google? Or maybe start with ASA? How to optimize it? Can an indie developer handle it on their own? In this article, we will try to figure out how user acquisition works for applications with a subscription model of monetization, where to start, and how to scale wisely. What is user acquisition for subscription apps? User acquisition for mobile applications is primarily about any user acquisition, not just paid ones. Organic channels (app store search and web search), referral programs within the application itself, e-mail marketing, and, of course, performance marketing – buying traffic in ad networks as a main source of user acquisition. The success of any UA campaign is measured primarily by its payback, i. e. the amount of money it returns on top of costs – in simple terms, ROI. But in addition to ROI, there are some metrics that can indicate the success of this setup. These are Conversion Rate, CTR, CPA, Retention, LTV and etc. Understanding subscription app monetization You can forever sing odes to the subscription monetization model for the number of benefits that it gives to developers (first of all! ). But, in my opinion, the primary motivation for using subscriptions instead of one-time payments or ad monetization is the accessibility of the subscription ecosystem for apps of any level. Unlike ad monetization, with subscriptions, in the early stages of an application's life, it is not necessary to have 40% Retention on Day 1 in order to earn a few dollars. Even at the MVP stage, it is enough to make straightforward onboarding, a reasonable price matrix, and voila. You get an understanding of the demand for your application and the key product marketing conversions (such as conversion install to trial, trial to paid, etc. ). And with the development of the app comes predictable revenue streams, a loyal customer base, and the ability to improve the app based on customer feedback continuously. Types of subscription models As of the day this article was written, a unified database with the names and classification of subscription monetization types has not yet been published. But there are some generally accepted concepts, such as:  Paywall – a sales screen that prevents you from accessing the app without subscribing.   Freemium model, where part of the functionality is available for free, and part is strictly by subscription.   Hybrid model (here a good example is Duolingo), where there are both subscriptions and ad monetization.   Here again, it is good to remember, that only applications with high retention (from 40% Retention Day 1) can afford such a model. The monetization model choice depends on the application's functionality and your desire and ability to experiment. The easiest way to start is with a freemium model, of course, because with a hard paywall, the probability of a passed review in the store, especially at the initial stages, is very low.   An example of a freemium or soft paywall  Setting goals and KPIs for your user acquisition campaign Let's imagine that we have decided on the type of monetization for our app and are ready to start paid user acquisition. The most important thing to do before starting a purchase (besides the technical setup of marketing events) is to build a marketing funnel and define KPIs within this funnel. Below, we will analyze what the marketing funnel consists of and go through the benchmarks at each stage of the funnel. Defining your target audience Starting with iOS 14. 5, users were given the ability to opt out of sharing their IDFA tag – a unique profile number the advertisers use for targeting on third-party platforms like Facebook. A study from AppsFlyer in October found that 62% of iPhone users opt out of sharing their information. In Android, a similar update is planned for the summer of 2023. So what does it mean for user acquisition? Users have become less willing to track their data, respectively, advertising networks know less about users and it has become almost twice as difficult for them to “catch” their users. But this doesn’t mean that you shouldn’t choose interest targeting or refuse to optimize for a specific event. Choosing the right KPIs The first stage of the funnel is Acquisition, and there are several metrics that will be useful for the analytics of CTR here: The click-through rate for creatives or how often users click on your ad. CPM – Cost per millennium (thousand) or understanding how much the auction is “warmed up” now for one or another advertising network. CPA – cost per action or understanding how much it costs us to buy one subscriber or payer. In the case of Android, we can trust the funnel data in real-time, while in iOS, the truthful data flows in 3 days (thanks, SKAN). As for benchmarks, of course, they differ from niche to niche and from platform to platform. Roughly speaking, it’s good that your CTR does not fall below 1%, and CPM is at the level of $3-4. CPA is the most individual thing in mobile user acquisition that can ever be. Depending on the niche of the app, this can be $3 or $4 (if we are talking about, for example, selling a VPN in India), or $18-20 when selling a niche app in the US. Best practices for creating compelling ads Creativity is our everything. No successful creatives – no users, and no money either. Of course, I'm exaggerating here, but creating a clickable creative is generally a... --- Looking for ways to create an effective, convertible, perfect Paywall for your mobile app? Adapty tells you the most progressive ways to do it! Paywalls are a key strategy for monetizing your mobile apps. This instrument allows you to offer premium content or features for payment. Paywalls act as a barrier that restricts access to certain content or functionality until the user makes a payment.   This guide will discuss the design of a paywall for your mobile app. It will cover topics such as choosing the right paywall type, designing an effective layout, implementing it efficiently, promoting it, and optimizing the user experience for higher conversion rates. You will be able to successfully implement a paywall in your mobile app and generate revenue. The right paywall design will support your further app development efforts. What is a paywall? A paywall meaning derives from the terms “pay" and "wall”, implying a page in apps or websites your can't bypass until you've paid. It restricts access to online content or services, requiring users to pay a fee or subscribe for full access. Paywalls are used in apps, news websites, online magazines, and other content platforms.   An example of an app paywall The recent innovations in paywall technologies concern both iOS and Android platforms. They are influenced by the decline in subscription model revenue, according to Forbes. Developers opt for hybrid models or one-off purchases.   There has been a rise in metered or soft paywalls. They provide users with limited free access to content before requiring payment for further access.   Apple’s privacy policy changes shook up the industry in late 2022. It led to some app developers reconsidering their paywall policy.   App developers are now engaging more in analytics to test and improve their paywalls, using products like Adapty.   Types of paywalls There are various types of paywalls: Hard Paywall requires users to pay upfront before accessing any content. Metered Paywall or Soft Paywall allows users to access a limited number of articles or content for free within a time period, after which they are prompted to subscribe. Freemium Paywall offers a combination of free and premium content. Users can access basic features for free but need to pay for advanced features. It is mostly used in websites. Dynamic Paywall adjusts access to premium content based on user behavior, engagement, or other criteria. Dynamic paywalls migrated from websites to native mobile apps designed for digital media suites built around brands. Adapty's Paywall Builder provides a user-friendly interface and customization options for implementing paywalls in mobile apps.   You can learn more about popular types of mobile app paywalls in this article. Choosing a monetization model Choosing a monetization model is a critical decision for mobile app developers to generate revenue. Subscription-based models are a popular choice. They aim at recurring revenue and enhanced user experience.   We will discuss various subscription-based models. The list includes Freemium, Fixed-price subscription, Pay-per-content, In-app purchases, and a few other models. We will talk about their advantages and limitations. You will also find the best practices for their implementation in mobile apps. Freemium The freemium model for mobile apps offers a basic version for free with optional in-app purchases or a premium version. It has gained popularity due to its revenue-boosting advantages. With a free version, you can attract a wide user audience. It will increase visibility and potential for word-of-mouth marketing. Pricing flexibility allows for experimentation with different tiers to optimize revenue. Continuous updates based on user feedback will keep the app competitive. You should offer your app users some valuable free content. This lowers the chance that users will try to get around the paywall. Many mobile games use this model.   The vast majority of apps work on the freemium model: 90% in the Apple Store and 95% in Google Play Store. They generate over $70 billion in revenue. Fixed-price subscription The fixed-price subscription paywall model is a popular monetization strategy for mobile apps. It offers users access to premium features or content for a recurring fee. This model provides a predictable revenue stream, allowing developers to plan for future updates.   Subscribers are more likely to engage with the app long-term. It means higher retention rates and user loyalty. The fixed-price subscription model also fosters a sense of value and exclusivity for subscribers. It incentivizes them to renew their subscription. Classic examples are services like Netflix and Disney+. A popular show How did this get made paywall model is a monthly/yearly subscription on Stitcher platform.   Pay-per-content The pay-per-content model suggests that users pay for individual pieces of content, such as articles, videos, or premium features. This model offers a flexible and targeted approach to monetization. It allows users to only pay for the content they are interested in.   With pay-per-content, developers can generate revenue from users who are willing to pay for premium content while still offering free access to basic features. This approach can be particularly effective for apps that offer high-quality or exclusive content. A great example of this model is Udemy, where you can buy access to a specific course.   In-app purchases In-app purchases allow users to make purchases within the app for additional features, virtual goods, or premium content. This model provides developers with an additional revenue stream beyond the initial app download. It can be highly effective in driving user engagement and retention. With in-app purchases, developers can offer a range of options. Those range from one-time purchases to subscriptions. This provides flexibility for users to choose the features or content they want and unlock the paywall. 48. 2% of mobile app revenue comes from in-app purchases. By 2023, the total revenue of mobile apps is projected to be $935 billion. You can read about how to install and implement in-app purchases in mobile games developed with Unity here.   Microtransactions, advertising, and hybrid models There are a few more models of monetization: Microtransactions allow users to make small purchases within an app. This model is based on users' willingness to make small payments of virtual goods, premium currency, or additional features. Advertising involves... --- App Store Server Notifications V2 First of all, let me announce our support for App Store Server Notifications V2. This version includes various benefits over the previous one, including: Improved security with JSON Web Tokens authentication. Enhanced reliability with retry logic and backoff mechanisms. Increased flexibility to receive notifications for specific events. By utilizing this new system, you can receive real-time updates about user events in a way that is both secure and reliable. To set up notifications and start receiving these updates, please refer to our documentation. Google Cloud Storage  Adapty's integration with Google Cloud Storage is an efficient way to store and manage data, especially if you work with large numbers of user events or plan significant growth for your application. Choosing Google Cloud Storage as a solution for a scalable, secure, and reliable way to store and retrieve data also provides you with a wide range of opportunities for integrations that can improve your operational efficiency. So now, Adapty can be a part of your advanced infrastructure to make your business stand out among the competitive apps. Follow the documentation for more details.   Airbridge If you level up by discovering sources of growth with Airbridge, this new integration is for you. Airbridge's privacy-first measurement suite, packed with multi-touch attribution and marketing mix modeling, can maximize your mobile growth in conjunction with Adapty through a two-way exchange of data. Send Adapty's events to Airbridge and receive marketing attribution to enrich analytics in Adapty. To set it up, follow the documentation. --- Com a quantidade de aplicativos gratuitos disponíveis no mercado, muitas empresas estão enfrentando dificuldades para encontrar um modelo de negócios rentável. Mas a solução para muitos tem sido adotar um modelo de assinatura. Neste artigo, quero te contar um pouco sobre como as assinaturas podem transformar seu aplicativo em um negócio rentável e quais são as melhores práticas para implementá-las. Porque escolher um modelo de assinatura? Embora os aplicativos gratuitos possam atrair muitos usuários, eles têm desvantagens significativas. Os usuários podem estar menos comprometidos com o aplicativo, menos dispostos a comprar recursos extras e menos propensos a indicar o aplicativo para outras pessoas. Além disso, os anúncios em aplicativos podem ser irritantes para os usuários e muitas vezes geram pouco ou nenhum retorno financeiro para o desenvolvedor. Por outro lado, um modelo de assinatura permite que os usuários paguem por recursos premium, serviços adicionais ou conteúdo exclusivo, o que pode levar a uma fonte de receita mais estável e previsível. Além disso, os usuários que pagam por um aplicativo são mais propensos a permanecer comprometidos e engajados com ele, tornando-se evangelistas do aplicativo e trazendo mais usuários. Como implementar um modelo de assinatura Ao implementar um modelo de assinatura, é importante seguir algumas práticas recomendadas para garantir que ele seja bem-sucedido: Ofereça um teste gratuito: dar aos usuários uma amostra gratuita do que eles vão receber com uma assinatura pode incentivar mais pessoas a experimentá-la e, eventualmente, se inscrever. Um teste gratuito também pode ajudar a convencer usuários céticos de que o aplicativo vale a pena. Forneça valor real: é importante que a assinatura ofereça aos usuários um valor real e tangível. Isso pode incluir recursos adicionais, acesso a conteúdo exclusivo ou serviços premium. Ajuste os preços com cuidado: é importante definir preços que sejam razoáveis e competitivos em relação a outros aplicativos similares. É importante levar em consideração o valor do aplicativo, a concorrência e o público-alvo. Simplifique o processo de inscrição: o processo de inscrição deve ser simples e fácil de entender. Os usuários devem ser capazes de inscrever-se em poucos passos, sem complicações. Comunique-se com seus usuários: é importante manter os usuários informados sobre as atualizações e melhorias do aplicativo, bem como sobre o que eles estão recebendo com a assinatura. Além disso, é importante ouvir as opiniões e sugestões dos usuários para que possa melhorar o aplicativo continuamente. Como indicação, temos o SDK da Adapty que é uma ferramenta poderosa que pode ajudar nós desenvolvedores a implementar um modelo de assinatura em nossos aplicativos de forma mais fácil e eficiente. Com a Adapty, conseguimos oferecer testes gratuitos, ajustar os preços com base em dados de análise de mercado e fornecer uma experiência de inscrição simplificada para os usuários. Além disso, a Adapty fornece ferramentas para personalizar o processo de inscrição e a oferta de assinatura para diferentes segmentos de usuários, permitindo que os desenvolvedores ajustem a oferta de assinatura para atender às necessidades específicas de cada grupo de usuários. Isso pode ajudar a aumentar a conversão de inscrições e a fidelidade do usuário. Com a Adapty, dá pra ter acesso a dados analíticos detalhados sobre o desempenho do modelo de assinatura, permitindo que eles otimizem sempre a oferta de assinatura e melhorem o desempenho financeiro dos aplicativos. Em resumo, ao combinar o uso do SDK da Adapty com as práticas recomendadas para implementar um modelo de assinatura em seu aplicativo, podemos aumentar as chances de transformar o aplicativo em um negócio rentável e de sucesso. Inclusive, aqui estão alguns exemplos de aplicativos que usam esse SDK para implementar um modelo de assinatura em seus aplicativos: Skyeng: uma plataforma de aprendizado de idiomas que oferece aulas particulares e cursos online para alunos em todo o mundo. Sweat: um aplicativo de condicionamento físico que oferece planos de treinamento personalizados, acompanhamento de progresso e uma comunidade de apoio. Bookmate: um aplicativo de leitura de livros que oferece uma biblioteca de livros eletrônicos e audiolivros, bem como recursos para compartilhar notas e recomendações com amigos. iTranslate: um aplicativo de tradução que permite que os usuários traduzam textos, voz e imagens em mais de 100 idiomas. Mimo: um aplicativo de aprendizado de codificação que oferece cursos interativos para iniciantes e programadores experientes. Esses são apenas alguns exemplos de aplicativos que usam a Adapty para implementar um modelo de assinatura. A plataforma pode ser usada em muitos outros tipos de aplicativos, incluindo jogos, aplicativos de estilo de vida e muito mais. Bom, espero que tenha curtido este conteúdo sobre como as assinaturas podem transformar os aplicativos em um negócio rentável. Se você quiser se manter atualizado sobre as mais recentes notícias em tecnologia de assinatura e receber dicas para otimizar sua implementação, não deixe de se inscrever no canal do YouTube da Adapty, além disso, se você quiser se conectar com outros desenvolvedores interessados nesse assunto de assinaturas, junte-se ao grupo no Telegram. Lá você pode trocar ideias, compartilhar experiências e receber suporte da comunidade. --- Transform your mobile app into a revenue-generating powerhouse with this comprehensive guide to implementing in-app purchases on iOS. Whether you're a startup founder, development team lead, or enterprise architect, this step-by-step tutorial will help you master Apple's StoreKit 2 framework and unlock sustainable recurring revenue streams. Why do most apps use in-app purchases? In today's competitive mobile landscape, in-app purchases have evolved from a nice-to-have feature to an essential revenue driver. Apps with well-implemented subscription models see 300% higher lifetime value compared to one-time purchase apps. This guide covers everything from basic product configuration to advanced subscription management, ensuring your users enjoy a seamless purchasing experience while maximizing your revenue potential. What You'll Master in This Guide Product setup. Create and configure all four types of in-app purchases in App Store Connect StoreKit 2 integration. Implement Apple's latest framework with modern Swift APIs Transaction handling. Build bulletproof purchase flows that handle edge cases gracefully Subscription management. Support upgrades, downgrades, and family sharing Testing strategies. Use . storekit files for rapid development and sandbox testing Customer support. Handle refunds, billing issues, and subscription management Prerequisites for success Before diving in, ensure your development environment is ready: macOS 15 or later Xcode 16 or later iOS 16+ target deployment SwiftUI knowledge StoreKit 2 framework Active Apple Developer account Which type of in-app purchase should I choose for my app? Understanding each purchase type is crucial for choosing the right monetization strategy for your app: Consumable purchases Best for: Gaming, productivity boosts, virtual currency Digital items users can purchase repeatedly and consume over time. Think in-game coins, extra lives, or temporary premium features. Example use cases: In-game currency for mobile games Extra storage space for photo apps Temporary ad removal (24-hour passes) Non-consumable purchases Best for: Permanent feature unlocks, one-time upgrades Items purchased once that permanently unlock content or features across all user devices. Example use cases: Premium app versions Permanent ad removal Additional filter packs for photo apps Auto-renewing subscriptions Best for: Content apps, SaaS tools, streaming services The most popular model for sustainable revenue. Users gain access to premium features or content for a set period, with automatic renewal. Example use cases: Monthly music streaming access Premium productivity features Exclusive content libraries Non-renewing subscriptions Best for: Seasonal content, limited-time courses Time-limited access that doesn't automatically renew, requiring manual user action to continue. Example use cases: Sports season passes Limited-time educational courses Event-specific content access Important: Apple only allows in-app purchases for digital goods and services. Physical products must use alternative payment methods outside the app. Step 1. How do I set up my Xcode project for in-app purchases? Let's start building by configuring your development environment properly. Download the starter project from our GitHub repository. The project includes pre-built UI components and counters for different in-app purchase types, allowing you to focus on the implementation details. Configure your project settings Sign in to App Store Connect through Xcode's account preferences. Select your project file and choose the target "AdaptyPurchase". Navigate to "Signing & Capabilities" and select your development team. Update the bundle identifier to ensure uniqueness for your app. Add In-App Purchase capability by clicking "+ Capability" and searching for "in-app". This configuration ensures your app can communicate with Apple's in-app purchase services during development and production. Step 2. How do I create a StoreKit configuration file for testing? The . storekit file is a good way to define the available in-app products and their metadata for local testing. This local configuration file defines your in-app products and their metadata, perfect for offline development or faster debug cycles. Creating your first . storekit file In Xcode, navigate to File > New > File (⌘N). Choose "StoreKit Configuration File" under the iOS section. Name it "SyncedProducts" and leave "Sync this file with an app in App Store Connect" unchecked. Click "Next" and "Create". Adding your first product Let's create a non-consumable item for demonstration: Open Products. storekit and click the “+” symbol. Select "Add Non-Consumable In-App Purchase". Set Reference Name to "Stone" and Product ID to "stone". Double-click the localization and change Display Name to "Indestructible Stone" Your . storekit file structure should look like this when viewed as source code: { "identifier": "", "nonRenewingSubscriptions": , "products": , "settings": { }, "subscriptionGroups": , "version": { "major": 2, "minor": 0 } }{ "identifier": "", "nonRenewingSubscriptions": , "products": , "settings": { }, "subscriptionGroups": , "version": { "major": 2, "minor": 0 } } As you can see the structure of this file is pretty simple which makes it easier to test in-app purchases. However, the . storekit file is not used for the published app hence it is not the default source of in-app purchases. We need to explicitly tell Xcode to use this file during the next app run. To do that, click on the target icon with your app name in the Xcode status bar. Then click “Edit Scheme”. In the “Options” tab of the “Run” scheme select the Products. storekit file we created. Sandbox environment Sandbox testing is another way of testing in-app purchases in a simulated environment that mimics the App Store environment. It is essential to test and verify that in-app purchases work correctly before releasing them to production. Sandbox testing for in-app purchases is more difficult than with . storekit files because it requires a live connection to the App Store server. The sandbox environment is isolated, but it still requires a live connection to the App Store server to verify transactions. This means that in order to test in-app purchases in the sandbox environment, you need to have a functioning backend server that can handle requests from the App Store server. This server must be able to communicate with the App Store server to validate and complete transactions. In contrast, testing with . storekit files can be done offline without requiring a connection to the App Store server. This makes it a simpler and more straightforward process. However, it's important to note that testing with . storekit files... --- The freemium model is one of the most popular monetization models. From Spotify to Duolingo, read how the freemium model can earn you billions in 2023! Do you have a free version app on your hands but not a solid revenue idea for it? Or maybe you’re trying to read through the best mobile app monetization methods. App monetization can be a tricky one, even for those with tons of experience. So if you’ve been struggling with the concept of app monetization, freemium models, or in-app purchases for revenue, this one’s for you! The freemium app model is one of the best monetization models out there and can be a game-changer if you know how to implement it in your free app. With proven success rates across all app stores, it’s time for you to learn how to maximize your profit with freemium apps!   But before you can make that extra cash, ask yourself this... What is a freemium monetization model? The freemium monetization model is a business strategy that offers a basic version of a product or service for free while charging for premium features or upgrades. This approach allows users to try out the product in a free version and become familiar with its features before committing to a purchase.   The good news is that there are numerous types of freemium models! The main three types of freemium app models are: Advertising In-app purchases  In-app subscriptions The ad-based freemium app model offers a free version of the app with ads, which can be removed by paying for the premium version. The in-app purchase model allows users to purchase virtual goods or services within the app. Think extra cloud storage or maybe some in-game purchases in your favorite mobile game! The in-app subscription model offers users access to premium content or features for a monthly or yearly fee. So how exactly do you figure out what works best for you? Types of freemium business model Freemium models aren’t exactly a copy-paste of the same scheme, giving it room for creativity and competition. Businesses and app developers can give themselves an edge by approaching the freemium models differently and appealing to a larger audience. The paywall model Have you ever come across a free trial in apps? Did Netflix just come to mind with its 30-day free trial? Great, you’re already familiar with a paywall model. In the paywall model, app monetization happens when these apps offer users a limited amount of free access before asking users to pay to access additional content. Check out our Paywall Library to draw some inspiration if you decide to design your own paywall. The limited feature model Imagine the limited feature model as a more relaxed sibling of the paywall model. This monetization model offers a basic version of the product or service for free while charging for premium features or functionality. For example, a photo editing app may offer basic filters for free, but charge for more advanced editing tools. The advertising model This freemium model offers a free version of the product or service that includes ads, which can be removed by paying for the premium version. There can’t be a bigger example of a successful advertising model than Youtube itself. As one of the most popular apps across the globe, Youtube earned $29. 24 billion in 2022 from pure ad revenue.   With an advertising model done just right, the sky can be your limit! Advantages of using the freemium monetization model Now that you know the types of freemium monetization models, it's time to bring out the big guns. I’m listing the advantages of using the freemium model, so you know how it’s all just a smart play.   Increased user acquisition When your app isn't blocked behind the scary “pay before you use” schemes, you open yourself up to a larger audience. This audience has a better chance of converting into actual, paid users, given every other factor is in your favor. Let's be honest, would you rather pay for a strange service that could really disappoint you or go for a free version somewhere else? Lower cost of customer acquisition Keep in mind that the freemium model isn’t a way to monetize your users but instead a way to acquire them. When you compare the cost of traditional marketing acquisitions with those of a freemium, you’ll find that the latter is always more cost-effective! Your potential audience has easy and free access to your services and they can upgrade anytime they want!   Improved customer retention One of the most crucial parts of your mobile app monetization is having great customer retention. You don’t want users to bounce away from your app because that’ll lead to no in-app purchases, little to no app revenue, or any paying users! But freemium models ensure that users pay for a premium app after they’ve spent time using and enjoying it. That’s how you’ll convert a free version into a paid app. Higher lifetime value of customers Users who convert into customers by paying for the premium features are very likely to create an income stream for businesses and app developers! But that depends on the value your premium features provide to these customers. For instance, take Dropbox into account. As the leading cloud storage freemium app, it charges users based on their space needs. To ensure you keep having that space, you’ll need to keep paying their monthly fee which creates a steady income for Dropbox. Best practices for implementing freemium monetization Freemium apps are one of the most common app monetization strategies, for all the right reasons. It helps create a trickling stream of money from in-app purchases and even in-app advertising. But to reach that stage, you’ll need planning and lots of it.   Here are some best practices to implement a successful freemium monetization model in your mobile app: Step 1: Conduct market research Conducting market research is a crucial first step in implementing a successful freemium monetization strategy. By understanding the needs and behaviors of your target audience, you can create a freemium model that effectively attracts and retains users... --- Learn how to enable in-app purchases and subscription with apps and games made with Unity in App Store and Google Play Store. Learn how to hide premium content with paywalls and validate user subscription state. One way to monetize mobile gaming apps is through the in-app purchase (IAP) function. An IAP is the sale of virtual goods or services in a mobile app, usually a game. These purchases are made for real money and are processed through the app marketplaces of the device operating system, Apple or Android. IAPs have many forms, such as unlocking new characters, buying virtual currency, items, or premium features, or removing ads. IAPs can increase engagement and retention by providing value and encouraging users to keep playing. The Unity IAP service provides an easy-to-use interface for managing in-game purchases across platforms. Unity IAP cross-platform package Unity IAP is a built-in cross-platform package that allows developers to implement purchases in applications on various platforms, including Apple and Android. It provides an easy-to-use interface for managing purchases and allows developers to implement different types of IAPs, such as consumable, non-consumable, and subscriptions, which will be discussed later. But the Unity IAP package can be considered complex and heavyweight for several reasons: The package is designed to support different platforms, which can make the codebase more complex. This can create problems for developers who may need to optimize the game size and performance, especially for mobile devices with limited resources. The Unity IAP package is designed to handle different payment systems and currencies. This can add complexity to implementation, especially when dealing with the quirks and nuances of different payment systems. Unity IAP has many built-in features to handle various scenarios that developers may face. Challenges include ensuring that users cannot make multiple purchases of the same item, handling refunds and chargebacks, and others. This can also add to the overall complexity and weight of the package. The Unity IAP package is constantly evolving. Updates are often released to add new features, fix bugs and improve performance. While this is a positive thing for developers, it can also be difficult to keep up with. It may require constant maintenance to ensure that the IAP implementation is up to date. The Unity IAP Cross-Platform Package is a handy tool for monetizing mobile games. But this native IAP plugin lacks important features: it doesn’t have server-side verification, integrations with third parties, raw events from subscriptions and purchases, as well as no integrated analytics. To get the most out of your in-app purchases, we recommend integrating Adapty SDK. This service will add server-side receipt validation to your Unity in-app purchases, provide you with user-level analytics, remote config for paywalls, A/B testing, and much more. Used together with Adapty, Unity IAP can help attract new audiences and effectively monetize your app. So in this tutorial, we'll also cover the Adapty SDK implementation. Creating Unity in-app purchases on iOS and Android To set up in-app purchases for your Unity project follow the 5 simple steps below. Let's look at iOS first, and then at Android. More details will follow in further sections.   iOS: Set up a developer account with Apple and create a new app in App Store Connect. Create products for in-app purchases in App Store Connect and set prices and product details. Enable Unity IAP by selecting the Services – In-App Purchases tab in Unity and configure the App Store Connect settings. Add your products to the Unity IAP catalog in your project. Implement code to handle in-app purchases in your game using the Unity IAP. You will need to implement methods to initiate a purchase and handle the response from the billing system. Android: Set up your developer account in Google and create a new app in Google Play Developer Console. Create products for in-app billing and set prices and product details in Google Play Developer Console. Enable Unity IAP by selecting the Services – In-App Purchases tab in Unity and configure the Google Play Developer Console settings. Add your products to the Unity IAP catalog in your project. Implement code to handle in-app purchases in your game using the Unity IAP. You will need to implement methods to initiate a purchase and handle the response from the billing system. Setting Up Your Project Before moving forward, you need to set up your Unity project to support in-app purchases. Unity allows for fast IAP integration which you can do in Unity itself. No need to install any additional packages. It requires a few steps to ensure that your game is integrated with the appropriate billing systems and that your in-app purchases are configured correctly. First, you need to enable the Unity IAP service in your project. This can be done by going to the Window → General → Services in Unity Editor and selecting the In-App Purchasing tab. Next, you need to set up the appropriate billing systems for different platforms. For iOS, you’ll need to set up the App Store Connect portal and create IAP products. For Android, you’ll need to set up the Google Play Console and create IAP products. See below for more details. Once you’ve set up the billing systems, you need to configure your IAP in Unity to match the products you created. This involves setting the ID, price, and other details for each product. Finally, you need to implement the code to handle the in-app purchases in your game. This involves calling the appropriate Unity IAP methods to initiate a purchase and handling the response from the billing system. Designing your in-app purchase system Types of in-app purchases There are three main types of in-app purchases: consumable, non-consumable, and subscription. Consumable items can be used up, such as coins or power-ups. These items are designed to be bought multiple times, often sold in bundles. Non-consumable items are bought once and then owned permanently, like additional levels or characters. These items cannot be used up and stay attached to the player’s ID. Subscriptions provide access to premium content or features for a limited time period. These purchases can be automatically renewed unless the user cancels the subscription. In-app purchase system design Game developers might have an idea of an... --- What are the mobile app metrics that you must be tracking? When it comes to measuring how your mobile app business is doing, the Apple App Store and Google Play collect several metrics. With third-party app analytics tools, you can unlock even more data. Throw in a few more solutions from your app stack – like the one you use to power your in-app purchases – and you’ll be looking at several dozen mobile app metrics. You could easily end up tracking a hundred of them. But measuring all the metrics all the time isn’t practical or essential. Trying to do so actually throws you into the “you-have-too-many-metrics” problem. It’s real. Too much data (of which a significant part is just information that doesn’t translate to actionable insights or learnings) adds more overhead to the already overwhelming problem of collecting, processing, and analyzing data. Did you know that most of the data that even enterprises collect – up to 73% of it – remains unused? Don’t let this happen to you. Instead, focus on a few key metrics that tell you everything you need to know about how your app is doing. Start with the mobile app metrics listed here to get a head start. App Installs Installs are the #1 metric you want to be measuring. This fundamental metric captures the number of install events your app sees. Simply put: It’s the number of times your app gets installed.   Google calls this metric “Installs” and defines it as the “number of times your app was installed,” but also explains that this number includes reinstalls. So if a user uninstalled your app and then reinstalled it, the reinstall is captured as an install.   The App Store, on the other hand, tracks this information using the “Downloads” metric. Apple explains that download data includes both first-time downloads and redownloads:  “When a user downloads your app to their device for the first time, it’s counted as a First-Time Download. ” “A Redownload occurs when a user who previously downloaded your app adds it to their device again. ”  If you analyze your app install data over a period like a year, you’ll be able to discover periods that bring more users. For instance, many apps in categories like social, lifestyle, and payments see more downloads during the holidays. Such insights can help you plan better user acquisition campaigns. App Uninstalls The Uninstalls metric shows the number of times that your app gets uninstalled.   Now, when it comes to the uninstall metric, Google Play actually gives you a (tentative) number. When it detects that a user has become inactive, it considers it an uninstall and reports the same. The App Store, however, doesn't give you this number directly. Instead, it uses retention to show you how you're retaining or engaging users rather than losing them (as there’s no way to report the number with a 100% accuracy). Third-party mobile app analytics solutions that report this number use tools like silent push notifications to capture/gauge the app uninstall events. When analyzing the uninstalls metric, it’s important to note when the uninstalls peak: Do most users uninstall your app the first time they ever launch it? Investigate app crashes/freezes. App uninstalls can also hint at a mismatch between what users expected your app to do (based on your app store listings) and what it actually does. Do they uninstall your app somewhere along the app onboarding journey? Review your onboarding workflow. Review a few app session recordings using privacy-friendly app analytics tools to uncover potential issues. Find out if you’re looking like you’re asking for a lot of personal information to onboard new users. Are you asking for your users’ email? Could that be the problem? Do they uninstall your app after a few sessions? Double-check for performance issues like slow loading. If you use ads to monetize your app, assess if your advertising is coming off as too intrusive. Also, watch out for spamming users with too many push notifications – it can lead to uninstalls. Sometimes, your app happens to be one of the “few” apps a user downloaded to try. In this case, there’s nothing to do! Do they uninstall after their free trial ends (after canceling it)? Showing a special offer paywall while they're still trying the app may help avoid this churn. Do they uninstall after the second or third subscription period (if you offer a subscription app) or after a few weeks or months of using your app? Some user churn is inevitable. However, you should learn if strategies like launching new features more regularly can save some percent of this. All in all, app uninstalls can hint at a host of things. Always keep monitoring and analyzing this metric. User Retention In general, the app retention rate metric gives you the percentage of users that you managed to retain (and perhaps engage).   Note that there are several ways to approach the retention rate metric for a mobile app. For example, if you've a subscription-based app, you'll calculate your user retention rate by dividing the number of active users at the end of a period by the number of users who were active at the beginning of the same period. This metric is expressed as a percentage. As you can see, this is more like your subscription retention rate. In the following funnel chart, Adapty shows you the retention rate for a subscription-based app for its first, second, and third subscription periods. You can see that the retention rate is gradually falling, which is typical for subscription-based mobile apps: Adapty reporting an app's subscription retention rate Now, this is an example of the retention rate metric in a subscription app. But even if you offer a freemium app or a free app or an app with non-subscription/one-time in-app purchases, you’d still want to see how you’re retaining your users, as your monetization potential ties directly to the volume of users you maintain. In this case,... --- In March 2023 Apple released a new feature for App Store Connect called Peer Group Benchmarks. It’s a user-friendly analytics dashboard with a limited number of metrics that should help app developers better understand the performance of their apps in the App Store. Is it a real attempt from Apple to grab a piece of the pie from third-party app analytics tools or just another attention-grabbing dashboard? Let’s find out.   The Peer Group Benchmarks dashboard view What is app benchmarking? App benchmarking is the process of measuring the performance of a mobile application against a set of predefined standards or metrics. The primary goal of app benchmarking is to identify areas where an app's performance can be improved, from both technical (load times, response times, crash rate, etc. ) and marketing (conversion rate, retention rate, etc. ) perspectives. App benchmarking is an essential part of app development, as it enables developers to identify areas for improvement and optimize app performance for a better user experience. It also helps developers understand how their app compares to similar apps in the market and make data-driven decisions to improve their app's performance. How do Apple peer group benchmarks work? Apple released a dashboard with several key metrics: conversion rate, crash rate, retention rate (day 1, day 7, and day 28), and average proceeds per paying user. The “peer group” implies that the data comes from comparing your app to the apps that are similar to yours. There are 3 main criteria your app is compared to the other ones: Category (photo & video, finance, lifestyle, etc. ) Business model (free, freemium, paid, paymium, and subscriptions) Download volume (low, medium, and high download volume) The dashboard enables you to check the data on any category your app is presented in, the business model (applied automatically), and the download volume, as long as there are enough apps in those peer groups. Every metric in the dashboard is split into 4 bars with 3 percentiles (25th, 50th, and 75th) in between them. Each percentile shows the value related to the peer group of your app, which means you’re not getting a blind result, but can actually see the average values for this or that metric within your peer group, which adds more credibility. Now let’s have a closer look at each metric, see how helpful they are, and how much improving them can actually help developers from the financial perspective.   Conversion rate This metric shows the views/downloads relation and is calculated as total downloads divided by unique device impressions. It represents the quality of your App Store page, so if your rate is below the 25th percentile it’s time to think about optimizing its visuals: changing screenshots, adding or editing the existing video, and rewriting the description copy. The best way to check if your new ideas work is, as Apple kindly suggests, through A/B-testing with their native product page optimization tool. The weird thing is that on the one hand, this metric looks pretty useful and easy to understand, but on the other – having fewer downloads than views may not be a problem for your app’s health overall. There are cases where the app is “not for everyone” and it may generate not so many downloads, but still be pretty profitable for the developer, as its core audience compensates more than enough by paying a decent subscription price. Proceeds per paying user This is a rather useful and convenient metric to have, in theory. Proceeds per Paying User, which is the same as ARPPU (Average Revenue per Paying User), is calculated as the total proceeds divided by paying users for a certain time period. This metric may help you understand if your pricing strategy works fine or needs improvement and re-assessing. Among all the metrics listed in the dashboard, the improvement of this one may actually positively affect your app’s economy. However, the calculation formula behind this metric seems to currently have a little problem – it doesn’t seem to take subscription renewals into account. This was confirmed by our internal experiments and is relevant on the date of publication. Apple provides the following example: “if your app’s total proceeds for a period are $100, and your app has 100 paying users, your proceeds per paying user are $1”. It basically means that if you have only one subscription in your app, you will always have the same value (which is your subscription price minus Apple’s cut). It implies that this metric currently accounts for new purchases only, which is not how it should be in real life. If you have a subscription-based app, you may also have subscription renewals take place within the same period, which, practically, must add to the period proceeds as well. In this case, the final value for the Proceeds per Paying User must be higher. As a result, such a metric doesn’t help much with understanding LTV or the long-term profitability of your app, as it doesn’t take into account subsequent renewals. To paint a bigger picture, one should turn to a more prolific analytics system. Here’s how the ARPPU cohort analysis is presented in Adapty, for example: You can check the ARPPU for a certain period or day, as well as the total ARPPU for each cohort Crash rate It may seem strange to see the crash rate metric calculated for a peer group – it’s unlikely there’s a correlation between an app category and a crash rate, but it’s another metric that shows how well your app performs in comparison to the competitors, so it must be useful. Anyway, if your app shows low results even within your peer group – it’s time to take action. This is another place where Apple suggests you should go back to the App Store Connect’s toolshed and take a look at your crash logs.   Overall, this metric is not that crucial for your app’s monetization. Yes, it opens up the questions of users deserving a better... --- Adapty's paywall builder Our paywall builder allows publishing native-layout paywalls from our web editor directly to your iOS app, making the paywall creation process easy and fast. You no longer need to have coding knowledge to test your hypotheses. With the paywall builder, you can edit: Products with different prices, Feature descriptions, Background images, Color scheme, Purchase button CTA. All the essential conversion elements are easily tweaked and can be tested to improve your app's performance.   Read more Cohorts by days  Cohort analysis now includes a new view by days, which is particularly useful for tracking non-subscription products, such as consumables or one-time purchases. You can choose to display ARPAS, ARPPU, total revenue, or subscriptions, and track the performance of each cohort on the 1st, 3rd, 7th, 14th, and other days. It’s also useful to set filters to analyze payment trends for specific countries, products, duration, paywalls, attribution, and store. Pro+ plan Adapty, as a product, is growing and expanding its functionality, and now we have four pricing options to fit the needs of different app businesses. Our new Pro+ plan includes:  ETL integrations,  A no-code paywall builder,  Cohorts by days,  6 team members, And a table view for remote paywall configuration.   To see the full list, please check out our updated pricing. We are hiring Behind our tremendous growth last year stands a dedicated team of people committed to the idea of creating the best value product. We continue to evolve and welcome new specialists to join us. If marketing, QA, sales, or development positions are of interest to you or someone in your network, be sure to check out our career opportunities. --- The special issue of the paywall newsletter featuring 3 female mobile growth experts, 6 mobile paywalls, and 1 extraordinary dark pattern. The special issue of the paywall newsletter featuring 3 female mobile growth experts, 6 mobile paywalls, and 1 extraordinary dark pattern. Peggy Anne Salz Chief Analyst and Founder of MobileGroove, nine-time author, and Forbes Senior Writer. Two-screen paywall with a message from the future by Fabulous Calling me by my first name is not a ploy. It’s part of a smart personalization approach that addresses me as an individual and inspires me to be all I can be (with the help of this app). Put simply, this paywall is subtle and incredibly smart. It’s irresistible.  After all, who doesn’t want to be healthy and worry-free? It’s comforting.  My app is my companion, and it will be with me every step of the way. Who doesn’t want a companion that has their back? It’s convenient.  Just tap to start, and it’s “super easy to cancel”. But there is a downside. Membership is billed every 12 months. Does this mean signing up for membership at $3. 33 per month commits me to pay the full amount in one go? Or do I pay monthly and have the option to cancel before the 12 months are up? Will the remaining amount be refunded? I can’t be 100% sure, and the language isn’t clear. This is a little unsettling if we consider this app has made the promise to be my best friend and help me be a better version of myself... There shouldn’t be secrets between friends, and I feel the language here could be more upfront. Fabulous AI chatbots are hot, but this paywall isn't The creative is vague (could be a mobile game), and I don't fully understand what I can achieve with this bot and its bird. If we leave the odd branding aside, we are left with the reasons why I would upgrade: Unlimited Chat No ads Unlock all premium features BUT I don't know what the premium features are. It begs the question: what am I subscribing to in the first place? The pricing options are visually clear, but that's where it ends for me. The week costs $2. 99 – that’s clear enough. The $12. 99 per quarter is clearly more expensive, which prompts me to ask: 1) why highlight it as it isn't a bargain? 2) what does the "limited version" mean or include? Could it be that "limited version" also has nothing to do with the $12. 99 offer and it is merely centered on the screen and ended up under the quarterly package purely by accident? The best value for money is the annual package, but the company doesn't highlight it. A "value of xx" badge or similar callout would grab my attention and possibly even convince me to purchase that subscription offer. On the positive side, this is a company that knows its price and doesn't dilute its pitch with a free trial. The jury is out on whether a free trial is the best way to create a habit and, ultimately, convince users to commit to recurring costs. AI Chatbot – Chat AI Natalia Shakhmetova CEO/CMO at Woofz, the must-have training app for all dog owners & owners-to-be Prequel: a cool paywall with room for testing The category of photo and video editor apps is highly saturated, so following major players is a safe bet for achieving a 100% successful payment screen. Prequel is one of such players. Prequel has a cool dynamic paywall at the end of its onboarding process, featuring several beautiful elements: Dynamic image changes: examples of effects, user reviews, and ratings create a nice hook. A toggle for switching non-trial subscriptions to free trial ones. A big button with a haptic and the best-selling text (in my opinion). A big cross that saves the app from Apple Reject. However, there are some points to consider for testing: Premium effects and features locked behind a paywall look not so attractive to me as a user. Offering only a weekly subscription for $4. 99 may not be the best option for increasing LTV, especially for a large application. A more diverse and complex price matrix should be tested to increase LTV. Prequel Koloro: there is an easy way to increase conversion You know there is nothing easier than copying a selling screen from a big player in your niche. I advise all indie developers to just copy their first payment screens without any hesitation.   Now let's move on to this particular screen. Unfortunately, they do not follow my advice. There isn't anything cool about their screen, and there is plenty of room for improvement: Where is the button? I bet that adding a button could boost their conversion by at least 10%. They need to work on the design of selling points; everything is currently unreadable. There's a huge accent on the picture of the sunset and a small accent on the features they provide. Priorities in the price box section need to be changed. Benefits (free trial period, discount size, etc. ), name of plans, etc. , should always be designed using uppercase and bigger fonts. Details of the plan and prices can use thin and small fonts. Less legal text, please. You can carefully pack it in laconic links. Replace the arrow with a cross. In my opinion, the arrow might confuse users. Add at least one trial plan. Users will be more willing to convert with this option available. Koloro Alice Muir Senior Consultant at Phiture, App Marketer of the Year 2022 Less Web needs more ideas for their paywall While this paywall has a clear and simple design, it perhaps lacks a description or clearly outlined benefits of the premium version.  The publisher could try highlighting the following premium features to see if there is an increase in conversion. However, we do recommend that these features should be highlighted from the perspective of how they benefit the user, as opposed to simply stating the premium features themselves: Full anonymity Protection from being tracked No more intrusive ads Data... --- Apple’s Billing Grace Period can be very effective for handling involuntary churn. Here's how to enable it for your iOS app. As with any subscription-based service, when an iOS or Android subscription mobile app subscriber's renewal payment fails, they lose access to their subscription benefits. A good percentage of such subscription renewal failures happen because of reasons like the declining of a payment method or insufficient funds. And a lot of times, subscribers aren't even aware of these issues – losing access abruptly hugely impacts their app experience. Apple's App Store notes that because “such involuntary churn isn’t related to customer satisfaction,” it’s a good idea to create “a user experience that avoids subscriber loss due to a failed renewal. ” Apple’s Billing Grace Period provision is all about this.   Here’s how Apple describes its Billing Grace Period in its announcement post: “Billing Grace Period lets subscribers whose auto-renewal failed due to a payment issue continue accessing your app’s paid content for a period of time while Apple continues to attempt to collect payment. There won’t be any interruption to the subscriber’s days of paid service or to your revenue if Apple is able to recover the subscription within the grace period. ”  So how does Apple’s Billing Grace Period actually work? Let’s find out. We’ll also see how you can enable it – and why you must! What is Apple's Billing Grace Period? Apple explains that since billing issues cause involuntary iOS app churn – and that it’s not the app subscriber that’s chosen not to renew a subscription in such cases – the user’s app experience mustn't get impacted. In fact, to prevent subscribers from losing access to their app or its premium features in instances of failed billing, Apple introduced its Billing Grace Period feature. Simply put, iOS’s Billing Grace Period is extended access to an app where a subscriber’s subscription failed to renew because of billing issues. Below you’ve a subscriber whose subscription renewal has failed. When an iOS app's subscription renewal payment fails, the subscription enters the billing retry state. In this example, since the app maker hasn’t enabled a billing grace period for the app, the subscriber either loses access to the app (if it’s a paid app) or gets downgraded to the free version (if it’s a free app) as soon as the subscription enters the billing retry state: A subscription renewal failure Such subscription payment processing fails can happen for a host of reasons. For example, if a user’s credit card (that they used to sign up) expires, their payment information becomes invalid, and as a result, their app’s subscription auto-renewal payment fails. You can also see in the above graphic below how Apple starts its billing error recoveries when subscriptions fail to renew. However, in this example, the user loses access to the app (or its premium features) for a full 10 days until Apple can process the subscription payment successfully through its retries. But when you enable Apple’s grace period for your app, your app subscriber doesn’t lose access to your app or its premium features even after their subscription payment fails. They enjoy uninterrupted access to their app for the whole of the “grace period” while Apple retries processing the failed payments. Below, you’ve an iOS app user whose subscription renewal failed. However, since the app offers a grace period, the subscriber gets extended access to the app or its premium version while Apple tries to renew. In this case, because Apple is able to process a payment within the grace period, the user doesn’t experience any discontinuation of service: (The app in this example offers a 16-day grace period. You can specify how long your app’s grace periods can be. ) A subscription renewal failure with a grace period (and a recovery happening within the grace period) In the following case, in contrast, Apple fails to collect a subscription payment within the grace period, and so the user loses access post the grace period. However, when Apple is able to collect the payment (and recover the subscription), the subscriber regains access: A subscription renewal failure with a grace period (and a recovery happening post the grace period) There’s more to it...   Apple’s Billing Grace Period also comes in handy when things like changes to payment policies happen and impact a large user segment at once. Take how the App Store had to stop processing subscription renewal payments for its Indian user base, for instance, when the country’s central bank (RBI) updated its auto-debit guidelines.   In such situations, having a grace period gives you the time to ask your users to update their payment methods. And it gives users the time they need to update their payment methods while enjoying uninterrupted access to the features/functionalities or content they pay a premium for.   Apple’s Billing Grace Period also gives you more days of paid service. For example, if you offer a 28-day grace period, and the billing is successful on the 7th day, you don’t lose any revenue. However, if you don’t offer a billing grace period and the user still gets billed successfully on the 7th day after subscription discontinuation while Apple tries rebilling, you lose about 7 days' worth of revenue. How to enable Billing Grace Period for your iOS app Here are a few simple steps to enable Apple’s Billing Grace Period for your iOS app. Step #1: To enable Billing Grace Period for your iOS app, access your app inside your App Store Connect account. Step #2: Click "Subscriptions" under the Features section.   Step #3: Next, set up your billing grace period lengths from the Billing Grace period section. Apple offers three grace period durations: 3 days 16 days 28 days  Note that you can set grace periods only at the app level. Suppose you offer weekly, monthly, and yearly subscription plans (products) and set the grace period to be 3 days. In this case, Apple will automatically assign 3-day grace billing periods to all of your plans. Alternatively, if you choose a 28-day Billing Grace Period, Apple will automatically cap your... --- Mobile app onboarding is introducing users to a new app and ensuring they understand how to use it. Your mobile app onboarding experience ties directly to your initial user engagement, conversions, and retention. Here's how to go about it. Most new app users abandon an app right after launching it for the first time. In the third quarter of 2022, Android apps had an average Day 1 retention rate of 22. 6%. This number was only slightly higher for iOS, with a retention rate of 25. 6% on the first day after installation. These retention patterns align with what we have consistently observed: apps lose about 75% of users within a day. However, even in the same category, apps vary significantly in their retention rates. The ones that hook users from the start are much more likely to keep them than those that don't.   And what exactly lies at the heart of your app’s first-run experience?   You’re right: It’s your mobile app onboarding. Your mobile app onboarding experience ties directly to your retention rates and revenue. And in today's article, we’ll see several ways you can optimize that. In this mobile app onboarding guide, we'll see how you can create user-friendly and delightful mobile app onboarding experiences that your users will love. We’ll: explore five mobile app onboarding models and their unique features and strengths (actually, there’s a bonus sixth model, too! ). look at mobile app onboarding examples that execute these models just right. discuss mobile app onboarding best practices to always keep in mind.   We’ll also review the app onboarding workflow that apps typically follow, the metrics to monitor for measuring an app onboarding experience’s effectiveness, and how running experiments on the paywall during onboarding can boost subscriptions. But before we get to these, let's answer the question: "What exactly is mobile app onboarding? " What is mobile app onboarding? Mobile app onboarding is the process of:  1) introducing a new user to a mobile app,  2) showing them how the app works so they can use it,  3) getting them familiar with its features and benefits that will help them unlock its value.   In other words, mobile app onboarding means training new app users so they can accomplish what they set out to achieve with an app. Mobile app onboarding involves securing necessary user permissions and consent, getting users to set up the app, and helping them personalize or customize their app experience. You could say that a mobile app’s onboarding ends when a user has a happy first-run experience. Google’s Material also gives a fascinating definition of mobile app onboarding: "Onboarding is a virtual unboxing experience that helps users get started with an app. " Why is mobile app onboarding the key to retention? When a user needs an app, they often start by searching for a few keywords. This is also why so many app downloads can be traced back to how they were found in the app store.   And this is also why you need to optimize your app listing to get good visibility in the app store(s).   However, users rarely settle for a single app. Instead, they download a bunch of apps.   So if a user is interested in beginning intermittent fasting, for instance, they might search for "intermittent fasting" in the app store and install many apps from the organic and paid results that help with it. Then they'll try each to find the right "one. "  Ankit Jain (formerly the head of search and discovery for Google Play) explains this user behavior. He shares how users try different apps, quickly determine if an app is worth their time, and decide within the first few days of using it: "Users try out a lot of apps but decide which ones they want to ‘stop using’ within the first 3-7 days. For ‘decent’ apps, the majority of users retained for 7 days stick around much longer. The key to success is to get the users hooked during that critical first 3-7 day period. " Given that this is how users behave, getting your mobile app onboarding right is essential, as only seamless onboarding can ensure good retention during the crucial first few days.   The key lies in designing your onboarding to get users to do the things in your app that you know will increase initial engagement and retention. One such in-app action item for a weight loss app could be logging the current weight. If you have historic in-app behavior analysis data, you’d know what actions tie positively to retention. You must ensure these are encouraged during onboarding. Now that you know what mobile app onboarding is and how it ties to retention, let’s look at the main mobile app onboarding models. While you can broadly classify mobile app onboarding into these models, most apps don’t strictly stick to one. They use a combinational style. Five types of mobile app onboarding “Quickstart” onboarding In the quickstart mobile app onboarding model, you typically only ask a user to sign up as part of the onboarding workflow. Here, users learn their way around an app by using it on their own. Quickstart onboarding works for apps that don't need to be "set up" and use standard user interface (UI) practices that users can figure out without any help. With this model, users can launch an app – even when running it for the first time – and start using it. The video and photo editor app InShot does a great job of getting users started quickly. As soon as users download the app and launch it for the first time – the first run – InShot lets them get going by themselves and offers no help or guidance. New users can immediately dive into using the app as it’s clear that they can either create or edit a video, photo, or collage with it (thanks to the app’s intuitive UI): It’s only when users try to create a photo, video, or collage that InShot explains that it needs their permission to access their phone’s content and camera. When a user proceeds with allowing access, they see the permissions popup. Once users allow this access, InShot... --- Here’s how to use remote config to customize your app’s paywall, run app paywall experiments, and offer personalizations at scale without needing to release updates through the app store! Remote config – short for "remote configuration" – is an app development technique that lets you remotely configure your app's paywall. You can use it to change your paywall's elements, like the headline, copy, or featured image on the fly and deliver the changes to your users in real time without updating your app in the app store(s). While remote config use cases go beyond paywall ops, for this article, we’ll stick to how it works for paywalls. Remote config offers a convenient way to launch quick updates to paywalls. It also makes creating and testing different paywall experiences effortless. Remote config even allows for paywall personalizations at scale. In today's article, we'll see: what remote config is how remote config works  how remote config allows paywall customizations on the fly how remote config helps with running A/B tests on paywalls how remote config enables delivering personalized paywalls at scale We’ll also see how Adapty – an in-app sales and paywall optimization solution – can help you remotely configure your paywall so you can grow your app revenue. Like Firebase, even Adapty ships with a remote config editor that you can use for building your paywalls. Here goes. What is remote config? Remote config is a mobile app development technique where you code parts of your application in a way that you can remotely configure them and make changes to how they work or look like and deliver the same to your app users without needing to publish updates via app stores. As mentioned earlier, for the sake of this article, we’ll stick to how remote config works for paywalls. So here’s a paywall using remote config. As you can see, its elements like the CTA button, CTA text, and features copy are all remotely configured and not exactly hardcoded: Adapty's remote config editor for building and editing paywalls To enable remote config on your Android or iOS app paywall like this – where its key elements are easily editable – you need to work with a paywall solution that supports it. We’ll see how this works in just a bit with Adapty (of course! ). Using remote config for building paywalls helps you with paywall customizations, personalizations, and experimentation. We’ll see each of these use cases in detail in just a bit. But before that, let’s quickly see how these work without remote config. Implementing mobile app paywall customizations without remote config Without remote config, customizing paywalls, running mobile app paywall experiments, and delivering personalizations: involves a lot of manual coding. You're hardcoding everything on your paywall, and making changes to any element means more coding. Here, you’re looking at a lot of coding to make even the slightest changes to your paywalls – even for the simplest things like changing your CTA button copy. forces a lengthy deployment workflow. You need to handle longer development cycles and more overhead in this case, as any updates to the code will require new testing and QA cycles. means going through time-consuming app store release cycles. You’ll also need users to update their app ever so frequently. Let's now see how remote config works for paywalls and addresses all these challenges. How to set up remote config for mobile app paywalls Setting up remote configuration for mobile app paywalls generally takes three steps.   Step #1: Choosing paywall elements that you'd like to remotely configure A mobile app paywall has several components: a headline, subheads, a featured image, video, slider, and CTA button(s), to name some. Of these, the headline, featured image, and purchase (CTA) button(s) are some of the key ones that you may want to change from time to time. Doing so will help you see if different versions can bring more sales. So at this step, choose any elements you see yourself changing frequently on your paywall. Step #2: Setting default values for the "configurable" paywall elements  Once you’ve identified the elements you’d like to make configurable, it’s time to set a default value for each.   For example, a default headline for a paywall can be “Go premium now and unlock all features. ”  Likewise, you need to set default values for all the elements you want to enable remote config for. Step #3: Editing as needed Once you’ve set default values for your configurable elements, you can edit them as needed.   For example, if you decide to change your paywall headline, you’ll only need to assign another value to your headline field, and your users will now see the new headline. There’s no need to push a new app version and require users to update. They’ll automagically see the new one. Let’s now see how remote configuration actually helps with optimizing mobile app paywalls for more conversions. Remote config use cases for optimizing mobile app paywalls Using remote config to implement paywall customizations on the fly If you use remote config to codify the key elements on your paywall, you can customize them on the fly. Let’s return to the paywall headline example to understand this. Your headline is one of the most important elements of your paywall that has a direct influence on your revenue. And there are many occasions when you might want to customize it to make it more relevant to users. For example, let's say you offer an intermittent fasting (weight loss) app and use a general headline like "Lose one kg a week with our premium plan. " Now that's a good headline. But if you wanted to make the most of, say, the new year, which is one time of the year that sees lots of downloads and upgrades, you could use a better headline. You could change your default headline to something like "Upgrade to lose up to 4 kgs in January: New year... new you! " You could also change the header banner to reflect the users’ mood. See the following two screenshots for example. This first one could be your default configuration/design: While the second “customized... --- Firebase + Google Analytics integration Send events from Adapty to Firebase and Google Analytics. Use the data from subscriptions, trials, and issues to get more insights with Google services. To set the integration, please update to the latest SDK version and follow the instructions. Localizations in the paywall remote config Do you want to show the localized paywalls faster? You can now use separate JSONs for different localizations in Adapty. When you add a localization, you see the locale code needed for the Adapty. getPaywall method to fetch the localized remote config. Use this feature to increase conversions by being closer to local cultures. React Native and Unity SDK 2. 2 The developers of all Adapty platforms can now enjoy the new major version of our SDK. New integrations, better-organized structure, and optimized speed are just the beginning because we are planning many new cool features in 2023.   And if you'd like to be aware of the latest updates and participate in the Adapty product evolution, subscribe to our changelog and send us your true feedback. We’ll be happy to develop the best for you. --- In the 8th issue of the paywall newsletter: a lesson in transparency, a FREE trial for the wrong subscription plan, and a paywall that makes users search for it. This is the 8th issue of the paywall newsletter in which we'll see: A lesson in transparency, A FREE trial for the wrong subscription plan, Paywall that makes users search for it. Paywalls of the issue are commented by... Hannah Parvaz, a winner of the App Marketer of the Year by App Growth Awards, and a founder of Aperture. Sporty girls, personalization, and a free offer Bright colors and partially dressed women capture the eye in this one. I’m interested in the use of the name on this screenshot, as this is atypical. I would assume it’s only there after a lot of testing, but I’ll be trying this out. This paywall makes me wonder what the monthly vs yearly subscription split is, as both options are made to look appealing. Most products I’ve worked with want to push as many people to yearly as possible, so I’m shocked to see a free trial only on the monthly subscription. FREE is written there twice, and it’s very eye-catching.   On top of that, it seems to me as though the yearly plan is selected, but there is messaging underneath which refers to the free trial. To increase yearly subscriptions, I would add a free trial to that plan and remove it from the monthly one. SWEAT A paywall that makes users search for it This paywall doesn’t appear quickly enough in the journey. The user has to click onto “Upgrade to Pro” to see it. So, the first thing I’d do is make the paywall appear automatically at some point during the initial user journey, even before the sign up.   There is no trial on the paywall, which is why it may be hidden: there may be the rationale that someone would only be willing to pay after they’ve tried out the product, but making the paywall at least a little easier to access would make a big difference here. On top of this, there’s a lot of text on the paywall which makes me feel a bit overwhelmed. The key things I’d do here are:  Have this screen appear as a part of the onboarding flow, or at least on every subsequent launch. Introduce a trial to encourage customers to engage. Decrease the amount of text to highlight the key features. Include educational comms about the rest of the features. Include tooltips and contextual paywalls when someone engages with a locked feature. Heart and Stress A Blinkist-style paywall that is still a thing The Blinkist-style countdown paywall has shown to increase conversion both to trial and from trial to paid. This template, which is a masterclass in transparency and clarity, has been borrowed by Elevate. From this screen alone, it’s very hard to tell which product I’m looking at, so it could be worth including a logo or a clearer brand name. On top of this, the focus of this paywall is solely on the free trial and there's nothing that highlights any subscription benefits. There’s a lot of clean space on this paywall, so this could easily be fixed with a line describing the perks of paying for premium. The CTA copy is great, having experimented over the last decade with copy, this one is amongst the top performing copies we’ve seen. The only way we’ve seen to improve the CTA copy is to include the length of the trial (Start your 7-day free trial). Elevate They shape your dreams, so they should their paywall There are a lot of good things about this paywall: social proof, free trial, CTA mentioning the free trial, and the list of benefits.   However, there are also many aspect to improve. Although the paywall features social proof, the message could be more convincing. I’d love to know what the customer is trying to accomplish by lucid dreaming and include this as a part of the social proof. Compared to the clarity and transparency of the Elevate x Blinkist, this Shape paywall makes it very hard to see both the price and the length of the trial.   There’s also a lot of free space availble at the top of the screen, which could be used more wisely, for example to expand out a few of the the benefits of upgrading. Shape --- Abonelik modeli hızla yayılırken, uygulamanızın Netflix ve Spotify ile rekabet sürecinde düzgün bir fiyatlandırma stratejisi çok önemlidir. Abonelik sektörü tüm hızla büyürken Apple, geliştiricileri abonelik sistemini kullanmaya teşvik ediyor. Bildiğiniz gibi 1 milyon $’dan az kazanan geliştiriciler için kesintiyi %15'e kadar düşürdüler. Çok sayıda araştırmaya göre, abonelik modeli, sürdürülebilir bir kullanım sözleşmesi oluşturduğu için müşteriyi elde tutmaya yardımcı olur. Kullanıcılar, tekrar ödeme yapmayı seçerek, zaman içinde uygulamanın algılanan değerini yeniden belirlemiş olurlar. Son istatistiklere göre, abonelik sistemi kullanan oyun dışı uygulamalar harcama yapan kullanıcıların %96'sını oluşturuyor. Kaynak : App Annie Amerikalılar uygulama aboneliklerine Netflix ve Spotify gibi uygulamalar dahil olmak üzere ortalama aylık 33$ harcıyorlar. Abonelik piyasasında rekabet oldukça yüksek olduğu için geliştiricilerin fiyatlandırmayı çok iyi yapması gerekiyor. En Yaygın Fiyatlandırma Modelleri Nelerdir? Abonelik sistemini kullanan uygulamaları 3 kategoriye ayırabiliriz: Pay to Use (Kullanmak İçin Öde): Uygulamanın içeriğine ödeme yapmadan erişemezsiniz. Bazı uygulamar size neler sunduklarına dair kısaca fikir verirler. Netlflix, Apple Music gibi... Pay to Upgrade(Yükseltmek için Öde): Uygulamanın temel düzeyde içeriğine erişebilirsiniz ve abone olarak ek özelliklere erişim hakkı alırsınız. Örneğin Spotify’da sınırlı ve reklamlı müzik dinleme gibi. Pay to Less(İndirim Üyeliği): Bu model bazı özel fırsatlara sahip olmak isteyen kullanıcılara sunulmaktadır. Örneğin Amazon Prime ücretsiz kargo ve indirimli alışveriş gibi özel fırsatlar sunmaktadır. Bu makalede Pay to Use ve Pay to Upgrade modellerine odaklanacağız. #1 Bir Fiyatlandırma Noktası Seçin Burada önemli olan kriter uygulamanızın kullanım sıklığıdır. Eğer kullanıcı uygulamanızı günlük olarak kullanacaksa yüksek bir fiyat belirleyebilirsiniz. Fiyatlandırma yaparken abonelik piyasasını da takip etmeyi unutmayın. Kullanıcılar aboneliklere ödeme yaparken genellikle Spotify ve Netflix gibi servislere yaptıkları ödemeler ile kıyaslama yaparlar. Çoğu aboneliğin fiyatlandırmasının 15$ altında olmasının nedeni de bu aslında. Bu hizmetlerin fiyatlarını geçmeden önce iyi düşünmek gerekiyor. Yıllık Ödeme Öncelikli Fiyatlandırma Son araştırmaya göre geliştiriciler yıllık ödemeye yönlendirebilmek için %49'a varan indirimler sunuyor. Kullanıcıları yıllık ödemeye yönlendirerek bütçenizi hemen arttırarak hızlı büyümenizi sağlar ve kullanıcınıyı uygulamayı daha çok kullanmaya yönlendirebilirsiniz. App Store’da bir uygulamayı indiren kullanıcılardan ay sonunda yalnızca %5'inin uygulamayı kullanmaya devam ettiği düşünülürse yıllık planların neden ilgi çektiği daha iyi anlaşılabilir. Yıllık ödemenin yukarıdaki olumlu yanlarının yanı sıra negatif tarafı ise aslında geliştiriciler için en az karlı seçenek olduğudur. Ekipler genellikle aylık kullanıcı hareketlerini düzgün analiz edemedikleri için daha kolay ama daha az getiren yıllık seçeneği tercih ediyorlar. Adapty ile bu iki seçenek arasında kalmanıza gerek yok. Detaylı gerçek zamanlı ölçümler, Aylık yinelenen gelir (MRR), abonelik ve kesinti analizleriyle abonelik performansınızı ölçmek birkaç dakikalık bir iş haline gelecek. Ömür Boyu Abonelik Seçeneğini Değerlendirin Uygulama içi satın alma fiyatlandırmalarında ömür boyu planları, App Store’daki Paywall’larda sıkça görüyoruz. Ömür boyu planı doğru şekilde kullanıldığında size bazı avantajlar sunmaktadır. Doğru fiyatlandırma yapıldığı zaman ömür boyu plan size daha fazla kar getirebilir. Kullanıcı belli bir süre sonra uygulamayı kullanmayı bırakacağı için normal planlara göre daha karlı hale gelecektir. Ayrıca ömür boyu planı olan bir Paywall kendinden daha emin bir hale geliyor. Geliştirici ekibin uygulamasına ne kadar güvendiği ve değer verdiği izlenimi yaratabiliyor. #2 Onboarding Akışınızı Tasarlayın Onboarding (Aktivasyon ya da Alıştırma) akışı, genellikle sonunda ödeme duvarının(Paywall) gösterildiği, aboneliğin bir kullanıcıya sunulduğu ekranlar anlamına gelir. Onboarding akışlarını Süper Erken(Super Early), Erken(Early) ve Geç(Late) Onboarding akışı olarak 3 başlıkta inceleyebiliriz. Süper erken Onboarding akışı , indirmeden hemen sonra kullanıcıya iletilen ilk şeyin abonelik olduğu anlamına gelir. Bu akışı kullanmak için uygulamayı indirmeden önce kullanıcıya önbilgi verdiğiniz varsayılır. O yüzden giderek popülerliğini yitiren bir yöntemdir. Erken Onboarding akışı , genellikle kullanıcı ile ilgili temel bilgiler alındıktan sonra onboarding kısmında abonelik bilgileri verilir. Masterclass, aboneliği satın alma teklifi sırasındaki ilk ekranla birlikte süper erken katılım akışını kullanıyor. Bu sırada hem uygulama tanıtımını hem de abonelik teklifini bir anda vermişler. Geç Onboarding akışı: Kullanıcı, uygulama içindeki temel eylemleri tamamlamadan abonelik gösterilmez. Bu model genellikle, uygulamanın çoğuna hala ücretsiz olarak erişebildiğiniz ve yalnızca bir dizi ekstra özellik için ödeme yaptığınız freemium (yükseltmek için öde) uygulamaları tarafından kullanılır. Geç onboarding akışı daha esnek kullanıma sahiptir ve kullanıcı bağlılığından emin olmak için farklı uygulama içi senaryolar kullanabilmemizi sağlar. İlk onboarding akışınızı uygulama kategorinizi göz önünde bulundurarak uyarlamanızı öneririz. Liftoff tarafından yapılan bir araştırmaya göre finans, seyahat, oyun ve e-ticaret segmentlerindeki kullanıcıların satın alma işlemi diğer kategorilere göre çok daha fazla zaman alıyor. Bu sektörlerdeki geliştiriciler, geç ve daha karmaşık akışları kullanmayı düşünebilir. 2020 Mobil Uygulamalar Raporu, Liftoff #3 Paywall Stratejinizi Belirleyin Paywall, kullanıcıya ücretli içeriklerin ve fırsatların sunulduğu ekranlardır ve onboarding süreçlerinde çok önemli bir bileşendir. Satın alımların %80'i ilk paywall üzerinde yapılır ve genellikle kullanıcılar ilk 5 dakika içerisinde karar verirler. Apple’ın paywall’lar üzerinde detaylı inceleme yaptığı ve gerekli kurallara uymayan uygulamaların App Store incelemesini geçemediğini unutmamak gerekiyor. Natural Cylcles uygulamasının Erken Aktivasyon akışını inceleyelim. Kadınlar için bir doğum kontrol uygulaması olan Natural Cycles, abonelik ödeme duvarını belirlenen her bir hedefe göre özelleştiriyor. Aylık ve yıllık olmak üzere en az iki fiyatlandırma seçeneği sunun. Kullanıcıların %35 ile %50 arasında bir indirimle veya ‘en popüler’ gibi özel bir rozetle yıllık üyeliği seçmelerini sağlayabilirsiniz. 3 günden bir aya kadar ücretsiz deneme sürümü sunun. Her abonelik için aylık tutarı da göstermek, kullanıcıya karşılaştırma imkanı verecektir. Hatta günlük tutarı da ekleyerek daha az görünmesini sağlayabilirsiniz. Sadece ilk alımlara özel fırsatlar sunarak kullanıcıyı satın almaya yönlendirebilirsiniz. Gizlilik odaklı bir uygulama olan Jumbo, kullanıcıların uygun olduğunu düşündükleri fiyatı seçmelerine olanak tanır. Bu tavsiyeler size ürün fiyatlandırması konusunda bir takım bilgiler verse de deneme ve test etme hala en etkili yöntemlerdir. Test ederek en doğru fiyat politikasını belirlemek için ise doğru araç kullanımı çok önemlidir. Doğru Araç Kullanımı İşleri Kolaylaştırır Adapty haftalık, aylık ve ömür boyu abonelik karmaşasının üstünden gelmenizi sağlarken, kullanıcılarınız için en iyi fiyat ve teklifleri bulmanız için A/B testleri yapmanızı sağlar. Paywall karşılaştırması yapabilir, fiyat etiketlerini değiştirebilir, paywallunuzu uygulama incelemesine göndermeden değiştirebilir ve işletmenizi sağlıklı bir şekilde analiz edebilirsiniz. Sadece 5 satırlık kod ile Adapty SDK’ini kullanarak uygulamanızda uygulama içi abonelik, satın alma geri yükleme, makbuz doğrulama işlemlerinizi kolayca uygulayın. Adapty SDK’i tüm platformlarda mevcut. İşte iOS için gerekli 5 satırlık kod. Herhangi bir sorun yaşamanız durumunda Telegram topluluğumuzda yardım istemeyi unutmayın! --- In an era of booming subscriptions, when your product is competing with Netflix and Spotify, an appropriate pricing strategy is essential. IAP subscription market overview In-app subscriptions dominate mobile purchases, there’s no doubt about it. It's the second-largest revenue generation source for app developers after the advertisement. The subscription model aids in customer retention as it creates a sustainable usage contract: by choosing to pay again and again, users reaffirm their perceived value of the app over time. The app price in the store doesn’t mean much anymore, as apps tend to be free for download and feature one or more in-app subscriptions. In 2020, apps with subscriptions accounted for 96% of consumer spend in top non-gaming apps, in 2023 there’s no need to even say that having a subscription in your app is a must. But how much are users really willing to pay for subscription mobile apps? State of mobile app market in 2022. Courtesy of data. ai Even though the latest reports show that the global app revenue in Q3 2022 declined 5% year-over-year, it still revolved around an impressive $30 billion, with an overall consumer spend of $167 billion. The number of downloads for 2022 also demonstrates that the market is still rising – it grew by 11% year-over-year to 255 billion downloads. Such insane numbers mean that if you manage to price your subscriptions right, you’re sure to get into the cash flow. But it’s a walk on thin ice, if you price it too low, you’ll end up underearning, price it too high, and you’ll face churn and high bounce rate. So let’s get down to understanding how to properly price your app in such a profitable, yet competitive market. We’ll start with defining an average subscription price. Average app subscription price Last year’s data displayed a significant increase in the average subscription price for the period Jan 2021 – Jan 2022. According to the figures we tracked in Adapty, the average iOS subscription price has grown by 36,5% year-over-year. To be more precise, the annual subscription’s price has increased by 33%, while the monthly one’s got even higher – by 40%. Although there’s no definite answer on how to price mobile app subscriptions, the best practices and ideas to move from can be found in this article. One of such ideas would be to check the average prices on mobile in-app subscriptions. That’s why at Adapty, we created a couple of analytical reports, based on the data we track on an everyday basis. We’ve analyzed the prices for different kinds of subscriptions on iOS and Android from several regions: The USA, Mexico, Brazil, the UK, Turkey, Russia, Indonesia, China, Korea, Australia, the EU, and Canada. Based on the data that we received from tracking 100M users and 10M events on Android, and 150M users and 20M events on iOS respectively, we came up with the following average prices for the period 2021-22: PeriodiOSAndroid1 week$6$51 month$6$53 months$27$116 months$26$221 year$27$18Average mobile subscription prices for iOS and Android for the period 2021-22 Even though these numbers are no perfect benchmarks, they can be used as a starting point for sure. Let’s have a closer look and see what interesting ideas we can find within.   Weekly vs monthly prices It may seem strange at first glance that the weekly and monthly prices turned out to be so similar on both platforms. Of course, we rounded up the figures, but it’s not the case. It’s a great illustration of pricing the “least expensive” subscription on the paywall in the same manner, no matter the billing period. It’s the highest amount of money users are willing to pay for the first offer on the paywall. Have a look at these paywalls: Sun Signs: Horoscopes vs Fishing Forecast – Fishbox App The first paywall features weekly, monthly, and yearly subscriptions, with the first one priced at $6. 99. The other one, shows the monthly, 6-month, and yearly subscriptions, with the minor priced at $7. 99. It’s safe to say “the cheapest” offers of both paywalls are roughly priced in the same category, even though the billing periods are significantly different. For sure it’s a great place to experiment with on your paywall.   Anchoring annual subscription Pretty often developers tend to push the users of their apps to purchase the annual subscription (we’ll cover the reasons for it further), and in order to do so, they use anchoring – a dark pattern that shows the annual subscription as the most appealing option. In such a case, the other offer (or offers) on the paywall is either priced inadequately high, or simply doesn't seem that beneficial to the user. That’s how we can explain the rather small difference in price between the last three rows of the table for iOS, as well as why the 6-month subscription price for Android happens to be more expensive than the annual one. A clear example of pushing forward the annual subscription in Globe 3D – Planet Earth Guide Of course, the math takes its toll as well: with the variety of paywalls that feature different numbers of products (from 1 to 4, at least), the calculation becomes uneven, which is another case of why the overall average prices turned out pretty similar for several periods. Another obvious takeaway is that developers tend to price Android subscriptions lower than the ones on iOS. It’s not that obvious when talking about weekly and monthly subscriptions, but for the rest of the offers it’s worth taking into account. Regional in-app subscription pricing Apart from the average prices, we can also highlight a few insights concerning regions. For example, the UK has the most expensive iOS subscriptions on the market, when “the cheapest” subscriptions are found in Turkey. Average iOS subscription prices in the UK and Turkey The biggest price difference among regions is in yearly subscriptions. Other shorter subscriptions are priced almost the same, but yearly subscriptions clearly represent country economics, so it’s a good idea to move from that when pricing your subscriptions. Region1-year subscription price on iOSUSA$26,1Mexico$21,7Brazil$18,0United Kingdom$40,0Turkey$18,0Russia$26,4Indonesia$14,8China$32,1Korea$34,1Australia$30,8European Union$31,0Canada$26,9Average 1-year subscription price on iOS for different... --- Learn about specifics of running paywall A/B tests on Android. Paywall is the main source of profit for any mobile app. That’s why you must be sure to use the best design elements and put the most profitable prices for your target audience. But there’s no way of knowing what should work best for you until you start experimenting with A/B tests. So today, we’ll have a look at the mobile paywall A/B testing with regard to the Android platform specifically. Very often the term “mobile app” is used to denote iOS and Android apps as one entity, and many articles and tutorials are written with that in mind. But in reality, in many cases, there may be certain differences and nuances between the platforms you’d better be aware of. Let’s have a look at what mobile A/B testing for paywalls looks like and what specifics we can single out for the Android apps. What is paywall A/B testing for Android apps? If you want to grow your Android app’s revenue, there’s no better way to do this than by running paywall A/B tests. The paywall of your app is the place where the user decides whether to purchase your subscription or not, so it’s important to make the most of this page to ensure the user that your app is worth it. In this case, A/B testing helps you understand which elements, offers, and prices work best for your paywall. It works like any other A/B test: with the help of a special framework, you create two similar paywalls with one (usually) difference and split the user traffic into them (50/50 usually). Two weeks later (or more), you can check the results and see which one of the two showed better performance. Running such experiments step by step you will manage to significantly grow your revenue. A scheme of an A/B test with 2 different paywalls But before getting into experiments, you should understand what a proper paywall should look like, otherwise, you won’t get decent results if your paywall is flawed initially. We’d advise you to check what essential elements should be present on the paywall first. it should be useful if your current paywall was created just for the sake of box-checking. Generally, your app’s paywall should sell the value, show how your app can improve the user’s life and at the same time be beneficial to them (and you, of course). If you want to seek inspiration from other apps, check the top-10 popular paywall designs to find what fits you best. What to test on the paywall of your Android mobile app Prior to discussing the differences between iOS and Android experiments, let’s refresh on the general aspects of a decent paywall A/B test. There are multiple elements to test on a paywall, no matter what platform your app is on: Pricing and billing periods. These elements go hand in hand, as the price is usually tied to a specific billing period. Switch between monthly, 6-months, annual, and other options to find the golden mean of your user’s paying capabilities. Introductory offers. Experimenting with trials and discounts is the first thing that comes to mind when trying to grow one’s revenue. Number of products. The number of products plays a crucial role in your app’s conversion to purchases. So switching between 1-3 offers on your paywall may bring positively unexpected results. Elements of design. When you’re through with the “money” elements, it’s time to improve the visual impact. Use drawings, photos of real people, or even videos to illustrate the value of your app. Don’t forget about the button shapes, toggles, fonts, and overall color scheme. Text. Good copy with a catchy title may easily bring you new subscribers, so don’t think too little of this element. Play around with CTAs and ways to describe the values of your app. This is a simple list of the elements that need to be tested in order to increase the valuable metrics and revenue of one’s app. If you want to go deeper into the details, check out our tutorial on general A/B testing. Paywall A/B testing: Android vs iOS comparison As we mentioned earlier, there are certain things that aren’t the same for Android and iOS apps when it comes to paywalls and subscriptions. Although these differences may be not that crucial, very often they get neglected in mobile app articles and tutorials. So let’s have a look at what aspects one should pay attention to when creating subscriptions and running paywall A/B tests on Android.   Intro offers Intro offers are a pretty important aspect of promoting your app and hooking the potential user. An introductory offer is basically a subscription discount for a limited period of time. Apple presents intro offers as additions to main offers and distinguishes 3 separate variants: Free trial, Pay as you go, and Pay up front. Free trial allows you to use an app for free for a certain time period, usually up to 7 days. Pay up front provides the user with a one-time discounted price for a specific period (e. g. , $1. 99 for 2 months, and then $5 a month). Pay as you go has a similar but different approach, as it offers a discounted price for several billing periods (e. g. , $1. 99 per month for 3 months, and then $5 a month). These 3 intro offers are presented as separate values added to the offer in the app. Google has a little bit of a different approach, distinguishing only between Free trial and Introductory pricing in general. The free trial works in the same vein as the one on iOS, providing the user with a specific number of days, weeks, or even months at no charge. While introductory pricing is split into two possible variants: single payment and multiple payments. But at a closer inspection, it becomes clear that the single payment is the analog of Pay up front, and the multiple payments variant follows the logic of Pay as you go.... --- The 7th issue of the paywall newsletter featuring psychological paywall in four screens, AI girlfriend, and an inadequately big discount. The 7th issue of the paywall newsletter featuring: Psychological paywall in four screens AI girlfriend How to spook your clients with an inadequately big discount. Paywalls of the issue are commented by... Nikita Maidanov, a mobile subscriptions expert, ex-CPO at Adapty. io. Grew several apps to $2M+ ARR. Yet another trial reminder, but this time with a date This is a classic example of Blinkist-like paywall with a trial reminder. Usually this type of paywall has only one “Start trial” CTA button. In this case, developers offer a weekly subscription and a lifetime purchase option. It’s not clear if the trial works for the lifetime option (if made with the Apple’s tools, it should not, as there are no trials for one-time purchases). I really like the indication of the exact subscription start date on Day 3, usually developers just explain how it works without specific dates. I think it improves the feeling of safety and control, which is the goal for this type of paywall. To sum it up, What I like: Indication of the exact date the trial ends; Clean and simple design, visible prices, and close button. What I dislike Not clear if the lifetime option also has the trial. CleanUp Multiple screen paywall with personalization The app offers a psychology-based approach to weight loss.   This paywall is shown after a very long quiz about body parameters, habits, experience with diets, thoughts on weight loss, etc.  The paywall is personalized and based on the answers given previously. Here are four screens because the paywall is four-screen long. An interesting multi-screen paywall, like in Duolingo. It’s a nice way to incorporate in your paywall all the proven techniques: social proof, personalization, timers, etc. It’s a classic example of the paywall personalization after a long onboarding with quiz-like questions. In my experience, in that case the onboarding is even more important for the conversion rate than the paywall itself. The timer also triggers a FOMO, which is surely a fake. What I like: Personalization and social proof (the “featured in” logos). What I dislike: Too much text, no images/video at all; Confusing: timers, graph, $0 price, terms (why? ); A cheap fake FOMO timer. Noom Beautiful design and a nice video I love it when developers sell the value, not features! “Be the one to stand out” sounds like an amazing copy for a product like this. The video is nice too, demonstrating the effects that you can use in the paid subscription. A very bright CTA button with animation, but I’m not so sure about the “Continue” text. I think they’re lucky to have passed the Apple review with this text. They also could’ve added the price per month ($29. 99 divided by 12). What I like: Awesome copy and video; Clean and bright design. What I dislike: The “Continue” text on the CTA button. Dizzi Where did they get $390 from? The crossed-out price of $390/year is outrageous. I don’t think it’s a great idea to spook people with a price like this, even if it’s not a real price. Who knows, maybe this is the price for the second year? (thinking like the user here, I know that it’s not the case). And what am I paying for? What is Ultra Lang? Sorry, but it just looks like a lazy paywall for me. What I like: Well, it's clean What I dislike: Spooky price; No features, social proof or anything that could sell this subscription to me. Lang How to sell an AI girlfriend The user customizes their virtual girlfriend during the onboarding, and she appears on the paywall later. Oh my, AI is really on the rise, now you can even subscribe to an AI girlfriend ? Well, speaking about the paywall, it’s not bad. I don’t get the “Best offer” text as I don’t see any other offers. The “Continue” button appears again. But the features are listed, and they are not overly explained to leave a necessary curiosity gap. What I like: Clean design with a person (avatar? ), which is usually good for the conversion rate; The feature list that makes the user wonder. What I dislike: The “Best offer” for the only offer; The “Continue” button; The idea of the product (but I guess there’s demand for this kind of supply). AI Girlfriend Every plan is special No onboarding, just this paywall right after the user launches the app for the first time. I like the design and that the phone number is incorporated in the paywall. Too much bubbles with the “Most X” and “Best X” to my taste. It’s a bit confusing for users. Choose the best one, make it a default option, don’t make it hard for the user! What I like: Beautiful design; It’s a paywall with a phone number, not a generic one. What I dislike 3 products are fighting for my attention I don’t get the “credits” and which one is best for me. It should’ve been explained during the onboarding. Second Phone --- What’s the difference between iAd and AdServices? Here’s a primer on how Apple’s now deprecated attribution model iAd differs from AdServices. iAd and AdServices are Apple's attribution frameworks that help track downloads resulting from Apple Search Ads clicks. Using these attribution frameworks, you can learn what campaigns, keywords, and ads drive your app downloads. In other words: They help you calculate your Apple Search Ads channel’s ROI.   It's important to understand how iAd and AdServices work in order to truly understand their differences. So before we get to the iAd vs. AdServices part, let’s take a detailed look at each. We’ll also see what Apple’s attribution frameworks lack when it comes to reporting and why you need a solution like Adapty to analyze how your Apple Search Ads channel is doing and how you can maximize your ROI from it. Even Apple suggests using one! Here goes. What is Apple's iAd? iAd is Apple’s (now deprecated) ads attribution framework. Apple retired iAd in iOS14. 5. By design, iAd’s attribution record – i. e. , the data the iAd framework forwarded to the developer/developer’s partner solution(s) for a download event resulting from an Apple Search Ads ad – was very detailed. Here’s a sample attribution record of the iAd framework: { "Version3. 1": { "iad-attribution": true, "iad-org-name": "org name", "iad-org-id": "40669820", "iad-campaign-id": "542370539", "iad-campaign-name": "campaign name", "iad-purchase-date": "2020-08-04T17:18:07Z", "iad-conversion-date": "2020-08-04T17:18:07Z", "iad-conversion-type": "newdownload", "iad-click-date": "2020-08-04T17:17:00Z", "iad-adgroup-id": "542317095", "iad-adgroup-name": "adgroup name", "iad-country-or-region": "US", "iad-keyword": "keyword", "iad-keyword-id": "87675432", "iad-keyword-matchtype": "Broad", "iad-ad-id": "542317136" } } The iAd attribution framework was designed before privacy became a priority for users and businesses, so it wasn’t so privacy-focused by design. In fact, when you look at the iAd attribution framework from the privacy lens, three fundamental issues appear. Suggested read: Your complete guide to Apple Search Ads: Everything you need to know Three fundamental issues with the (now deprecated) iAd framework: 1. iAd collected a lot of data By default, Apple’s iAd attribution framework captured a lot of data on a download event. Just look at the above payload, and you'll see how the iAD attribution record directly passed on a download event's information like the keyword that triggered the ad, the name of the group the ad belonged to, the name of the campaign of which the ad group was a part of, and so on. It also recorded the dates when users clicked and converted. The iAd framework was in place before Apple introduced its AppTrackingTransparency (ATT) framework. And so users weren’t asked for explicit permission before apps started collecting (using and perhaps even sharing) data on them. Note: Apple did bring the ATT framework while the iAd framework was still in place, but that introduced yet another problem. (More on it below. )  2. iAd used a weak workflow (allowing all the attribution data to be stored locally) Another critical issue with the iAd framework was that when an app would request an attribution record, it returned the record to the app and allowed it to be stored locally. Now, as you can imagine, such data can be easily exposed to third-party SDKs and other apps residing on the user’s phone, posing severe privacy risks to them. Also, as you can see from the above attribution record, this framework passed on the values directly: Image source 3. iAd failed to track data when used with the Application Tracking Transparency (ATT) framework for users that opted out  When Apple introduced the ATT framework, the iAd attribution framework made tracking any data pretty much impossible for any users who didn’t opt in for ATT. To solve these issues, Apple introduced a newer attribution framework: the AdServices attribution framework. What is AdServices? AdServices is Apple’s current Apple Search Ads attribution framework that lets you track your Apple Search Ads campaigns’ performance. In addition to the App Store, AdServices works across Apple News and Stocks on iOS devices. While the AdServices framework offers less data than iAd, it resolves all the core issues with iAd. Here’s how. 1. AdServices collects lesser data by design The AdServices framework’s attribution record doesn’t directly pass values of the keyword, ad group, or campaign that result in a download. Instead, it works with identifiers. To unlock the actual data from an AdServices attribution token, you need to map its identifiers to the keywords, ad groups, and campaigns they represent. You can find this information in your Apple Search Ads account. 2. AdServices uses a safer dataflow  As noted above, unlike the iAd framework, the AdServices framework doesn’t send a detailed attribution record when you request attribute data. Instead, it sends a token. You need to use this attribution token – which comes with a 24-hour TTL – to make a POST API call to fetch your actual attribution data from the App Store. You can also forward this token to your MMP if you use one. Once you make the request (API call to uncover raw data), AdServices accesses the user’s privacy settings and returns with either a “standard response” attribution record or a “detailed response” attribution record. (More on these record types below. ) Here’s how the AdServices attribution framework works: When you or your MMP makes an API call to retrieve the actual attribution data on a download, the AdServices framework checks the user’s device and app settings and permissions to decide what record to send in response.   First, AdServices checks the user’s Allow Apps to Request to Track (AAtRtT) device-level setting. There are two possible scenarios here: 1. When users have the AAtRtT device-level setting turned ON: When a user turns on the AAtRtT device-level setting, they allow apps to request their consent to access their app-related data for both attribution and tracking.   In this case, each time they download an app, they see the following prompt: So for each app, users can have a different tracking consent status depending on whether they allow or deny consent for this prompt. So this is their per-app tracking consent status. AdServices then checks the user’s per-app tracking consent status to decide which of the two attribution data payloads it can... --- The special issue of the paywall newsletter with Thomas Petit, in which we compare paywalls of top-grossing apps with their smaller competitors This is the special issue with Thomas Petit, in which we compare paywalls of top-grossing apps with their smaller competitors. Paywalls of this issue are commented by... Thomas Petit, Mobile Growth Consultant, aka @Thomasbcn Story making Lift, >$200k MRR I can see what the developer is aiming for, showcasing the depth of content the subscription provides, but I’m not that convinced. There's a couple of details I would question: low font contrast of the additional benefits, too much empty space, and quite curiously, a problematic typo in the text (“ctiteria”? ). I’ve seen that voluntary typos sometimes work in advertising, but having it on the paywall makes it quite unprofessional. But my biggest surprise here is that we are in a vertical that is all about visual effects and imagery (story making), and this paywall is text only? ! I’m sure there are ways to showcase examples of templates with beautiful results to give a sense of how good the app is. It's even more obvious when a half of the screen was left empty of any elements. Templify, >$5k MRR Templify might not be generating as much revenue as Lift, but I found this paywall more attractive, with background imagery, contrast logo, and, overall, a very simple layout that drives towards pushing that “Continue” button. The overall sensation was good, but some aspects might be improved: I’m not sure the imagery is the most representative of what a story can be. It might work for the target audience, but I’d try to test it against pictures that are more common in stories, I’m sure the developer has a ton of data and examples to pick from. I wouldn't have placed the "Restore purchases" option so high up. The description of the benefit is redundant and not very clear: what are those features exactly?  Too often, developers prioritize features over benefits in their communication (I often use this explanation when giving this recommendation), and I would have loved to see what the app can do for me with a subscription. Meditation Headspace, >$2M MRR A classic strong paywall layout for Headspace, with many proven elements, such as a strong contrast, pre-selection of the yearly plan, and a lot of emphasis on the free trial (title, description, call to action). What I find really worth highlighting here is that we see 2 themes with day & night: assuming the app adapts to when the users are activating the paywall, this is a brilliant example of personalization that too few apps are using. The takeaway here: you don’t have to show the same paywall all the time to everyone. The skip button is very visible, which might affect instant conversions a bit, but offers a way to retain the users who aren't ready to immediately enroll in the subscriptions and convince them later. If Headspace not only adapts the paywall based on time of day but also past behavior, this opens up the opportunity to present a different paywall to the users who have skipped this one, something I also see too few apps experiment with. Present, $500k MRR A good first feeling from this paywall, very possibly due to the use of a human photo making the social proof more relatable. This tactic of using real people has worked great for me in other contexts. The way the plans are highlighted (most popular) with favoring the yearly option (save 60/45%) is probably effective. But with such a strong pre-selection, I wouldn’t have used the title that implies the user should check alternatives. There is potential to replace the biggest text on the screen by a more convincing copy, or at least one that directs towards getting started rather than thinking about it twice. I’m not really sure the text just above the CTA is necessary, if not removed, I would consider replacing it. The price points are very discreet with grey small text, but that’s likely OK with the pre-selection well done. I’m curious about the drop-off rate on the screen due to the fairly discreet skip button, which took me a little while to see. Window, >$20k MRR I really like the upper part of this paywall: simple and effective. When talking about “Present” above, I mentioned I was missing some convincing benefits, but we have a very good example here: a graph showing progress towards the goal, accompanied by a high contrast emoji, and a big strong text that I found very compelling, given the nature of the app. The bottom part was slightly more confusing to me, but still pretty good. I’ve never tried the “enable free trial” myself, but that could work well in this particular case. Again the legalese could be removed or at least shortened, so that you don't have to scroll below to see what's hidden there. I’m going to guess the “restore purchase” and terms are below the fold, which is fine. Maybe the one thing I didn’t like was the complexity added by having the monthly alternative. Right when I was quite convinced, I’m given something to think twice about, and make me calculate the benefits of the yearly plan (which is still very beneficial at 66% discount, which isn’t written! ). The price is a bit curious (10. 99) but I would consider removing this entirely, or at least pushing back in another subpage. Period tracker Flo, >$5M MRR The Flo growth team is well known to be strong at experimenting, so this screen had many iterations. The result looks very strong to me, one I wouldn’t hesitate to copy in testing. It’s got a number of solid elements mentioned previously, like social proof through review, optional free trial toggle, clearly selected plan with 58% discount, "Continue" button... On the aforementioned “Window” paywall, I found the alternative plan an issue, this looks fairly similar, but somehow I find it clearer here with very limited text. The position & font size of the monthly equivalent of the yearly price are put quite cleverly to both... --- シリーズの5番目のチュートリアルでは、Androidアプリでのアプリ内購入の実装に焦点を合わせます。 サーバーサイド (server-side) の検証は、購入の信頼性を検証するのに役立ちます。デバイスはGoogleサーバーにリクエストを送信し、購入が実際に行われたかどうか、および購入が有効かどうかを確認します。 このガイドでは、Androidアプリのサーバーサイド検証を構成する方法について説明します。 購入を検証する理由 サーバーサイドの検証は必須ではないため、ご注意ください。検証しなくてもアプリ内購入を完了できますが、いくつかの重要なメリットがあります。 1. 高度な支払い分析:有効化後に発生するすべてのことは、デバイスによって処理されないため、定期購入 (subscription) において特に重要です。サーバーサイドの購入処理がないため、現在の定期購入ステータスを取得したり、ユーザーが定期購入を更新したりキャンセルしたりしたかどうか、支払いの問題があるかどうかなどを把握できません。 2. 購入の信頼性を確認できる:トランザクションが不正ではなく、ユーザーが実際にアイテムの代金を支払ったことを確認できます. 3. クロスプラットフォームの定期購入:ユーザーの定期購入ステータスをリアルタイムで確認できれば、他のプラットフォームと同期できます。たとえば、iOSデバイスから定期購入を購入したユーザーは、Android、ウェブサイト、およびその他のプラットフォームで使用できます。 4. サーバーサイドからコンテンツへのアクセスを制御できるため、サーバーへのリクエストを実行するだけで、定期購入せずにデータにアクセスしようとするユーザーから保護されます。 経験上、サーバーサイドの購入処理を設定するには、最初のメリットだけで十分です。 支払いの検証 この方法を通して、Androidの支払いの検証についての要約を説明します。 Google Play Developer APIリクエストの認証 Google Play Developer APIを使用するには、まずリクエストに署名するためのキーを生成する必要があります。まず、Google Play Consoleアカウント (アプリを管理する場所) を Google Cloud アカウント (リクエスト署名用のキーを生成する場所) にリンクする必要があります。すべての設定が完了したら、ユーザーに購入管理権限を付与する必要があります。このプロセスについては、専用の記事で説明する必要があります。幸いにも、Adaptyのドキュメントにある手順ごとのガイドで既に説明されています。 通常、キーを生成してから機能を利用開始できるようになるまで、24時間以上かかります。これを回避するには、アプリ内アイテムまたは定期購入の説明を更新するだけで、すぐにキーが有効になります。 公式のgoogle-api-python-clientライブラリを使用して、Google Play Developer APIを操作します。このライブラリは、一般的な言語の大部分で利用できます。必要なすべてのメソッドをサポートしているため、使用することをお勧めします。 定期購入のトランザクションの検証 iOSのサーバーサイドの検証とは異なり、Androidでは、定期購入とその他のアイテムの検証の両方がさまざまな方法で実装されます。そのため、トランザクションを検証するときは、アイテムまたは定期購入のいずれかを販売しているかを把握する必要があります。実際には、モバイルアプリからこのデータを転送して、トークンの再検証が必要な場合に備えてデータベースにフラグを保持しなければなりません。 2つ目の重要な違いは、Androidでは各トランザクションが独自のトークンを持っているのに対し、すべてのiOSトランザクションはアプリ固有の共有シークレットを使用して、トランザクション履歴全体を保存することです。そのため、ユーザーの購入をいつでも復元できるようにする場合は、任意の1つのトークンを選択するのではなく、すべての購入トークンを保存する必要があることを意味します。 定期購入を検証するには、purchases. subscriptions. getメソッドを呼び出す必要があります。基本的に、以下のGETリクエスト呼び出しとなります。 https://androidpublisher. googleapis. com/androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token} 次のすべてのパラメータが必要です。 ● packageName:アプリの識別子 (com. adapty. sample_app など)。 ●subscriptionId:検証される定期購入の定期購入識別子 (com. adapty. sample_app. weekly_sub など)。 ● token:一意のトランザクショントークン。モバイルアプリ側で購入が処理されると表示されます。 まず、すべてが意図したとおりに機能することを確認するため、対処する必要があるエラーメッセージを見てみましょう。 ● 400, Invalid grant: account not found:このエラーメッセージは、リクエスト認証キーが正しく生成されなかったことを意味します。アカウントがリンクされていること、十分な権限を持つ適切なアカウントを使用していること、必要なすべての API が有効になっていることを確認してください。すべてを設定する方法については、以下のセクションを参照してください。自動的に返金されるアイテム説明の更新に関するヒントを確認しましょう。 ● 400, The purchase token does not match the package name:このエラーメッセージは通常、不正なトランザクションで発生します。テスト中に表示された場合は、別のアプリに属する アプリ購入トークンを使用していないことを確認してください。 ● 403, Quota exceeded for quota metric 'Queries' and limit 'Queries per day' of service 'androidpublisher. googleapis. com':これは、Google APIリクエストの1日あたりの上限を超えたことを意味します。デフォルトでは、1日あたり最大200,000件のリクエストを実行できます。この上限を引き上げることはできますが、ほとんどのアプリでは十分な回数です。この制限に達した場合は、アプリのロジックを再確認して、すべてが正しいことを確認する必要があります。 ● 410, The subscription purchase is no longer available for query because it has been expired for too long:このエラーメッセージは、定期購入が60日以上前に期限切れになったトランザクションで表示されます。実際のエラーメッセージではないため、そのように処理するべきではありません。 定期購入のトランザクション 検証が完了した場合は、応答としてトランザクションデータを受け取ります。 トランザクションデータ (定期購入の場合): { "expiryTimeMillis": "1631116261362", "paymentState": 1, "acknowledgementState": 1, "kind": "androidpublisher#subscriptionPurchase", "orderId": "GPA. 3382-9215-9042-70164", "startTimeMillis": "1630504367892", "autoRenewing": true, "priceCurrencyCode": "USD", "priceAmountMicros": "1990000", "countryCode": "US", "developerPayload": "" } ユーザーがアプリにより提供される有料オプションにアクセスできるかどうか (有効な定期購入があるかどうか) を把握するには、次のことを行う必要があります。 1. startTimeMillisおよびexpiryTimeMillisパラメーターを確認します。現在の時刻は、開始時間と終了時間の範囲内となります。 2. さらに、paymentStateパラメーターの値が「0」でないことを確認する必要があります。定期購入の購入がまだ保留中であるため、ユーザーに有料機能へのアクセスをまだ許可する必要はありません。 3. トランザクションにautoResumeTimeMillisプロパティがある場合、定期購入は一時停止されます。これは、指定された日付より前に有料機能へのアクセス権をユーザーに付与してはならないことを意味します。 定期購入のトランザクションの主要なプロパティを見てみましょう。 ● kind:トランザクションのタイプ。定期購入の場合、常にandroidpublisher#subscriptionPurchase値があります。このパラメーターを使用すると、定期購入とアイテムのいずれかを販売しているかを把握して、処理ロジックを適宜選択できます。 ● paymentState:支払いステータス。このプロパティは、期限切れのトランザクションには存在しません。想定される値は次のとおりです。 0:この購入はまだ処理されていません。一部の国では、ユーザーはオンサイトで定期購入の料金を支払うことができます。つまり、ユーザーは自分のデバイスから定期購入の購入を開始して、最寄りの端末で支払います。全体として非常にまれなケースですが、留意しておく必要があります。 1:定期購入が購入されました。 2:定期購入は試用期間中です。 3:定期購入は次の期間にアップグレードまたはダウングレードされます。これは、定期購入プランが変更されることを意味します。 ●acknowledgementState:購入承認ステータス。これは、ユーザーが料金を支払ったアイテムにアクセスできるようになったかどうかを確認する重要なパラメーターです。「0」の値は、アクセス権を付与されていないことを意味し、「1」は付与されたことを意味します。開発者はこのステータスを定義する責任があり、モバイルアプリとサーバーサイドの両方で行うことができます。購入後3日以内に承認しなかった場合は、自動的に返金されます。次のロジックを実装することをお勧めします。acknowledgementState=0を含むトランザクションを受信すると、パラメーターはサーバーによって変更されます。以下でその方法を説明します。 ● orderId:一意のトランザクション識別子。各定期購入の購入または更新には独自の識別子があり、トランザクションが以前に処理されたかどうかを確認するのに使用できます。各更新IDの前半は一定で、そこに2個のドットと定期購入の更新回数 (0から始まる) が追加されます。定期購入が有効化されたときにGPA. 3382-9215-9042-70164識別子が指定されている場合、最初の更新はGPA. 3382-9215-9042-70164. . 0で識別され、2回目の更新はGPA. 3382-9215-9042-70164. . 1などで識別されます。このようにして、トランザクションチェーンを構築して、更新回数を追跡できます。 ● startTimeMillis:定期購入の開始日。 ● expiryTimeMillis:定期購入の有効期限。 ● autoRenewing:定期購入が次の期間に更新されるかどうかを示すフラグ。 ● priceCurrencyCode:USDなどの3文字形式の購入通貨。 ● priceAmountMicros:購入価格。通常の価格値を取得するには、この値を1000000で割ります。つまり、1990000は実際には1. 99を意味します。 ● countryCode:購入国を2文字形式で表します (USなど)。 ● purchaseType:購入タイプ。ほとんどの場合、このキーは存在しません。購入がサンドボックス環境で行われたかどうかを理解するのに役立つため、依然として考慮することは重要です。想定される値は次のとおりです。 0:購入はサンドボックス環境で行われたため、分析データに含めるべきではありません。 1:購入はプロモーションコードを使用して行われました。 ● autoResumeTimeMillis:定期購入の更新日。以前に一時停止された定期購入にのみ存在します。このパラメーターが存在する場合、指定された日付までユーザーに有料機能へのアクセス権を許可する必要はありません。 ● cancelReason:定期購入が更新されない理由。想定される値は次のとおりです。 0:ユーザーが定期購入の自動更新をキャンセルしました。 1:定期購入はシステムによってキャンセルされました。ほとんどの場合、課金に関する問題 (billing issue) が原因です。 2:ユーザーが別の定期購入プランに切り替えました。 3:開発者が定期購入をキャンセルしました。 ● userCancellationTimeMillis:定期購入の更新キャンセルに関するデータ。 cancelReasonが0の場合にのみ存在します。定期購入は引き続き有効である可能性があります。確認するには、expiryTimeMillisパラメーターの値を参照してください。 ● cancelSurveyResult:定期購入のキャンセルの理由を格納するオブジェクト。ユーザーがこの問題についてフィードバックを投稿した場合に表示されます。 ● introductoryPriceInfo:紹介価格データを格納するオブジェクト。たとえば、1か月間の50%オフの特別オファーなどです。 ● promotionType:定期購入の有効化に使用されたプロモーションコードタイプ。想定される値は次のとおりです。 0:1回限りのプロモーションコード。 1:複数のお客様が適用できるカスタムプロモーションコード。このようなコードは通常、ブロガーのパートナーシップで使用されます。 ● promotionCode:定期購入の有効化に使用されたカスタムプロモーションコード。このパラメーターは、1回限りのプロモーションコードには存在しません。 ● priceChange:今後の価格変更データと、ユーザーがそれに同意したかどうかを格納するオブジェクト。 定期購入の承認 前述のとおり、購入後3日以内に定期購入が承認されなかった場合、定期購入はキャンセルされ、自動的に返金されます。正直なところ、その背後にあるロジックは不明です。また、iOSを含め、他の支払い処理システムで発生したことはありません。それでも、acknowledgementState=0を含むトランザクションを受信した場合は、定期購入を承認する必要があります。 これを行うには、purchases. subscriptions. acknowledgeメソッドを呼び出す必要があります。このメソッドにより、POSTリクエストを実行します https://androidpublisher. googleapis. com/androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:acknowledge パラメーターは、リクエストの検証と同じです。リクエストが正常に実行されると、定期購入が承認されます。つまり、売上を喪失することはありません。 定期購入がまだ完全に購入されていない場合は、承認する必要はありません。 定期購入の更新のキャンセル、取り消し、返金、延長 定期購入の検証と承認とは別に、Google Play Developer APIは他の定期購入の操作にも使用できます。非常にまれですが、更新を除いて、Google Play Consoleで操作可能です。さまざまな API ソリューションを全般的に理解できるように、一覧にまとめました。これらのすべてのリクエストには、前述のメソッドと同じパラメーター (packageName、subscriptionId、token) が必要です。 ● 更新のキャンセル (purchases. subscriptions. cancelメソッド):選択した定期購入の自動更新をキャンセルします。ただし、定期購入は、現在の請求期間中は引き続き有効となります。 ● 定期購入の返金 (purchases. subscriptions. refundメソッド):定期購入を返金します。ただし、ユーザーは引き続き定期購入を利用でき、次の期間に自動的に更新されます。ほとんどの場合、返金を行う際に定期購入も取り消す必要があります。 ● 定期購入の取り消し (purchases. subscriptions. revokeメソッド):ただちに定期購入が取り消され、ユーザーは有料機能を利用できなくなります。定期購入は更新されません。このメソッドは通常、返金の実行と一緒に呼び出されます。 ● 定期購入の延長 (purchases. subscriptions. deferメソッド):指定された日付まで、定期購入の期間を延長します。リクエストでは、定期購入の有効期限と、それを置き換える日付を指定します。後者は、前者よりも定期購入の期間が長くなる必要があります。 アイテム (定期購入以外) の検証 アイテムの検証は、定期購入の検証に似ています。 GETリクエストを実行するには、 purchases. products. getメソッドを呼び出す必要があります。 https://androidpublisher. googleapis. com/androidpublisher/v3/applications/{packageName}/purchases/products/{productId}/tokens/{token} 上記の例では、これらすべてのパラメーターについて詳しく学びました。 トランザクションデータ (アイテムの場合): { "purchaseTimeMillis": "1630529397125", "purchaseState": 0, "consumptionState": 0, "developerPayload": "", "orderId": "GPA. 3374-2691-3583-90384", "acknowledgementState": 1, "kind": "androidpublisher#productPurchase", "regionCode": "RU" } アイテムのトランザクションに含まれるプロパティは、定期購入のトランザクションよりもはるかに少ないです。重要なプロパティをいくつか見てみましょう。 ● kind:トランザクションのタイプ。アイテムの場合、常にandroidpublisher#productPurchase 値があります。このパラメーターを使用すると、定期購入とアイテムのいずれかを販売しているかを把握して、処理ロジックを適宜選択できます。 ● purchaseState:支払いステータス。ここでのキー値は、定期購入のpaymentStateパラメーターとは異なるため、ご注意ください。想定される値は次のとおりです。 0:購入が完了しました。 1:購入がキャンセルされました。これは、購入が保留されていたものの、ユーザーが支払いをしなかったことを意味します。 2:購入は保留中です。一部の国では、ユーザーはオンサイトで定期購入の料金を支払うことができます。つまり、ユーザーは自分のデバイスから定期購入の購入を開始して、最寄りの端末で支払います。全体として非常にまれなケースですが、留意しておく必要があります。 ●acknowledgementState:購入承認ステータス。これは、ユーザーが料金を支払ったアイテムにアクセスできるようになったかどうかを確認する重要なパラメーターです。「0」の値は、アクセス権を付与されていないことを意味し、「1」は付与されたことを意味します。開発者はこのステータスを定義する責任があり、モバイルアプリとサーバーサイドの両方で行うことができます。購入後3日以内に承認しなかった場合は、自動的に返金されます。次のロジックを実装することをお勧めします。acknowledgementState=0を含むトランザクションを受信すると、パラメーターはサーバーによって変更されます。以下でその方法を説明します。 ● consumptionState:アイテムの消費ステータス。iOSでは「消費可能アイテム」と呼ばれます。モバイルアプリ側で定義されます。値が「0」の場合、アイテムが消費されなかったことを意味します。「1」なら、消費されたということです。アプリまたは特定の有料機能への無期限アクセスを販売している場合、そのようなアイテムは消費されないものとします。つまり、ステータスは「0」でなければなりません。ユーザーが何度でも購入できるコインを販売している場合、そのようなアイテムは消費されるものとします。つまり、ステータスは「1」でなければなりません。consumptionState=0はアイテムを1回しか購入できないのに対して、consumptionState=1は何度も購入できることを意味します。 ● orderId:一意のトランザクション識別子。各定期購入の購入または更新には独自の識別子があり、トランザクションが以前に処理されたかどうかを確認するのに使用できます。 ● purchaseTimeMillis:購入日。 ● regionCode:購入国を2文字形式で表します (USなど)。countryCodeという定期購入のパラメーターとは異なるため、ご注意ください。 ● purchaseType:購入タイプ。ほとんどの場合、このキーは存在しません。購入がサンドボックス環境で行われたかどうかを理解するのに役立つため、依然として考慮することは重要です。想定される値は次のとおりです。 0:購入はサンドボックス環境で行われたため、分析データに含めるべきではありません。 1:購入はプロモーションコードを使用して行われました。 2:支払いの代わりにアプリ内広告を視聴するなど、目的のアクションに対して購入が許可されました。 ご覧のとおり、アイテムの検証は定期購入の検証と非常によく似ています。ただし、注意すべき点がいくつかあります。 ● 価格は返されませんが、分析には非常に便利です。 ● purchaseStateパラメーターの値は、定期購入のpaymentStateパラメーターの値とは大きく異なります。違いを考慮しなかった場合はバグにつながります。 ● 定期購入ではcountryCodeですが、regionCodeが返されます。 定期購入の購入と同様に、アイテムの購入も確認する必要があります。これを行うには、POSTリクエストを実行するpurchases. products. acknowledgeメソッドを呼び出します。 https://androidpublisher. googleapis. com/androidpublisher/v3/applications/{packageName}/purchases/products/{productId}/tokens/{token}:acknowledge 購入がまだ完了していない場合は、承認する必要はありません。 定期購入とアイテムの返金追跡 高精度の分析には、返金を考慮することが不可欠です。残念ながら、返金データはトランザクションに存在せず、iOSで機能するため、別のイベントとしてプロンプトも表示されません。返金されたトランザクションのリストを受け取るには、たとえば1日1回など、定期的にpurchases. voidedpurchases. listを呼び出す必要があります。このメソッドにより、以下のGETリクエストを実行します。 https://androidpublisher. googleapis. com/androidpublisher/v3/applications/{packageName}/purchases/voidedpurchases リクエストに応じて、返金されたすべてのトランザクションのリストを受け取ります。 purchaseTokenパラメーターではなく、orderIdパラメーターでデータベース内のトランザクションを検索することをお勧めします。時間の短縮になるだけでなく、すべての定期購入の更新で同じトークンが共有されるため、最新のトークンを取得するだけで済みます。 トランザクションのサーバー通知 (server notifications) サーバー通知 (リアルタイムデベロッパー通知) は、Google 側、サーバー上、およびほぼリアルタイムで発生したイベントについて把握するのに役立ちます。これらが設定されると、新しい購入、更新、支払いの問題などについて通知されます。これにより、効果的に分析を収集できるだけでなく、定期購入ユーザーのステータス管理がはるかに簡単になります。 サーバー通知の受信を開始するには、目的のアドレスに通知を送信するGoogle Cloud Pub/Subトピックを作成する必要があります。このトピックは、Google Play Consoleの「収益化のセットアップ」セクションに表示されます。スクリーンショットを含む詳細なガイドについては、Adaptyドキュメントを参照してください。 サーバー通知: { "message": { "data": "eyJ2ZXJzaW9uIjoiMS4wIiwicGFja2FnZU5hbWUiOiJjb20uYWRhcHR5LnNhbXBsZV9hcHAiLCJldmVudFRpbWVNaWxsaXMiOiIxNjMwNTI5Mzk3MTI1Iiwic3Vic2NyaXB0aW9uTm90aWZpY2F0aW9uIjp7InZlcnNpb24iOiIxLjAiLCJub3RpZmljYXRpb25UeXBlIjo2LCJwdXJjaGFzZVRva2VuIjoiY2o3anAuQU8tSjFPelIxMjMiLCJzdWJzY3JpcHRpb25JZCI6ImNvbS5hZGFwdHkuc2FtcGxlX2FwcC53ZWVrbHlfc3ViIn19", "messageId": "2829603729517390", "message_id": "2829603729517390", "publishTime": "2021-09-01T20:49:59. 124Z", "publish_time": "2021-08-04T20:49:59. 124Z" }, "subscription": "projects/935083/subscriptions/adapty-rtdn" } 主に関心があるのは、base64でエンコードされたトランザクションデータを含むデータキーに関心があります。messageIdキーはメッセージの重複排除に使用できるため、重複したメッセージを処理する必要はありません。 サーバー通知のトランザクションは次のとおりです。 { "version": "1. 0", "packageName": "com. adapty. sample_app", "eventTimeMillis": "1630529397125", "subscriptionNotification": { "version": "1. 0", "notificationType": 6, "purchaseToken": "cj7jp. AO-J1OzR123", "subscriptionId": "com. adapty. sample_app. weekly_sub" } } packageNameキーは、このイベントがどのアプリに属しているかを理解するのに役立ちます。subscriptionIdキーはどの定期購入が関連しているかを示し、 purchaseTokenは特定のトランザクションを見つけるのに役立ちます。定期購入では、このイベントが属する更新チェーンで最新のトランザクションを常に探します。notificationTypeキーには、イベント タイプが含まれます。これらは定期購入で最も便利なキーと言えます。 ● (2) SUBSCRIPTION_RENEWED:定期購入は正常に更新されました。 ● (3) SUBSCRIPTION_CANCELED:ユーザーが定期購入の自動更新を無効にしました。自動更新が無効になっている場合は、有効な定期購入ユーザーに戻す必要があります。 ● (5) SUBSCRIPTION_ON_HOLD, (6) SUBSCRIPTION_IN_GRACE_PERIOD:支払いの問題により定期購入を更新できませんでした。定期購入が自動的にキャンセルされないように、ユーザーに通知する必要があります。 ● (12) SUBSCRIPTION_REVOKED:定期購入は取り消されました。これは、ユーザーが以前に定期購入によって付与された有料機能を利用できなくなることを意味します。 アイテム (定期購入以外) では、subscriptionNotificationキーの代わりにoneTimeProductNotificationを受け取ります。また、subscriptionIdキーの代わりにskuキーも含まれます。さらに、アイテムの2種類のイベントのみを受け取ります。 ● (1) ONE_TIME_PRODUCT_PURCHASED:アイテムの購入が正常に完了しました。 ● (2) ONE_TIME_PRODUCT_CANCELED:ユーザーが代金を支払っていないため、アイテムの購入がキャンセルされました。 まとめ サーバーサイドの検証により、アプリについて収集できる分析が強化されます。これにより、不正ユーザーが有料コンテンツにアクセスすることが難しくなり、クロスプラットフォームの定期購入の実装に使用できます。ただし、特に高精度のデータが必要な場合は、サーバーサイドの検証の実装にかなりの時間がかかることがあります。高品質のデータを提供するには、定期購入のアップグレード、定期購入のクロスグレード、試用期間、プロモーションオファー (promo offer)、紹介オファー (intro offer)、猶予期間 (grace period)、返金など、多数のサイドケースを考慮する必要があります。また、Googleでは一年以上更新された定期購入に対して (30%ではなく) 15%の手数料しか請求しないなど、すべてのポリシーの詳細を把握して、考慮する必要があります。 --- 시리즈의 5번째 사용 지침서는 Android 앱에서의 인앱 구매 구현을 다룹니다. Adapty의 튜토리얼 서버측 (server-side)검증은구매 진위를 확인에 도움이 될 수 있습니다. 기기는Google서버에요청하여 실제로 구매가 이루어졌는지와 구매가유효한지를 확인합니다. 이가이드에서는 Android앱에대한 서버 측 검증을 구성하는 방법에 대해 설명합니다. 구매를검증하는 이유 서버측 검증은 필수가 아니라는 점에 유의해야 합니다. 인앱구매는 검증 없이도 이루어집니다. 하지만다음과 같은 몇 가지 중요한 이점이 있습니다. 고급 결제 분석은 구독에 특히 중요한데, 활성화 후에 발생하는 모든 일을 장치에서 처리하지는 않기 때문입니다. 서버 측 구매 처리가 없으면, 현재 구독 상태를 검색할 수 없고, 사용자가 구독을 갱신 또는 취소했는지, 지불 문제가 있는지 등의 여부를 알 수 없습니다. 구매의 진위 여부를 확인할 수 있음. 거래가 사기가 아니고 사용자가 실제로 제품에 대한 비용을 지불했음을 확인할 수 있습니다. 플랫폼 간 구독. 사용자의 구독 상태를 실시간으로 확인할 수 있는 경우, 다른 플랫폼과 동기화할 수 있습니다. 예를 들어 iOS 기기에서 구독을 구매한 사용자는 Android, 웹 및 기타 플랫폼에서 구독을 사용할 수 있습니다. 서버 측에서 콘텐츠 접근을 제어할 수 있게 되어, 단순히 서버에 대한 요청을 실행하는 것만으로 구독 없이 데이터에 접근하려는 사용자로부터 보호합니다. 경험에따르면,첫번째 이점만으로도 서버 측 구매 처리를 설정하기에충분합니다. 결제검증 다음체계를 사용하여 Android결제검증을 요약할 수 있습니다. GooglePlay 개발자API(API) 요청에대한 인증 GooglePlay 개발자API로작업하려면 먼저 요청에 서명할 키를 생성해야 합니다. 먼저GooglePlay Console 계정(앱을관리하는 곳)을GoogleCloud 계정(요청서명을 위한 키를 생성할 곳)에연결해야 합니다. 구성이완료되면,사용자에게구매 관리 권한을 부여해야 합니다. 이프로세스를 설명하려면 기사 하나를 할애해야 합니다. 다행히우리는 이미 Adapty문서의단계별 가이드에서 본 내용을 다뤘습니다. 일반적으로키를 생성한 후 작동을 시작하려면 24시간이상을 기다려야 합니다. 기다리지않으려면,인앱상품 또는 구독에 대한 설명을 업데이트하기만 하면즉시 키가 활성화됩니다. 우리는GooglePlay 개발자API로작업하기 위해 공식 google-api-python-client라이브러리를사용할 것입니다. 이라이브러리는 대부분의 인기 있는 언어에서 사용할수 있고 필요한 모든 메소드를 지원하기 때문에,사용을권장합니다. 구독거래에 대한 검증 Android에서는iOS서버측 검증과달리,구독및 기타 제품 검증 두 경우 모두 다양한 메소드를사용하여 구현됩니다. 따라서거래를 검증할 때 제품을 처리하는 것인지 아니면구독을 처리하는 것인지 알아야 합니다. 실제로이것은 모바일 앱에서 이 데이터를 전송해야 하고,토큰재검증이 필요한 경우를 대비하여 데이터베이스에플래그를 유지해야 함을 의미합니다. 두번째 중요한 차이점은 Android에서각 거래에는 고유한 토큰이 있는 반면,모든iOS 거래는앱별 공유 암호 (sharedsecret)를사용하여 전체 거래 내역을 저장한다는 것입니다. 즉,어느때에든지 사용자의 구매를 복원하려면 임의의 단일토큰을 선택하는 것이 아니라,모든구매 토큰을 저장해야 합니다. 구독을검증하려면 purchases. subscriptions. get메소드를호출해야 합니다. 이것은기본적으로 GET요청호출입니다. https://androidpublisher. googleapis. com/androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token} 모든매개변수가 필요합니다. packageName: 앱 식별자, (예: com. adapty. sample_app). subscriptionId: 검증 대상 구독의 구독 식별자, (예: com. adapty. sample_app. weekly_sub). token: 고유 거래 토큰. 모바일 앱 측에서 구매가 처리되면 나타납니다. 우선,모두의도한 대로 작동하는지 확인하기 위해 처리해야 하는오류 메시지를 살펴봅시다. 400, Invalid grant: account not found: 이 오류 메시지는 요청 인증 키가 잘못 생성되었음을 의미합니다. 계정이 연결되어 있고, 충분한 권한이 있는 올바른 계정을 사용하고 있으며, 필요한 모든 API가 활성화되어 있는지 확인하십시오. 모든 것을 구성하는 방법에 대한 가이드는 아래 섹션을 참조하세요. 제품 설명 업데이트에 대한 팁을 참고하세요. 400, The purchase token does not match the package name: 이 오류 메시지는 일반적으로 사기 거래에서 나타납니다. 테스트 중 보게 된다면, 다른 앱에 속한 앱 구매 토큰을 사용하고 있지는 않은지 확인하세요. 403, Quota exceeded for quota metric 'Queries' and limit 'Queries per day' of service 'androidpublisher. googleapis. com': 이것은 Google API 요청 일일 할당량이 초과되었음을 의미합니다. 기본적으로, 하루에 최대 200,000 요청을 실행할 수 있습니다. 할당량을 늘릴 수 있지만, 대부분의 앱에는 기본 할당량으로 충분합니다. 이 제한에 도달하면, 앱의 논리를 다시 점검하고 모든 것이 올바른지 확인해야 합니다. 410, The subscription purchase is no longer available for query because it has been expired for too long: 이 오류 메시지는 구독이 60일이나 그 전에 만료된 거래에 나타납니다. 실제 오류 메시지가 아니기 때문에 오류로 처리해서는 안 됩니다. 구독거래 검증에성공하면 응답으로 거래데이터를받게 됩니다. 거래데이터 (구독용): { "expiryTimeMillis": "1631116261362", "paymentState": 1, "acknowledgementState": 1, "kind": "androidpublisher#subscriptionPurchase", "orderId": "GPA. 3382-9215-9042-70164", "startTimeMillis": "1630504367892", "autoRenewing": true, "priceCurrencyCode": "USD", "priceAmountMicros": "1990000", "countryCode": "US", "developerPayload": "" } 사용자가앱에서 제공하는 프리미엄 옵션에 접근할 수 있는지,즉활성 구독이 있는지 여부를 이해하려면 다음을 수행해야합니다. startTimeMillis 그리고 expiryTimeMillis 매개변수를 확인하십시오. 현재 시간은 그 사이에 있어야 합니다. 그에 더해, paymentState 매개변수에 '0' 값이 없는지 반드시 확인하십시오. 이는 구독 구매가 아직 보류 중임을 의미하므로, 사용자에게 프리미엄 기능 접근 권한을 아직 부여할 필요가 없습니다. 거래에 autoResumeTimeMillis 속성이 있는 경우, 구독은 일시 중지됩니다. 이는 사용자에게 프리미엄 기능 접근 권한을 지정된 날짜 이전에 부여해서는 안 됨을 의미합니다. 구독거래의 주요 속성을 살펴봅시다. kind: 거래 유형. 구독의 경우, 항상 androidpublisher#subscriptionPurchase 값을 갖습니다. 이 매개변수를 통해, 구독을 처리하는지 또는 제품을 처리하는지 이해하고, 그에 맞는 처리 논리를 선택할 수 있습니다. paymentState: 지불 상태. 만료된 거래에는 이 속성이 없습니다. 가능한 값은 다음과 같습니다. 0: 이 구매는 아직 처리되지 않았습니다. 일부 국가에서는 사용자가 현장에서 구독료를 지불할 수 있습니다. 즉, 사용자는 자신의 장치에서 구독 구매를 시작하고 가까운 터미널에서 요금을 지불합니다. 전반적으로 매우 드문 경우이지만, 그래도 염두에 두어야 합니다. 1: 구독을 구매했습니다. 2: 구독은 평가판 (trial) 기간입니다. 3: 구독은 다음 기간에 업그레이드 또는 다운그레이드됩니다. 이는 구독 요금제가 변경되는 것을 의미합니다. acknowledgementState: 구매 확정 상태. 사용자가 지불한 것에 대한 접근 권한을 받았는지 여부를 승인하는 중요한 매개변수입니다. 값 '0'은 권한을 받지 않았음을, '1'은 받았음을 뜻합니다. 개발자는 이 상태를 정의할 책임이 있는데, 모바일 앱과 서버 측 모두에서 수행할 수 있습니다. 구매 시점으로부터 3일 이내에 승인하지 않으면, 자동으로 환불됩니다. 다음 논리를 구현하는 것이 좋습니다. acknowledgementState=0을 포함하는 거래를 받으면, 매개변수가 서버에 의해 변경됩니다. 그 방법은 아래에서 알려드리겠습니다. orderId: 고유한 거래 식별자. 각 구독 구매 또는 갱신에는 고유한 식별자가 있어서, 이 거래가 이미 이전에 처리되었는지 여부를 확인하는 데 사용할 수 있습니다. 각 갱신 식별자에는 반복되는 초반부가 있는데, 여기에 두 개의 점과 (0부터 시작하는) 구독 갱신 횟수가 덧붙여집니다. 활성화될 때 구독에 GPA. 3382-9215-9042-70164 식별자가 있는 경우, 첫 번째 갱신은 GPA. 3382-9215-9042-70164. . 0으로 식별되고 두 번째 갱신은 GPA. 3382-9215-9042-70164. . 1로 식별되는 식입니다. 이 방법으로 거래 체인을 구축하고 갱신 횟수를 추적할 수 있습니다. startTimeMillis: 구독 시작 날짜. expiryTimeMillis: 구독 만료 날짜. autoRenewing: 구독을 다음 기간으로 갱신할지 여부를 나타내는 플래그. priceCurrencyCode: 세 글자 형식으로 나타내는 구매 통화, (예: USD). priceAmountMicros: 구매 가격. 정상적인 가격 값을 얻으려면 이 값을 1000000으로 나눕니다. 즉, 1990000은 실제로 1. 99를 의미합니다. countryCode: 두 글자 형식으로 나타내는 구매 국가, (예: 미국). purchaseType: 구매 유형. 이 키는 대부분의 경우에 존재하지 않습니다. 샌드박스 (Sandbox) 환경에서 구매했는지 여부를 이해하는 데 도움이 되기 때문에, 여전히 고려하는 것이 중요합니다. 가능한 값은 다음과 같습니다. 0: 샌드박스 환경에서 구매하였으므로, 분석 데이터에 포함되어서는 안 됩니다. 1: 프로모션 코드로 구매하였습니다. autoResumeTimeMillis: 구독 갱신 날짜. 이전에 일시 중지된 구독에만 표시됩니다. 이 매개변수가 보이면, 사용자에게 프리미엄 기능 접근 권한을 지정된 날짜 이전에 부여할 필요가 없습니다. cancelReason: 구독이 갱신되지 않는 이유. 가능한 값은 다음과 같습니다. 0: 사용자가 구독 자동 갱신을 취소했습니다. 1: 시스템에서 구독을 취소했습니다. 이것은 대부분 결제 문제로 인해 발생합니다. 2:... --- Le cinquième tutoriel de notre série est consacré à la mise en œuvre des achats intégrés sous Android. La validation côté serveur peut vous aider à valider l'authenticité des achats. L'appareil envoie une demande aux serveurs de Google pour savoir si l'achat a effectivement eu lieu et s'il est valable. Dans ce guide, nous allons voir comment configurer la validation côté serveur (server-side) pour les applications (app) fonctionnant sous Android. Pourquoi valider les achats? Il convient de noter que la validation côté serveur n'est pas obligatoire : les achats intégrés aux applications fonctionneront toujours sans elle. Elle présente cependant des avantages non négligeables : Analyse avancée des paiements, ce qui est particulièrement important pour les abonnements puisque tout ce qui se passe après l'activation n'est pas traité par le dispositif. Sans traitement des achats côté serveur, vous ne serez pas en mesure de récupérer l'état actuel de l'abonnement et de savoir si l'utilisateur a renouvelé ou annulé son abonnement, s'il y a des problèmes de paiement, etc. Pouvoir vérifier l'authenticité de l'achat. Vous aurez la certitude que la transaction n'est pas frauduleuse et que l'utilisateur a réellement payé votre produit. Abonnements multi-plateformes. Si vous pouvez vérifier l'état de l'abonnement de l'utilisateur en temps réel, vous pouvez le synchroniser avec d'autres plateformes. Par exemple, l'utilisateur qui a acheté l'abonnement à partir d'un appareil iOS pourra l'utiliser sous Android, le Web et d'autres plateformes.   La possibilité de contrôler l'accès au contenu du côté du serveur, ce qui vous protège des utilisateurs qui tentent d'accéder aux données sans abonnement en exécutant simplement des requêtes au serveur.   D'après notre expérience, le premier avantage suffit à lui seul à mettre en place le traitement des achats côté serveur. Validation du paiement Nous pouvons résumer la validation des paiements (purchase validation) Android avec ce schéma : Authentification pour les demandes de Google Play Developer API Pour travailler avec Google Play Developer API, vous devez d'abord générer une clé pour signer les demandes. Tout d'abord, vous devez relier votre compte Google Play Console (où vous gérez votre application) à votre compte Google Cloud (où vous générerez une clé pour la signature des demandes). Une fois que tout est configuré, vous devrez accorder à l'utilisateur des droits de gestion des achats. Il faudrait un article dédié pour décrire ce processus. Heureusement, nous l'avons déjà couvert dans un guide étape par étape que vous trouverez dans Adapty documentation.   Notez que vous devrez généralement attendre 24 heures ou plus après avoir généré une clé pour qu'elle commence à fonctionner. Pour éviter cela, il suffit de mettre à jour la description de tout produit ou abonnement intégré à l'application, ce qui activera instantanément la clé.   Nous utilisons la bibliothèque officielle google-api-python-client pour travailler avec Google Play Developer API. Cette bibliothèque est disponible pour la majorité des langages populaires, et je recommande de l'utiliser car elle prend en charge toutes les méthodes dont vous pourriez avoir besoin. Validation des transaction d'abonnement : Contrairement à la validation côté serveur d'iOS, sous Android, la validation des abonnements et des autres produits est mise en œuvre à l'aide de diverses méthodes. Par conséquent, lorsque vous validez une transaction, vous devez savoir si vous avez affaire à un produit ou à un abonnement. En pratique, cela signifie que vous devrez transférer ces données à partir de l'application mobile et conserver l'indicateur dans la base de données au cas où une nouvelle validation du jeton serait nécessaire. La deuxième différence importante est que si chaque transaction possède son propre jeton dans Android, toutes les transactions iOS utilisent un secret partagé propre à l'application pour stocker l'historique complet de la transaction. Cela signifie que si vous voulez être en mesure de renouveler les achats de l'utilisateur à tout moment, vous devrez stocker tous les jetons d'achat, au lieu d'en choisir un seul arbitrairement. Pour valider l'abonnement, vous devrez invoquer la méthode purchases. subscriptions. get. En gros, c'est un appel à une requête GET : https://androidpublisher. googleapis. com/androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token} Tous les paramètres sont obligatoires : packageName: Un identifiant unique pour appli, par exemple, com. adapty. sample_app. subscriptionId: Identifiant de l'abonnement à valider, par exemple, com. adapty. sample_app. weekly_sub. jeton: Jeton de transaction unique. Il apparaît une fois que l'achat est traité du côté de l'application mobile. Tout d'abord, examinons les messages d'erreur dont vous devez tenir compte pour vous assurer que tout fonctionne comme prévu : 400, Invalid grant: account not found: Ce message d'erreur signifie que la clé d'authentification de la demande a été générée de manière incorrecte. Assurez-vous que vos comptes sont liés, que vous utilisez le bon qui dispose de suffisamment de permissions et que toutes les API requises sont activées. Voir la section ci-dessous pour un guide sur la façon de tout configurer. Remarquez le conseil sur la mise à jour de la description du produit. 400, The purchase token does not match the package name: Ce message d'erreur est généralement rencontré lors de transactions frauduleuses. Si vous le voyez pendant le test, assurez-vous que vous n'utilisez pas un jeton d'achat d'application qui appartient à une autre application. 403, Quota exceeded for quota metric 'Queries' and limit 'Queries per day' of service 'androidpublisher. googleapis. com': Cela signifie que le quota quotidien de demandes d'API Google a été dépassé. Par défaut, vous pouvez exécuter jusqu'à 200 000 requêtes par jour. Ce quota peut être augmenté, mais il devrait suffire pour la plupart des applications. Si vous vous heurtez à cette limite, vous devriez probablement revérifier la logique de votre application et vous assurer que tout est correct. 410, The subscription purchase is no longer available for query because it has been expired for too long: Ce message d'erreur apparaît dans les transactions où l'abonnement a expiré depuis plus de 60 jours. Il ne s'agit pas d'un véritable message d'erreur et ne doit pas être traité comme tel. Transaction d'abonnement :  Si la validation a réussi, vous recevrez les données de la transaction comme réponse. Données de transaction (pour un abonnement) : { "expiryTimeMillis": "1631116261362", "paymentState": 1, "acknowledgementState": 1, "kind": "androidpublisher#subscriptionPurchase", "orderId": "GPA. 3382-9215-9042-70164", "startTimeMillis": "1630504367892", "autoRenewing": true, "priceCurrencyCode": "USD", "priceAmountMicros": "1990000",... --- Das fünfte Tutorial unserer Serie befasst sich mit der Implementierung von In-App-Käufen in Android Apps Die serverseitige Überprüfung kann Ihnen helfen, die Kaufauthentizität zu validieren. Das Gerät wird eine Anfrage an die Google Server senden, um herauszufinden, ob der Kauf tatsächlich stattgefunden hat und ob er gültig ist. In dieser Anleitung besprechen wir, wie Sie die serverseitige Validierung für Android Apps konfigurieren können. Warum Käufe validieren Es sollte erwähnt werden, dass die serverseitige Validierung kein Muss ist. In-App-Käufe funktionieren auch ohne diese Validierung. Sie bietet jedoch einige wichtige Vorteile: Umfangreiche Zahlungsanalysen, was besonders bei Abonnements wichtig ist, da alles, was nach der Aktivierung geschieht, nicht vom Gerät verarbeitet wird. Ohne serverseitige Kaufverarbeitung können Sie nicht den aktuellen Abonnement-Status abrufen und wissen nicht, ob der Nutzer das Abonnement verlängert hat oder nicht oder ob es Zahlungsprobleme gibt oder nicht. Die Möglichkeit, die Kaufauthentizität zu verifizieren. Sie können sicherstellen, dass die Transaktion kein Betrug ist und dass der Nutzer tatsächlich für Ihr Produkt bezahlt hat. Plattformübergreifende Abonnements. Wenn Sie den Abonnement-Status des Nutzers in Echtzeit überprüfen können, können Sie ihn auch mit anderen Plattformen synchronisieren. Nutzer, die beispielsweise das Abonnement mit einem iOS Gerät abgeschlossen haben, können es auch auf einem Android Gerät, online oder auf anderen Plattformen verwenden. Die Möglichkeit, Content-Zugang von der Serverseite zu kontrollieren. So schützen Sie sich vor Nutzern ohne Abonnement, die auf Ihre Daten zuzugreifen versuchen, indem Sie schlicht Anfragen an den Server senden. Unsere Erfahrung besagt, dass der erste Vorteil allein ausreicht, um eine serverseitige Kaufverarbeitung einzurichten. Zahlungsvalidierung Wir können die Android-Zahlungsvalidierung mit diesem Schema zusammenfassen: Authentifizierung für Google Play Developer API Anfragen Um mit der Google Play Developer API zu arbeiten, müssen Sie zunächst einen Key generieren, um Anfragen zu unterschreiben. Als erstes müssen Sie Ihr Google Play Console Konto (wo Sie Ihre App verwalten) mit Ihrem Google Cloud Konto synchronisieren (wo Sie einen Key für das Unterschreiben von Anfragen generieren). Sobald dies erfolgt ist, müssen Sie dem Nutzer Kaufrechte erteilen. Es würde einen eigenen Artikel erfordern, diesen Vorgang zu beschreiben. Zum Glück haben wir bereits eine Schritt-für-Schritt Anleitung in der Adapty Dokumentation.   Bitte beachten Sie, dass Sie nach der Generierung des Keys in der Regel 24 Stunden (oder länger) warten müssen, bevor Sie mit der Arbeit beginnen können. Aktualisieren Sie die Beschreibung für In-App-Produkte oder Abonnements, um diese Wartezeit zu umgehen, da so der Key umgehend aktiviert wird.   Wir verwenden die offizielle google-api-python-client Library im Zusammenspiel mit der Google Play Developer API. Diese Library ist in den meisten Sprachen verfügbar und ich kann sie nur empfehlen, da sie alle benötigten Methoden unterstützt. Validierung für Abonnement-Transaktionen Im Gegensatz zur iOS serverseitigen Validierung werden bei Android sowohl die Validierung für Abonnements als auch andere Produkte mit einer Vielzahl von Methoden implementiert. Wenn Sie also eine Transaktion validieren, müssen Sie wissen, ob Sie es mit einem Produkt oder einem Abonnement zu tun haben. In der Praxis heißt das, dass Sie diese Daten von der App übertragen und die Flag in der Datenbank behalten müssen, falls eine erneute Token-Validierung erforderlich sein sollte. Der zweite wichtige Unterschied besteht darin, dass zwar jede Transaktion bei Android ihren Token hat, aber alle iOS-Transaktionen ein App-spezifisches Gemeinsames Geheimnis (Shared Secret) verwenden, um den gesamten Transaktionsverlauf zu lagern. Wenn Sie also die Käufe eines Nutzers zu einem beliebigen Zeitpunkt wiederherstellen möchten, müssen Sie alle Kauftokens lagern, anstatt einen beliebigen auszuwählen. Zur Validierung des Abonnements nutzen Sie die purchases. subscriptions. get Methode. Dabei handelt es sich im Grunde um einen GET Request Call: https://androidpublisher. googleapis. com/androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token} Alle Parameter werden benötigt: packageName: App-Erkenner, z. B. com. adapty. sample_app. subscriptionId: Abonnement-Erkenner für Abonnements, die zu validieren sind, z. B. com. adapty. sample_app. weekly_sub. token: Einmaliger Transaktion-Token. Dieser erscheint, sobald der Kauf in der App verarbeitet ist. Lassen Sie uns zunächst die Fehlermeldungen ansehen, um die Sie sich kümmern müssen, damit alles wie gedacht funktioniert: 400, Invalid grant: account not found: Diese Fehlernachricht bedeutet, dass der Key zur Anfragenauthentifizierung nicht richtig generiert wurde. Stellen Sie sicher, dass Ihre Konten synchronisiert sind, Sie das Konto mit den nötigen Rechten verwenden und dass alle benötigten APIs aktiv sind. Unten finden Sie eine Anleitung, wie Sie all dies konfigurieren. Beachten Sie bitte den Tipp zum Update der Produktbeschreibung. 400, The purchase token does not match the package name: Diese Fehlermeldung tritt in der Regel bei betrügerischen Transaktionen auf. Wenn Sie diese beim Testen erhalten, stellen Sie bitte sicher, dass Sie keinen App-Kauftoken verwenden, der zu einer anderen App gehört. 403, Quota exceeded for quota metric 'Queries' and limit 'Queries per day' of service 'androidpublisher. googleapis. com': Dies bedeutet, dass die tägliche Google API Anfragenquote überschritten wurde. Standardmäßig können Sie bis zu 200. 000 Anfragen per Tag versenden. Diese Quote kann erhöht werden, sollte aber den meisten Apps genügen. Wenn Sie das Limit erreichen, sollten Sie die Logik Ihrer App überprüfen und sicherstellen, dass alles korrekt ist. 410, The subscription purchase is no longer available for query because it has been expired for too long: Diese Fehlermeldung erscheint in Transaktionen, bei denen das Abonnement schon vor mehr als 60 Tagen abgelaufen ist. Es ist keine tatsächliche Fehlermeldung und sollte nicht als solche verarbeitet werden. Abonnement-Transaktion  War die Validierung erfolgreich, erhalten Sie Transaktionsdaten als Antwort. Transaktionsdaten (für ein Abonnement): { "expiryTimeMillis": "1631116261362", "paymentState": 1, "acknowledgementState": 1, "kind": "androidpublisher#subscriptionPurchase", "orderId": "GPA. 3382-9215-9042-70164", "startTimeMillis": "1630504367892", "autoRenewing": true, "priceCurrencyCode": "USD", "priceAmountMicros": "1990000", "countryCode": "US", "developerPayload": "" } Um zu verstehen, ob der Nutzer auf die von der App angebotenen Premium-Optionen zugreifen kann (sprich ob es ein aktives Abonnement gibt), müssen Sie: Die startTimeMillis und expiryTimeMillis Parameter prüfen. Die aktuelle Zeit sollte zwischen diesen beiden liegen. Stellen Sie außerdem sicher, ob der paymentState Parameter nicht den Wert „0” hat. Dies würde nämlich bedeuten, dass der Kauf das Abonnements noch aussteht und kein Grund dafür besteht, dem Nutzer Zugang zum Premium-Feature zu gewähren. Hat die Transaktion die Eigenschaft autoResumeTimeMillis, ist das Abonnement pausiert. Dies bedeutet, dass der Nutzer vor dem genannten Datum keinen Zugang zu Premium-Features haben sollte. Lassen Sie uns die Schlüsseleigenschaften einer Abonnement-Transaktion ansehen: kind: Transaktionstyp. Bei Abonnements hat diese immer den androidpublisher#subscriptionPurchase Wert. Mit diesem Parameter verstehen... --- Piąty samouczek z naszej serii poświęcony jest implementacji zakupów w aplikacjach na Androida Walidacja po stronie serwera (server-side validation) może pomóc w weryfikacji autentyczności zakupu. Urządzenie wyśle żądanie do serwerów Google, aby dowiedzieć się, czy zakup rzeczywiście miał miejsce i czy jest poprawny. W tym przewodniku omówimy, jak skonfigurować walidację po stronie serwera dla aplikacji na Androida.   Dlaczego warto dokonywać walidacji zakupów Należy zauważyć, że walidacja po stronie serwera nie jest obowiązkowa i zakupy w aplikacji będą działać także bez niej. Istnieją jednak pewne znaczące jej korzyści: Zaawansowana analityka płatności, która jest szczególnie ważna w przypadku subskrypcji, ponieważ wszystko, co dzieje się po aktywacji, nie jest przetwarzane przez urządzenie. Bez przetwarzania zakupu po stronie serwera nie będzie można odzyskać bieżącego statusu subskrypcji i dowiedzieć się, czy użytkownik odnowił lub anulował subskrypcję, czy występują problemy z płatnością, i tak dalej. Możliwość weryfikacji autentyczności zakupu. Będziesz mieć pewność, że transakcja nie jest oszustwem, a użytkownik faktycznie zapłacił za twój produkt. Subskrypcje między platformami. Jeśli możesz sprawdzić status subskrypcji użytkownika w czasie rzeczywistym, możesz zsynchronizować ją z innymi platformami. Na przykład użytkownik, który kupił subskrypcję z urządzenia z systemem iOS, będzie mógł z niej korzystać na Androidzie, na stronie internetowej i na innych platformach.   Możliwość kontrolowania dostępu do treści od strony serwera, który chroni przed użytkownikami próbującymi uzyskać dostęp do danych bez subskrypcji, po prostu wykonując żądania do serwera.   Mówiąc z naszego doświadczenia, pierwsza zaleta wystarczy, aby skonfigurować przetwarzanie zakupów po stronie serwera. Walidacja płatności Możemy podsumować walidację płatności Androida za pomocą tego schematu: Uwierzytelnianie dla żądań Google Play Developer API Aby pracować z Google Play Developer API, musisz najpierw wygenerować klucz do podpisania żądań. Najpierw musisz połączyć swoje konto konsoli Google Play (gdzie zarządzasz aplikacją) z kontem Google Cloud (gdzie wygenerujesz klucz do podpisywania żądań). Po skonfigurowaniu wszystkiego konieczne będzie przyznanie użytkownikowi prawa do zarządzania zakupami. Potrzebny byłby dedykowany artykuł, aby opisać ten proces. Na szczęście omówiliśmy to już w przewodniku "krok po kroku", który znajduje się w dokumentacji Adapty.   Zauważ, że zwykle musisz poczekać 24 godziny lub więcej po wygenerowaniu klucza, aby zaczął działać. Aby tego uniknąć, po prostu zaktualizuj opis dowolnego produktu w aplikacji lub subskrypcji, która natychmiast aktywuje klucz.   Korzystamy z oficjalnej biblioteki google-api-python-client do współpracy z Google Play Developer API. Ta biblioteka jest dostępna dla większości popularnych języków i polecam jej używanie, ponieważ obsługuje wszystkie metody, jakich tylko możesz potrzebować. Walidacja transakcji subskrypcyjnych W przeciwieństwie do walidacji po stronie serwera iOS, w Androidzie zarówno subskrypcja, jak i inne walidacje produktu są realizowane przy użyciu różnych metod. Dlatego podczas zatwierdzania transakcji musisz wiedzieć, czy masz do czynienia z produktem, czy subskrypcją. W praktyce oznacza to, że musisz przesłać te dane z aplikacji mobilnej, a także zachować oznaczenie w bazie danych na wypadek, gdyby konieczna była ponowna walidacja tokenu. Drugą ważną różnicą jest to, że podczas gdy każda transakcja ma swój własny token w systemie Android, wszystkie transakcje na iOS używają współdzielonego sekretu, specyficznego dla aplikacji do przechowywania całej historii transakcji. Oznacza to, że jeśli chcesz być w stanie przywrócić zakupy użytkownika w dowolnym momencie, konieczne jest przechowywanie wszystkich token zakupu, w przeciwieństwie do arbitralnego wybierania jednego z nich. Aby zweryfikować subskrypcję, musisz wywołać metodę purchases. subscriptions. get. Zasadniczo jest to wywołanie żądania GET: https://androidpublisher. googleapis. com/androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token} Wszystkie parametry są wymagane: packageName: identyfikator aplikacji, np. com. adapty. sample_app. subscriptionId: identyfikator subskrypcji dla subskrypcji, która powinna zostać walidowana, np. com. adapty. sample_app. weekly_sub. token: unikalny token transakcji. Pojawia się po przetworzeniu zakupu po stronie aplikacji mobilnej. Najpierw przyjrzyjmy się komunikatom o błędach, które należy usunąć, aby upewnić się, że wszystko działa tak, jak powinno: 400, Invalid grant: account not found: ten komunikat o błędzie oznacza, że klucz uwierzytelniania żądania został wygenerowany nieprawidłowo. Upewnij się, że Twoje konta są połączone, używasz właściwego, który ma wystarczające uprawnienia oraz że wszystkie wymagane interfejsy API są aktywowane. Zobacz sekcję poniżej, aby dowiedzieć się, jak wszystko skonfigurować. Zwróć uwagę na wskazówkę dotyczącą aktualizacji opisu produktu. 400, The purchase token does not match the package name: ten komunikat o błędzie jest zwykle spotykany w przypadku nieuczciwych transakcji. Jeśli zobaczysz go podczas testowania, upewnij się, że nie używasz tokena zakupu aplikacji należącego do innej aplikacji. 403, Quota exceeded for quota metric 'Queries' and limit 'Queries per day' of service 'androidpublisher. googleapis. com': oznacza to, że dzienny limit żądań API Google został przekroczony. Domyślnie można wykonać do 200 000 żądań na dzień. Ten limit może zostać zwiększony, ale powinien wystarczyć dla większości aplikacji. Jeśli napotkasz ten limit, prawdopodobnie powinieneś dokładnie sprawdzić logikę aplikacji i upewnić się, że wszystko jest w porządku. 410, The subscription purchase is no longer available for query because it has been expired for too long: ten komunikat o błędzie pojawia się w transakcjach, w których subskrypcja wygasła ponad 60 dni temu. Nie jest to rzeczywisty komunikat o błędzie i nie powinien być przetwarzany jako taki. Transakcja subskrypcji  Jeśli walidacja przebiegła pomyślnie, otrzymasz dane transakcji jako odpowiedź. Dane transakcji (dla subskrypcji): { "expiryTimeMillis": "1631116261362", "paymentState": 1, "acknowledgementState": 1, "kind": "androidpublisher#subscriptionPurchase", "orderId": "GPA. 3382-9215-9042-70164", "startTimeMillis": "1630504367892", "autoRenewing": true, "priceCurrencyCode": "USD", "priceAmountMicros": "1990000", "countryCode": "US", "developerPayload": "" } Aby dowiedzieć się, czy użytkownik ma dostęp do opcji premium oferowanych przez aplikację (tj. czy posiada aktywną subskrypcję), konieczne jest: Sprawdź parametry startTimeMillis oraz expiryTimeMillis. Aktualny czas powinien być między nimi. Co więcej, musisz upewnić się, że parametr paymentState nie posiada wartości '0'. Oznaczałoby to, że zakup subskrypcji jest nadal w toku, dlatego nie ma jeszcze potrzeby przyznawania użytkownikowi dostępu do funkcji premium.   Jeśli transakcja posiada wartość autoResumeTimeMillis , w takim wypadku abonament zostaje wstrzymany. Oznacza to, że użytkownik nie powinien otrzymać dostępu do funkcji premium przed określoną datą. Zobaczmy kluczowe wartości transakcji subskrypcji: kind: rodzaj transakcji. W przypadku subskrypcji zawsze posiada wartość androidpublisher#subscriptionPurchase. Dzięki temu parametrowi możesz zrozumieć, czy masz do czynienia z subskrypcją, czy produktem, i odpowiednio wybrać logikę przetwarzania. paymentState: status płatności. Ta wartość nie jest obecna dla wygasłych transakcji. Możliwe wartości to:0: Ten zakup nie został jeszcze przetworzony. W niektórych krajach użytkownik może zapłacić za subskrypcję na oddzielnym urządzeniu. Oznacza to, że użytkownik inicjuje zakup subskrypcji ze swojego urządzenia, a płaci za nią... --- The 5th tutorial of our series is dedicated to implementing in-app purchases in Android apps Server-side validation is a process of validating purchase authenticity through sending a request to the server. In the case of Android apps, the device makes a request to Google servers to find out whether the purchase has actually taken place and whether it’s valid.  This process helps detect fraudulent or invalid purchases and prevents you from getting inaccurate revenue data. In this guide, we’ll discuss how to configure server-side validation for Android apps.   This is the fifth article in our series about implementing in-app purchases for Android apps. I recommend you look through the others as well: Android in-app purchases, part 1: configuration and adding to the project Android in-app purchases, part 2: processing purchases with the Google Play Billing Library. Android in-app purchases, part 3: retrieving active purchases and subscription change. Android in-app purchases, part 4: error codes from the Billing Library and testing. Android in-app purchases, part 5: server-side purchase validation. Why validate Android in-app purchases It should be noted that server-side validation isn’t mandatory — in-app purchases will still work without it. There are some significant benefits to it, though: Advanced payment analytics, which is especially important for subscriptions since everything that happens after the activation isn’t processed by the device. With no server-side purchase processing, you won’t be able to retrieve the current subscription status and know whether the user has renewed the subscription or canceled it, whether there are any payment issues, and so on. Being able to verify the purchase’s authenticity. You’ll be sure that the transaction isn’t fraudulent, and that the user has actually paid for your product. Cross-platform subscriptions. If you can check the user’s subscription status in real-time, you can synchronize it with other platforms. For example, the user who purchased the subscription from an iOS device will be able to use it on Android, the Web, and other platforms.   Being able to control content access from the server side, which protects you from users trying to access the data with no subscription by simply executing requests to the server.   Speaking from our experience, the first advantage alone is enough to set up server-side purchase processing. Looking to fortify your Android in-app purchases and enhance subscription transparency? Discover the difference with Adapty! Schedule a free, no-obligation demo call to explore how our advanced features can help you gain precise control over your content and elevate your subscription revenue, while you focus on delivering exceptional value to your users. Google Play payment validation We can summarize Android payment validation with this scheme: Authentication for Google Play Developer API requests To work with Google Play Developer API, you’ll first need to generate a key to sign requests. First, you’ll have to link your Google Play Console account (where you manage your app) to your Google Cloud account (where you’ll generate a key for request signing). Once everything’s configured, you’ll have to grant the user purchase management rights. It’d take a dedicated article to describe this process. Luckily, we’ve already covered it in a step-by-step guide found in Adapty documentation. Note that usually you’ll have to wait for 24 hours or more after generating a key for it to start working. To avoid that, just update the description for any in-app product or subscription, which will instantly activate the key.   We use the official google-api-python-client library to work with Google Play Developer API. This library is available for the majority of popular languages, and I recommend using it as it supports all the methods you might need. Validation for subscription transactions Unlike iOS server-side validation, in Android, both subscription and other product validation are implemented using a variety of methods. Therefore, when validating a transaction, you need to know whether you’re dealing with a product or a subscription. In practice, this means you’ll need to transfer this data from the mobile app, as well as keep the flag in the database in case token re-validation will be necessary. The second important difference is that while each transaction has its own token in Android, all iOS transactions use an app-specific shared secret to store the entire transaction history. This means that if you want to be able to restore the user’s purchases at any moment, you’ll need to store all purchase tokens, as opposed to picking out an arbitrary single one. To validate the subscription, you’ll need to invoke the purchases. subscriptions. get method. Basically, it’s a GET request call: https://androidpublisher. googleapis. com/androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token} All parameters are required: packageName: App identifier, e. g. , com. adapty. sample_app. subscriptionId: Subscription identifier for the subscription that’s to be validated, e. g. , com. adapty. sample_app. weekly_sub. token: Unique transaction token. It appears once the purchase is processed on the mobile app side. First, let’s look at the error messages you need to take care of to make sure everything works as intended: 400, Invalid grant: account not found: This error message means that the request authentication key was generated incorrectly. Make sure that your accounts are linked, you’re using the right one that has enough permissions, and all the required APIs are activated. See the section below for a guide on how to configure everything. Note the tip on the product description update. 400, The purchase token does not match the package name: This error message is usually encountered in fraudulent transactions. If you see it while testing, make sure you aren’t using an app purchase token that belongs to a different app. 403, Quota exceeded for quota metric 'Queries' and limit 'Queries per day' of service 'androidpublisher. googleapis. com': This means the Google API requests daily quota was exceeded. By default, you can execute up to 200,000 requests per day. This quota can be increased, but it should suffice for most apps. If you come up against this limit, you should probably double-check your app’s logic and make sure everything’s right. 410, The subscription purchase is no longer available for query because it has been expired for too long: This error message appears... --- El quinto tutorial de nuestra serie está dedicado a implementar las compras dentro de la aplicación en las aplicaciones de Android La validación del lado del servidor (server-side) puede ayudarte a validar la autenticidad de la compra. El dispositivo hará una petición a los servidores de Google para averiguar si la compra se realizó realmente y si es válida. En esta guía, hablaremos de cómo configurar la validación del lado del servidor para las aplicaciones de Android. ¿Por qué validar las compras? Cabe señalar que la validación del lado del servidor no es obligatoria: las compras dentro de la aplicación seguirán funcionando sin la misma. Sin embargo, tiene algunas ventajas importantes: Análisis de pagos adelantados, lo que es especialmente importante para las suscripciones, ya que todo lo que ocurre después de la activación no es procesado por el dispositivo. Sin un procesamiento de compras del lado del servidor, no podrás recuperar el estado actual de la suscripción y saber si el usuario renovó la suscripción o la canceló, si hay problemas de pago, etc. Poder verificar la autenticidad de la compra. Estarás seguro de que la transacción no es fraudulenta, y que el usuario ha pagado realmente por tu producto. Suscripciones multiplataforma. Al poder comprobar el estado de la suscripción del usuario en tiempo real, podrás sincronizarlo con otras plataformas. Por ejemplo, el usuario que compró la suscripción desde un dispositivo iOS podrá utilizarla en Android, en la Web y en otras plataformas.   Podrás controlar el acceso al contenido desde el lado del servidor, lo que te protegerá de los usuarios que intenten acceder a los datos sin estar suscritos, simplemente ejecutando solicitudes al servidor.   Según nuestra experiencia, la primera ventaja es suficiente para establecer el procesamiento de compras en el lado del servidor. Validación del pago Podemos resumir la validación del pago (purchase validation) en Android con este esquema: Autenticación para las solicitudes de la API para desarrolladores de Google Play Para utilizar Google Play Developer API, primero tendrás que generar una clave para firmar las solicitudes. En primer lugar, tendrás que vincular tu cuenta de Google Play Console (donde gestionas tu aplicación) con tu cuenta de Google Cloud (donde generarás una clave para la firma de solicitudes). Una vez que todo esté configurado, tendrás que conceder al usuario los derechos de gestión de compra. Haría falta un artículo dedicado a describir este proceso. Por suerte, ya lo describimos en una guía paso a paso que se encuentra en la documentación de Adapty.   Ten en cuenta que normalmente tendrás que esperar 24 horas o más después de generar una clave para que empiece a funcionar. Para evitarlo, sólo tienes que actualizar la descripción de cualquier producto o suscripción en la app, lo que activará instantáneamente la clave.   Utilizamos la biblioteca oficial google-api-python-client para utilizar la Google Play Developer API. Esta biblioteca está disponible para la mayoría de los lenguajes populares, y te recomiendo que la utilices ya que soporta todos los métodos que puedas necesitar. Validación de transacciones de suscripción A diferencia de la validación del lado del servidor de iOS, en Android, tanto la validación de las suscripciones como la de otros productos se implementan utilizando diversos métodos. Por tanto, al validar una transacción, necesitas saber si se trata de un producto o de una suscripción. En la práctica, esto significa que tendrás que transferir estos datos desde la aplicación móvil, así como mantener la marca en la base de datos en caso de que sea necesaria la revalidación del token. La segunda diferencia importante es que mientras cada transacción tiene su propio token en Android, todas las transacciones de iOS utilizan un secreto compartido específico de la aplicación para almacenar todo el historial de transacciones. Esto significa que si quieres poder restaurar las compras del usuario en cualquier momento, tendrás que almacenar todos los tokens de compra, en lugar de elegir uno solo arbitrariamente. Para validar la suscripción, tendrás que invocar el método purchases. subscriptions. get. Básicamente, se trata de una llamada de solicitud GET: https://androidpublisher. googleapis. com/androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token} Todos los parámetros son obligatorios: packageName: Identificador de la aplicación, por ejemplo, com. adapty. sample_app. subscriptionId: Identificador de la suscripción a validar, por ejemplo, com. adapty. sample_app. weekly_sub. token: Token de transacción único. Aparecerá una vez que la compra se procese en el lado de la aplicación móvil. En primer lugar, examinemos los mensajes de error de los que debes ocuparte para asegurarte de que todo funciona como es debido: 400, Invalid grant: account not found: Este mensaje de error significa que la clave de autenticación de la solicitud se generó incorrectamente. Asegúrate de que tus cuentas están vinculadas, de que utilizas la correcta, que tiene suficientes permisos y de que todas las API necesarias están activadas. Consulta la sección siguiente para obtener una guía sobre cómo configurarlo todo. Observa la sugerencia sobre la actualización de la descripción del producto. 400, The purchase token does not match the package name: Este mensaje de error suele aparecer en las transacciones fraudulentas. Si lo ves durante las pruebas, asegúrate de que no estás utilizando un token de compra de la aplicación que pertenece a otra aplicación. 403, Quota exceeded for quota metric 'Queries' and limit 'Queries per day' of service 'androidpublisher. googleapis. com': Esto significa que se superó la cuota diaria de solicitudes de Google API. Por defecto, puedes ejecutar hasta 200. 000 solicitudes al día. Esta cuota puede aumentarse, pero debería ser suficiente para la mayoría de las aplicaciones. Si te encuentras con este límite, probablemente deberías volver a comprobar la lógica de tu aplicación y asegurarte de que todo es correcto. 410, The subscription purchase is no longer available for query because it has been expired for too long: Este mensaje de error aparece en las transacciones en las que la suscripción caducó hace más de 60 días. No es un mensaje de error real y no debería procesarse como tal. Transacción de suscripción  Si la validación fue exitosa, recibirás los datos de la transacción como respuesta. Datos de la transacción (para una suscripción): { "expiryTimeMillis": "1631116261362", "paymentState": 1, "acknowledgementState": 1, "kind": "androidpublisher#subscriptionPurchase", "orderId": "GPA. 3382-9215-9042-70164",... --- O quinto tutorial da nossa série é dedicado à implementação de compras em aplicativos para Android. A validação do lado do servidor (server-side) pode ajudá-lo a validar a autenticidade da compra. O dispositivo fará uma solicitação aos servidores do Google para confirmar se a compra foi realmente realizada e se é válida. Neste guia, vamos discutir como configurar a validação do lado do servidor para aplicativos (apps) Android.   Por que validar as compras? Deve-se salientar que a validação do lado do servidor não é obrigatória — as compras no aplicativo ainda serão realizadas sem ela. No entanto, há alguns benefícios significativos em relação à validação: Fazer o analytics avançado do pagamento, o que é particularmente importante no caso de assinaturas, uma vez que tudo o que acontece após a ativação não é processado pelo dispositivo. Sem o processamento da compra pelo lado do servidor, não é possível recuperar o status atual da assinatura e saber se o usuário renovou ou cancelou a assinatura, se ocorreu algum problema de pagamento, e assim por diante. Verificar a autenticidade da compra. Você deve se certificar de que a transação não é fraudulenta, e que o usuário realmente pagou pelo produto. Cruzar assinaturas em diferentes plataformas. Caso seja possível verificar o status da assinatura do usuário em tempo real, é possível sincronizá-la com outras plataformas. Por exemplo, o usuário que adquiriu a assinatura em um dispositivo iOS poderá utilizá-la no Android, na Web e em outras plataformas.   Conseguir controlar o acesso ao conteúdo do lado do servidor, o que o protege dos usuários que tentam acessar os dados sem assinatura, simplesmente fazendo solicitações ao servidor.   Segundo nossa experiência, a primeira vantagem, por si só, já é suficiente para configurar o processamento de compras no lado do servidor. Validação do pagamento Podemos resumir a validação do pagamento no Android com este esquema: Autenticação para solicitações da API do Google Play Developer Para trabalhar com a API do Google Play Developer, você deve primeiro gerar uma chave para assinar as solicitações. Primeiro, você deve vincular sua conta Google Play Console (onde você gerencia o aplicativo) à sua conta Google Cloud (onde você irá gerar uma chave para assinatura da solicitação). Depois que tudo estiver configurado, você deve conceder ao usuário direitos de gerenciamento de compras. Para descrever este processo, é necessário um artigo específico. Felizmente, já tratamos do assunto em um guia passo a passo que está disponível na documentação da Adapty.   Lembre-se que normalmente você deve esperar 24 horas ou mais depois de gerar uma chave para que ela seja ativada. Para evitar essa situação, basta atualizar a descrição de qualquer produto ou assinatura no sistema, o que ativará instantaneamente a chave.   Utilizamos a biblioteca oficial google-api-python-client (Biblioteca cliente da API do Google para Python) para trabalhar com a API do Google Play Developer. Esta biblioteca está disponível na maioria dos idiomas conhecidos, e eu recomendo usá-la, pois ela é compatível com todos os métodos que você possa precisar. Validação de transações de assinatura Ao contrário da validação do lado do servidor iOS, no Android, a assinatura e a validação de outros produtos podem ser implementadas usando uma variedade de métodos. Portanto, ao validar uma transação, é preciso saber se você está lidando com um produto ou com uma assinatura. Na prática, isto significa que se deve transferir estes dados do aplicativo móvel, assim como manter a bandeira no banco de dados caso seja necessária a revalidação do token. A segunda diferença mais importante é que enquanto cada transação tem seu próprio token no Android, todas as transações no iOS usam um segredo compartilhado (shared secret) específico do aplicativo para armazenar todo o histórico da transação. Isto significa que se você deseja restaurar as compras do usuário a qualquer momento, você deve armazenar todos os tokens de compra, ao invés de escolher apenas um token de forma aleatória. Para validar a assinatura, você deve usar o método purchases. subscriptions. get. Basicamente, trata-se de uma chamada para solicitação GET: https://androidpublisher. googleapis. com/androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token} Todos os parâmetros são obrigatórios: packageName: Identificador do aplicativo, por exemplo, com. adapty. sample_app. subscriptionId: Identificador da assinatura que deve ser validada, por exemplo, com. adapty. sample_app. weekly_sub. token: Token exclusivo da transação. Ele aparece assim que a compra é processada no lado do aplicativo móvel. Primeiro, vamos verificar as mensagens de erro às quais você deve prestar atenção para garantir que tudo funcione como planejado: 400, Invalid grant: account not found (400, Concessão inválida, conta não encontrada): Esta mensagem de erro significa que a chave de autenticação da solicitação foi gerada incorretamente. Verifique se suas contas estão vinculadas, se você está usando a conta correta com todas as permissões exigidas, e se todas as APIs necessárias foram ativadas. Consulte a seção abaixo e consulte um guia sobre como configurar tudo. Lembre-se da dica sobre a atualização da descrição do produto. 400, The purchase token does not match the package name (400, O token de compra não corresponde ao nome do pacote): Esta mensagem de erro é normalmente detectada em transações fraudulentas. Caso você a veja durante o teste, certifique-se de não estar usando um token de compra no aplicativo que pertence a um aplicativo distinto. 403, Quota exceeded for quota metric 'Queries' and limit 'Queries per day' of service 'androidpublisher. googleapis. com' ( 403, Cota excedida para a métrica de cota "Consultas" e limite "Consultas por dia" de serviço 'androidpublisher. googleapis. com') : Esse erro significa que a cota diária de solicitações da API do Google foi excedida. Por padrão, você pode executar até 200. 000 solicitações por dia. Pode-se aumentar o valor desta cota, mas ela deve ser suficiente para a maioria das aplicações. Caso você se depare com este limite, talvez seja melhor verificar novamente a lógica de seu aplicativo e garantir que tudo esteja certo. 410, The subscription purchase is no longer available for query because it has been expired for too long (410, A compra por assinatura não está mais disponível para consulta porque já expirou): Esta mensagem de erro aparece em transações para as quais a assinatura expirou há... --- 本系列的第5篇教程将致力于在安卓应用中实现应用内购买功能。来自 Adapty 的快速简单的独家教程。 服务器端(server-side)验证可以帮助您验证购买的真实性。设备将向Google服务器发出请求,以查明购买是否已实际发生,以及购买是否有效。 在本指南中,我们将讨论如何配置安卓应用程序的服务器端验证。 为什么需要验证购买 需要注意的是,服务器端验证不是强制性的——没有它,应用内购买仍然有效。不过也有一些显著的好处: 高级支付分析,这对订阅尤其重要,因为激活后发生的一切都不会被设备处理。如果没有服务器端购买处理,您将无法检索当前的订阅状态,也无法了解用户是续订了还是取消了订阅,是否存在任何支付问题,等等。 能够验证购买的真实性。您将确保交易不是欺诈,用户确实已经为您的产品付费。 跨平台订阅。如果能够实时查看用户的订阅状态,则可以与其他平台进行同步。例如,从iOS设备上购买订阅的用户将能够在安卓、网络和其他平台上使用。  能够从服务器端控制内容访问,通过简单地执行对服务器的请求来保护您不受那些未订阅却试图访问数据的用户的影响。  从我们的经验来看,第一个优势本身就足够建立服务器端购买处理。 支付验证 我们可以总结使用该方案的安卓支付验证: 对Google Play开发人员API请求的认证 如需使用Google Play开发人员API,您首先需要生成一个密钥来签名请求。首先,您必须将您的Google Play Console账户(在那里您管理您的应用程序)链接到您的谷歌云(Google Cloud)账户(在那里您将生成一个请求签名的密钥)。配置好一切后,您必须授予用户购买管理权限。这需要一篇专门的文章来描述这个过程。幸运的是,我们已经在Adapty文档中的步进式指南中介绍过了。  请注意,在生成密钥后,通常需要等待24小时或更长时间才能开始工作。为了避免这种情况,只需更新任何应用内产品或订阅的描述就能立即激活密钥。  我们使用官方的google-api-python-client库来使用Google Play开发人员API。这个库可用于大多数流行语言,我建议使用它,因为它支持您可能需要的所有方法。 订阅交易验证 与iOS服务器端验证不同,在安卓中,订阅和其他产品验证都是使用多种方法实现的。因此,在验证交易时,您需要知道处理的是产品还是订阅。在实践中,这意味着您将需要从移动应用程序传输数据,以及在数据库中保留标志,以防需要重新验证令牌。 第二个重要的区别是,虽然在安卓中每笔交易都有自己的令牌,但所有iOS交易都使用一个特定于应用程序的共享密钥(shared secret)来存储整个交易历史。这意味着,如果您希望能够随时恢复用户的购买,您需要存储所有购买令牌,而不是选择任意的单个。 如需验证订阅,需要调用purchases. subscriptions. get方法。基本上,它是一个GET请求调用: https://androidpublisher. googleapis. com/androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token} 所有参数都是必需的: packageName:应用程序标识符,例如com. adapty. sample_app。 subscriptionId:要验证的订阅的订阅标识符,例如com. adapty. sample_app. weekly_sub。 token:独特的交易令牌。一旦在移动应用程序端处理了购买,它就会出现。 首先,让我们看看需要注意的错误消息,以确保一切都能按预期进行: 400,Invalid grant: account not found:此错误消息意味着请求验证密钥生成错误。请确保您的账户是关联的,您使用的是有足够权限的正确账户,并且所有必需的API都已被激活。有关如何配置所有内容的指南,请参阅下面的小节。请注意关于产品描述更新的提示。 400,The purchase token does not match the package name:通常在诈骗性交易中会遇到此错误消息。如果您在测试时看到它,请确保您没有使用属于不同应用程序的应用购买令牌。 403,Quota exceeded for quota metric 'Queries' and limit 'Queries per day' of service 'androidpublisher. googleapis. com':这意味着已超过Google API请求的每日配额。默认情况下,每天最多可执行20万个请求。这个配额可以增加,但对大多数应用来说应该足够了。如果您遇到这个限制,您应该再次检查您的应用程序的逻辑,确保一切都是正确的。 410,The subscription purchase is no longer available for query because it has been expired for too long:此错误消息出现在订阅已过期60天以上的交易中。这不是一个实际的错误消息,不应该这样处理。 订阅交易  如果验证成功,您将接收交易数据作为响应。 交易数据(用于订阅): { "expiryTimeMillis": "1631116261362", "paymentState": 1, "acknowledgementState": 1, "kind": "androidpublisher#subscriptionPurchase", "orderId": "GPA. 3382-9215-9042-70164", "startTimeMillis": "1630504367892", "autoRenewing": true, "priceCurrencyCode": "USD", "priceAmountMicros": "1990000", "countryCode": "US", "developerPayload": "" } 如需了解用户是否可以访问应用程序提供的高级选项,即他们是否有活跃订阅,您需要: 检查startTimeMillis和expiryTimeMillis参数。当前时间应该在这两者之间。 此外,您还必须确保paymentState参数没有“0”值。这意味着订阅购买仍然悬而未决,因此,现在还没有必要授予用户高级功能访问权限。  如果交易具有autoResumeTimeMillis属性,则暂停订阅。这意味着在指定日期之前不应该授予用户高级功能访问权。 让我们看看订阅交易的关键属性: kind:交易类型。关于订阅,它总是有androidpublisher#subscriptionPurchase值。通过这个参数,您可以了解是在处理订阅还是产品,并相应地选择处理逻辑。 paymentState:付款状态。过期交易不存在此属性。可能的值是:0:本次购买还没有被处理。在一些国家,用户可以现场支付订阅费用。也就是说,用户将从他们的设备启动订阅购买,并在附近的终端支付。总的来说,这是一个非常罕见的情况,但您仍然应该记住。1:订阅已购买。2:订阅还在试用期(trial)内。3:订阅将在下一时期上调或下调。这意味着订阅计划需要更改。 acknowledgementState:购买确认状态。这是一个重要的参数,可以确认用户是否获得了他们所支付内容的访问权。“0”表示没有,“1”表示有。开发人员负责定义这个状态,这在移动应用程序和服务器端都可以完成。如果您在购买后3天内不确认,将自动退款。我建议实现这种逻辑:一旦接收到包含acknowledgementState=0的交易,服务器就会更改该参数。我将在下面说明如何做到这一点。  orderId:独特的交易标识符。每个订阅购买或续订都有自己的标识符,可以使用该标识符来了解是否已经在早些时候处理过该交易。每个续订标识符都有一个固定的前半部分,后面会追加两个点和续订(subscription renewal)次数(以0开始)。如果订阅激活时具有GPA. 3382-9215-9042-70164标识符,那么第一次续订将被识别为GPA. 3382-9215-9042-70164. . 0,第二个是GPA. 3382-9215-9042-70164. . 1,等等。通过这种方式,您可以构建交易链并跟踪续订次数。 startTimeMillis:订阅开始日期。 expiryTimeMillis:订阅过期日期。 autoRenewing:显示订阅是否要续订到下一阶段的标志。 priceCurrencyCode:三字母格式的购买货币,例如USD。 priceAmountMicros:买价。要得到正常的价格值,请将该值除以1000000。也就是说,1990000实际上意味着1. 99。  countryCode:两字母格式的购买国家,例如US。 purchaseType:购买类型。这个密钥在大多数情况下都不存在。它仍然很重要,因为它可以帮助您了解是否在沙盒环境中进行购买。可能的值是:0:购买是在沙盒环境中完成的,因此,它不应该包含在分析数据中。1:这次购买是用优惠码完成的。  autoResumeTimeMillis:续订日期。它只出现在之前暂停的订阅中。如果存在此参数,则不需要在给定日期之前授予用户高级功能访问权。 cancelReason:不续订的原因。可能的值是:0:用户取消订阅自动续订。1:订阅被系统取消。这通常是由计费问题(billing issue)引起的。 2:用户切换到不同的订阅计划。 3:开发人员取消了订阅。 userCancellationTimeMillis:订阅续订取消(subscription renewal cancellation)数据。只有当cancelReason为0时,它才会出现。订阅仍然可以是活跃的——要确保这一点,请参阅expiryTimeMillis参数的值。 cancelSurveyResult:存储订阅取消(subscription cancellation)背后原因的对象,如果用户对该问题留下任何反馈,将显示该原因。 introductoryPriceInfo:存储介绍性价格数据的对象。例如,这可以是1个月的五折特价优惠。 promotionType:用于激活订阅的优惠码类型。可能的值是:0:一次性优惠码。1:可由多个客户运用的自定义优惠码。这类代码通常用于博客伙伴关系。  promotionCode:用于激活订阅的自定义优惠码。一次性优惠码不存在此参数。  priceChange:存储未来价格变化数据,以及用户是否同意该数据的对象。  订阅确认 如前所述,如果在购买后3天内仍未确认订阅,它会被自动取消并退款。。说实话,我不太理解这背后的逻辑,我也从未在任何其他支付处理系统中遇到过这种情况,包括iOS系统。不过,如果您收到一个包含acknowledgementState=0的交易,您就要确认订阅。 为此,您需要调用purchases. subscriptions. acknowledge方法。这个方法执行了一个POST请求 https://androidpublisher. googleapis. com/androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:acknowledge 参数与请求验证相同。如果成功执行请求,订阅将得到确认,这意味着您不会损失钱。  如果订阅还没有被完全购买,没有必要确认。  订阅续订取消、撤销、退款和延期 除了订阅验证和确认外,Google Play开发人员API还可用于其他订阅操作。应该注意的是,这些是相当罕见的,除了续订外,均由Google Play Console支持。我仍会列出它们,让您对API解决方案的范围有一个大致的了解。所有这些请求都需要与前面提到的方法相同的参数(即packageName、subscriptionId和token)。 续订取消。purchases. subscriptions. cancel方法。它会取消所选订阅的自动续订。但是,订阅在当前计费期间仍然可用。 订阅退款(Subscription refund)。purchases. subscriptions. refund方法。它会为订阅退款。但用户仍将保留订阅访问权,并将在下一阶段自动续订。在大多数情况下,您还应该在发出退款时撤销订阅。 订阅撤销(subscription revocation)。purchases. subscriptions. revoke方法。它会立即取消订阅,这意味着用户将无法访问高级功能。订阅不续订。此方法通常与发出退款一起调用。 订阅购买延期(subscription purchase deferral)。Purchases. subscriptions. defer方法。它将订阅扩展到指定日期。在请求中,指定订阅到期日期以及要替换它的日期。后者必须导致比前者更长的订阅期。 产品(不是订阅)验证 产品验证类似于订阅验证。您需要调用purchases. products. get方法来执行GET请求。 https://androidpublisher. googleapis. com/androidpublisher/v3/applications/{packageName}/purchases/products/{productId}/tokens/{token} 通过查看上面列出的示例,我们已经熟悉了所有这些参数。 交易数据(用于订阅): { "purchaseTimeMillis": "1630529397125", "purchaseState": 0, "consumptionState": 0, "developerPayload": "", "orderId": "GPA. 3374-2691-3583-90384", "acknowledgementState": 1, "kind": "androidpublisher#productPurchase", "regionCode": "RU" } 产品交易包含的属性比订阅交易要少得多。让我们来看一些重要的: kind:交易类型。在产品中,它总是有androidpublisher#productPurchase值。通过这个参数,您可以了解是在处理订阅还是产品,并相应地选择处理逻辑。 purchaseState:付款状态。请注意,这里的键值与订阅的paymentState参数不同。可能的值是:0:购买已完成。1:购买已取消。这意味着该购买正在等待,但用户从未为其付费。2:购买正在等待。在一些国家,用户可以现场支付订阅费用。也就是说,用户将从他们的设备启动订阅购买,并在附近的终端支付。总的来说,这是一个非常罕见的情况,但您仍然应该记住。 acknowledgementState:购买确认状态。这是一个重要的参数,可以确认用户是否获得了他们所支付内容的访问权。“0”表示没有,“1”表示有。开发人员负责定义这个状态,这在移动应用程序和服务器端都可以完成。如果您在购买后3天内不确认,将自动退款。我建议实现这种逻辑:一旦接收到包含acknowledgementState=0的交易,服务器就会更改该参数。我将在下面讨论如何做到这一点。  consumptionState:产品消费状况。这就是iOS所称的“消费品”。它是在移动应用程序端定义的。如果它的值为“0”,则意味着产品没有被消费;如果它是“1”,则已被消费。如果您出售的是应用的终身(lifetime)访问权或某些特殊的高级功能,那么这样的产品就不应该被消费,也就是说,它们应该具有“0”的状态。如果您出售的是用户可以多次购买的货币,那么这种产品就应该被消费,也就是说,它们应该具有“1”的状态。consumptionState=0表示该产品只能购买一次,而consumptionState=1表示可多次购买该产品。 orderId:独特的交易标识符。每个订阅购买或续订都有自己的标识符,可以使用该标识符来了解是否已经在早些时候处理过该交易。 purchaseTimeMillis:购买日期。 regionCode:两字母格式的购买国家,例如US。请注意,此参数的名称与订阅中的名称不同,订阅中的名称为countryCode。  purchaseType:购买类型。这个密钥在大多数情况下都不存在,但它仍然很重要,因为它可以帮助您了解是否在沙盒环境中进行购买。可能的值是:  0: 购买是在沙盒环境中完成的,因此,它不应该包含在分析数据中。1: 这次购买是用优惠码完成的。 2: 为目标操作授予购买,例如观看应用内部广告来代替付费。 如您所见,产品验证与订阅验证非常相似。不过,还有几点需要注意: 虽然价格不退,但这对分析来说非常方便。 purchaseState参数的值与订阅中发现的paymentState参数的值有显著不同。如果不加以解释,会导致bug。  regionCode被返回,即使订阅的名字是countryCode。 就像订阅购买一样,产品购买也需要得到确认。为此,调用purchases. products. acknowledge方法,该方法将执行一个POST请求 https://androidpublisher. googleapis. com/androidpublisher/v3/applications/{packageName}/purchases/products/{productId}/tokens/{token}:acknowledge 如果购买还没有完成,就没有必要确认了。 订阅和产品的退款跟踪 如果不考虑退款,就不可能有高质量分析。不幸的是,退款数据既没有出现在交易中,也没有作为一个单独的事件(event)提示,因为它在iOS中工作。如需接收退款交易列表,您需要定期调用purchases. voidedpurchases. list——例如,每天调用一次。这个方法将执行一个GET请求: https://androidpublisher. googleapis. com/androidpublisher/v3/applications/{packageName}/purchases/voidedpurchases 作为对请求的响应,您会收到所有已退款交易的列表。我建议通过orderId参数在数据库中搜索交易,而不是通过purchaseToken参数。首先,这花费的时间更少。其次,所有续订都将共享同一个令牌,您只需要获取最近的一个即可。 交易的服务器通知(Server notification) 服务器通知(实时开发人员通知)可以帮助您了解在您的服务器上,Google端发生的几乎是实时的事件。一旦这些配置完成,您就会收到关于新购买、续订、付款问题等的通知。这可以帮助您收集更好的分析,并让订阅者状态管理更容易。 如需开始接收服务器通知,您需要创建一个Google Cloud Pub/Sub主题,它会向您所需的地址发送通知。应该在Google Play Console的盈利设置部分说明这个主题。有关包含截图的详细指南,请参阅Adapty文档。 服务器通知: { "message": { "data": "eyJ2ZXJzaW9uIjoiMS4wIiwicGFja2FnZU5hbWUiOiJjb20uYWRhcHR5LnNhbXBsZV9hcHAiLCJldmVudFRpbWVNaWxsaXMiOiIxNjMwNTI5Mzk3MTI1Iiwic3Vic2NyaXB0aW9uTm90aWZpY2F0aW9uIjp7InZlcnNpb24iOiIxLjAiLCJub3RpZmljYXRpb25UeXBlIjo2LCJwdXJjaGFzZVRva2VuIjoiY2o3anAuQU8tSjFPelIxMjMiLCJzdWJzY3JpcHRpb25JZCI6ImNvbS5hZGFwdHkuc2FtcGxlX2FwcC53ZWVrbHlfc3ViIn19", "messageId": "2829603729517390", "message_id": "2829603729517390", "publishTime": "2021-09-01T20:49:59. 124Z", "publish_time": "2021-08-04T20:49:59. 124Z" }, "subscription": "projects/935083/subscriptions/adapty-rtdn" } 我们主要关心包含用base64编码的交易数据的数据键。messageId键可以用于消息重复删除,这样您就无需处理重复的消息了。  下面是服务器通知中的一个交易: { "version": "1. 0", "packageName": "com. adapty. sample_app", "eventTimeMillis": "1630529397125", "subscriptionNotification": { "version": "1. 0", "notificationType": 6, "purchaseToken": "cj7jp. AO-J1OzR123", "subscriptionId": "com. adapty. sample_app. weekly_sub" } } packageName键可以帮助您了解此事件属于哪个应用程序。subscriptionId键会告诉您涉及哪个订阅,而purchaseToken可以帮您找到特定的交易。有了订阅,您就始终都能在续订链中找到最后一个交易,因为此事件将属于该交易。notificationType键包含事件类型。在我看来,这些是最方便订阅的: (2)SUBSCRIPTION_RENEWED:订阅已续订成功。 (3)SUBSCRIPTION_CANCELED:用户已禁用订阅自动续订功能。如果禁用了自动续订,则需要尝试将用户恢复为活跃订阅者。 (5)SUBSCRIPTION_ON_HOLD,(6)SUBSCRIPTION_IN_GRACE_PERIOD:由于支付问题,订阅无法续订。您应该通知用户,这样他们的订阅才不会被自动取消。 (12)SUBSCRIPTION_REVOKED:订阅已被撤销。这意味着用户将失去对订阅服务之前授予的高级功能的访问权。  在产品(不是订阅)中,您会收到oneTimeProductNotification,而不是subscriptionNotification键。它还将包含sku键而不是subscriptionId键。此外,您只会收到2种产品事件类型: (1)ONE_TIME_PRODUCT_PURCHASED:成功的产品购买。 (2)ONE_TIME_PRODUCT_CANCELED:产品购买被取消,因为用户还没有付款。 结论 服务器端验证会增加您为应用收集的分析。这让欺诈者更难获取优质内容,并可用于实现跨平台订阅。但是,服务器端验证可能需要相当长的时间来实现,尤其是在必须要有高度数据准确性的情况下。为了提供高质量数据,您需要考虑大量的附加情况,如订阅升级、订阅跨级、试用期、优惠推广(promo offer)和试销优惠价(intro offer)、宽限期(grace period)、退款等。您还必须知道并解释所有的政策细节,比如Google对续订一年以上的订阅只收取15%(而不是30%)的佣金。 --- Andrey Rebrov, the CTO & Co-founder of Scentbird, talks on creating a perfume subscription business and more. Subscribing to different online and mobile services has become commonplace, but what about subscribing to physical goods? How does it differ from subscribing to online content and how difficult is it to start such a business? In the 17th episode of the SubHub podcast we talk to Andrey Rebrov, the CTO & Co-founder of Scentbird. He shares his experience in starting a perfume selling company that works by subscription, behind the scenes of the financial processing, and major differences between subscriptions to physical and digital goods. Listen to the episode in Russian or read the most interesting parts below in English. SubHub by Adapty. io · SubHub Podcast #17 – Андрей Ребров (Scentbird) First steps and starting Scentbird Nikita Maidanov: This episode is going to be unusual because we used to talk to guests from the mobile market, while Andrey has a completely different, but nevertheless, very interesting story. Please, tell us about Scentbird and how it all started. Andrey Rebrov: Scentbird is an American perfume and cologne subscription service. It all started for me quite interestingly, unusually, because I’m actually a developer. I worked for large enterprises for a very long time. But once I joined a small consulting company, where, at some point, one of the clients asked me to conduct an internal hackathon. I liked such things and so, by accident, I ended up at the AngelHack hackathon in Moscow. I met a couple of interesting guys there, we came up with some kind of an app, and took seventh place – it was fun. And then two months later, one of the hackathon organizers, Sergey Gusev, approached me and said that he and his business partner Masha Nurislamova were looking for a technical director in a startup that would help people buy perfume online with less risk. And that’s how it all started. It was August 2013, but we were far away from the subscription model back then. The first year we used the Try Before You Buy model. We knew that a similar approach was used by Warby Parker, an American company that produced spectacle frames and glasses. They didn’t build their business through a usual for their market model, instead they became a vertically integrated company that came up with a fairly unique model: they sent their clients up to five eyeglass frames that the person could try on. However, they didn’t have to pay the full amount at once, only some kind of small deposit. The customer could take what they liked and send back the rest. So, inspired by this approach, we began to make the first version of Scentbird, which worked exactly the same. That is, we sent up to three bottles of perfume along with the samplers that we poured in Sephora. One Sephora place even banned us from getting in, as we would come there every day and collect up to 10-15 samples. Nikita Maidanov: Did you personally come and poured samples at Sephora?   Andrey Rebrov: Yes, Sephora is a safe place to come if you need perfume samples. They'd pour you a small bottle which is enough to use for two or three times. But apart from the samples, we also had a perfume recommender, which would select perfumes for the client based on their preferences and tastes. And the development of this recommender was actually another reason why I was interested in joining this startup. Machine learning was getting popular at that time, so I decided to hop in with creating the algorithm. But after a year of trying to make this business work – it didn’t. It didn’t work out in Russia, due to mentality and cultural aspects – sometimes the bottles were simply stolen, which was not the case in the US, though. And then, after two and a half months of being in the accelerator, every mentor would tell us how stupid our model was and that they, and their friends, would never invest in us. So we had to change something. So we started having deeper interviews with our clients and noticed a recurring thing: people have five or six half-empty bottles of perfume at home. They want to try new scents, as every year there appear about a thousand new titles, but they feel guilty of having the previous bottles left unused, especially considering that one bottle usually costs $100-$300. That’s how we came up with the idea of repackaging perfumes and sending people only a monthly supply. Sounds simple, but there was always a risk of infringing copyright or a trademark. Even our mentor confirmed that should we become a little more visible on the market, the brands would start writing to us asking to shut down. Vitaly Davydov: You mean you’d just go to a store or a distributor, buy a large batch of perfume there, open all the bottles and pour into your “White Label“ bottles? Andrey Rebrov: Yes, that's exactly what happened. We bought from wholesalers. At first, when there were very few subscribers, we couldn’t even open the lids properly, had to use the pliers. But usually we re-sprayed the perfume from a big bottle to a smaller one, because if the bottle is opened, all the spirits and essential oils start disappearing. Depending on the formula of the perfume, they fade at different speeds. But as we expected, a year later we began to receive the Cease and Desist letters from the brands, stating that we must either remove their perfume from our site or we’d be sued for trademark infringement. Some scents we had to remove, but some we managed to keep by coming to mutual agreements. So we were caught somewhere in the middle. But some time soon, brands began approaching us on their own and we started signing official contracts. So by now, the majority of fragrances presented on our site are provided by the official brands. They usually bring a tank with the fragrance to our storage in New Jersey where... --- Learn about new features added in Adapty in November 2022 OneSignal and Pushwoosh integrations We open a new chapter of Adapty integrations with two powerful messaging platforms: OneSignal and Pushwoosh. Build customized communication for various user cases, remove barriers to purchasing, retain customers, upsell, and more. For example, you can send a targeted push notification with a special offer to the user who has just canceled their subscription. To learn how to set everything up and more, please read the docs. Adjustable tables Adapty provides many metrics, but you may need to view only a few. We want data to work for you exactly the way you want it. With new tables, one can manage columns, hide, and reorder them to form a custom view according to specific targets and workflow. The configuration is saved for different users separately, so your team members may adjust data independently for various roles’ purposes. Adapty newsfeed Our backlog is formed as a result of attentive work with customer requests. We deliver product updates rather fast and want you to keep track of new cool features to start using them as soon as they appear. So we’ve launched an interactive newsfeed where you get notified about the latest updates, can rate them, and leave your feedback. Huge thanks to those who already wrote to us through this feed. Some of the requests are already live as product amendments! Please subscribe to the updates and don’t hesitate to participate.   SDK 2. 1  We’ve released a second major version of Adapty SDK this November. After installing the latest release, you'll get new integrations, optimized speed, updated structure with less chance of an error. Check the full description and files on our GitHub. --- The 6th issue of the paywall newsletter containing dark patterns, smart design, a personalization example and more. This is the 6th issue of the paywall newsletter containing dark patterns, smart design, a personalization example and more. Paywalls of the issue are commented by... Artem Smirnov, Head of Marketing at Union Apps, a mobile non-gaming app publisher dedicated to converting subscription-based apps into full-scale profitable business. Rise: the dark pattern of offering a free option General impression The paywall has all the essentials.  It seems like you’re choosing between a 7-day free trial and a 1-month paid subscription, when in fact, both of the options are annual.  The difference is that the Free one gives you a 7-day trial first, and the 1-month variant offers a lower price for the first month, but in the end you’ll have to pay annually for any of them. Though, if you linger a little longer on the paywall, you’ll see a special offer with a 14-day trial. These guys are in the top-100 grossing Health & Fitness apps in the US. I wonder how they passed the Apple review with such a paywall. Anyway, they’re masters of dark patterns, so I’d recommend checking on their future paywalls for sure. Pros: “Recommended By” as well as “Join 1 million people” are great social proofs that elevates the users’ trust. We tested such things ourselves on landing pages and they sure worked. “Money Back Guarantee”.  The refund is actually carried out by Apple, not the app. This element is added to lower your hesitation and make the purchase. Hiding real prices surely contributes to the higher conversion rates on the paywall, so I would use something like that. It’s a hard paywall – you can’t go past it. It’s a great solution that definitely improves the conversion to purchases. Apple forbids making paywalls without a closing button, but we understand it a bit differently – you can’t deprive the user of moving from your paywall screen, including backwards. Which means you can make a hard paywall and put the “go back” arrow to let them go to the previous screen, but never let them move forward to the app’s content. Cons: The trial reminder is on by default.  I think it’s better to leave it off initially, so that the user has to do the job of turning it on. Rise: Energy and Sleep Tracker Breeze: name personalization on the CTA button General impression The look of this paywall is a 2022 trend. Getting notified about the trial ending on the 5th day seems pretty tempting, but in reality, not all apps keep this promise.  The first glance impression is that I don’t understand right away how much I’ll have to pay, but I’m ready to take the trial.  Placing the price higher above the CTA button is a nice dark pattern. Pros: Look at the CTA button – it has the name personalization.  Beautiful! There's an additional intensifier under the button, saying “No payment now! ”. Explanation of how the trial works is an effective persuasion method for any product. Cons: There's a closing button on the paywall.  I’d turn it into a hard paywall to increase the conversion rates. Breeze Heartify: a video paywall with a catchy button General impression A video paywall with good color contrast, where the video explains how the app works. There’s a red “Continue” button with an emoji, which really makes you want to tap it.  The design is smart: the button grabs your attention first, then you notice the video, the title text, the price, and the grey text above it in the end. Pros: The “Continue” button surely increases the conversion. The price is placed within the text, not near the button, which also contributes to the higher conversion rate. The overall design – the attention is grabbed to the right places. Cons: No social proof.  It would be great to add something like “X number of users are already enjoying the app”. Not a hard paywall.  I’d turn it onto a hard one to increase the conversion to activation Heartify Muscle Booster: a tricky special deal General impression It's clearly a hard paywall with a blinking “Continue” button.  It’s pretty obvious the developer promotes the 3-month and 1-year subscriptions, by highlighting them with the “Popular” and “Best Value” tags.  There’s also an interesting “Special Deal” option, which hides a 6-month promo offer behind a 3-month subscription. The picture above has been thoroughly chosen: the same assets are used for the user acquisition creatives.  It shows that using the same assets for creatives and paywalls is a great idea. Pros It’s a hard paywall.   The most profitable for developer options are highlighted. The “Continue” button instead of a button with a price. 3+3 promo offer (first payment for 6 months, then as a 3 month subscription). Basically, they sell a 3-month subscription higher than the original 3-month subscription ($39. 99 vs $29. 99). Users are often inattentive, so when purchasing the 6 month offer, they may neglect or forget that after the 6-month period they’ll have to pay for the chosen offer as a 3 month subscription for $39. 99. Cons Social proof is missing.  It would be good to add the user feedback underneath the title text. Switch the images with the photos of real people in the before/after format – it’s an effective approach. Muscle Booster Nomorobo: a 'two months free' trick General impression This paywall looks rather weak:  All the attention is drawn to the logo. There’s too much empty space. The slider-switching points are too close to the black block. If we proceed to the next screen, we’ll see a hard paywall with 2 subscription options.  The annual one says “2 months free”, when in fact, there’s no 2-month trial, it’s just their way to show the benefit the user gets from paying for the whole year – a nice dark pattern. Pros Hard paywall – the user can move only to the previous screen. Non-existent 2-month discount for the annual subscription. Cons Poor design and layout (different fonts, too much space). Description of how the auto-renewed feature works (you don’t have to mention it anymore). --- Comparing reports, features, and pricing of the two popular analytics systems. In order to understand how your product, and business in general, performs, it’s vital to get the handle of the processes that go in between the stages of creating the product and getting paid for it. That’s what analytics systems are for: they help you understand the customer behavior, build predictions, and, as a result, significantly affect the success of your product by using all the data gathered. But when it comes to choosing the right one for your business, it may not be that easy. There are many popular analytics systems on the market that at the first glance seem to offer the same tools and features, that makes it difficult to find which one would work best for you. In this article we’ll take a look at two of the most popular solutions for working with analytics – Amplitude and Mixpanel. These systems are widely used by different types of companies, from startup mobile apps to huge e-commerce platforms, so you’re sure to find which one suits you most. It’s not by chance these two systems are popular with the customers, as they provide accurate analytics, present user-friendly reports, and have many tools for advanced exploration. However, there’s always a place for difference, and that’s what we’ll try to focus on today. Let’s find out what makes these two systems unique, and how to make the right choice. Introduction to Mixpanel Mixpanel is a cross-platform analytics system that offers much more than just data analysis. It’s an all-in-one service that works great with analytics, but at the same time provides you with push notifications, marketing automation, and even CRM. As an analytics system, it perfectly tracks all the user events (e. g. sign-ups, page views, clicks, transactions, etc. ) and presents them in user-friendly data reports. The analytics gathered can be used to create funnels and user cohorts for deeper understanding of your user base. Mixpanel was initially focused on mobile app analytics, meaning that everything concerning gathering data from your subscription-based app should work just fine, which adds points to it as a service mobile app developers should choose.   General view of Mixpanel Introduction to Amplitude As opposed to Mixpanel, Amplitude's initial focus was on presenting the deepest and most precise product analytics, and so it remains to this day. You won’t find any notifications or marketing tools here – only quality reports of all kinds. The depths of the event-based data tracked you can dive in is truly remarkable. The downside to it is that Amplitude requires a lot of data to work properly, otherwise your results may be rather inaccurate. That’s why this analytics system is usually popular with huge businesses and enterprises that have at least several tens of thousands of MAU (monthly active users) and want to be in full control of their customer journey. General view of Amplitude Differences Between Mixpanel and Amplitude Based on what we’ve talked about in the introduction parts, you probably get the idea that these two analytics systems share some things in common, but sure have distinctive features that differentiate them from one another. So let’s have a look at what makes them unique and different. Reporting and general workflow Let’s face it, working with loads of data and graphs may be overwhelming. So for some it may be rather important to have a platform that doesn’t get you all confused and lost in numbers. In this case, Mixpanel is a winner: it provides you with a number of basic dashboards by default and allows you to create custom ones after you’ve got used to the interface.   Insights report overview in Mixpanel Amplitude, on the other hand, requires beforehand customization, which may be confusing for someone who’s new to the analytics world. But in its defense, Amplitude has way more flexibility and advanced reporting capabilities that we’ll talk about later. Event segmentation in Amplitude Extra tools and integrations As we’ve already mentioned, Mixpanel is not just a reporting system, it’s a full-fledged platform that, apart from just showing data, allows you to take certain actions with it. Here’s the list of what can be found only in Mixpanel: Integrations with HubSpot, Salesforce, and Zapier. Marketing automation suite that practically turns Mixpanel into a CRM.   Built-in notifications (via SMS, email, or push). A/B Testing for mobile apps, although providing mostly basic functionality. Mixpanel is a clear winner in this “arms race”, however, we once again see that Amplitude stands its ground in being the analytics system only, without trying to spray itself too thin, which is still appreciated. Main and advanced reports In this one we have to speak about similarities first, as the core reporting features in the two systems are basically the same. Both Mixpanel and Amplitude offer detailed reports on Segmentation (segment your data by certain user or event properties, like age, location, etc. ), Funnels (check what’s going on at every stage of the buying cycle), and Retention (see the user engagement over a particular time period). All of them can be visually presented in the way convenient to you, let it be tables, bars, or something else. So these main reports are more or less similar for both systems, maybe with slight deviations.   Even some of the advanced reports look similar, just named differently: Flows, Signal, Impact, and Cohorts for Mixpanel, Pathfinder, Compass, Impact, and Cohorts for Amplitude, correspondingly. Flows in Mixpanel Pathfinder in Amplitude However, this is where Amplitude gets far ahead of its competitor with much more to offer in terms of deeper advanced reports. Here are the most popular ones: The Lifecycle chart that shows how your product’s user base grows over time. In this report, your users are broken down into subgroups: new, current, resurrected, inactive, and dormant. The Personas chart that divides users into separate clusters based on the similarities of their event behavior. This chart is a more advanced version of the behavioral cohort, but in this case, there's no explicit, pre-specified rule... --- Announcement on the next investement step for Adapty. It’s Vitaly, a founder and CEO of Adapty. We started Adapty in early 2020 with the mission to help app developers and marketers make profitable subscription apps. We bootstrapped with my partners, Kirill and Dima, and eventually raised a small pre-seed in late 2021. Now I’m happy to announce the next step in our company – a full-size seed round led by Surface VC. Adapty is a team of 40 that’s still growing. Unlike other solutions on the market, we develop tools, such as paywall A/B testing, to help 3k apps of our clients grow subscriptions as easily as possible. We’ll invest the money from the round into helping app developers even more by introducing means for proper understanding of their future revenue and advancing their monetization model with the focus on the existing users. Want to join us? Explore the job opportunities here. --- Considering Firebase's free A/B testing solution to run your app paywall A/B tests and personalization experiments? Read this first. Backed by Google, Firebase is an app development platform that offers several tools to help creators build Android, iOS, and web apps. Because Firebase also features an A/B testing functionality, app makers can use it to test different app experiences and find the most optimal ones. While Firebase’s A/B testing functionality – which is still in Beta, by the way – can be used for A/B testing mobile app paywalls too, its many limitations become obvious once you try doing the same. Why? Because paywall experiments are a specialized kind of testing, as we’ll see in this post. In today’s article, we’re going to look at: How Firebase A/B testing works for general mobile app experience testing vs. paywall testing (and why it’s not designed for paywall testing from the ground up). What Firebase’s A/B testing functionality’s fundamental limitations are when testing paywalls (analytics! ). How Firebase’s in-built segmentation capabilities fall short for running targeted paywall experiments. And why you’d want to use a dedicated mobile app paywall A/B testing solution like Adapty over Firebase to power your paywall experimentation program. Let’s get started. 1. Firebase wasn't designed for mobile app paywall A/B testing In its documentation, Firebase explains how its A/B testing "gives you the power to test changes to your app’s UI, features, or engagement campaigns to see if they actually move the needle on your key metrics (like revenue and retention) before you roll them out widely. " As its documentation highlights, Firebase A/B testing can help you run experiments inside your app and comes in handy for many use cases. You can use it to:  Test and improve your product experience  Find ways to re-engage your users by using the Notifications composer  Safely roll out new features  As you can see from how they put it, Firebase’s experimentation capabilities are geared more towards helping you 1) build a better product (app! ) and 2) improve your messaging. Firebase's A/B testing functionality’s use cases only become clearer when you see its case studies. Firebase's A/B testing success stories mostly only demonstrate the solution's focus on helping ship better apps rather than enabling seamless paywall experimentation programs (which are an essential for app businesses). While, of course, you can test paywalls with Firebase, neither Firebase’s A/B testing landing page nor its documentation mention paywall testing even once. All of this goes on to show how, by design, paywall testing hasn’t been a focus area for Firebase's A/B testing solution. With Firebase A/B testing, paywall testing is “just another use case. ” Why does this limitation matter? When you use Firebase to run a paywall experiment, it reflects almost everywhere that it’s a general-purpose mobile app A/B testing tool. Setting up a paywall test, too, takes additional steps with Firebase. For example, to set up a paywall A/B test with Firebase, you need to: Sign up for Firebase. Integrate the Firebase SDK inside your app. Integrate the Google Analytics for Firebase SDK inside your app. Set up Analytics. Codify your paywall (or paywalls) inside Firebase. Find out how you can codify the different revenue data points (via custom events in Google Analytics) that you’d like to collect. (This step needs you to set up dozens of events for capturing your desired data with custom coding! We’ll zoom in on this in just a bit. ) Launch your experiments. Dig into Analytics and see what you managed to capture. (You should understand how custom reporting works for this. ) Now compare this setup with how it works in a proper paywall experimentation solution like Adapty. For instance, with Adapty you: Sign up for Adapty.   Integrate Adapty’s SDK inside your app.   Codify your paywall (or paywalls) inside Adapty.   Launch your experiments. Access Adapty’s accurate data reports full of actionable insights – capturing everything you need to power your app’s financial decisions right out of the box. A specialized paywall A/B testing, experimentation, and personalization solution like Adapty fastracks your paywall experimentation program. Testing new pricing plans, subscription lengths, and promos – and pretty much everything that lives on your paywall – is as easy as one-two-three.   Note: This isn’t a limitation of Firebase... it’s just that it’s not a paywall testing or experimentation solution.   While we’re at it: A lot of times, when app makers use Firebase to build their app’s backend infrastructure, they add an SDK like Adapty to it. Why? Because solutions like Adapty offer an almost plug-and-play in-app purchase infrastructure to help developers sell in-app purchases like subscriptions. Even with Adapty’s free plan, you can launch in-app purchases and monetize your app within a day. 2. Insufficient data reporting for paywall testing Firebase's additional "Analytics" step in paywall testing We touched upon this earlier. But let’s look at it in detail now. Because Firebase can’t answer all your money questions by default, running a Firebase paywall experiment needs you to codify not just your paywall inside Firebase but also set up a series of analytics events to capture all the data you want your paywall experiment to capture.   Said another way: You need to dedicate a host of resources for coding your Google Analytics events to gather the necessary data. Here’s how it works. First up, Firebase makes it clear that you need a bunch of 1) “recommended events” and 2) “custom events” to generate meaningful app data. All these, as Firebase notes, “require some implementation in order to see them in Analytics. ” Read: Custom coding. Under recommended events, you have events like refunds, earning or spending virtual currency, and selecting a promotion. Firebase recommends that you set these events up in your account but doesn't enable tracking them by default as they "require additional context to be meaningful. " And custom events can take pretty much any form. This is any data that you’d like to collect. If you can code it as an event, you can collect it.   With Google Analytics for Firebase, Firebase lets you set up... --- Learn about new features added in Adapty in October 2022 Comparison in charts What can be more informative than observing charts with advanced filters and grouping? Of course – comparing results with the previous period. The actual data is one of the best possible benchmarks for further development and growth, so please feel free to use this for measuring your progress. A nice addition is that now you can choose the type of chart. Bars, lines, and areas are available in the drop-down above.   Paywall metrics dashboard Growth teams constantly improve conversions by testing new paywalls. Now you can see the results of different paywall versions in one chart together with the core metrics dashboard. Customize both the chart and the dashboard as you like, and view all the necessary info just with one glance. Remote config table and the Screenshot feature Adapty users test dozens and thousands of paywalls in a row. We want to make this process easier to manage. So the first update is the remote config table view. It's formed row by row with the auto check of value types making the process more like low-code and preventing you from making mistakes, especially if one corrects the existing JSON.   In addition to this, as a second update supporting our paywall management, we present the Screenshot feature. You may upload a picture of a paywall which may be a screenshot from your actual app build or a design asset. The main goal is to have this picture as a reference that should remind you of what the layout looks like. It will be displayed on the paywall editing page and as a pop-over in the list of paywalls.   --- Here's a step-by-step guide on mobile app paywall A/B testing that shows you everything you need to run winning mobile app paywall A/B tests and a quality experimentation program. One of the best ways to improve your app business's bottom line is to begin with paywall optimization.   Paywall optimization – or using experiments to optimize your paywall conversions – helps with both your business’s short- and long-term goals. For example, you can generate some quick capital if you experiment with launching a new offer. By testing different subscription plans, you can redistribute your app's customer base so that you look at more revenue in the long term. Likewise, experimenting with varying lengths of subscriptions can help you maintain a good cash flow for sustaining your app business. At Adapty, we power paywall tests for thousands of apps, and we've seen businesses reach all kinds of goals via paywall experiments. And we can tell you one thing: Running an effective paywall experimentation program (one that results in continuous and sustainable growth) comes down to running quality experiments. In today's article, we'll see a step-by-step process of how you can plan, implement, and run experiments (that drive real growth) on your paywalls. But first, let's see a quick primer on paywall A/B testing. What is mobile app paywall A/B testing? A mobile app paywall A/B test is an experiment where an app uses two paywalls (“A” and “B”). Some percentage of the users see paywall A (or the A version). The A version is the original paywall, also called the “control. ”  The remaining users see version B (the “challenger”):  Optimizers observe the performance of both versions, and the one that generates the maximum revenue is the winner. This version gets rolled out for all users at this point. Using A/B testing, mobile app businesses can optimize their paywall designs, copy, and products (including offers) to generate the most revenue possible.   Let’s now look at a tested 5-step process to help you run winning paywall experiments. Steps to get started with mobile app paywall A/B testing (We'll be using Adapty – obviously! – to run our A/B tests! ) Researching Hypothesizing Creating test builds Testing Analyzing Here’s zooming in on each. Researching Researching is the first step to running successful paywall experiments. Using research, you can learn 1) why users convert on your paywall and 2) why they don't. Paywall A/B testing requires both qualitative and quantitative research. First comes qualitative research which helps you understand how users feel about your paywall design, copy, and products. This, in turn, helps you test different approaches to these elements to find the ones that connect the best with your audience. For example, the user testing qualitative research method lets you get "real" users to try your paywall. So if you've built a budgeting app for millennials, you'd recruit a group of millennials to check out your paywall and ask them if they think the paywall inspires them to convert. If multiple users report that they find the plans “too expensive,” your pricing may be a problem. You can test newer and more user-friendly pricing plans based on this finding.   Interviewing your actual current “real” users also gives invaluable insights into what got them to take up a trial or subscription or make a purchase on your paywall. If 80% of your newly upgraded users are citing similar responses for upgrading, you can use them to craft a great headline. You can then test it against what you currently use.   Surveys help as well. Surveying new users can highlight your app’s most compelling premium features, and you can try showing them prominently on your paywall to see if they improve your conversion rate. Qualitative research is an excellent source of ideas to test on an app paywall. But remember that your findings will tie directly to the questions you put to your users. So design a meaningful questionnaire that gives you the insights you need to plan experiments. Here are a few questions to help you get started: How much would you pay for this app? Which is your most preferred plan of all the available options?   Would you be interested in a lifetime offer? Would you be more likely to subscribe if the app had a trial? Will you trust this app – roughly based on the paywall – with your data? Describe the paywall’s design in one word. Does the paywall explain the benefits of upgrading well enough? And so on. Next comes quantitative data.   Quantitative data gives you numbers. It tells you what’s going on on your paywall. For instance, if you use a solution like Adapty to power your app’s paywall, you can collect a lot of data on your paywall. Here are a few key metrics: Purchase conversion rate: Expressed as a percentage, the conversion rate metric tells you the percentage of users who made a purchase on the paywall. For example, if you had 30 conversions on your paywall and your paywall saw 100 visits, your conversion rate would be 30%. If you see low conversion rates, you might want to start with paywall testing immediately. And what’s a low paywall conversion rate for an app in your industry? Good question. We’re answering it in our Android and iOS reports on subscriptions. Trial conversion rate: Also expressed as a percentage, the trial conversion metric tells you the percentage of users who signed up for a trial on the paywall. For example, if you had 30 trial signups on your paywall and your paywall recorded 100 visits, your conversion rate would be 30%. If you have a low trial conversion rate: You might want to try a new trial offer copy. Perhaps your current copywriting isn’t so persuasive. You might want to offer a trial on a different plan. If you're letting your users try your annual plan that charges a hefty fee upfront (post the trial), you may want to experiment with running a trial offer on a more budget-friendly plan. You may even want to play around with the trial lengths. If you offer a 3-day trial, users might feel it’s... --- The 5th issue of the paywall newsletter, in which our special guest comments on: a double paywall, a mullti-screen paywall, a paywall with a special offer counter, and more. In this issue if the paywall newsletter, our special guest comments on: a double paywall, a mullti-screen paywall, a paywall with a special offer counter, and more. Paywalls of the issue are commented by... Martin Macmillan, the CEO and Founder of Pollen VC, a debt funding platform for mobile apps and game developers to scale in a capital efficient way. They’ve helped scale hundreds of apps and have seen first hand how they make money. Videoleap: try moving your plans to the second paywall This is a very fair paywall representation – all the necessary information is there, even beyond requirements. I am assuming that a reminder about the trial end will arrive via push and/or email in 5 days. It’s not clear whether the trial is offered on all tiers or just yearly, but it can be easily discovered by checking the different options.   Provided the trial reminder actually arrives, this paywall is very clear and fair, which should allow for sustainable user growth and no issues with platforms. Videoleap Impulse: don't spoil users with the trial for all plans This is a standard paywall with fairly punchy pricing options: short trial leading to the weekly high cost subscription or an immediate long term subscription, where lifetime is not that different from yearly. Most users would still choose trial to check out the features and would have to remember to switch to yearly if they like it. Impulse Phone Tracker: don't forget about the credibility signals The paywall design is attractive, and the credibility signals are there. Not clear how yearly is 68% cheaper than weekly.  This requires the users to make mental calculations which is not great.  No free trial offered but the weekly subscription is priced competitively, so the assumption is most will go with that. Track Phone JamZoom: try a multi-screen paywall Interesting multi-screen paywall. Clear offer with the ticks and X’s.  Should work fairly well. Jamzone Stakeout: remember that you can do it without design The app sends notifications when your favorite restaurant at Disney parks has a reservation available – editor's remark. The design is not great, but then this is an app for a very specific subset of population vs general population – who most likely don’t care about the design. The tiers are made to incentivize Premium as there is no reason to buy Limited tier unless one is afraid to forget to cancel. Most of the people will use it during their temporary visit to the park, so a weekly plan can be introduced to check if it can bring in more revenue. Stakeout ReelsApp: make users feel urgency with a special offer counter Nice design, and it's great to have a counter as this makes the paywall a special offer. Great idea to show how much it costs per week for the yearly plan. The pricing is done to entice the users to buy yearly subscriptions over quarterly.  If the UA supports this, this is a viable strategy. ReelsApp Virtu Key: don't be this presumptuous This one could have some improvements. The benefits of the paywall are not clear enough: for example, does “reliable password generator” mean that the one in the free version is unreliable? Does “recover deleted items for free” means my deleted passwords will be stored somewhere where I don’t have any control over them? Does “add unlimited content” relate to passwords or other content? The button names could be better. The discount offered by longer subscriptions is miniscule compared to the amount requested. No trial is offered for dubious benefits.   No credibility signal is offered, even though this is an unknown password manager app which is an extremely hard sell provided there are very established alternatives on the market, not to mention OS built-in free functionality. Virtu Key --- Here’s a primer on personalized mobile app paywalls and how you can offer them at scale inside your app and boost conversion rates across all your user segments. Different users – or user segments – have unique motivations for downloading your app. And unless your paywall connects well with (all of) them, you won’t get good conversion rates across your entire user base. But creating relevant messaging that appeals to all your user segments is a real problem. Why? Because: Paywall messaging that connects with an American user may fall flat for one from Europe – think cultural nuances.   Paywall messaging that works for a Baby Boomer might not resonate well with someone from Gen Alpha – because of generational divides.   Paywall messaging that appeals to females may not convert men – ties back to gendered behavior. In addition to such natural segmentation, users also identify themselves into specific segments with their behavior. For example, a user who cancels their subscription during the trial – and tells you they’re doing so because of the subscription fee – can be a cost-conscious customer (a segment in its own right). You get the drift. Said another way... There’s no one single paywall that can speak to all your segments equally well You need more paywalls – more so, personalized paywalls for all your significant user segments – that contain the drivers that get them to convert. Paywall personalization is all about personalizing your paywall for all the different user segments your app caters to. Personalized paywalls are one of the top ten mobile paywall types that, when done right, help boost an app’s revenue significantly across all segments.   In today’s post, we’ll see several types of mobile app paywall personalizations, how mobile app paywall personalizations work, and how you can start offering personalized paywalls at scale inside your app. Personalizing mobile app paywalls using zero-party data In an effort to keep up with the ever-increasing net of privacy frameworks in the app ecosystem, many app businesses are adding systems to proactively collect zero-party data.   But what’s zero-party data exactly? Zero-party data is any data users explicitly declare and share with a business. At Adapty, we see zero-party data as an excellent opportunity for mobile app businesses not just for extending hyper-personalized app experiences but also for designing personalized paywalls that convert better. Forrester – the world’s leading market research company that also coined the term (“zero-party data”) and introduced it to the world – defines it as: “Data that a customer intentionally and proactively shares with a brand, which can include preference center data, purchase intentions, personal context, and how the individual wants the brand to recognize it. ” Mobile app businesses are actively building zero-party databases.   For example, many apps now add a “sign up” stage to their onboarding process. As a part of this signup comes the onboarding stage, where apps ask users for some data (like their gender or age when it’s relevant) and how they expect to use the apps: If it’s a personal finance app, it’ll ask for a user’s key long-term financial goals.   A fitness app, in contrast, might ask a user how much weight they’re looking to shed.   Likewise, a mental health app might ask questions to evaluate the user’s current state of mind.   All these inputs are examples of zero-party data. Thanks to this approach, apps learn a lot about their users right during the signup and onboarding stages. All the data an app acquires this way works really well for delivering personalized paywalls. Let’s now see how such data helps with paywall personalizations. One-to-many mobile app paywall personalization In this personalization type, you take the broadest segments in your target user base and show each a personalized version of your paywall. For instance, a general fitness app’s users can be broadly classified by gender into three segments: male, female, and non-binary. Without personalization in place, an app would show each user (irrespective of their orientation) the exact same paywall. However, with personalization, each of the three segments can be shown a paywall that connects better with them. An excellent example of such personalization comes from the yoga app Daily Yoga. (By the way, Daily Yoga was one of the top five most downloaded apps in 2021. )  When you download Daily Yoga, the app asks you for a few inputs, including your gender. An app collecting zero-party data When the user identifies as a woman, they see a personalized paywall (specific to women). In contrast, users who identify as men are shown another version of the paywall (personalized for men):  If you think about it, you might wonder when the user consented to have their data read and processed like this, even if only to personalize the onboarding process and paywall. Well, they did. The app’s signup page – which shows up when the user opens the app for the very first time – clearly adds the disclaimer saying that by ”clicking the button you agree to our Terms of Services and Privacy Policy:” An app claiming implied consent for nonintrusive personalizations across the app and paywall. Let’s return to the personalization aspect. Naturally, when the different segments see paywalls personalized for them, they can connect better with them. Imagine if a female user sees the male workout video on the paywall, the content won’t likely resonate so well with them as it won’t feel relevant. Let’s now look at another kind of paywall personalization.   One-to-few paywall personalization Unlike the one-to-many personalization type, one-to-few personalization talks to narrower user segments. For example, if an app’s key demographics speak four languages, the app can use four localized paywalls. In Morning Routine: Wake Up Alarm (a lifestyle app), paywalls are customized based on the user's language preference. Morning Routine: Wake Up Alarm uses its user's preferred language to show them a personalized (translated) version of the app paywall (and the entire app).   If the user uses the app in English, they see the paywall in English, and when they set their app language to Portuguese, they see the Portuguese version: But that’s not... --- Learn how to structure and design your app's paywall. Get to know the essentials of any paywall: banners, sliders, videos, CTA, and more! Besides facilitating payment logistics, your paywall needs to function as a great sales page with all the conversion elements necessary to get users to make in-app purchases or subscribe. After all, your paywall sits at the heart of your mobile app monetization. Anything you add to it — copy, graphics, videos, and elements like buttons and carousels — ties directly to your conversions. But having all the essentials in place isn't enough. It’s also important to optimize them for conversions. In today’s post, we’ll see how you can build a conversion-friendly paywall that has everything to get a user to convert and optimize it for even higher conversions. Add a header banner, slider, or video to your paywall If you browse through our mobile paywall library, you’ll notice that about 90% of the paywalls go with a loud header and ditch text for a slick banner, slider, or video.   This is primarily due to space constraints when designing a standard mobile app paywall. As you’ll see, adding the essentials (that we share on this list) alone can pose a problem. There’s only so much you can add to the “360 x 760” average mobile viewport.   Banners, sliders, and videos are great solutions here. They help make better use of the limited mobile screen space. Let’s look at each in detail. Banners Compared to text, images are processed much faster by our brain. According to MIT's research, people take just 13 milliseconds to process image content. A text translation of the same content can take several words and seconds to comprehend fully.   So it's no surprise that most mobile apps use banners in their headers to convey their most important marketing message. A good example is PicJointer’s paywall. The app uses a simple banner: (Also, as you can see, the headline gives some great context to the banner. ) Although images express more than text (and so much faster), not all images are created equal. So what constitutes good image content? Follow Nielsen Norman Group’s seminal research on using photos as content for guidelines. Here are a few takeaways: People photos = good (if they're real people). App paywalls commonly use high-quality stock photos that look like real app users, which works well.   Product details = good. Showing the app in action via app screenshots is a common feature — and it just works. Information-carrying images = good. In most apps, captions accompany images, so banners get even more effective. Nielsen Norman Group recommends avoiding multiple banners using sliders if a single banner would suffice. This is perfectly captured in the app above (PicJointer).   Sliders If you have lots of content to share, a slider can help. When designing mobile carousels, Nielsen Norman Group recommends limiting the number of frames to 3 or 4 and placing the most helpful (or valuable) information first. It’s also recommended that you avoid using auto forwarding. Additionally, using cues (like arrows, dots, and lines) to indicate users to swipe to access the next frame (and more content) is a great practice.   Use what Nielsen Norman Group calls the "illusion of continuity" to prod users into swiping. And what’s that? You may have noticed that when you see partial images and get the feeling that there’s more to discover by swiping, you swipe. This "illusion of continuity" technique taps this natural tendency to find out what’s not fully visible by using partially visible images or text messages. These three apps use this principle well. There’s clearly more available with swiping: With paywall sliders that don't use such cues, swiping might not be the most natural thing for users to do on the slider. iCall’s paywall is one example: Videos When you want to convey even more information, including a video might be a good idea. BIGVU is one of the best examples: Here are some best practices to keep in mind when using a video on the paywall: Create a mobile-first or mobile-friendly video. Your video will definitely be viewed on a mobile device! Remember that most people use mobiles with their audio turned off. Add subtitles and captions to ensure it’s understandable even without audio. Make sure your video preview is good. It influences whether someone will watch your video at all. Keep your videos at the right length. Video formats like shorts and stories have redefined how long is too long when it comes to videos. In general, anything under 30 seconds should work well — a tip straight from LinkedIn’s video ad guidelines. Facebook video ad guidelines can also help you here. Facebook recommends keeping videos short and really optimizing the first 3 seconds.   Copy When it comes to the main paywall copy, most paywalls include three key pieces.   The headline (usually along with a subhead) First up, you have the headline. Paywalls for many apps feature generalized headlines like "Go pro," "Unlock full/all access," and "Get Premium. " This is a missed opportunity. The more optimized paywalls use headlines that succinctly summarize how premium users get more value from the app. A headline like this is the most effective way of marketing the upgrade and its benefits. Take, for instance, the MyFitnessPal app. Its headline — actually a subhead here... but you get the drift — makes an excellent case for upgrading: “Premium members are 65% more likely to reach their weight loss goal. ” In other words, it says: Go pro! Also, did you know that your best headlines come from your app users (and not copywriters)? In fact, the best copywriters use a technique called “review mining” to create headlines that connect with users. Here, you simply swipe a headline directly from a happy testimonial. Take a cue from W1D1’s app paywall:  The paywall headline should at least emphasize the app's key premium feature. Here, you get straight to the point (no frills! ). The Mealime Meal Plans & Recipes app nails this one. “Unlock Exclusive Recipes” — plain and simple. (Using... --- Igor Kuznetsov, Product Owner at Vivid Money, talks on his experience in developing a dating app, growing a banking service, and exploring dark patterns of the mobile industry. Many app developers turn to misleading tricks in order to gain more profit from their users by any means. Such tricks are often called dark patterns, but did you know that some of them are legal and even have become standard these days? ! In the 16th episode of the SubHub podcast, we talk to Igor Kuznetsov, Product Owner at Vivid Money. He shares with us his experience in the sphere of dating apps, growing a EU-oriented banking service, and dealing with dark patterns almost on a daily basis! Listen to the episode in Russian or read the most interesting parts below in English. SubHub by Adapty. io · SubHub Podcast #16 – Игорь Кузнецов (vivid money) Meeting the guest Nikita Maydanov: Our today’s guest is Igor Kuznetsov, Product Owner of Vivid Money, and also the creator of a very popular Telegram channel about dark patterns. Tell us a little about yourself, about your professional path. How did you start and how did you end up in Vivid Money? Why did you begin talking about dark patterns? Igor Kuznetsov: Well, it started more than ten years ago, when the first version of the AppStore appeared. Me and my friend from Look At Me made a small game studio of just five people. We'd been making mobile games before the Freemium model appeared. We were making classic paid one-two-dollar games, with some kind of free light versions. Back then, I didn’t know that what I was doing was called being a product manager. Anyway, that’s where I started. Then we couldn’t adapt to the Freemium model, because at that time, large and serious developers came to the mobile game market. By then, I’d been engaged in games for five years, and got a little tired of it. So I decided to switch to working with software. I had an offer to join Kamagames, a gamedev company, but they had two non-game projects. One of them was a messenger, something like Telegram, and they wanted me to help launch it. Telegram had just appeared, so they tried to compete with it using some interesting features. I worked with them for some time, and later I got the opportunity to join the Badoo team, where I probably had the most experience, since I joined them at the stage when the company was already quite large, about 150-200 people.   Badoo and dating apps Igor Kuznetsov: It was in 2015-2016. At that time, Badoo was a serious business that was nine years old. But at the same time, the product team was quite small, and the corporate culture was only being formed. When I joined, they had only one or two product managers, and the rest were more likely project managers who simply did what the founders said. I had an opportunity to work on different parts of the app, from the first session and monetization, to paywall optimization, almost everything except messenger experience. I worked a lot with profile verification, and this is one of the main problems in dating apps - fake profiles. So one of the features that I’m proud of was photo-verification. Basically, you ask the user to show a certain gesture and take a selfie. Then this photo is used as a reference one and no one except moderators can see it, but all the other photos in the profile are compared with it. And now this feature has become the standard for dating apps. The main experience of being a product owner I had in Badoo, because there it was possible to run all the A/B tests on a large amount of data, without fooling around with any user interviews and corridor tests. We just chose a country, ran the test, and in two or three days we had stat significant results. We had a “conveyor” for the features production in different directions: retention, monetization, and other metrics we had to grow depending on the goals of the company. When I joined the company, I was engaged in the recovery of the web service, and when I was leaving, on the contrary, my last project was to refresh the mobile version, it was old and needed to be updated. For 10 years there happened to be so many features that we weren’t sure were working or making any profit, and we wondered if we could get rid of them without losing the profit. It was a large and serious project, which we were engaged in for about six months, probably with the whole company. Everything was based on A/B testing. We had release cycles on the mobile web twice a day and once a week on Windows Phone. This made it possible to test the hypotheses very quickly and safely. We also had the White-Label testing. There were several products that Badoo had bought earlier, and theiet value was lost to support them as separate products. It was basically a channel for user acquisition. It was the same Badoo, just with a different logo and a separate user base. So we tested everything on White-Labels on iOS, on Android, to be sure that nothing should fail, and on X-day launched the update on Badoo. This was the last project that I’m really proud of, because not only it didn’t drop, but it managed to grow key metrics such as the number of matches and the number of chat rooms created. Usually, large redesign updates, rolled out with no evolutionary approach behind it, result in closing the company. As it happened to Secret and their desperate attempts to change something to survive. But in our case everything worked out very smoothly. After that I had several small projects, where I acted as a person who assembled a team and helped to launch the project. It was an e-commerce project called Swiftgift – a social network for poker players. It was the company called My Partypoker, which was the second or third in size in terms of poker offline tournaments.... --- Learn how to promote your mobile app with the help of ASO, ASA, and other promotional methods. According to Statista, there are 3. 5 million apps available on the Google Play Store and almost 2. 2 million on the App Store. Huawei AppGallery, the third most popular store, has a little less than 100,000 apps so far, but it already has a huge audience of 580 million people. Every new app has to withstand huge competition in order to get the attention of users, which can only be done through promotion. Together with Dmitry Apukhtin, Head of Performance at Ingate, we’re discussing how to properly advertise mobile apps. Optimizing the app card in the store ASO (App store optimization) helps the app rank better in the search results of the store. If the card is filled out correctly, it ranks higher in the search list and more people notice it. The number of app installs in this case grows organically. In mobile development, there is a common practice to publish an app on at least three platforms: App Store, Google Play, and AppGallery. If you choose to publish it only in one store, you can lose a significant amount of users, because these stores have different audiences that practically never overlap. The App Store, Google Play, and AppGallery each have unique features and optimization rules that are described in their guidelines. But at the basic level, ASO for any store includes: Choosing relevant keywords for the metadata (title and description) Creating attractive images and videos Working with reviews and app rating 1. Choosing keywords First of all, the app’s ranking depends on the text in the card. The store’s search works just like any regular search engine, e. g. Google. The place of a particular app in the search results is determined by how well it matches the keywords from the user's query. For example, a meditation app won't rank high in search results if it doesn't have the word "meditation" in its title or description. When optimizing metadata, it’s important to know which fields are indexed. For example, the app description is indexed for search in Google Play and AppGallery, but not in the App Store. The length of the text is also important: in AppGallery, the title and description fields are twice as long as in other stores: 64 and 8,000 characters, respectively. 2. Making the card attractive The card’s visual appeal to the users is an important factor for ASO. People love high-quality beautiful icons, screenshots, promo images, and video previews. This optimization step needs as much attention as working with the metadata. One of the trends in ASO for the Apple App Store is in-app events that appear in search results, e. g. , a movie premiere for a streaming service or an in-game competition. In-app event showed in the app’s card and the search results. Source 3. Raising the app’s rating The last element of ASO is working with reputation, that is, ratings and reviews. You can ask your users right in the app to go to the store and rate it or leave a review. It can be difficult to motivate people to do this, so developers usually offer bonuses, like a special item in the game or special subscription terms. Attracting users through ads When you don’t get enough organic traffic from the search results of the store, you should look for a new source of user acquisition. There are several things to try: The store ad manager; Ad networks; Social networks; In-app ads. 4. The store ad manager The stores have their own advertising managers that can be used for promotion: Apple Search Ads (ASA) in the App Store, Google Ads in Google Play, Huawei Ads in AppGallery. Every store has more or less similar promotion mechanics, like promotional placement in a special area of search results or recommendations, banners on the main page or thematic collections of apps. The target action of ad campaigns in this case is installing the app and registering a new user. Promotional placement in the Google Play search results. Source Ad managers also have mechanics for engaging those users who already have the app installed. In this case, they’re invited to perform a target action of the campaign: participate in an in-app event, enter the game for a daily bonus, or renew their subscription. 5. Ad networks In addition to the app store, Google Ads places ads (creatives) on the Display Network (GDN), as well as in its own search engine. The network unites about 2 million sites, YouTube services, Google Maps, Gmail, and many others. Its main advantage is the audience of more than 1 billion people. The ad network is based on targeting: the target audience is determined by interests, topics, search keywords, demographic parameters, and more. The ads are placed on those sites where the content meets the specified parameters. The GDN shows banner ads or other advertisements to a cold audience, which means that people weren't specifically looking for the app and most likely won't install it right away. Such reach-focused advertising allows more potential users to learn about the app. This is how ad banners look on a GDN-supported website. Source GDN has analogues that work in a similar way: Huawei Ads, Bing Ads, Microsoft Ads, and others. 6. Social networks In social networks, promotion algorithms work a little differently. The target audience is segmented based not on keywords and search queries, but more on interests, which are determined by views, likes, and subscriptions of a person. The interest-determining model used for compiling the user's feed also works great for displaying ads. Moreover, such a model knows a lot about the user, so the targeting works pretty effectively. For the social networks that are united in one common network, ad campaigns are configured through a single account. For example, Facebook publishes creatives also on Instagram, Messenger, and Audience Network. Social networks like Instagram or TikTok are convenient to use for promoting apps because the user is already holding a smartphone. After watching the ad, they can immediately go... --- Learn about new features added in Adapty in September 2022 In-depth out-of-the-box paywall metrics Take a look at the new parameters in the paywall metrics table:  Check how the attracted users pay off with ARPAS (average revenue per active subscriber) Inspect the “health” of subscriptions with Refund rate See how unique views convert to purchases These parameters have now appeared in paywall metrics and will be also added in A/B tests. Feel free to use filters, calendar, and grouping for advanced paywall versions comparison. Compare up to 10 versions at a time! New navigation The main menu is now divided into two areas – the left and the top bar. On the left, there are day-to-day working tools, and at the top, there are controls that are used less often – app choice, help, account, and app settings. While the left menu may be collapsed as it was before, the top one hides and appears automatically with your scroll. The support chat is hidden in the help section of the top menu and doesn’t disturb you during work.   Integration live statuses Adapty now shows the last sent event time in integrations, which allows checking the status really quickly. Over 400 Github stars and counting We are happy when we receive your feedback – both positive and claiming for changes. There’s now a banner in settings where you may choose the repository to contribute to Adapty’s development and rate us. We received many stars after we’d published it, so thank you for your impact! Please, support us on Github for any SDK that you use! --- 2022'de ortalama abonelik fiyatı artmış görünüyor. Mobil uygulama aboneliklerinin mevcut durumuna bir göz atalım. Abonelik tabanlı uygulamalar, mobil pazardaki tüm uygulamaların çoğunluğunu oluşturuyor. Abonelik modeli sağladığı birçok fayda ile geliştiriciler arasında bir standart haline geldi. Bunun birkaç sebebi var: Otomatik yenilemeler ve ilgili bir kitle sayesinde sabit para akışı Daha güvenilir bir gelir nedeniyle daha kolay aylık ve yıllık gelir tahmini Farklı fiyatlandırma yöntemleri (kullanmak için öde, freemium, daha az öde) Potansiyel aboneyi etkilemenin farklı yolları (ücretsiz deneme, peşin ödeme, kullandıkça öde) Aboneliklerin yalnızca geliştiriciler arasında değil, kullanıcılar arasında da popüler olmasıyla birlikte mobil pazarın büyümesi hiç de şaşırtıcı değildir. Abonelik fiyatlarının çok değişken olduğu gerçeğini kabul ederek, son zamanlarda oldukça tutarlı bir şekilde görünen bir eğilim var: aboneliklerin ortalama fiyatı sürekli artıyor. O zaman uygulama içi aboneliklerin mevcut fiyatlandırma durumuna hızlıca bir göz atalım ve bu büyümenin arkasındaki nedenleri anlamaya çalışalım. Ortalama iOS abonelik fiyatı artışı Son veriler Ocak 2021 — Ocak 2022 döneminde ortalama abonelik fiyatında önemli bir artış olduğunu gösteriyor. Adapty verilerine göre ortalama iOS abonelik fiyatı yıllık bazda %36,5 arttı. Abonelik dönemine göre ise, yıllık abonelik fiyatı %33, aylık abonelik ise çok daha fazla bir oranda — %40 arttı. Grafiğe bir göz atalım: Böyle bir artış beklenen bir durum ve kolayca açıklayabiliriz. Abonelik modeli pek çok açıdan daha fazla esnekliğe izin verdiği için uygulama geliştiricileri bundan olabildiğince fazlasını kazanmaya eğilimlidir. Farklı analitik ve pazarlama araçlarını kullanarak, kullanıcıların davranışlarını ve daha da önemlisi ödeme yeteneklerini anlamak için önemli miktarda faydalı veri toplanabilir. Birçok uygulama geliştiricisi, kullanıcıların abonelikleri için ne kadar ödeyebileceğinden emin olmadıkları ve bu nedenle risk alıp fiyat yükseltmekten korktukları için düşük ücret alma eğilimindedir. Ancak bugün mevcut olan tüm araçlarla, uygulama aboneliğinizi hedef kitlenizin çoğunluğuna uygun olan en yüksek fiyata satabileceğiniz bir ticari orta yolu bulmak oldukça kolay hale geldi. Bu durumda en verimli araçlardan biri paywall A/B testidir: oldukça kısa bir süre içinde uygulamanızın abonelik fiyatları için en uygun fiyatı bulmanıza yardımcı olur. Kullanıcılara aboneliğinize göre farklı fiyatlar sunan bölünmüş test denemeleri çalıştırmanız ve en iyi olanı bulmanız yeterlidir. Henüz deneme yapmadıysanız , Adapty ile paywall A/B testleri yapmayı deneyebilirsiniz . Fiyat artışının bir başka nedeni de kullanıcı edinme pazarının mevcut durumu olabilir. Uygulama geliştiricileri, iOS 14. 5'ten bu yana meydana gelen kullanıcı edinme maliyetindeki artışı telafi etmeye çalışıyor. Bu nedenle, kullanıcılarından daha çok kazanmak için abonelik fiyatlarını daha yüksek tutuyorlar ve daha kısa abonelik dönemlerini seçiyorlar. Aylık fiyatın neden yıllıktan daha hızlı büyüdüğünü de bu şekilde açıklayabiliriz. Otomatik yenileme ve fiyat artışı için yeni kurallar 2021–2022 döneminden bahsetmiş olsak da, en azından 2022–2023 dönemi için daha fazla fiyat artışına katkıda bulunabilecek bir gelişme daha var. Mobil endüstri, abonelik modeli etrafında dönerek geliştirici için daha da faydalı ve kullanıcı için daha çekici hale getirmeye odaklanıyor. Bu nedenle Apple’ın Mayıs güncellemesi , abonelik otomatik yenileme sürecine yeni kurallar getirdi. Güncelleme geliştiricinin, bazı durumlarda kullanıcının iznine ihtiyaç duymadan abonelik fiyatını artırabileceğini belirtiyor. Kullanıcılara çılgınca ve mantıksız gelebilir ancak açıklamayı derinleştirirsek arkasındaki nedenler az çok netleşir. Bunu yapmanın ana nedeni kullanıcıların genellikle fiyat artışını seçmemesiydi. Bu durum hem abonelik yenilemeyi düşünen kullanıcılar, hem de gelecekteki finansal hesaplamalarını yapacak olan geliştiriciler için zorluk yaratıyordu. Birçok kullanıcı, favori uygulama abonelik fiyatlarının onayları olmadan bir gecede 2 kat artmasından endişe ediyor olabilir. Ancak Apple, geliştiriciler için kurallar konusunda net: “fiyat artışı yılda bir defadan fazla gerçekleşmemeli, artış 5 doları ve abonelik fiyatının %50'sini aşmamalı veya yıllık olarak 50 dolar veya abonelik fiyatının %50'sinden fazla olmaması gerekiyor. ” Ayrıca Apple yine de kullanıcıyı abonelik artışı hakkında e-posta, push notification ve uygulama içindeki bir mesaj yoluyla bilgilendireceğini söylüyor. Yani teoride bu güncelleme her iki taraf için de eşit derecede faydalı olmalı, ancak yine de geliştiricilerin kullanıcılardan daha heyecanlı olduğu görülüyor. Sonuçları görmek için hala zaman var Giderek daha fazla kullanıcı uygulama içi satın almalar için ödeme yapmaya istekli olduğundan (yalnızca ABD’li kullanıcılar 2021'de uygulama içi satın almalara 40,7 milyar dolar harcadı) fiyat artışının oldukça haklı sebepleri var. Talebin olduğu yerde arz vardır. Bununla birlikte, 2022'nin 3. çeyreğine ilişkin yeni rakamlar, uygulama içi satın almalara yönelik küresel tüketici harcamasının yıllık bazda neredeyse %5 düştüğünü gösteriyor. Ancak henüz karamsar bir sonuca varmak ve bu düşüşün arkasındaki gerçek nedenleri ortaya koymaya çalışmak için henüz çok erken. Bu sadece küresel ekonomik sorunların yansımaları olabilir, ancak buna dikkat edeceğiz ve yakında sizinle daha ilginç veriler paylaşacağız! --- Average subscription price seems to have increased in 2022. Let’s have a look at the current state of mobile app subscriptions. Subscription-based apps account for the majority of all apps in the mobile market. The subscription model has already become a standard for app developers, as it has many positive sides to using it:  Constant money flow thanks to auto-renewals and a more engaged audience Easier monthly and annual revenue prediction because of a more reliable income Different ways to pricing (pay to use, freemium, pay to pay less) More ways to influence the potential subscriber (free trial, pay up front, pay as you go) With subscriptions being popular not only with developers, but also with users, it’s no surprise that the mobile market’s experiencing growth. Even though subscriptions are rather flexible and, on a larger scale, may act in an unexpected manner, there’s one general tendency that seems to be rather coherent: the subscription’s average price is constantly growing. So let’s have a quick look at the current pricing state of in-app subscriptions and try to understand the reasons behind this growth. Average iOS subscription price increase Recent data shows a significant increase in the average subscription price for the period Jan 21 – Jan 22. According to the figures received in our product, the average iOS subscription price has grown by 36,5% YoY. Split by subscription period, the annual subscription’s price has increased by 33%, when the monthly one’s got even higher – by 40%. Take a look: Such an increase is rather expected and can be easily explained. The subscription model allows more flexibility in many aspects, and this is why app developers tend to squeeze out as much as they can from it. Using different analytic and marketing tools one can gather a significant amount of useful data in order to understand the users’ behavior and, more importantly, paying capabilities. Many inexperienced app developers tend to undercharge, because they aren’t sure how much their users are willing to pay for their subscription and therefore too afraid to risk and raise the price. But with all the tools available today, it gets pretty easy to find that commercial middle ground where you can sell your app subscription at the highest price affordable to the majority of your target audience. One of the most efficient tools in this case remains paywall A/B testing: it helps to find the optimal pricing for the in-app purchases of your app in a rather short period of time. You simply run split-test experiments offering users different prices to your subscription and find what works best. If you haven’t already engaged in experimenting, consider running paywall A/B tests with Adapty.   Another reason for the price growth may be the current state of the user acquisition market. App developers try to compensate for the growth of the user acquisition cost that has been happening since iOS 14. 5. So in order to earn something from their users they set subscription prices higher and choose shorter subscription periods. It can also explain why the monthly price is growing faster than annual. New rules for auto-renewal and price raise Although we talked about the period 2021 – 2022, there’s one more aspect that can also contribute to the further price increase for the period 2022 – 2023 at least. The mobile industry revolves around the subscription model, focusing on making it even more beneficial to the developer and more appealing to the user. That’s why Apple’s May update introduced new rules to the process of subscription auto-renewal.   The update states that now the developer can, in some cases, increase the subscription price without needing the user’s permission. Sounds wild and unreasonable towards the user, but if we deepen into the explanation, the reasons behind it get more or less clear. The main reason for doing this was that pretty often users failed to opt in to the price increase, apart from intentional canceling, which led to the subscription cancellation and, as a result, the unintentional service interruption. This caused pain to the user who then had to find out how to renew their subscription, as well as the developer, who’s financial flow and transparent predictions began to fail. Sounds rather reasonable, but it looks like many users may still be worrying about their favorite app subscription price getting 2x higher overnight without their approval. But Apple was clear about the rules for the developers on this account: they must be sure that “the price increase doesn’t occur more than once per year, doesn’t exceed US$5 and 50% of the subscription price, or US$50 and 50% for an annual subscription price, and is permissible by local law. ”. Plus, Apple still promises to notify the user about the subscription increase via email, push notification, and a message within the app. So, in theory, this update should be equally beneficial to both sides, but it still looks like developers are more excited about it than users. There’s still room for controversy The year 2021 was pretty fruitful for app developers, as more and more users were willing to pay for in-app purchases (U. S. users alone spent $40. 7 billion on in-app purchases in 2021), so the price increase seems to be pretty justified. Where there’s demand, there’s supply. However, fresh numbers for Q3 2022 show that the global consumer spending on in-app purchases declined by almost 5% YoY. But it’s too early to draw the pessimistic conclusion yet, as well as try to state the real reasons behind this decline. It can be just repercussions of the global economic issues, but we’ll be keeping our eye out on this and be sharing more interesting data with you soon! --- The 4th issue of the paywall newsletter containing insights on: trial period, price display, creatives, and more. The 4th issue of the paywall newsletter containing insights on: trial period, price display, creatives, and more. Paywalls of the issue are commented by: Alice Muir, Senior Consultant at Phiture, together with the Phiture Retention Team. Picture This: $5m a month, still there is room for testing Nicely done: High-contrast design Clear value proposition Permission toggle that evokes trust and transparency Worth testing: Highlighting the 'Cancel' button or adding 'not now' button under the CTA. The 'Cancel' button is not clearly visible now and probably makes the paywall look a bit forceful Highlighting benefits rather than features, such as saving time on research PictureThis Mushroom Identificator: subscription or a cup of coffee? Nicely done: Simple and straightforward design The CTA is clear and highlights the best deal for the user The interactive toggle is a nice psychological trick that's likely to bring a bit of “surprise and delight” to the user Comparing the monthly price to something that most people would passively pay for (cup of coffee) Worth testing Highlighting the % saved with the yearly option (roughly 74%) More clearly stating the value proposition and what the benefits to the user are Making the information about free trial clearer: how long the trial lasts, if the trial is available for yearly or monthly subscriptions or both, etc Mushroom ID SubCap, that uses numbers in a both convincing and confusing ways Worth testing Highlighting the CTA in a color different from the rest of the screen, as opposed to yellow  Reiterating the facts from the onboarding screens on the paywall screen itself Highlighting some more of the stats and benefits mentioned on the App Store: Get 17% more reactions compared to non-subtitled videos More transparent price since 6*5. 99 is not equal to 35. 99$ It’s unclear where the 25% savings come from since there is only one subscription option shown on this paywall Nicely done:  The onboarding uses data to convince users that captions are important: 92% people watch videos muted, 466 million people are hearing impaired, 75% users watch videos on mobile. Clear and simple design with the highlighted CTA Clear understanding of the main value proposition (e. g. “add captions to videos with a single click”) SubCap OnX BackCountry: showing a paywall upon registration They meet the user with a registration form showing the 'Start Free Trial' button, instead of a 'Sign Up' button. The user fills out the form, hits the button, and sees the paywall. Nicely done: Nice and simple design Great use of transparency with regards to how the free trial works while highlighting the value of the premium vs. free experience The “Maybe Later” option is ideal for retargeting users at a later stage Nice use of a colorful CTA button which stands out against the clean background. We also know from the industry that this psychological trick can increase conversion rates, perhaps because the user’s eye is drawn directly to the button Worth testing: Highlighting the price text a bit more or making the text slightly bigger, to avoid suspicion from users Adding creatives related to walking and maps, so that the user can better visualize the benefit of the premium version Enduco: they ride, but don't run Nicely done: Good use of the user-focused wording (e. g. “train more effectively”) Worth testing: Personalization.  For example, showing a running creative to the users who have expressed an interest in running Including 'cancel anytime' at the bottom, where it says “free trial for 14 days” Positioning of the 'all advantages in detail' button to maximize visibility Enduco Something to consider: This paywall is triggered only after completing a certain number of onboarding screens. If you skip or don’t complete these screens, the paywall doesn't appear, unless you search for it. We know from the industry that the majority of subscriptions happen on D0. Therefore, the publisher should ensure that the paywall triggers for the majority of users in that first session (to maximize visibility). MyMP3: a week-long trial on a week-long subscription Nicely done: A good attempt at highlighting the discounts for users Worth testing: A shorter trial period (e. g. 1-3 days).  The publisher offers a week-long trial on a week-long subscription. Users might have maximized the value during that 7-day trial period and no longer have the need to subscribe Highlighting the best offer (yearly) with either a different color or by putting a colored box around it Pointing to the functions and benefits of the premium plan Adding “cancel anytime” to increase transparency instead of repeating the cost and trial terms above the CTA MyMP3 --- Learn about the most popular types of paywalls and improve conversions of your app. Optimizing your mobile app paywall for more conversions begins with choosing the right type of paywall. Why? Because mobile app paywalls come in many forms.   For example, if an app’s top user acquisition channel is offering free trials, it’s best if the app uses a trial-focused paywall – one that clearly explains how the trial works and the value the user can get out of it. Likewise, a premium app might be better off using a longform paywall over the standard version if it takes a lot of convincing to sell. And if an app is looking to quickly get a few upgrades, adding an “offer” paywall is a good hack.   Said another way: You need to be intentional when planning your paywalls. And to help you do that, today we're rounding up ten of the most popular mobile app paywall types. In addition to discussing the different paywall types, we’ll also see the various conversion principles they use. The 10 most popular mobile app paywall types 1. Standard non-scrollable 2. “Landing page” 3. Modal 4. Trial 5. Trial toggle 6. Single plan 7. Multiplan 8. Offer 9. Donation 10. Personalized 1. Standard non-scrollable paywall This is the most common mobile app paywall you get to see. Here, the mobile viewport is all the space you have. This is also why this paywall type works – everything your users need to see is available immediately. The information displayed on this paywall often includes: The main headline (explaining why a user should purchase your app) The app’s key features and benefits Elements of social proof Plans Offers (if applicable) A call to action button Links to relevant content (like your privacy policy, terms, and FAQs) Moonly’s paywall is a great example: it comes with a good headline (that clearly states the benefits of purchasing), a beautiful grid highlighting all the premium features, plans, a CTA button, and links to the necessary resources: However, because of space constraints, this paywall type can only accommodate so much. In this case, Moonly ditches elements of social proof. And why is it a problem? This is a problem because app ratings and reviews are excellent social proof that convinces people to pay for your app. Did you know that 80% of mobile app users read at least one review before downloading a paid app? Since users rely heavily on reviews, posting social proof on your paywall can drastically improve your conversion rate. Some publishers work around this limitation by adding carousels and videos to the paywall. These elements help offer much more information, even in this paywall type's compact space. 2. “Landing page” paywall This is a deviation from the standard non-scrollable mobile app paywall. Here, you don’t cram everything into a single screen but go with a “longform” format. You treat your app paywall like a mobile landing page. Napper is an excellent example: If you review Napper’s paywall, you can see how easily it accommodates all the essentials. Napper’s longform paywall highlights all the things that work for such “landing page” paywalls: You can easily add elements of social proof (from the number of app users you have to your average app ratings and reviews).   You can better explain your app’s features and benefits, as space isn’t a constraint. You can better explain the premium version's value in comparison with the free version. You can implement conversion tactics like using pricing layouts that kick in the user biases and influence your users’ buying decisions. (More on this later. ) You can address common user concerns via sections like FAQs (think questions around app data privacy, subscriptions, refunds, etc. ) Here’s one more example of such a paywall from the Meditopia app: One obvious challenge with this approach is getting the length of the paywall right: If it’s too long, users can be quick to abandon it. It’s also essential to follow a solid messaging framework when creating the copy. Longform paywalls can also lose users if they don’t use clean and focused layouts. 3. Modal paywall Here, mobile app paywalls appear as modals or popups. To proceed, users need to either continue with a purchase on the popup or close it.   A modal paywall typically gets even lesser space than a standard paywall (that we mentioned above). So if you need to say a lot on your paywall, you must either go with a longform modal or add a carousel. The Hinge dating app uses a slick modal/popup paywall. As you can see, Hinge goes with the carousel workaround to make up for the lack of space and explain the different benefits of going premium:  4. Trial paywall Trials are one of the top user acquisition channels for mobile apps. When Google surveyed mobile app users, 17% of the respondents said they moved to premium plans as they ran out of the trial period. When it comes to mobile apps, trials work in two ways: If it’s a paid app, a user can download the app (for free). But to use the app, they need to sign up for its free trial, which includes agreeing to the billing terms that apply post the trial. A user can, however, cancel the billing agreement anytime during the trial. And if it’s a freemium app – which has a fully functional “lite” free version – each time a user tries to access a premium feature, they hit the paywall where they see the option to try the app for free.   In both cases, app stores need app publishers to transparently state the pricing post the trial. So let’s see what a typical trial paywall looks like. This is Flinch’s simple yet effective trial paywall (Flinch puts you on the annual plan when the trial ends): Below you’ll see yet another free trial paywall for a paid app. In addition to “selling” the trial, this app also helps users understand that they’re automatically signing up for a good deal if they take... --- Şaka ile başlayıp aylık 200 bin dolarlık gelire ulaşan mobil uygulamanın başarı öyküsü. Avatarify’ın hikayesi, geliştiricilerini tamamen hazırlıksız yakalayan şaşırtıcı bir başarı hikayesidir. Avatarify Hakkında Avatarify, kullanıcıların fotoğraflarını bir şarkı söylüyormuş veya popüler komik görsellerden birkaç satır alıntı yapıyormuş gibi canlandırmasını sağlayan yapay zeka tabanlı bir uygulamadır. Bir Şakadan Uygulamaya Her şey 2020 baharında başladı. O sırada Samsung’da computer vision mühendisi olarak çalışan Ali, meslektaşlarını eğlendirmeye karar verdi. Zoom için bir deepfake eklentisi yaptı ve çevrimiçi bir toplantıda Elon Musk’ın yüzüyle ortaya çıktı ve meslektaşları şok oldu. Bunlardan biri olan Karim , Elon Musk’ın yanlışlıkla bir Zoom görüşmesine girdiği bir YouTube videosu çekmeyi teklif etti. Video viral oldu ve YouTube’da 300 binden fazla görüntülendi. Şaka olarak yapılan eklentinin başarılı bir ürüne dönüşebileceği anlaşıldı ve Ali fırsatı değerlendirmeye karar verdi. Bir iOS geliştiricisi olan Artyom ve mobil cihazlar için sinir ağları uzmanı George ile birlikte çalıştı. Ve Avatarify uygulaması, geliştirmeye tek bir dolar yatırılmadan bu şekilde hayata geçti. Şaka ile Başlayan Hikaye App Store'da Zirveyi Gördü App Store’da yayınlanması ve TikTok’ta duyurulmasının ardından Avatarify, 0 $ kullanıcı edinme maliyeti ile sadece iki ayda 400. 000 indirmeye ulaştı ve aynı zamanda Rusya App Store’da tüm kategoriler arasında birinci uygulama oldu. Ancak bir süre sonra trafik azaldı. Ürünün kullanıcıları çektiği, ancak onları elinde tutamadığı ortaya çıktı — içerik oluşturmak çok fazla çaba gerektiriyordu: Bir ünlünün yüzünü kullandıktan sonra, kullanıcının bir sonraki adımda ne yapacağına dair kendi fikirlerini bulması gerekiyordu. Böylece ekip konsepti değiştirdi — hazır şarkılar, ayrıca ünlülerin hareketlerini ve yüz ifadelerini, hareketli görünmelerini sağlamak için kullanıcıların fotoğraflarının üzerine bindirilebilecek şekilde eklediler. Bu, uygulamanın iki hafta boyunca Birleşik Krallık App Store’da birinci sıraya yükselmesini sağladı. Ardından Fransa, Almanya, Güney Kore, Japonya ve Çin App Store’larında da birinciliğe ulaştı. Victoria Beckham bile Instagram’da Avatarify ile çekilmiş bir fotoğrafını paylaştı. Avatarify’ın En İyi Uygulamalar Listesinde Birinci Olduğu Ülkeler Bireysel geliştiricilikten işletmeye Aralık 2020'de ekip para kazanma özelliğini ekledi. O zamana kadar uygulama zaten yaklaşık 800 bin yüklemeye sahipti. Trafik yüksekti ve bu avantajın gelire dönüştürülmesi gerekiyordu. Uygulamadan para kazanmak için güvenilir bir ortağa ihtiyaçları vardı ve Adapty’yi bu şekilde buldular. Adapty’nin yardımıyla Avatarify ekibi, uygulama içi satın alma altyapısını hızlıca entegre etti, doğru abonelik verilerini almaya başladı ve artık satın alma işlemlerini kullanıcılar çevrimdışı olsalar bile gerçekleştirebiliyorlar. Uygulama içi abonelikler için altyapı Avatarify ekibi, satın alma işlemlerini Adapty ile hızla entegre ederek bir aylık geliştirme süresinden tasarruf etti ve bir hafta sonra para kazanmaya başlayabildi. Doğru analizler Para kazanma özelliği eklendikten sonra sıra trafik satın almaya gelmişti. Trafik satın almanın karşılığını alabilmesi için yüksek kaliteli analiz yapmaları gerekiyordu. App Store için Adapty analizleri %99,5 oranında doğrudur, bu nedenle Avatarify ekibi aşağıdakilere dayalı olarak pazarlama kararları verebildi: Abonelerin coğrafyası Abonelik yenileme/iptal oranı Kohort geri ödeme oranı Abonelerin ürüne göre dağılımı Fallback Paywall özelliği Avatarify ekibi, satın almaya hazır olan ancak zayıf internet bağlantısı nedeniyle belirli bir anda abone olamayan kullanıcıları kaybetmek istemedi. Bunun olmasını önlemek için Adapty aracılığıyla bir Fallback Paywall oluşturdular. Bu aslında internet bağlantısı olmadığında gösterilen “yedek” bir ödeme duvarıdır. Satın alma gerçekleşir, ve kullanıcı daha sonra çevrimiçi olduğunda ödeme işlemi tamamlanır. 0'dan $200. 000'a Ulaşan Aylık Gelir İlk başladığında 0 dolar bütçeli bir uygulama olan Avatarify, Adapty ile bu şekilde 183 bin dolarlık MRR’a yükseldi. Sırada ne var? Avatarify ekibi üretmeye devam ediyor. Şimdi de fotoğrafları canlandırmak için AI kullanan Lambada adlı yeni bir uygulama üzerinde çalışmaya başladılar. Bu uygulama ile kullanıcıların fotoğraflarını dans ettiriyorlar. İlk aboneliklerden milyon dolarlık uygulamaya Adapty her zaman yanınızda. --- Let's talk about the App Store reviewing process and what things to avoid in order to pass it All the apps published in the App Store are reviewed for compliance with Apple's rules. Sometimes the process can be delayed if the developer violates one or a few of them. The violations can be rude, like the app containing prohibited content, or rather small, like a mistake in the description of an in-app purchase. Together with Dmitry Kuznetsov, head of a mobile software development department for multimedia playback and processing, we’ll try to figure out what may help you quickly and easily pass the review of a subscription-based app. What you need to know about the App Store reviews An application gets reviewed every time a new version is published, even if the changes are minimal. The developer can swap a couple of buttons without touching the main features of the app at all, but it still has to be rebuilt and submitted for review. The App Store is very thorough with their reviewing process, as they’re responsible for the quality of apps. The users cannot be exposed to poorly performing, dangerous, or misleading content. Apps for children are subject to particularly close scrutiny, as they shouldn’t contain any prohibited content or hidden features. The store can review an already published app on its own initiative or based on the users’ complaints. Such extraordinary reviews are quite rare but they allow Apple to identify apps made by unscrupulous developers that contain hidden features. Also, experts can pay attention to the application, whose users often request a refund for purchases. If there are too many such applications, this is a sign that something is wrong with the application. Apple removes old apps from the store that aren't updated or reviewed for a year. The developer of such an application first receives a reminder to release a new version within 90 days. If they don't, the app is removed. Which verifications an iOS app goes through In order for the app to get reviewed, you need to upload its build, that is, a ready-made application file, to App Store Connect. There it goes through processing – automatic review on basic parameters and scanning for malicious code. For example, the application must not read and transfer the program code to the user's device – it’s prohibited by the store rules. An exception is made only for educational purposes: if the user learns to develop in the app, then a code editor can be used inside it. The processing reveals even small technical inconsistencies with the rules. For example, an app might fail the verification because it was built using an outdated version of Xcode. In this case, the developer will receive a message saying that the application needs to be rebuilt and resubmitted for review. If the processing reveals several violations, they will all be listed. The whole process usually takes an average of 20 minutes, but sometimes it can last longer – up to several hours. When the processing is finished, you need to confirm sending the app for review and wait for it to start. Starting 2022, App Store Connect has a new verification process: the developer can submit for review in-app events, in-app product pages and tests without creating a new version of the app. Those items that have failed the review can be temporarily hidden, and those that got through successfully can be published. Apple doesn’t disclose what exactly happens during the review, but 100% of the time the app is reviewed by the employees of the review team. They don't test the whole app, but check the main use case scenarios, several screens, and see how in-app purchases work. The review waiting time depends on the availability of the review team. Before big holidays and long weekends, such as Christmas and New Year, there are fewer employees, so the waiting gets longer and the process itself gets more time consuming. On average, waiting for a review in the App Store takes about 9 hours, and the review itself takes about a day, according to the Runway data. Specifics of the first App Store review Reviewing the very first version of an app can take longer, up to 1 month, especially if it has non-standard user flow or unusual features. During the first review, the store employee may have questions about the operation of the app. In this case, the process will be paused and the developer will receive an email containing certain questions. If the app requires signing in, the review team employee will ask you to send a login and password to access the test account. To avoid this, it’s better to specify the necessary info in the build description beforehand. The store employee may also want to clarify the target audience of the app or for what purpose it will be used for. Sometimes the review team asks for more information on how the app works. In this case, you can describe the functionality in text or record a screencast for better understanding. A request from the review team: you need to explain exactly how the app works Another frequent request is how and why user data is processed. For example, when an app requests access to contacts or geolocation, but doesn’t explicitly use them. During the review, you need to confirm that the app doesn’t violate anyone's copyrights. The developer must provide documents that allow them to use music, videos, trademarks or any other intellectual property. The right to publish the app will also have to be confirmed if it’s not developed by the company that owns the brand. A request for documents confirming the publisher rights You’ll also need to provide the documents on the data encryption algorithm if your app uses non-standard for iOS encryption methods. Reviews of subsequent versions of the app, especially those with small updates, usually take much less time. If you tweak only in-app purchases, you don’t have to send the whole app for review. In App Store Connect, an app developer can now initiate a review process... --- Learn what's new in Adapty in August: server notification statuses, coloumn resizing, beta SDK, and more Server notification status Real-time data from your app is constantly coming to the Adapty server. The connection status is essential in this case, so we’ve created 4 colored labels for the current state tracking. The gray “Waiting” status is usually shown when the notifications are configured but there are no events yet. The green “Active” one stands for a well-set regular server messaging . The yellow “Delayed” label is not a reason for panic, but you should be aware that there have been no notifications for more than a day. If you see the red “Stalled” status , there have been no notifications for more than 3 days which is a rare situation, so you should probably check your connection by sending a Sandbox event or contact the technical support. A/B testing CSV Why do we love A/B tests? Because they can make numbers significant and make data speak. After you’ve collected the priceless statistics reflecting the behavior of your actual target audience, it’s time for interpretation. Adapty shows the results in the interface automatically, but now there’s more to it: you can download the raw data to use alternative algorithms and analyze it further. We’ve added the CSV download option to the A/B tests recently, so, please, feel free to use the results of your experiments to the maximum. Resizable columns Now you can adjust the width of the table columns to see the data just the way you need. For example, even when your paywall’s name is “This-is-the-longest-name-of-a-paywall-containing-many-characters”, it’ll be possible to display it in two lines just by moving the border of the column. SDK 1. 18-beta For those innovators who like to try the best features first, we offer a new Adapty SDK version Why should one try it? The starting responses are now twice faster. Instead of sending all the paywalls, you get just the necessary one using its id. You can present the paywall to your customer faster than before, which usually means higher conversions. New onboarding events are added. Start sending them today to see the historical data when the funnel of Adapty analytics is updated. This way you can see what steps of your onboarding cause the churn. Visual Paywalls and Promo Campaigns features are no longer supported starting this version, so please consider removing the calls to the corresponding methods, if there were any; Some of the analytics calls are optimized; We’ve updated our sample apps to make the use of our SDK clearer. Update to the latest version and/or see the example of how to do it. --- Learn why freemium users choose to upgrade to premium subscriptions The app market is expected to hit $542 billion by 2026. It’s estimated to reach US$420. 70bn by 2022 alone. One revenue stream that consistently comes at the top in all these projections is app subscriptions. Between 2014 and 2017, Google recorded a 10X growth in app subscription revenues in Google Play. Over the years, app subscription revenue has only continued to grow. A recent study reports that subscriptions account for 82% of all revenue generated by non-gaming apps. In line with this, a 2020 data. ai (formerly App Annie) report attributed 79% of Google Play's top U. S. non-gaming apps' revenue and 94% of the same on the iOS app store to subscriptions. Yet another study by SensorTower discovered that app users are increasingly turning subscribers, driving substantial revenue for app publishers. In 2021, the top 100 subscription apps made $18. 3 billion (up 41%) from $13 billion the previous year. Since app conversion rates average 1-2%, we wonder: What exactly gets free mobile app users to get to the other side of the paywall as subscribers? Especially given that subscribers need to commit to weekly, monthly, or annual payments, unlike simple single in-app purchases. Let’s find out. Unlocking access to additional app content When Google spoke to 2,000 Android app subscribers across the U. S. and U. K. to understand what got them to subscribe to an app, about one-fourth (26%) said they upgraded to a premium subscription to access the app’s full content. So the ability to unlock premium content is the #1 motivation that drives subscriptions.   Exclusive (premium-only) content doesn't just entice free app users to upgrade but also gets them to keep paying. When apps keep delivering valuable content regularly, 44% of subscribers continue with the premium plans, while 25% cancel if the content doesn’t provide value or is deemed stale. Content-driven industries (such as health and wellness, news, and entertainment) naturally tend to drive the most conversions by moving valuable content behind the paywall. Still, content is the key conversion tool across all categories: The New York Times app is a classic example. We’ve all hit the publisher’s paywall at some point! Did you know when NYTimes started metering its content back in 2011, it offered 20 free articles a month? Eventually, it lowered the quota to 10. The app now limits free stories to 5 a month. The lesson? Finding the right mix of free and premium content may take some experimentation. A cooking app keeping its exclusive recipes exclusively for its pro subscribers. Taking advantage of subscription offers (deals and discounts) In the same study, a solid 23% of mobile app users mentioned that they ended up subscribing to an app because they received an excellent upgrade offer: Now, of course, most users who take advantage of a good deal on an app do so to access its premium content, unlock more features, or get rid of ads. However, it's important to note that even new free app users (who perhaps haven’t even explored an app fully) can still upgrade if they receive an offer they can't refuse. A participant in Google’s survey recalled how they upgraded simply because there was an offer: "I had signed up for a free trial because I got some kind of offer on it. I didn't even really know what it was all about but my kids ended up loving it so I kept it and still pay a subscription for it. ”  Said another way: Users that know the value of your app but aren’t paying subscribers yet may only need a good nudge in the form of a good offer to upgrade. And new users? Well, they can go pro right from the go if they see an irresistible offer. So what does a good offer – more so the “intro” offer – look like? Many things: The discount itself (and, of course, your app’s base pricing) The way you present it (the layout) The messaging (offer copy) As you can tell, there’s no one right way to approach these. The best way to find out what works for you is to run A/B tests to discover offers, layouts, and messaging that resonate with your subscribers. To start with, your general pricing should be right, too – yet another thing you can determine with testing. Wanting to extend post the trial Here's one for app publishers that publish paid apps – apps that charge users/subscribers to use them. In this case, users must subscribe (to premium plans) in order to continue using an application. Even though paid apps only make up a small part of the mobile app ecosystem, subscribers happily pay for them if they deliver value. In Google’s study, 17% of subscribers admitted to subscribing as they ran out of the free trial. You can attribute this partly to the fear users have of losing the progress they might have made on the app during the trial. If you’re a publisher into paid apps, know that trials are your best conversion tools. When done right, running fully-featured free trials can act as an excellent subscriber acquisition tactic as it gives users a feel of the app before committing to a plan.   Let users enjoy complete, unrestricted, and ad-free access to your app for an optimal length, and then pitch the perfect upgrade offer. Experiment with different trial periods to find the most conversion-friendly one for you. Consider 7-, 14-, or 30-day trials to see which one allows users to get a really good experience with your app – enough to encourage subscriptions. Test multiple upgrade plans – like giving two months free if users sign up for a full year or additional discounts on longer commitments – to find your “winner. ” Looking to enjoy ad-free experiences Revenue from in-app advertising spending is set to hit the $400B mark. Both free and freemium app publishers rely heavily on in-app advertising. App users also don’t seem eager to pay for ad-free... --- These five metrics help to see a clear picture of how your mobile app is doing In subscription economy analytics, there are generally accepted metrics: revenue, MRR (monthly recurring revenue), ARR (annual recurring revenue), and the total number of subscribers. These parameters are the core of app analytics and can always be found in the billing system of the provider, for example, in App Store Connect or Google Play Console. But they are not enough for proper monitoring of the status of your app. Below, I will describe some advanced mobile sales metrics. Try them and see how useful they are to evaluate the health of your product economy. 1. Renewals revenue The financial model of subscriptions is built on renewals. A total revenue graph or some other general metric is unlikely to be helpful when you want to see how it works, because you can't assess the "long tail" of subscribers. Let's take a look at the app's revenue graph: It seems that the app performed well in April, then something went wrong, but in May the growth resumed. Looks like a victory! But to understand these changes better and plan the revenue, let’s see what’s hidden here: In this example, we see that at an early stage in April almost all the money came from activations. This means that the app generated revenue mostly from first charges, not renewals, and in this case the retention of subscribers was low. It usually might happen when an app is fresh and has annual subscriptions. So this model could work if it wasn’t for the digression of the first subscriptions. We see it in the picture as a decreasing light orange chart. Was it because of marketing budget limitations, a seasonal effect, or the impact of a new competitor on the market? The reasons may vary. But let’s see why the revenue resumed its growth despite the activations decrease, and analyze if it’s a positive sign. Well, it’s easy to see that the source of money for the app changed. Instead of only new activations, the renewals added a significant part and boosted the total revenue. The 2nd renewals (blue area) grew in May and became almost half as profitable as activations. The 3rd, 4th, and 5th renewals also grew, though the most remarkable is probably 6th+ renewals which appeared and showed the level of loyal community of the app. If the trend remains the same this picture seems to be not that good in perspective. Taking the conversion rate for the app as an approximate constant and awaiting the decrease or the same level of activations, we may count on the fewer number of 2nd renewals in the next period from fewer activations in May. So the blue area will be smaller and won’t be able to save our economy if we don’t pay attention to the activation acquisition. Now you can see how this app grew further focusing on new activations. You may notice that in our pessimistic forecast we didn’t count the impact from the 2nd renewals blue area that was in May. Anyway, you see that this tail isn’t enough to stop the acquisition and retire. Just to plan a vacation maybe ;)  2. Metrics broken down by marketing attribution Marketing attribution means assigning a user to a specific traffic channel. Thanks to this, you can see which channel, ad campaign, or ads the user came from. Attribution used to work great on iOS, but with the App Tracking Transparencydeprecation and the introduction of SKAD, things have gotten more complicated. Most of the traffic, other than Apple Search Ads, is attributed to organics (i. e. has no attribution), which means there is no user-level attribution anymore, unless the user has agreed to the tracking. However, although individual users can’t be attributed to a certain channel, it’s still possible to look at the traffic distribution over channels. By splitting mobile application metrics by attribution, you may specify which tactic is relevant for each marketing channel, campaign, or even keyword, and therefore, gain more.   For instance, when you test a new creative approach on Facebook you want to see if it increases the amount of money you earn. Tracking the attributed traffic from Facebook instead of the total, you will check the results of your experiment.   Understanding the results of your marketing effort opens wide opportunities for spend optimization, wise investment in perspective tools, and ROI increase. 3. Cohort analysis by installs instead of purchases Cohort analysis allows one to analyze groups of users (cohorts) united by a certain trait. Using it, you can see the changes in the group over time, like churn rate, retention rate, and revenue generated by these users. Analyzing the data of each group separately allows us to see clear dependencies, as all the users of the group are under the same conditions.   We recommend building cohorts by installs instead of purchases, because the common goal of buying traffic is installations. Even if your ads purchasing model is paying for clicks or views, installs will be the last point of the acquisition process when the traffic becomes the app users.   So, by building cohorts based on installs, you can easily tell if the cost of the customer acquisition pays off. Let’s see how to work with cohorts analytics avoiding complicated mathematical operations and abstracts.   On the chart above the rows correspond to the cohorts of users, who installed the app in a certain month. R2 is the month of the 2nd subscription, R3 stands for the 3rd subscription, etc. As a result, by columns, you can see the dynamics of how users are paying and unsubscribing from month to month. Moreover, in the last column, there is the sum earned by each cohort in total. A system like this allows us to estimate how much money the cohort will bring in the future and whether it will be profitable. Comparing the acquisition cost for a particular period with the result of a long tail for the consequent cohort, you can see the associated return on... --- The third issue of the paywall newsletter containing a perfectly polished paywall of a big app, a paywall with the darkest pattern, a horizontal paywall The third issue of the paywall newsletter containing: a perfectly polished paywall of a big app which leaves almost no room for future testing, a paywall with the patterns so dark, you'll need a flashlight, a horizontal paywall, because why not? Paywalls of the issue are commented by... Alex Bauer, Head of Product & Market Strategy at Branch, the author of the Mobile Growth News. Let's see if there are any ideas you can borrow! MyFitnessPal, how big companies do it If you want a quintessential example of a perfectly optimised, A/B-tested, 'big company' paywall... here it is.  There's basically nothing left to do here, but that won't stop them trying: I saw several slightly different variants of the text on this one just while testing it out. MyFitnessPal Authenticator, shiny on the surface At first glance, this paywall looks polished.  But details matter, and issues start to appear as one looks closer. I appreciate the bullet points that highlight a few benefits of upgrading, but the numerous basic copywriting errors quickly make me doubtful about the quality of the app. And since this paywall pops up immediately after the first launch (and the X button to dismiss it is minuscule and doesn't appear until after a very long delay), the action I'm most likely to take is deleting the app. If I were to continue, listing two different prices for each subscription option is unnecessarily confusing and makes it difficult to be sure about how often I should expect to be charged. I'd rate this paywall as moderately unsuccessful. It's not intentionally deceptive to the user, but the app is most likely betting on people confusing it with other, better-known apps that have a similar name.   Authenticator SimplyPiano, no one said paywalls have to be vertical! Including the App Store awards for social validation is a good call, and I like that this paywall comes at the end of the carousel that explains the benefits of the subscription (because this allows to show far more details than would fit in a few bullet points). The only minor critique: there is just a lot going on here. Many different prices, a bunch of possible subscription combinations, and I'm still not quite sure what to make of the two 'free apps' offered on the left side. Magic Charger, it doesn't get worse than this I have nothing complimentary to say about this paywall.  The design isn't terrible, but the UX is actively manipulative and full of dark patterns. This app is clearly doing everything possible to trick users into an extremely expensive, recurring subscription. I've been hoping for years that Apple will crack down on such predatory behavior, and I'm surprised that this app passed even the existing bar for approval. Magic Charger Chord ai, who even needs design anyway? Even though this one isn't flashy, all the bones of a great paywall are here. There's clearly some room to improve in the design department, but this might still be one of the most successful paywalls in the collection today because the app honors the most important rule of subscriptions: build something users will want to pay for, and then let them give you money for it in a simple and non-manipulative way. Chord ai Clear Minds, functional but such tiny text This paywall would be immediately improved with just a little bit of TLC from a designer: things like improving the contrast of the copy, boosting the font size (did you even notice there's a free trial here? ), and better spacing. For extra credit, I'd like to see a few reminders of what the subscription includes, something to show that the longer options provide a discount, and perhaps a highlight for the preferred 'best offer' of the three. Clear Minds --- Dans l'article précédent, nous avons créé une classe enveloppante pour travailler avec le service de facturation: import android. content. Context import com. android. billingclient. api. * class BillingClientWrapper(context: Context) : PurchasesUpdatedListener { interface OnQueryProductsListener { fun onSuccess(products: List) fun onFailure(error: Error) } class Error(val responseCode: Int, val debugMessage: String) private val billingClient = BillingClient . newBuilder(context) . enablePendingPurchases . setListener(this) . build fun queryProducts(listener: OnQueryProductsListener) { val skusList = listOf("premium_sub_month", "premium_sub_year", "some_inapp") queryProductsForType( skusList, BillingClient. SkuType. SUBS ) { billingResult, skuDetailsList -> if (billingResult. responseCode == BillingClient. BillingResponseCode. OK) { val products = skuDetailsList ? : mutableListOf queryProductsForType( skusList, BillingClient. SkuType. INAPP ) { billingResult, skuDetailsList -> if (billingResult. responseCode == BillingClient. BillingResponseCode. OK) { products. addAll(skuDetailsList ? : listOf) listener. onSuccess(products) } else { listener. onFailure( Error(billingResult. responseCode, billingResult. debugMessage) ) } } } else { listener. onFailure( Error(billingResult. responseCode, billingResult. debugMessage) ) } } } private fun queryProductsForType( skusList: List, @BillingClient. SkuType type: String, listener: SkuDetailsResponseListener ) { onConnected { billingClient. querySkuDetailsAsync( SkuDetailsParams. newBuilder. setSkusList(skusList). setType(type). build, listener ) } } private fun onConnected(block: -> Unit) { billingClient. startConnection(object : BillingClientStateListener { override fun onBillingSetupFinished(billingResult: BillingResult) { block } override fun onBillingServiceDisconnected { // Try to restart the connection on the next request to // Google Play by calling the startConnection method. } }) } override fun onPurchasesUpdated(billingResult: BillingResult, purchaseList: MutableList? ) { // here come callbacks about new purchases } }import android. content. Context import com. android. billingclient. api. * class BillingClientWrapper(context: Context) : PurchasesUpdatedListener { interface OnQueryProductsListener { fun onSuccess(products: List) fun onFailure(error: Error) } class Error(val responseCode: Int, val debugMessage: String) private val billingClient = BillingClient . newBuilder(context) . enablePendingPurchases . setListener(this) . build fun queryProducts(listener: OnQueryProductsListener) { val skusList = listOf("premium_sub_month", "premium_sub_year", "some_inapp") queryProductsForType( skusList, BillingClient. SkuType. SUBS ) { billingResult, skuDetailsList -> if (billingResult. responseCode == BillingClient. BillingResponseCode. OK) { val products = skuDetailsList ? : mutableListOf queryProductsForType( skusList, BillingClient. SkuType. INAPP ) { billingResult, skuDetailsList -> if (billingResult. responseCode == BillingClient. BillingResponseCode. OK) { products. addAll(skuDetailsList ? : listOf) listener. onSuccess(products) } else { listener. onFailure( Error(billingResult. responseCode, billingResult. debugMessage) ) } } } else { listener. onFailure( Error(billingResult. responseCode, billingResult. debugMessage) ) } } } private fun queryProductsForType( skusList: List, @BillingClient. SkuType type: String, listener: SkuDetailsResponseListener ) { onConnected { billingClient. querySkuDetailsAsync( SkuDetailsParams. newBuilder. setSkusList(skusList). setType(type). build, listener ) } } private fun onConnected(block: -> Unit) { billingClient. startConnection(object : BillingClientStateListener { override fun onBillingSetupFinished(billingResult: BillingResult) { block } override fun onBillingServiceDisconnected { // Try to restart the connection on the next request to // Google Play by calling the startConnection method. } }) } override fun onPurchasesUpdated(billingResult: BillingResult, purchaseList: MutableList? ) { // here come callbacks about new purchases } } Passons à l'implémentation de l'achat et améliorons notre classe. Conception d'un écran d'abonnement Toute application qui propose des achats intégrés a un écran de paiement. Il existe des Règles de confidentialité et Conditions d'utilisation de Google qui définissent le strict minimum d'éléments et de textes pédagogiques qui doivent être présents dans ces écrans. Voici un résumé. Dans l'écran du paywall, vous devez être explicite sur les conditions, le coût et la durée de votre abonnement, et préciser si l'abonnement est nécessaire pour utiliser l'application. Vous devez également éviter de forcer vos utilisateurs à effectuer une action supplémentaire pour examiner les conditions.   Ici, nous utiliserons un écran simplifié de paywall comme exemple : Échantillon pour Android de Paywall Nous avons les éléments suivants sur l'écran du paywall : Une en-tête Des boutons permettant de lancer le processus d'achat. Ces boutons guident l'utilisateur vers les détails généraux des options d'abonnement, tels que le titre et le coût, qui est affiché en devise locale. Des instructions sous forme de texte.   Un bouton pour restaurer l'achat précédemment effectué. Cet élément est indispensable pour toute application qui propose des abonnements ou des achats non consommables. Modification du code pour afficher les détails du produit Il y a quatre produits dans notre exemple : Deux abonnements auto-renouvelables ("premium_sub_month_" et " premium_sub_year") ; Un produit qui ne peut pas être acheté deux fois, ou un produit non consommable ("fonction de _déverrouillage") ; Un produit qui peut être acheté plusieurs fois, ou un produit consommable ("coin_pack_large") ; Pour simplifier l'exemple, nous utiliserons une activité que nous injecterons avec le BillingClientWrapper créé dans l'article précédent, ainsi qu'une mise en page avec un nombre fixe de boutons d'achat. class PaywallActivity: BaseActivity { @Inject lateinit var billingClientWrapper: BillingClientWrapper override fun onCreate(savedInstanceState: Bundle? ) { super. onCreate(savedInstanceState) setContentView(R. layout. activity_paywall) displayProducts //to be declared below } }class PaywallActivity: BaseActivity { @Inject lateinit var billingClientWrapper: BillingClientWrapper override fun onCreate(savedInstanceState: Bundle? ) { super. onCreate(savedInstanceState) setContentView(R. layout. activity_paywall) displayProducts //to be declared below } } Pour plus de commodité, nous ajouterons une carte où la clé est la référence sku du produit et la valeur est le bouton correspondant sur l'écran. private val purchaseButtonsMap: Map by lazy(LazyThreadSafetyMode. NONE) { mapOf( "premium_sub_month" to monthlySubButton, "premium_sub_year" to yearlySubButton, "coin_pack_large" to coinPackLargeButton, "unlock_feature" to unlockFeatureButton, ) }private val purchaseButtonsMap: Map by lazy(LazyThreadSafetyMode. NONE) { mapOf( "premium_sub_month" to monthlySubButton, "premium_sub_year" to yearlySubButton, "coin_pack_large" to coinPackLargeButton, "unlock_feature" to unlockFeatureButton, ) } Déclarons une méthode pour afficher les produits dans l'interface utilisateur. Il sera basé sur la logique introduite dans notre précédent tutoriel. private fun displayProducts { billingClientWrapper. queryProducts(object : BillingClientWrapper. OnQueryProductsListener { override fun onSuccess(products: List>) { products. forEach { product -> purchaseButtonsMap? . apply { text = "${product. description} for ${product. price}" setOnClickListener { billingClientWrapper. purchase(this@PaywallActivity, product) //will be declared below } } } } override fun onFailure(error: BillingClientWrapper. Error) { //handle error } }) }private fun displayProducts { billingClientWrapper. queryProducts(object : BillingClientWrapper. OnQueryProductsListener { override fun onSuccess(products: List>) { products. forEach { product -> purchaseButtonsMap? . apply { text = "${product. description} for ${product. price}" setOnClickListener { billingClientWrapper. purchase(this@PaywallActivity, product) //will be declared below } } } } override fun onFailure(error: BillingClientWrapper. Error) { //handle error } }) } product. price est une chaîne déjà formatée qui spécifie la devise locale du compte. Elle... --- We joined Branch for a discussion on the current state of mobile industry and in app-purchases. On August 17 we joined Sam Edwards, Product Marketing Manager at Branch, for a talk on the trends in the mobile growth industry and how to stay relevant in the constantly changing market. We discussed the current state of the mobile landscape and in-app purchases in particular, reflected on the WWDC 2022 updates, and answered some of the current mobile growth-related questions. Make sure to watch the video till the end, you are sure to find some useful information and insights. Enjoy the full video down below! https://www. youtube. com/watch? v=86Rp2fw75QM&ab_channel=SubHubbyAdapty --- チュートリアル: アプリ内購入をFlutterアプリに実装する方法。Adapty ですばやく簡単に。 Flutterは、Googleが開発した比較的新しいフレームワークで、クロスプラットフォーム アプリをすばやく作成できます。もう1つの一般的なフレームワークは、FacebookのReact Nativeです。 Flutterアプリは、iOSとAndroidの両方を一度に構築できます。そのため、購入ライブラリは、StoreKitとBilling Libraryの両方と互換性がある必要があります。 アーキテクチャに関しては、Adapty Flutter SDKを含むすべての支払いプラグインは、ネイティブライブラリであるStoreKitとBilling Libraryのラッパーです。この場合、これは独自のAdapty iOSおよびAndroid SDKライブラリのラッパーです。 Flutterベースのアプリでのアプリ内購入 (in-app purchase) 用のオープンソースライブラリ Flutterアプリでの購入の一般的なソリューションは、オープンソースプラグインの in_app_purchase (Flutter開発チームによって開発) とflutter_inapp_purchase (非公式プラグイン) です。 これらのプラグインは、クライアントサイドの購入を実装するために作成されました。サーバーサイド (server-side) のレシート検証 (receipt validation) 機能はありません。レシートを検証して、更新、返金、試用 (trial)、キャンセルなどに関する支払い分析を収集するには、独自のサーバーサイドインフラストラクチャを設定する必要があります。 さらに、これらのライブラリは通常、ストアの新しい機能をサポートするまで時間がかかります。例として、現時点ではプロモーションオファー (promo offer)、従量課金制 (pay as you go) の機能、iOSの前払い (pay upfront) 機能がありません。 当社のライブラリはサーバーと通信するため、次のすべてが揃っています。 ● 購入サーバーの検証 ● ネイティブ支払い機能の完全なサポート ● DRY構文 ● サブスクリプション (定期購入) (subscription) と購入の分析およびその他のデータ収集 ● A/Bテスト (A/B test) と、購入、価格設定、プロモーション期間の簡単な実験 ● ペイウォール (paywall) とプロモーションオファー 簡潔で読みやすい記事にするために、Flutterアプリの購入について説明する前に、実行すべき手順について以前に公開した記事のリンクを記載しておきます。 iOSおよびAndroidでの購入の作成 まず、デペロッパーアカウントをお持ちでない場合は作成してください。次に、iOSとAndroidの両方で毎週の購入を作成する必要があります。これを行う方法については、以前の記事で取り上げました。 iOSの購入の作成 Androidの購入の作成 完了したら、プロジェクトの作成と設定を開始できます。 プロジェクトの作成と設定 実装と当社のシステムの両方で購入を実行するには、以下の技術的な詳細情報を入力していただく必要があります。 iOSの場合、次のことを行う必要があります。 ● バンドルIDを指定して、Adaptyプロジェクトをアプリに紐付ける ● App Store ConnectでApp Storeサーバ通知を設定して、サブスクリプションイベント(event) に関する通知を受け取れるようにします。 ● AdaptyサーバーがAppleのサーバーへの接続を確立して、レシートを検証するために使用するApp Store共有シークレット (shared secret) を指定します。 Androidの場合、パッケージ名とサービスアカウントキーファイルの両方を指定する必要があります。パッケージ名は、Android版のiOSのバンドルIDです。コードで使用されているものと同じ名前を使用する必要があります。これは、android. defaultConfig. applicationIdディレクトリの/android/app/build. gradleファイルで確認できます。 プロダクトとペイウォールの設定 Adaptyプロダクトは、さまざまなストアのプロダクトを包括します。ここではApp StoreとGoogle Playのみを取り上げますが、今後他のストアも紹介していきます。このアプローチの目的は、クロスプラットフォームの統計収集を容易にして、識別子ではなくトップレベルのエンティティを操作できるようにすることです。 ペイウォールは、プロダクトの配列とリモート設定 (remote config) ファイル (ダッシュボードで指定したメタデータを含むJSONファイル) を含む抽象的なエンティティです。ペイウォールIDをアプリにハードコーディングします。このIDは、設定ファイルとプロダクトデータを取得するために使用されます。アプリを更新しなくても、これらの両方を編集できます。通常のシナリオでは、ペイウォールを設計して、当社から受け取ったデータを入力します。 プロダクトの作成 Google Play ConsoleとApp Store Connectを使用して、毎週のサブスクリプション (定期購入) に対応するプロダクトを作成してみましょう。支払いシステムから取得できる、対応するプロダクトのIDを入力します。 App Store ConnectにはAPIがないため、一度のみ手動で行う必要があることに注意してください。 ペイウォールの作成 ペイウォールを作成する際の重要な点は、便利な形式でIDを指定できることです。この識別子は、後でSDKによってペイウォールデータをリクエストするために使用されます。これは、良いアプローチになるでしょう。このアーキテクチャでは、クライアントサイドでプロダクトをハードコーディングする必要はありません。プロダクト管理、バージョニング、テストなどを柔軟に行うことができます。代替のオプションは、一連の組み込みプロダクトを含むFirebase JSON です。ただし、エラー検証に対応していないため、利便性に欠けます。 以上です。プロダクトとペイウォールを作成したので、最初の購入の準備が整いました。 SDKのインストールに進みましょう。 SDKの使用方法 サブスクリプション (定期購入) を設定して使用するために必要な主な機能を見てみましょう。 ライブラリのインストール まず、adapty_flutterライブラリをプロジェクトに追加する必要があります。これを行うには、次の依存関係をpubspec. yamlファイルに追加します。 dependencies: adapty_flutter: ^1. 0. 4dependencies: adapty_flutter: ^1. 0. 4 その後、以下のコードを実行します。 flutter pub getflutter pub get ここから、次のようにAdapty SDKをアプリにインポートできます。 import 'package:adapty_flutter/adapty_flutter. dart';import 'package:adapty_flutter/adapty_flutter. dart'; 設定 Adaptyで動作するようにアプリを設定する必要があります。その際には、パブリック SDKキーを使用して、AdaptyPublicSdkKeyフラグをInfo. plist (iOS の場合) またはAndroidManifest. xml (Android の場合) に追加します。 Adapty設定でSDKキーを確認できます。 Info. plist: <dict> ... <key>AdaptyPublicSdkKey</key><dict> ... <key>AdaptyPublicSdkKey</key> AndroidManifest. xml: <application ... > ... <meta-data android:name="AdaptyPublicSdkKey" android:value="PUBLIC_SDK_KEY" /> </application><application ... > ... <meta-data android:name="AdaptyPublicSdkKey" android:value="PUBLIC_SDK_KEY" /> </application> 次に、Flutter側でこのコードを呼び出してSDKを有効にします (プロジェクトのmainメソッドなど)。 void main { runZoned( async { Adapty. activate; final installId = await Service. getOrCreateInstallId; await Adapty. identify(***customer-user-id***); await Adapty. setLogLevel(AdaptyLogLevel. verbose); runApp(MyApp); }); }void main { runZoned( async { Adapty. activate; final installId = await Service. getOrCreateInstallId; await Adapty. identify(***customer-user-id***); await Adapty. setLogLevel(AdaptyLogLevel. verbose); runApp(MyApp); }); } void Adapty. activate関数は、Adapty_Flutterライブラリを有効にします。 Future<bool> Adapty. identify(String customerUserId)Future<bool> Adapty. identify(String customerUserId) Adapty. identifyを使用すると、ユーザーのIDを取得できます。 AdaptyはそのIDをサブスクリプション (定期購入) および分析システムに送信して、イベントをこのプロファイルに割り当てます。また、プロファイルのcustomerUserIdでクライアントを見つけることもできます。 Adaptyは、エラーメッセージやその他の重要なデータをログに記録して、現状を把握するのに役立ちます。 Future<void> Adapty. identify(AdaptyLogLevel value)Future<void> Adapty. identify(AdaptyLogLevel value) この関数を使用すると、想定される3つの値のいずれかを選択できます。 ● AdaptyLogLevel. none (デフォルト設定):何も記録されません。 ● AdaptyLogLevel. errors:エラーメッセージのみが記録されます。 ● AdaptyLogLevel. verbose:メソッド呼び出し、APIリクエストと応答、エラーメッセージがログに記録されます。 ペイウォールの取得 ペイウォールリストを取得するには、次のコードを実行します。 try { final GetPaywallsResult getPaywallsResult = await Adapty. getPaywalls(forceUpdate: Bool); final List<AdaptyPaywall> paywalls = getPaywallsResult. paywalls; } on AdaptyError(adaptyError) {} catch(e) {}try { final GetPaywallsResult getPaywallsResult = await Adapty. getPaywalls(forceUpdate: Bool); final List<AdaptyPaywall> paywalls = getPaywallsResult. paywalls; } on AdaptyError(adaptyError) {} catch(e) {} Adapty. getPaywalls関数は、以下を含むGetPaywallsResultオブジェクトを返します。 ● ペイウォール:ペイウォール配列 (AdaptyPaywall)。モデルには、プロダクトリスト、ペイウォールID、カスタムペイロードなど、その他いくつかの値が含まれています。 購入 前回の手順で、ペイウォール配列を取得しました。次に、これらのプロダクトをUIに表示するために必要なものを確認します。このペイウォールの名前がyour_paywall_idであるとします final List? paywalls = getPaywallsResult. paywalls; myPaywall = paywalls? . firstWhere((paywall) => paywall. developerId == "your_paywall_id", orElse: null);final List? paywalls = getPaywallsResult. paywalls; myPaywall = paywalls? . firstWhere((paywall) => paywall. developerId == "your_paywall_id", orElse: null); 次に、productsフィールドのproduct配列を使用して、すべての項目を表示します。ユーザーが最初のプロダクトを購入したいとしましょう。わかりやすくするために、product配列の最初の項目であると仮定します。 final AdaptyProduct? product = myPaywall? . products? . first;final AdaptyProduct? product = myPaywall? . products? . first; 購入を開始するには、makePurchaseResult関数を呼び出します (SDKからすべてのエラーメッセージを引き続き受け取るには、必ずtry-catchブロックでラップしてください)。 final MakePurchaseResult makePurchaseResult = await Adapty. makePurchase(product);final MakePurchaseResult makePurchaseResult = await Adapty. makePurchase(product); 関数が正常に実行されると、makePurchaseResult変数はその結果を値として受け取ります。購入完了後にアクセスレベルを確認する方法は、次のとおりです。 final isPremium = makePurchaseResult? . purchaserInfo? . accessLevels? . isActive ? ? false;final isPremium = makePurchaseResult? . purchaserInfo? . accessLevels? . isActive ? ? false; AdaptyErrorCode. paymentCancelledは、ユーザー自身で購入をキャンセルしたことを意味します。これは、実際のエラーメッセージではありません。 購入を復元するには、. restorePurchasesメソッドを使用します。 try { final RestorePurchasesResult restorePurchasesResult = await Adapty. restorePurchases; // "premium" is an identifier of default access level if (restorePurchasesResult? . purchaserInfo? . accessLevels? . isActive ? ? false) { // grant access to premium features } } on AdaptyError catch (adaptyError) {} catch (e) {}try { final RestorePurchasesResult restorePurchasesResult = await Adapty. restorePurchases; // "premium" is an identifier of default access level if (restorePurchasesResult? . purchaserInfo? . accessLevels? . isActive ? ? false) { // grant access to premium features } } on AdaptyError catch (adaptyError) {} catch (e) {} MakePurchaseResultオブジェクトとRestorePurchasesResultオブジェクトの両方にpurchaserInfoが含まれていることを考慮してください。このオブジェクトには、アクセス レベル、サブスクリプション (定期購入)、購入に関するデータが含まれています。通常、アクセスレベルを確認するだけで、ユーザーがアプリの有料機能を利用できるかどうかを判断できます。 サブスクリプション (定期購入) のステータス 先行するトランザクションチェーン全体を確認する必要がないように、「アクセスレベル」という用語を導入しています。アクセスレベルは、ユーザーが利用可能なアプリの機能の範囲を説明するフラグです。まだ有料プランを購入していない場合、アクセスレベルは「null」になります。それ以外の場合は、プロダクトで指定した値になります。 たとえば、シルバーとゴールドの2つのアクセスレベルを設定できます。各レベルに応じて、購入すると異なるアクセスレベルと機能を利用できるようになります。ほとんどのアプリには、1つのアクセスレベルしかありません。 サブスクリプションがアクティブかどうかを確認するには、ユーザーにアクティブなアクセスレベルがあるかどうかを確認するだけで十分です。. getPurchaserInfoメソッドを使用して、確認することができます。 try { AdaptyPurchaserInfo purchaserInfo = await Adapty. getPurchaserInfo; // "premium" is an identifier of default access level if (purchaserInfo. accessLevels? . isActive ? ? false) { // grant access to premium features } } on AdaptyError catch (adaptyError) {} catch (e) {}try { AdaptyPurchaserInfo purchaserInfo = await Adapty. getPurchaserInfo; // "premium" is an identifier of default access level if (purchaserInfo. accessLevels? . isActive ? ? false) { // grant access to premium features } } on AdaptyError catch (adaptyError) {} catch (e) {} . purchaserInfoUpdateStreamストリームに登録すると、サブスクリプショユーザーのアクセスレベルの変更に関する通知をリアルタイムで受け取ることもできます。方法は次のとおりです。 Adapty. purchaserInfoUpdateStream. listen((purchaserInfo) { print('#Adapty# Purchaser Info Updated'); if (purchaserInfo. accessLevels. isActive) { // grant access to premium features } });Adapty. purchaserInfoUpdateStream. listen((purchaserInfo) { print('#Adapty# Purchaser Info Updated'); if (purchaserInfo. accessLevels. isActive) { // grant access to premium features } }); まとめ 当社のSDKは、支払いをアプリにすばやく統合できるように設計されています。さらに、A/Bテスト、分析、追加の統合など、必要となる他のすべての手順を効率化できるよう努めています。 お客様の収益が月額10,000ドル未満の場合、すべての購入機能を無料で提供します。数か月にわたって作業負担を軽減して、最も重要なプロダクトに集中できます。 --- Adapty'nin güçlü özelliklerini kullanarak gelirini milyon dolara çıkaran uygulama Moonly. Pandemi ile yayına girdi Mart 2020'de hastalık nedeniyle tüm dünya durmuş, insanlar evlerine kapanmış, işletmeler kapatılmış ve tüm dünya salgınla mücadele ediyordu. Olga Ramora ve Vitaly Urban, Moonly adlı uygulamalarını tam da bu sıralarda piyasaya sürdüler. Olga, işleri başlatmak için dairesini satarak uygulama için harcadı. Moonly, meditasyon teknikleri, taro, runikler, ay takvimi ve olumlamalar gibi özelliklere sahip bir ruhsal sağlık uygulamasıdır. Adapty ile 0'dan 2,45 milyon dolara Moonly uygulamayı yayına aldıktan kısa bir süre sonra Adapty’yi entegre etti. Adapty başlangıçta abonelik entegrasyonu için bir altyapı görevini görüyordu, fakat şimdi gelir artışı için temel araç haline geldi. Adapty, Moonly’yi 0’dan 2,45 milyon $ ARR’ye kadar destekledi. Hızlı uygulama içi abonelik entegrasyonuyla başladılar Moonly sıkı bir bütçeyle başladı. Geliştirme ekibi kurucuları zaten tanıdığı ve güvendikleri için büyük bir güvenle işe başladı. Olga işe başlamadan önce sanat yönetmeni olarak çalıştığı için uygulamanın ilk aşamasını kendisi tasarladı . Kendi ödeme altyapılarını geliştirmeleri birkaç ay sürecekti: satın alımları doğrulamak, analizleri ve diğer hizmetleri entegre etmek ve farklı para birimlerini, saat dilimlerini, fatura sorunlarını ve geri ödemeleri hesaba katmak için kendi sunucu kodlarını yazmak zorunda kalacaklardı. Adapty, abonelikleri uygulamaya entegre etmek için ihtiyaç duydukları her şeye sahip olduğundan, böyle bir kaynak israfı mantıksız olacaktı. Bir hafta içinde entegre ettiler ve para kazanmaya başladılar. Analitik tabanlı kararlar almaya başladılar İlk ödemelerden itibaren ekip, aboneliklerin coğrafyası, müşteri tabanının büyümesi, ürün bazında gelir yapısı, abonelik yenilemeleri, iptaller vb. hakkında doğru verileri almaya başladı. Bu şekilde, Adapty’nin yardımıyla Moonly, uygulamanın ekonomisini bir bütün olarak değerlendirdi ve daha fazla iş geliştirme yolları buldular. Sürekli test yaparak gelirlerini artırmaya başladılar Trafik artışı, ölçeklendirmeye ihtiyaç olduğunu açıkça ortaya koydu. Şirketin büyüme başkanı Anton, sürekli deneme sürecini yarattı. Ekip, huninin her aşamasının tüm öğelerini test etti: reklam kampanyalarının metinleri ve reklam öğelerini sürekli analiz ettiler. reklam kanallarını test ettiler. uygulama mağazalarındaki ekran görüntülerini test ettiler. farklı onboarding seçenekleri denediler onboarding sırasında ve uygulamanın içinde paywall gösterdiler push notifications: metinleri ve gönderme zamanını test ettiler özel teklifleri test ettiler. Ekip sürekli olarak hipotezler geliştiriyor, testler yapıyor ve sonuçları işliyordu. Süreç, deneylerle ilgili haftalık toplantılar, farklı görevler için hazır şablonlar içeren testler için bir kanban panosu ve ayrı bir Slack kanalı ile kolaylaştırdılar. Analistler, para kazanmayı doğrudan etkilediği için paywall testlerine özellikle dikkat etti. Paywallda genellikle şunları test ettiler: Deneylerden biri %47 gelir artışı sağladı Onboardingten hemen sonra kullanıcıya gösterilen ilk paywall, genellikle tüm aboneliklerin yaklaşık %80'ini getirir. Bu nedenle ilk paywallu test etmek en önemli sonuçları getirir. Moonly analistleri ilk paywallda fiyatları test ederken, fiyat artışının dönüşüm oranını düşürdüğünü fark ettiler. Kullanıcılar, uygulamayı denemeden belirli bir fiyatın üzerindeki aboneliği satın almak istemiyorlardı. Bu yüzden deneme süresini eklemeye karar verdiler. Ancak bunu ödeme duvarındaki yalnızca bir ürüne eklediler — yıllık abonelik. Test böyle görünüyordu: Bu test, uygulamanın ekonomisi için önemli sonuçlar verdi. Her şeyden önce, paywall dönüşüm oranı toplamda %39 arttı. İkinci olarak, deneme daha güvenli göründüğü için kullanıcılar diğer seçeneklerden daha sık yıllık aboneliği seçmeye başladılar. Satın almaların bu şekilde yeniden dağıtılması, ARPPU’da %5'lik bir artışa neden oldu. Bu iki ölçümün iyileştirilmesi, 100 yükleme başına gelirde %47'lik bir artışla sonuçlandı. Ve mutlu son Moonly başarıyla büyüyor ve yeni kullanıcılar kazanmaya devam ediyor. Adapty de Moonly’nin büyümesinde önemli bir rol oynamaya devam ediyor. 2021'de Moonly’nin ARR’si 2,45 milyon dolardı: --- Adapty'nin üstün özellikleri ile A/B testi yaparak gelirini %30 arttıran mobil uygulama Prosto Hakkında Prosto bir meditasyon uygulaması. Irena Ponarošku, 2,4 milyon takipçisi olan bir Instagram blog yazarıdır. Irena bilinçli tüketim, ekolojik sorumluluk ve kendisiyle ve başkalarıyla uyum içinde yaşama hakkında bloglar yazıyor. Öncelikle kendi kitlesini ve meditasyonla ilgilenenleri hedeflemektedir. Sensor Tower grafiği Adapty ile A/B testi bir hafta yerine bir gün sürer Adapty, satın alma süreçlerinin her aşaması için dönüşüm oranlarının artmasını sağlayarak aylık yinelenen geliri (MRR) artırdı. Adapty’yi kullanmaya başlamadan önce de paywall’larını test ediyorlardı. O zamanlar şunları yapmaları gerekiyordu: yeni bir tasarım oluşturmak, yeni ödeme duvarını tasarlamak, geliştiriciye vermek, kodlamak, testleri yapılandırmak, inceleme için Apple’a göndermek ve ardından yeni sürümlerini başlatmak. Bu şekilde testler genellikle bir hafta veya daha fazla sürüyor. Adapty bu süreçleri tamamen değiştiriyor. Adapty’nin uygulamasında yeni bir ödeme duvarı oluşturabiliyorsunuz: Bir hafta yerine, artık yayındayken bile A/B testlerini yalnızca bir günde başlatılabiliyor: Prosto ekibi, Adapty SDK’i kurarken, temel analizleri zaten toplamış ve test etmek için bazı hipotezler geliştirmişti. Uygulamanın reklamları, kullanıcıları cezbetmede etkiliydi, ancak yükleme-abonelik oranı daha yüksek olabilirdi. Adapty’nin son raporuna göre Rus kullanıcılar, mobil aboneliklere pek alışkın değiller. Ancak, Prosto IAP modeline olan bu ilgi eksikliğine rağmen yüksek abonelik oranlarına sahip. Gelirleri %30 artıran test Prosto, Adapty’ye geçmeden önce kullanıcılarına iki abonelik planı sunuyordu: 30$’lık yıllık plan ve 3$’lık aylık plan. Analizlere dayanarak, yıllık abonelik planının kullanıcıları için pahalı olduğunu öğrendiler. Yaklaşık 15$’lık bir plan sunarlarsa, kullanıcılarının abone olmaya daha meyilli olacağını varsaydılar. Adapty’de ödeme duvarı için bir A/B testi oluşturdular ve tasarımda bazı değişiklikler yaptılar: Yıllık ve aylık plana alternatif olarak, artık 6 aylık ve aylık plan seçeneği sundular. Bir figür olarak Irena’nın resmi, bir görselden daha fazla güven verdiği için onun resmiyle değiştirdiler. Genel olarak, gerçek bir kişinin fotoğrafı görsellerden daha fazla dikkat çeker. Uygulamanın faydaları listesini inceledikten sonra, dikkatlerini uygulamanın özelliklerini listelemek yerine izlenimlere ve olası sonuçlara çevirdiler. İşte ilk testin sonuçları: Bu, daha düşük abone edinme maliyeti ve reklam harcamalarını yeniden düşünmesiyle sonuçlandı. Ve daha da önemlisi, abonelik davranışının değiştiğini gördüler . Daha önce, abonelerinin yaklaşık %6'sı aylık abonelik kullanıyordu. Testten sonra, 6 aylık plan kullanıcılar arasında oldukça popüler hale geldi. Genel olarak, tüm bunlar aylık %30'luk bir gelir artışı sağladı. Grafikte görüldüğü gibi, reklam bütçeleri aynı kaldı, ancak gelirleri arttı. Abone sayısı arttıkça yenilemeler de arttı. Yeni kullanıcılar edinmek veya mevcut kullanıcıları korumak isteyip istemediğinize göre paywall testleri sizin için faydalı olacaktır. Mobil uygulamalarda gelir elde etme işi sürekli bir analiz gerektirir. Kullanıcı hareketleri dinamik süreçlerdir. Kullanıcıların belirli dönemlerde hareketlerini iyi analiz etmek gelir modelinizin en önemli adımıdır. Bunun için Adapty’nin kodla uğraşmanıza gerek olmadan size sunduğu Cohort analizlerini kullanarak kullanıcı kaybınızı en aza indirirken gelirlerinizi arttırabileceksiniz. Son olarak Prosto CPO’sunun sözlerini bırakıyorum. 1 numara olmayı planlıyoruz ve Adapty bizim gizli silahlarımızdan biri. Ödeme ekranlarınızda hızlıca A/B testler yaparak kazancınızı arttırmak isterseniz Adapty’yi hemen deneyebilirsiniz. --- Union Apps Adapty'nin üstün özelliklerini kullanarak müşterilerine nasıl milyonlarca dolar kazandırdı. 2022'de iki uygulama, Union Apps ile çalışmalarında ilk bir milyon dolarlık gelirlerini elde ettiler. Her ikisi de uygulama içi abonelik altyapısı, analizler ve paywall A/B testi için Adapty’yi kullanıyorlar. Adapty ile Sonuçlar Abonelik tabanlı uygulamalar için bir yayıncı olan Union Apps, ortaklarının ürünlerini geliştirmesine, pazarlama yapmasına, finansal raporlar hazırlamasına ve daha fazla para kazanmasına yardımcı oluyor. Adapty’nin gücünü kullanarak Union Apps’in Verdiği Hizmetler Union Apps pazarlama ve ürün geliştirme için Adapty, AppsFlyer ve Amplitude gibi güçlü araçları kullanıyor. Adapty, Union Apps’in başlangıçtan itibaren ve tüm uygulama işbirliği dönemi boyunca aldığı kararlarda yol gösterici oluyor. Bir iş ortağıyla sözleşme imzalanmadan önce Adapty’nin abonelik analizleri, Union Apps’in ortaklığın her iki taraf için de kazançlı olup olmayacağını belirlemesine yardımcı oluyor. Ve ortaklık başladığında Union Apps, Adapty’nin paywall A/B testlerini kullanarak ortağının gelirini arttırıyor ve pazarlama yatırımının getirisini tahmin etmek için doğru analitik verilerine güveniyor. Ortaklık kararları Union Apps’ın Adapty’yi kullanarak verdiği en temel karar, bir uygulamayla ortaklığın işe yarayıp yaramayacağı ve her iki taraf için de faydalı olup olmayacağıdır. Potansiyel yayınlamaya giden yol, LTV, funnellın farklı aşamalarındaki dönüşüm oranları, ödeme yapan kullanıcıların yüzdesi, uygulama özelliklerinin retention oranları gibi metriklerin analiz edilmesiyle başlıyor. Daha sonra bu metriklerin doğrulanması gerekiyor. Bunun için, Google Ads ve Facebook üzerinden kullanıcı edinimi için yaklaşık 5 bin dolar yatırım yaparak bir test yapıyorlar. Bu test, ya önceki aşamada toplanan metrikleri doğrular ya da bir şeyin beklendiği gibi çalışmadığını ortaya çıkarır. Doğrulama için Adapty’deki kohort analizini ve funelları kullanıyorlar. İlişkilendirme ve ürüne göre filtrelenmiş verileri gösteren kohort analizi Adapty’nin kohort analizi, kullanıcıların kayıp eğilimini gösterir ve tüm uygulama ürünlerindeki (veya yalnızca seçili ürünlerdeki) verilerin kolayca görünmesini sağlar. Filtreler, ilişkilendirme, ülke, paywall, mağaza veya hedef kitle segmentine bağlı olarak verilerin izlenmesine yardımcı olur. Ürüne, ülkeye ve mağazaya göre filtrelenmiş verileri gösteren Adapty’nin Funnel Özelliği Adapty’nin funnel özelliği, dönüşümleri ve geliri artırmak için kullanıcıların yolculuğunda hangi adımların iyileştirilebileceğini anlamanıza yardımcı olur: Metrikler onaylanırsa Union Apps, uygulamanın daha büyük reklam yatırımları bağlamında ROAS KPI’ını yakalayıp yakalayamayacağını test eder. Bu aşamada, denemeye dahil olan ASO, influencer marketing ve product ekipleri ile ücretli kullanıcı edinimi için daha fazla bütçe yatırılır. İşbirliğinin MRR/ARR büyümesi için bir sıçrama tahtası haline gelmesi Union Apps ve ortak ekipler için önemlidir. Bu aşama ayrıca, ortaklığın sonraki üç aylık çalışmada başarı elde edip edemeyeceğini ve ekiplerin birlikte çalışmak için bir sinerjiye sahip olup olmadığını gösterir. Tüm aşamalar başarıyla geçilirse Union Apps ve partner uygulaması bir sözleşme imzalar ve yayıncılık çerçevesinde çalışmaya devam eder. Para kazanma kararları Union Apps çalıştığı uygulamalarda trafik satın alır, ürünler üzerinde denemeler yapar ve dönüşüm funnelının reklam öğeleri, App Store bileşenleri, onboarding süreçleri ve paywallar gibi aşamalarında farklı yaklaşımlar dener. Localization ve paywall A/B testleri, Adapty ile gerçekleştirilir. Müşterileri için uyguladıkları özel bir test olan OctaZone uygulaması , LTV’yi artırmaya ve genel olarak gelirini artırmaya yardımcı oluyor. LTV’yi %30 artıran test A- OctaZone paywall'unun ilk hali Bu paywallda kullanıcıların %75'i aylık plan yerine yıllık aboneliği seçiyordu. Sonuç olarak çoğu kullanıcı için abonelik yenilemesinin bir yıl sürmesi gerekiyordu. Bu açıdan ekip pazarlama yatırımlarından hızlı bir geri dönüş göremedi. B- Union Apps yeni bir paywall önerdi. 3 aylık bir abonelik ekleyerek ve yıllık planın fiyatını arttırdılar. Paywall performanslarını karşılaştırmak için Adapty ile bir A/B testi başlattılar. Test neden %30 LTV artışıyla sonuçlandı? Yeni paywallda yıllık planı seçen kullanıcıların oranı %75'ten %17'ye düştü. Yüklemeden aboneliğe dönüşüm oranı aynı kalsa da, satın almaların üç aylık ve aylık seçenekler lehine yeniden dağıtılması, tahmine göre daha fazla para getirecekti. Adapty’nin abonelik istatistiklerine ve Union Apps’in kendi verilerine dayanan tahmin, LTV artışını %30 gösterirken, ARPPU artışının paywallun önceki sürümüne göre 1,5 kat daha yüksek olması bekleniyordu. Tahmin modeli, yıllık abonelik yenilemelerini hesaba kattı. A/B Testi Sonuçları 30% LTV Artışı x1. 5 ARPPU Artışı Arsen Ibragimov: Başladığımız günlerde, paywall ve yerleşik A/B testi için kendi hizmetimizi geliştirdik. Bunu uygulamak için çok zaman, para ve insan kaynağı harcadık ve yine de hedeflediğimiz doğruluk ve rahatlığı yakalayamadık. Adapty’yi tesadüfen sosyal medyadan öğrendik. Birkaç gün içinde entegre ettik ve hemen kullanmaya başladık. Şimdi fikirden lansmana kadar olan A/B testi döngüsü, çok daha az zaman alıyor ve herhangi bir geliştirici ihtiyacı gerektirmiyor. Uzun Vadeli Planlar Union Apps ekibi, abonelikler hakkında zaten çok sayıda veriye sahip: çeşitli sürelerdeki aboneliklerin yenileme oranları, pazarlama yatırımlarının geri dönüşü için gereken süre, farklı kategorilerdeki abonelikler için en uygun fiyatlar ve daha fazlası. Tüm bu veriler tahmin yapmak için kullanılıyor. Ayrıca Adapty’nin raporlarındaki abonelik kriterlerine de güveniyorlar. Örnek olarak, OctaZone için yukarıda bahsettiğimiz A/B testi yıllık aboneliği içeriyordu, bu nedenle bu tür abonelerin yenileme oranını görmek bir yıl alacaktı. Ancak rapordaki kıyaslama sonuçlarını kontrol ederek gelecekteki geliri tahmin etmek çok kolay! Adapty’nin iOS abonelikleri raporundan bir slayt Union Apps ve Adapty ile ilk 1 milyon dolarlık gelirine ulaşan uygulamalar 2022'de iki uygulama, Adapty’nin yardımıyla Union Apps’in rehberliğinde ilk 1 milyon dolarlık yıllık net gelirlerini elde etti. STRETCHIT: 347 bin dolardan 4. 5 milyon dolar ARR’a Esneme hareketleri uygulaması olan STRETCHIT, üç ayda (Kasım 2021 — Ocak 2022) 347 bin ARR’dan 2. 5 milyon ARR’a yükseldi. Union Apps reklam kampanyaları yürüttü, etkileyici pazarlama faaliyetleri yaptı, ASA’yı optimize etti, ürün ve paywall hipotezini test etti. Şu anda STRETCHIT’in ARR’ı 4. 5 milyon dolar ve büyümeye devam ediyor: Prime Fasting: 205 bin dolardan 2,5 milyon dolar ARR’a Union Apps, aralıklı oruç uygulaması Prime Fasting’i büyütmek için Adapty’yi kullanarak onboarding ve paywall üzerinde deneyler yaptı, yüzlerce reklam öğesini test etti ve ücretli pazarlama kanalları kullandı. Sonuç, üç aylık bir süre içinde (Kasım 2021 — Ocak 2022) ARR büyümesi 205 bin dolardan 1 milyon dolara yükseldi. Sonraki üç ay boyunca da 2,5 milyon dolarlık ARR artışı daha gördüler. Artem Smirnov Gelirimiz, Adapty dahil ortaklarımızın güvenilirliğine bağlıdır. Adapty ile işbirliğimiz boyunca, sinerjiyi hissediyor ve ürün kalitesi ve özelliklerdeki artışa tanık oluyoruz. Adapty’nin büyümesine büyük bir ilgi duyuyoruz ve raporlarını analiz etmek, müşteri görüşmelerine katılmak, geri bildirim sağlamak ve hataları bildirmek için çok zaman harcıyoruz. İşbirliğimizin hem ortaklarımızı hem de Adapty’yi büyütmeye yardımcı olacağına inanıyorum — çünkü ikimizin de uygulamaları milyonlarca MRR’a ulaştırmak gibi bir amacımız var. --- What's new in Adapty in July: new retention feature, conversion tracking, Sandbox documentation, and more. Retention Do you want to retain customers wisely? With the retention feature, it’s easy to inspect how the users you’ve attracted renew and become loyal. Now you can see absolute and relative numbers from period to period and understand how retention changes for various geos, products, paywalls, and marketing parameters.   Conversion This is a fresh, and perhaps the most awaited, feature that came out in the last days of July. Now, with Adapty, you may track conversion changes over time, check how your experiments influence the rate, make forecasts, and generate new ideas for growth. Sandbox documentation and more The better the testing – the higher the quality. To prevent common difficulties with testing on Android and iOS, please, use our new Sandbox documentation for both platforms.   Don’t forget about such useful updates as: Separate OAuth tokens for the stores in Adjust integration Additional fields in events export to S3: currency, profile_country, store_country Product duration grouping and filtering in all charts – a handy parameter to see the impact of short-term and long-lasting subscriptions --- Anton Shlovenets, the CPO at Wowmaking, talks on how to approach traffic acquisition and correctly calculate unit economics. Many developers seem to earn less money, as they don’t know how to properly purchase traffic or calculate ARPU. So we’ll try to help them out! In the 15th episode of the SubHub podcast, we talk to Anton Shlovenets, the CPO of the company. He told us about the right approach in traffic acquisition, effective work with ad creatives and important aspects of calculating unit economics in the right way. Listen to the episode in Russian or read the most interesting parts below in English. SubHub by Adapty. io · SubHub Podcast #15 – Антон Шловенец (Wowmaking) Intro Anton Shlovenets: Sometimes you feel really proud of giving something new to the market, especially in terms of creatives. For example, when our creative team finds some kind of unique concept which was never used on the market before, and then you see the same creatives slowly start to appear in the apps of the big players like Calm, and you know they replicated your work, – it’s awesome. This doesn’t give you money though, but it can soothe your vanity. Meeting the guest Interviewer: Hi, Anton, thanks for joining us on our podcast! We’re very glad to see you. Tell us a little about yourself, your professional way, and how you got to the CPO position at Wowmaking. We’re all eager to learn about it. Anton Shlovenets: My path was thorny and difficult. I started not in the mobile sphere at all and wasn’t working with Apps. I worked with web and general clients in digital marketing, advertising household items. Our agency was a partner of Google, so we participated in their conferences, and it's where we met the guys who were into making mobile products, it was many years ago. We worked with all kinds of clients, so we offered them our services as well and started testing how we can help them in terms of marketing. At the same time we had another company that was engaged in outsourcing, but it was beginning to decline at the time. So we decided to turn these teams to developing our own products, including mobile apps and web services. It didn't work out very well, but they learned at least some technical aspects of development. But in the process of testing our own products we met some other guys who had just made their first iOS app and they offered us to work on the RevShare model. They saw that we had expertise in marketing and asked if we could help them with the traffic acquisition, and offered to share the profit 50/50. So we started working on that, purchasing traffic and stuff. It was 5-6 years ago, everything with iOS was different back then. Money came in fast, we earned first $10,000-20,000 dollars by simply purchasing traffic for a month for the partners' product. At the same time, my partners and I agreed to try to make a clone of their app. Then we started looking for other niches and slowly began to grow. In the end, we came to the point where we decided to open a separate company for this. How Wowmaking works: inhouse products and traffic acquisition Interviewer: Tell us a little bit about the numbers. What is Wowmaking, what does it do?   Anton Shlovenets: Wowmaking has 85 staff members. It's a company that’s a resident of the Belarus Hi Tech Park. Our monthly turnover is $1,500,000 from all the mobile products we make. Interviewer: What was it like six years ago? When you met the guys and they offered to do the publishing and share the revenue, did they just say, "Hey, we have a product. " and you said: "Hey, we have the money and know a thing or two about marketing. "? How does this magic and partnership work? Anton Shlovenets: The magic and partnership happen within the areas of responsibility where one knows one thing better, and the other does better something else. They had a product, but they didn't know how to work with traffic, and also had a limited amount of money for marketing. We had traffic, knew how to work with Google, Facebook, etc. , meaning we could afford to acquire a lot of traffic. They were small, just three developers. And we were an agency with a staff of 50, and we had clients, turnover, etc. We had working money, marketing expertise, ad cabinets, and minimal experience in mobile. And they had the product, they knew how to make products, they knew how to work with the AppStore, they knew how to get revenue, and that's where the match happened. There was some competence with us, and some competence with them. It was sort of a business opportunity, we were taking a risk, but we decided to try it anyway. With our first iteration, we realized pretty quickly that we were doing okay. Because back then there was no usual analytics, nothing like that. You acquired the traffic, and then you waited for the result. And that was it. There was a mix of minimal accumulated experience in UA and traffic, in creatives with their product, the niche that could get a good return on investment. And the match happened, everything took off. It didn't bring super results, we didn't make a million right away, that's not the kind of numbers we're talking about. But we made our first $10,000-20,000.   Interviewer: Did you have any side investments in your business? Anton Shlovenets: Yes, we had investments from our agency throughout the whole story. But it’s a common thing, to go to the mobile market and use money from other businesses to get started. Interviewer: Six years have passed, the market has changed a lot, the number of apps there has increased many times. What kind of product were you working with? Now it's really hard to find a specific niche for an app. Anton Shlovenets: It was a horoscope app and, in fact, this niche is still alive... --- Learn about the new subscription model, in-app messaging, backward compatibility, and more. The I/O conference in 2022 brought us a new major version of the Google Play Billing Library. Google added new methods, deprecated and removed some older ones, but most importantly, they introduced a brand new subscription model that should change our ways of working with in-app purchases.   According to Google’s statements, starting on August 2, 2023, all new apps must use Billing Library version 5 or newer, and by November 1, 2023, all updates to existing apps must use Billing Library version 5 or newer. So if you haven’t yet migrated and want to know more about the new version of Billing LIbrary, let’s get into details and see what it has to offer. New subscription model: more flexibility, less complexity The true highlight of the Google Play Billing Library 5 is the renewed subscription model. Google significantly reworked the subscription architecture by adding new entities – base plans and offers. Previously, offers (introductory offer and free trial) were directly tied to the subscription entity, which meant you had to create a new subscription every time you wanted to test a new offer, which wasn’t really convenient. New architecture solves this problem by detaching the offer into a separate entity. This can be very well seen in the illustration: We can see that the subscription we’re accustomed to now has a more complex, yet more flexible structure. The subscription itself has become a separate core element that consists of base plans, which in their turn can include one or more offers. All the attributes that used to be included in one subscription are now shared within these three entities. Subscription now only states what benefits the user gets and provides only basic information: identifier, title, description, and taxes info. The base plan mainly provides information on the billing period and renewal type, which can be auto-renewing or prepaid. But it as well states the grace period and info on the prices and availability for different regions. Offer acts as an entity that provides additional marketing attributes, like free trial and introductory prices. Here’s where the eligibility comes into play, as offers are available only to the users who meet the eligibility criteria that you personally define. For example, a base plan with a standard monthly subscription is available to anyone, but a monthly subscription offer with a 15% discount is available only to a certain eligible group of people, that you define yourself. Depending on the goal, offers can be divided into: The acquisition offers that are based on trials and discounted prices. Upgrade/crossgrade offers that help move users to higher tiers or longer billing periods. Custom offers where you define the parameters as you wish. Usually used for win-back campaigns, second chance free trials, etc. Pricing itself gets more flexible as well, with a number of options you can set within an offer: Regional availability: specify countries, territories, and pricing for each region.   Pricing updates: update the price of your subscription just for new subscribers, leaving the current ones unaffected to this.   Prepaid plans: price prepaid plans with top-ups, which is useful for countries and regions where pay-as-you-go is standard. To sum it up, users now purchase a base plan or an offer to gain access to the subscription, instead of just purchasing a subscription. If it still sounds confusing, let’s have a look at the example: For a standard three-product paywall you had to have three separate subscriptions, for example weekly, monthly, and annual. Let’s say the weekly subscription had just a standard price, the monthly one offered a free trial, and the annual option also offered the trial along with a discount. But imagine that you had a cohort of monthly subscribers that you wanted to upgrade to the annual subscription by offering a higher discount for a limited amount of time. In this case, you had to create a whole new annual subscription product with the desired parameters, because all the attributes belonged to the subscription entity. If you transfer the same paywall to the new subscription model, you’ll have only one subscription entity split into three base plans: weekly, monthly, and annual. And then two of these plans will have additional offers: monthly plan will have a free trial offer, and the annual – offer with a free trial and a discount. So if you want to present the cohort of monthly users with a higher discount for the annual subscription, all you have to do is add another offer to the already existing base plan. It’s a really basic example, but it very well illustrates the working mechanism of the new model. This approach should ease the developer’s headache of creating a new subscription entity each time they want to test a new offer and make the testing process more flexible in general.   Creating subscription products in Billing Library 5 The new subscription structure brought changes to the flow of creating products in the Google Play Console. Previously, developers had to create separate subscriptions for each unique combination of benefits, billing periods, and discounts. However, with the new architecture, developers can flexibly define subscription plans with varying benefits and pricing options. Here’s a quick step-by-step guide: Switch to your developer account and choose the app. Then, in the menu on the left, find the Products section, select Subscriptions, and click Create subscription.   In the subscription creation window, specify the Product ID and the Name of your subscription. When the subscription is created, you can edit its ID and name or add more information by clicking Edit subscription details. Put down a few words about your subscription in the Description field – this may help you easier navigate between different subscriptions in the future. Click Save changes when you’re done. So now let’s create and configure a base plan. Go to the Subscriptions section and hit Add base plan at the bottom of the page. Here you should name your plan ID, select the type of the base plan (Auto-renewing... --- What's new in Adapty in June: introduced new funnels tab, added paywall visits export to Amazon S3, and integrated Adjust OAuth token. Funnels We are so happy to start our summer collection of new features with such a beautiful chart as sales funnels. Yes, one may watch it as a real piece of art because a funnel gives the whole picture of how an app works with users. But at the same time this is a structure of core parameters which may seriously boost your product growth. How can one benefit from it? There are three highlights:  Inspect the conversion and drop off rates between the steps of your funnel.   Use filters and segmentation to find insights, create and check hypotheses to find which steps in which products for which segments can be a point of change.   Learn the reasons that cause your users to churn and work around them to reduce the drop off. We believe you’ll enjoy the funnels, feel free to share your experience in our community. Paywall visits export to Amazon S3 Amazon S3 is a mighty service offering industry-leading scalability, data availability, security, and performance. We know that you already use Adapty integration with S3 for advanced work with data, analysis, and forecasting. So we’re happy to enlarge the functionality with the paywall visits export from Adapty to S3. You’ll find the export interface on your S3 integration page in the Adapty menu. Switch to the paywall visits tab, set access key ID, secret access key, the bucket name, and get the automatic daily data transfer to your S3 account. If you need a manual export of historical data, set also the period, push the button – and in a couple of minutes you’ll see the first transferred files in your S3. Data is sent as separate files containing daily content. You’ll see the recent exported files at the same page in Adapty to track the process. And it works the same way for the events tab. Adjust OAuth token We discuss data usage with you and see that one of the most vital things is security. Being attentive to your needs, Adapty now has an upgraded Adjust integration with OAuth token. Now the requests from the server have additional protection for your data safety. Use OAuth token only if you enabled Server-to-server (S2S) Security in Adjust. There are also some small but important feature improvements in June.   Now while creating a custom segment you can choose any country from the full list instead of choosing from those you already have in your app. This lets you target new regions that haven’t been covered yet and expand freely. Another pleasant enhancement concerns device mapping. Now devices are named with friendly-readable model names (e. g. iPhone 13 Pro), not number codes (e. g. iPhone14,2). The update of new models now also takes place on the server side, so there’s no need to renew the SDK to have all the devices data up to date. Tech teammates wanted! Today there are 30 of us in the Adapty team. We are so diverse and happy to complement each other with strong expertise and respect, delivering value to thouthands of mobile app businesses. Due to rapid growth we are ready to welcome two more teammates to the tech department. Take a look at these vacancies, maybe you or your friend would be glad to join Adapty to grow together. Vacancies --- We truly believe Adapty A/B testing for paywalls is different. Here you'll find out why and how it helps increase your revenue by 40%. Adapty is a great choice if you’re looking for a convenient framework. Apart from A/B testing it can offer detailed in-app subscription analytics, cohorts analysis, integrations with 3rd-party systems, and more. In this article we’ll cover the main steps in integrating Adapty with your app and setting up an experiment. This is the final article of our paywall A/B testing series. If you missed our previous articles on marketing and technical aspects of running experiments, you can find them via the links below: Paywall A/B testing guide, part 1: how to approach split-testing and avoid mistakes Paywall A/B testing guide, part 2: what to test on the paywall Paywall A/B testing guide, part 3: how to run A/B tests on paywalls and why it can be difficult Paywall A/B testing guide, part 4: how to run experiments in Adapty Getting started with A/B testing To use A/B testing for paywalls in Adapty, you need to install the Adapty SDK. Choose any that suits your platform and install it through your package manager. All SDKs are entirely open-source. We recommend that you immediately integrate your traffic attribution service and transfer additional information to your users so that later it will be easier to work with users on your dashboard. Please call the Adapty. logShowPaywall(paywall) method: it increments the number of users who see the paywall. This will allow you to calculate statistics in tests more accurately. Install Subscription Status URL in your App Store Connect: Check the installation with a test purchase in the Sandbox on your device, as purchases won’t work correctly using the purchase simulator. If everything is alright, you will see a new profile inside Adapty and events in the Event Feed. Profiles inside Adapty and events in the Event Feed. Purchases and A/B Tests: step-by-step Structure of purchases and A/B tests in Adapty consist of four main components: Access Level Products Paywalls A/B tests Access Level Access level is a marker showing whether a person has access to premium features. Access levels are used if there are screens and functionality inside your application that are only available after activating the subscription. With just a line of code, your developer can check whether to show the user a paywall or go straight to displaying functions. This is how you do it: Adapty. getPurchaserInfo { (purchaserInfo, state, error) in if error == nil { // “premium” is an identifier of default access level if purchaserInfo? . accessLevels? . isActive == true { // grant access to premium features } } } Products Imagine your app being released for both iOS and Android. Each platform has logically identical purchases, for example, a monthly subscription that opens up the same functionality. Product IDs are usually difficult to read and recall, so working with them in analytics isn’t very convenient: you need to remember inconvenient IDs for each platform. With Adapty Products, you can collect logically identical products from App Store and Google Play into one product, making it convenient to work in analytics, create paywalls, and conduct A/B tests. To create a product inside Adapty: Copy App Store and Google Play Product IDs; Paste them into the appropriate fields in the Product; Set the correct period and access level. Note that technically, lifetime subscriptions are one-time purchases. For analytics to be measured correctly, we recommend checking the appropriate flag: Adapty supports Apple Promotional Offers: just add the offer ID to the product, then link it to the paywall. Once you generate products, you can move on to creating paywalls. Paywall Paywall is a crucial entity within Adapty. Technically, that's an array of products + optional JSON. Paywall as an array of elements Comparing Adapty paywalls and product array in Firebase: In Adapty, paywalls are a logical place to purchase. In reality, the number of paywalls usually wouldn't exceed the amount of 5 to 10 pieces. Most likely, the main areas of purchase are onboarding, settings and somewhere else inside the application: so you can create either three separate paywalls, therefore achieving maximum customisation, or make just one for every screen. You can modify the paywall (that is, the set of purchases) on the fly; you do not need to release the application or ask the developers to do something about this. Paywalls have versions. All product changes are versioned and analytics is available for each version. You don't need to create hundreds of JSON files like in Firebase to get lost in them later on. The paywall has an SDK ID, which is the only thing that needs to be hardcoded on the device. Paywall's anatomy Adapty Paywall has two main components: Shopping set. Add up to five products to the paywall. Optionally, you can add an Apple Promotional Offer. Order of purchases can be changed: this affects how they are displayed and received in the application. Custom JSON. Namely, JSON with any additional fields that you might find useful in your application. For example, if you want to change pictures or texts, you just need to agree with the developer on the data exchange format and fill in the JSON. Primary user case in Adapty paywalls is to receive purchases from the service and place them on your screen. Developers themselves make the layout and design of the screen, and purchases are received through Adapty. During the design process, developers lay out key elements, such as text and images, which can then be modified using a custom JSON. This scenario gives you great flexibility and allows you to stay within your style while using a paywall of any visual complexity. Paywall analytics Over time, any paywall accumulates stats: Subscription purchases Trial subscription activation Subscription cancellations In Adapty, you can see all these metrics, and some others. To ensure that statistics are read correctly, use the Adapty. logShowPaywall(paywall) method. Call it precisely the moment the user opened the corresponding paywall. Adapty shows metrics both at the paywall level and at the product level in paywall. A/B tests for paywalls Suppose you... --- The second issue of the paywall newsletter with: landing page-like paywalls, trial toggles, videos, and more commented on by Thomas Kriebernegg This is the second issue of the paywall newsletter with: landing page-like paywalls, trial toggles, videos, and more commented on by our special guest. Paywalls of the issue are commented by... Thomas Kriebernegg, Managing Director and a co-founder of App Radar.   Let's have a look at guys who got into the newsletter this time! Napper that lets users scroll as long as they can I'm a big fan of long paywalls because they are more than just sales screens, I'd consider them full-scale landing pages. Napper shows a clear pricing structure followed by the Apple's featuring info, some social proof, and a comparison table of the free and paid versions, to highlight what you get after you've paid. Napper Lensa, that lets users decide if they want a trial Providing an optional trial via a toggle might be a good idea, to convince people to give it a try, who otherwise might not take the subscription. However, the current paywall doesn’t highlight any reasons or benefits of upgrading besides “Activate Full Access”. I think this is left out potential and could maybe added to the bottom of the page, to not disturb the otherwise clean style of the screen. Lensa BeautyPlus that makes users do the math A discount can be a good leverage to convince people to go for the subscription who otherwise might not do it. However, at least I am having a hard time understanding how the 80% discount is calculated. No matter which price I look at, I never get to 80% discount. In my eyes this is a dark UX pattern and should be avoided, since it might scare off people, because they think they could get even a better offer then the one described. BeautyPlus Asana Rebel shows users people, but not the app Having a video on the paywall can be a big booster for the conversion rate. However, besides only showing kind of stock images, it would be beneficial to also show the app, especially the awesome features that you unlock when you go for the paid version. Asana Rebel Camera Scanner that tests users' attentiveness Nice highlighting of the benefits you get with the subscription. However, the very high price is quite hidden and also the Continue button is a bit misleading. Looking at the revenue of the app, I think we can state that the app is good in generating money, but if you also look at the reviews, you see, that most of it will come from the grey-hat optimization of the paywall screen. Camera Scanner Babbel that is being transparent and nice I like the clean style of the paywall which also highlights the benefits of the subscription as well as gives a good overview of the different subscription possibilities. Babbel --- Learn how to find the right A/B testing framework and what technical steps are needed to launch a test. The main goal of this series is to introduce you to the paywall A/B testing, give you some ideas that you could start with, and, hopefully, inspire you to achieve great results. We learned that running paywall experiments can be beneficial and profitable, but you need to know how to actually set them up. Let’s talk about the general aspects of launching an A/B test and the tools that will help you do this. This is the third part of our paywall A/B testing guide, so if you haven't, make sure to check out the previous articles to get some insights from the marketing approach to experimenting: Paywall A/B testing guide, part 1: how to approach split-testing and avoid mistakes Paywall A/B testing guide, part 2: what to test on the paywall Paywall A/B testing guide, part 3: how to run A/B tests on paywalls and why it can be difficult Paywall A/B testing guide, part 4: how to run experiments in Adapty Choosing the A/B testing framework To run A/B tests, you have to use a special framework that would be integrated in your app and have a console that would gather analytical data and “communicate” with your app via remote config (we’ll talk about it a bit further). There are two ways to implement this step: develop your own framework or integrate an already existing one. Basic analytics in the Google Firebase console Creating your own testing framework is a major undertaking that would require development in the back end, coming up with something resembling an admin console, setting up databases, implementing logic, and much more. Plus, it would require time to test the framework itself, fix all the bugs, and finally come up with a functioning prototype. Such a development would require several months and a couple of developers working non-stop. It’s challenging but may be rewarding in the long run. However, it may be more rewarding to integrate an already well-functioning side framework, which would take a couple of days, and start testing your ideas. There are frameworks that allow developers to run A/B tests in their apps, providing certain analytics and even offering integrations with 3rd-party services. Some frameworks can be integrated and used for free (e. g. Firebase) and some have a free trial but offer pro plans for regular use (e. g. Adapty), but they usually offer more useful features and deeper analytics. It’s up to you which framework to choose, for starters, Firebase may be enough. But no matter which one you choose, the main aspects of their functionality remain the same. Main aspects of an A/B testing framework Let’s have a look at the general steps of how A/B testing frameworks function. First, you need to integrate the frameworks’ SDK, so that you’d be able to view all the analytical data from your app through the control panel. In that very panel, you’ll be able to set up and follow experiments. The framework enables you to configure paywall elements with the help of Remote Config – a piece of code that allows you to substitute one variable with another, almost in real-time. But it’s important to understand that your app must be ready for all the changes that you intend to make with the paywall. You must first include in the app’s code the “placeholders” for all the things you’d want to test: the number of products, possible pricing options, and any visual or textual element. Only then can they be controlled and changed from the console. Apart from the remote config code, you’d also have to insert certain fetch, activate, and get methods. Example of the Remote Config code for the paywall After the app is ready, you can proceed to create the experiment in the framework’s console. Usually, the steps are as follows: Name the experiment Set up the targeting: select your app, set the percentage of the target audience that will see the testing version of the paywall (50/50, 75/25, etc. ), add some additional events to narrow down the audience Set the goal of the experiment. It could be the purchase income or any other metrics and conversion rates Create the A and B testing versions of the paywall. Choose the parameter that you’re going to test, which should be of a different version for each paywall.   Set up additional targeting methods: activation events, app version, localization, country, language, or any other user property Launch the test Creating a Remote Config experiment in Firebase A/B tests are usually based on testing one parameter, but the frameworks usually allow running tests with more than one. It’s not practical to run tests with 2 or more parameters, as in the end, you wouldn’t have a clear picture of what exactly affected the result of the experiment: was it one of the elements or all of them together? But this ability is provided because there may be design cases with 2 (or more) co-dependent elements, and changing one element requires changing the other one. For example, if you change the background color to a brighter tone, you may want to change the text properties as well, so that it looks darker and more readable.   In some frameworks, the Remote Config feature is presented in the form of JSON, a simple format for data interchanging. Basically, you can decide in advance which elements of the paywall you’d want to test in the future and sign them with corresponding nicknames that will be used in the JSON file. We recommend creating a spreadsheet with all the variables and values they may possess (e. g ca_button – red, blue, yellow, for the call-to-action button and the colors it may have), and then turning this in the JSON format, on your own, or with the help of the developer. It will be easier to find and edit these variables in the Remote Config field afterward without asking for someone’s help. Prepare a spreadsheet with all the variables that can be tested in... --- Let's talk about the things you can test on your paywall: pricing options, intro offers, design elements, and more. Without changes and improvement, your product is surely to become less and less profitable with time. Even if you think that you have a stable and profitable situation with your subscriptions, there’s always something that could and even should be improved. Your paywall should be evolving and adapting to the trends and demands of the users. So let’s have a look at the main aspects of the paywall that you should take into consideration when launching A/B tests. This is the second article in our tutorial series on paywall A/B testing. In this series, we show how to properly approach A/B testing and avoid common mistakes. Check out the rest of the articles to get more insights: Paywall A/B testing guide, part 1: how to approach split-testing and avoid mistakes Paywall A/B testing guide, part 2: what to test on the paywall Paywall A/B testing guide, part 3: how to run A/B tests on paywalls and why it can be difficult Paywall A/B testing guide, part 4: how to run experiments in Adapty Popular ways to price your product You sure know that there are two main pricing options to place on a paywall – subscription and lifetime. There’s no doubt that the subscription model has by now become commonplace and even sort of a benchmark of pricing mobile apps and desktop software. Many apps still offer a lifetime option on their paywalls, but it’s rarely in the focus. This option gives more money right away, but won’t be bringing any consecutive income, that’s why subscriptions are now taking over. Apps with subscriptions account for 96% of consumer spend in top non-gaming apps. Courtesy of App Annie, 2020  Let’s refresh on the current subscription variants offered by the App Store and how they can be used. Weekly – an option that is getting more and more popular with the users these days, especially if you price it right. In some countries people are willing to pay less money for a weekly subscription than a bit more for the whole month, so you may take advantage of that. Price it no higher than $5. Monthly – the most popular and balanced variant of subscription. Most of the subscription-based apps use this type of pricing as the gold standard, presenting it in the most favorable light. The reasons are simple: the user is willing to pay the average of $5-10 every month as it wouldn’t affect their wallet that much right away, and the developer gets the user who will potentially be renewing the subscription for a couple of months at least. 2-months/3-months – these options are good to experiment with. Depending on the niche and the nature of your app, people may find them attractive and beneficial. If you have a 3-product paywall, you can play this out as a middle offer (1/3/12 months) or even make it a starting point (3/6/12 months), thus boosting your minimal price. 6-months – probably the happy medium between the monthly and annual subscriptions. It’s also a good option to experiment with: if your paywall featured the annual subscription before, you can try to substitute it with the 6-months variant leaving the price unchanged, to see if the users would still find this offer reasonable. If this works out, you’ll just double your figures with no effort. Annual – If you manage to turn your users to purchase this option, you'll know the exact amount of money you’ll have within one year, which also means having more assets to work with and invest in the further support of the app.   3/6/12 vs 1/6/12 months pricing Figuring out intro offers Introductory offers help hook the user or make the purchasing process more gradual and friendly. There aren’t many to choose from, but they all may be worth testing in order to find what performs best with your app.   Free trial is the most common and popular type of intro offer as it helps demonstrate the benefits of using your app, thus hooking the user and making them want to pay for the full version. If you’re already using it, you may want to try testing a different number of trial days. Sometimes giving more time to use your app for free may hook the user even more, providing higher retention and resulting in a higher trial to purchase conversion rate.   Apart from free trial there are also two intro offers that imply proposing introductory prices: Pay as you go and Upfront. In the former case, you offer your new subscribers a special low introductory price for a specific duration (e. g. $1 per month for the first 3 months), in the latter – just a one-time introductory price. Paying a small sum of money to get access to all the features right away is not that big a deal for most users, but it’s a rather effective way to hook them up and gradually get them into further renewals. These two offers always look intriguing and tempting, but make sure the user understands the true value of your app before they’re offered to pay, which means you should take care of making a proper onboarding process, as well as provide all the necessary and valuable information on the paywall. Intro offers visualized Finding the right number of products One of the main advantages of the paywall A/B testing is the opportunity to try different numbers of products. Of course, to choose wisely the number of products for your paywall you should consider many factors, such as the app’s longevity and its overall quality, amount of traffic and potential subscribers, relevance on the market, etc. But sometimes it just wouldn’t hurt to refresh your paywall and try something drastically new. So let’s have a quick recap of pros and cons of the most popular variants. 1 product Pros  Looks neat and user-friendly Usually presents the list of all advantages of the app Doesn’t make users decide which plan to choose Cons You have to... --- Learn how to properly evaluate A/B tests and check out some tips to avoid mistakes with your experiments. Paywalls can be designed in many different ways, have one or more pricing options, offer free trials or ask for the money right away. But the most important aspect is that it’s the place where the user should make their “life-or-death” decision – make a purchase or leave forever. That’s why it is vital to make the most out of this screen and raise the economy of your app to the highest level possible. Here’s where the A/B testing comes into play. But it’s important to know that running tests with different paywall elements may require different approaches. This article starts our series of tutorials on paywall A/B testing, which is supposed to highlight the most important aspects of running such experiments from both marketing and technical sides. Make sure to check out the rest of the guide to get the complete overview: Paywall A/B testing guide, part 1: how to approach split-testing and avoid mistakes Paywall A/B testing guide, part 2: what to test on the paywall Paywall A/B testing guide, part 3: how to run A/B tests on paywalls and why it can be difficult Paywall A/B testing guide, part 4: how to run experiments in Adapty A/B testing different elements require different approaches One of the most effective tools for growing your app’s revenue is A/B testing. Let’s refresh our memory: A/B test is an experiment that is run when a paywall needs to be improved in order to be more profitable or user-friendly, but it’s hard to say right away how exactly it should be improved. Such an experiment allows you to test a certain change on your paywall within the same version of the app, without having to release a new one. Almost any element can be tested, from those directly affecting the app’s economy (pricing options, number of products, etc. ) to the ones that belong to design (button shapes, colors, call to actions, etc. ). However, there’s an important aspect you should pay attention to when launching an A/B test.   Would you measure the results of a test with a new button color in the same vein as a test with a different price option? On the one hand, such tests would look similar – you change one element on your paywall, test it against the original variant, and wait until you get the statistically significant result. But the thing is, the effect produced by each of these changes would be different.   When testing design elements, call to actions or any other textual information on the paywall, we can clearly see and even measure the effect of such a change right away. These elements do not directly affect the economy of your app, but all the other metrics that you’re trying to improve. Thus, having a positive stat significant result with a new button color, you can safely admit that the test was a success, people do tap the button more willingly, and this new color works, for what it’s worth. But can you apply the same approach to a test with a new subscription, for example? Example of a statistically significant result All the changes that directly affect the economy of your app should be evaluated more precisely and with regards to the future revenue. It’s virtually impossible to get a stat significant result if you test a higher price for your annual subscription, as the goal of such an experiment lies in a different area. When changing a price option, for example, you should beforehand understand what you’re trying to achieve.   Placing a higher price for your subscription will surely negatively affect the bounce rate at the moment, which could be considered a failure, if you approached this as a simple A/B test. But you’re doing this experiment in order to boost your LTV and increase your annual revenue, so as long as the bounce rate is no higher than -15% – you’re safe. But it’s still early to say if the test is successful, especially if you test the price increase with your annual subscription. A good idea would be to follow the cohorts of the two paywalls involved in the testing and keep an eye on the retention rate. You may get less subscribers, but if they are willing to pay more and stay longer, thus boosting the LTV of your app, that’s a success.   Quick tips to avoid A/B testing mistakes A/B testing is a complex process that includes numerous components you should pay attention to, in order to make the whole thing work and get proper results. Sometimes even the slightest neglect can make your experiment invalid or even worse, bring you false results, that will become the ground for further experiments. So it wouldn’t hurt mentioning a few aspects that you should bear in mind when dealing with A/B testing. Make sure you’ve come up with the right hypothesis. If the users don’t tap the purchase button as much as you expect them to, it doesn’t mean you should rework the whole economics of your app right away, but maybe check if the button functions properly and the users don’t get lost in the messed up UI.   Keep the tests simple. That means not testing more than one element and running several different tests at once. The more changes you’re trying to test, the “dirtier” results you’re going to get, as you wouldn’t know what affected what.   Pay attention to the time periods and traffic. Make sure to dedicate enough time to test your hypothesis (usually at least 2 weeks), and check the traffic flow, it should be enough to come up with statistically significant results. Keep your hands away from the running test. This should become a ground rule – never change anything during the test. It’s in your interest to get the most true-to-life data, so if you found a bug or decided to change a parameter mid-test, just shut the experiment and start anew.   Learn to interpret... --- Let's have a look at all new features of SKAdNetwork 4.0 announced at WWDC 2022: crowd anonimity, 4-digit source identifier, and more. New version of SKAdNetwork has been announced at WWDC 2022. The main focus of its new features is to send more data while preserving privacy. Looks like Apple listened to the feedback from developers and marketers – sounds promising! Let’s dive deeper and find out what improvements were made and how they could change the mobile attribution landscape. Apple has introduced a new term – “Crowd Anonymity”. Basically, the more installs you have, the more data you’ll get, because it’s hard to identify the exact user in a large amount of installs. On the contrary, a low amount of installs will be a limit for granularity of data shared by Apple. Thanks to this feature, Apple is now able to share more data while retaining privacy protections. The old 2-digit campaign identifier is replaced by a new 4-digit source identifier. This is the first and main example of Apple going to share more data with developers. The idea here is to use it as 3 hierarchical sets of numbers. As an example, 2 digits could represent the ad campaign, the 3rd could mean the location and the 4th could stand for the ad placement. Crowd anonymity is working here. As the number of installs grows and meets the privacy thresholds, SKAN will send more source identifier digits. This update will increase the granularity of data for advertisers. Apple also updated the conversion values, adding a new coarse-grained value (low/medium/high) in addition to the old fine-grained value (6 bits). The fine-grained value is the same as we have today, but thanks to the new coarse-grained value, there will be at least some data on conversions (low/medium/high) even if the number of installs is too low for proper privacy. It's another example of Crowd Anonymity in action. Another significant improvement is multiple conversions (postbacks). In SKAdNetwork 3. 0 there was only one postback after the install. Now up to 3 postbacks can be received for specific conversion windows (0-2 days, 3-7 days, and 8-35 days). This allows measuring the user engagement with the app later after the install. Important notice: only the first postback gets a fine value, the other two are coarse values. Another long awaited improvement: SKAdNetwork 4. 0 also adds attribution for web-based ads that leads directly to the App Store app page. It can be implemented both for first-party sites and for advertiser iframes, as long as they lead directly to the App Store. This looks like a great opportunity for the web-to-app support. And finally, Apple improved the testing experience for SKAdNetwork with the ability to test postbacks in Xcode. That’s all. New features and the ability to get more data while preserving privacy look like a significant improvement! We’re eager to see how it will affect the mobile marketing world. As usual, coming later this year. Sources and further reading: WWDC Session Docs --- In this issue: paywall tricks that the top grossing and new hot apps use ? Meet our fresh newsletter with hot paywalls that will be delivered to you every month! We dig through hundreds of paywalls and pick the most interesting ones to share with you. In this issue: paywall tricks that the top grossing and new hot apps use. Could be some cool ideas to try, let's have a look! Compare The paywall of the app providing hiking routes AllTrails drew our attention with its comparison table. This practice is commonly used on the web, but it's quite rare in mobile apps. Still looks convincing and might be worth giving a try. All Trails: Hike, Bike, and Run Build a video paywall The AI-powered app for photo and video alteration Magic Me shows its work in action with a video paywall. They demonstrate all their features with videos: aging effect, baby appearance prediction, cartoon effect, and more. This way, the paywall in some sense also onboards the users. Magic Me Be nice to your subscribers with a trial end reminder Get mysterious by hiding plans The aforementioned app Loora has another interesting thing on its paywall. Originally, it offers only the annual plan, but you can also find the link "see all plans" below. After hitting it, the user will see another paywall with two products on it: preselected annual subscription and monthly plan. We also spotted another way of hiding plans in the catholic meditation app called Hallow. Look at these arrows near the annual plan, they allow the user to switch to the monthly subscription. We almost missed it while examining their paywall, so we bet most users choose the annual plan. Though it also looks more attractive than the monthly option, thanks to the 44% discount. Hallow News! This June the most advanced messenger on the market, Telegram, added the premium plan. Let's have a look at its paywall. The paywall looks more like a web-page with the detailed descriptions of what the paid features provide and the ability to expand every feature into a nice preview. At the end of the paywall, there is a text explaining the reasons for introducing the premium plan. The messenger provides only the monthly subscription. Telegram --- In-app purchases updates from WWDC 2022: App Transaction, SwiftUI, StoreKit messages, and more. Another annual Apple WWDC is over, and Apple presented a lot of improvements across the board. Here are all the important updates to in-app purchases! App Transaction API App Transaction is a new API that replaces old receipts. Transaction presents verified information for a purchase of your app, and it’s signed using JWT. If you wish, you can also perform your own validation. StoreKit automatically updates the App Transaction, but it can be refreshed manually by providing UI to the user. App Transaction has more uses than preventing fraud. You can use the new Transaction History component to look into the user's purchase history on the device. All this information is also available via App Store Server API. One of the potential use cases of App Transaction is handling changes in the pricing model of your app. For example, your app was paid and then you introduced in-app purchases in v8. 0, making the app free. You want to keep access to the paid features for all users who bought your app before v8. 0. With App Transaction, all you have to do is write this piece of code: If you get an unverified transaction, you should present a UI to refresh the transaction and restore access. If you get a verified transaction, you can easily extract all the necessary information from it and grant access to the users who bought your app before v8. 0. As you can see, App Transaction API is a new powerful tool that can simplify some edge cases. New properties There are also new properties in StoreKit models. They are available on all devices running iOS 15+, but you have to build your app with Xcode 14. Price locale is a property for displaying derived numbers, like how much your annual subscription costs per month. It’s a great addition, simply because of how popular this kind of mechanic is on paywalls. Environment property shows whether a transaction was processed in a production or a sandbox environment. This new property is useful to filter sandbox transactions. Recent Subscription Start Date gives you the most recent period of the continuous subscription. Continuous means there was no more than 60 days gap between any two subscribed periods. This is useful to determine customer loyalty and award your users. But keep in mind, this property is not meant to be used to determine the total number of days your customer was subscribed. The other important thing here is Sentinel Values. If you’re using StoreKit testing in Xcode and testing iOS 15, you’ll receive placeholder values for all new properties. Here are the sentinel values you may receive: SwiftUI APIs There are also new APIs for SwiftUI. Offer Code Redemption is a new modifier for SwiftUI Views that opens the same Offer Code sheet as in UIKit. Available on iOS 16+. When a customer redeems the offer code for your app, the resulting transaction is sent to the transaction listener. So, be sure to set up a transaction listener at your app launch to receive new and updated transactions while your app is running. Now you can also request an App Store review in SwiftIU. Best practices are the same as in UIKit: Request review max 3 times within 365 day period Ask sparingly, don’t ask to review same version of your app several times Don’t interrupt your customer interactions Review can’t be a necessary step in any mechanics of your app StoreKit Messages StoreKit Messages is a new API to present a message sheet over your app to display important information to the user. All messages are from the App Store and received when your user opens the app. The best example is a subscription price increase prompt. By default, StoreKit messages appear over your app when the user brings your app to the foreground. But you can implement a listener so these messages won’t interrupt any important flow in your app. There is also a message type property, so you can tailor your app logic even further based on this. Application Username The applicationUsername is a string that you create to associate a transaction with the user account on your service. You should pass the UUID of your user so that StoreKit could preserve this information in every StoreKit Transaction. You’ll also receive it as appAccountToken in App Store Server Notifications v2. To sum up It’s great to see how Apple continues to develop in-app purchases infrastructure. Last year was huge, with StoreKit 2 and new server APIs. This year does not bring any groundbreaking changes but there are also some welcome ones. Our team at Adapty is always willing to implement all new features from Apple, so you can leverage them in your apps. If you have any questions about in-app purchases, feel free to join our community! --- What's new in Adapty in May: new version of Unity SDK, improved segmentation in charts, and reworked side menu. Unity SDK We are proud to announce a new full-featured version of Unity SDK. Our team of heroes went through many challenges to give you a powerful tool for fair business victories. All current Adapty features are supported, so you may enjoy the full range of analytical equipment and play with A/B tests to win more coins. If you are in the game, give us a star of support on GitHub. Who comes first? If you are among those who implement Unity SDK in early June, get your free integration support with the Adapty team. Write to us to learn more. Chart improvements Your business is unique. And more than that – it is different from each point of view for every employee involved. We appreciate how you develop your own analytical patterns working with Adapty. So let us share great news! Now we save the segmentation of your choice in all charts for your convenience. No need to select the parameters every time you log in because they will be waiting for you by default. And if you work in a team, each member has their own defaults to work comfortably and efficiently with. Try it and let us know how it improves your routine. We also made the filters panel stick to the top of the screen when you scroll down the page, so that you could easily manipulate the data in tables. NB: Please also pay attention to the new time scale at figures. When you choose a month or a quarter, it’s not just 30 or 90 days but the calendar months and quarters. New navigation Adding new features, we remember to maintain Adapty as an easy-to-use solution with an intuitive interface. After talking to you, we realized our main menu is not that easy to navigate because you have to memorize all the icons. We added an option to expand the menu and show the section titles, so no more random clicks :) Sometimes though, for example, while working with charts and cohorts, you might want to use the maximum screen width possible, that's why you can always collapse the left menu. --- Natalia Shahmetova, the CMO of the dog training app Woofz by Gismart, on developing an app in a narrow niche. Woofz is an app for dog training developed by Gismart. Can it really compete with professional dog trainers? In the 14th episode of the SubHub podcast, we talk to Natalia Shahmetova, the CMO of the product. She told us about her experience in mobile marketing, shared the story behind developing and promoting Woofz in a narrow niche, and gave some tips on how to start marketing your app. Listen to the episode in Russian or read the most interesting parts below in English. SubHub by Adapty. io · SubHub Podcast #14 – Наталья Шахметова (Woofz by Gismart) Intro Nikita Maidanov: Hi, everybody. This is the SubHub podcast and we're back with more episodes. Today we have Natasha, the CMO of the Woofz app, as our guest. She's going to talk about how they chose a niche – an app for dog owners, what interesting challenges they faced, and how they solved them. The podcast is being released with the support of Adapty's service. If you have a mobile app with subscriptions, then you know what service you need to integrate to get cool analytics, A/B tests, and more. So, let's get started.   Natasha, hi, very happy to have you on our podcast. Welcome. Let's start with telling a little bit about you. Tell us about your career, how you came into marketing, how it all started. Natalia Shahmetova: Hi everyone, I am happy to share with you my experience and how I came into the world of mobile marketing. It all began in 2010. At that time I joined a big international agency – McCann Ericson. I was working as a copywriter, writing scripts for commercials. Those commercials in the 2010s were about coffee, washing powders... At that time there was no sight of mobile apps, at least not in my life. Later I retrained as a strategist and dealt not only with offline advertising companies, but also with digital ones. We were into digital marketing and we did web-based branding and activations for FMCG brands. Then I studied a little bit at Ikra – a school of integrated digital marketing communications. Ikra helped me a lot to understand how all the stages of the funnel work in marketing, in the digital environment. And on the whole Ikra produced a lot of great specialists in the mobile and IT market in Belarus. There I met my now good friend Arseniy Kugeiko and I was in the same group with a girl who is now a creative producer at Vizor Games. All in all, a large number of Belarusian IT people went through Ikra. Your previous guest Anya from Vochi mentioned it, I think. Nikita: That's right. Natalia: Everyone was involved in the creative industry at one time or another in Minsk. And even back then (it was probably 2012) me and my friends were trying to move away from advertising and go somewhere else, to some mobile IT markets. At that time IT was already picking up, we heard about EPAM, we heard about Wargaming, about some huge outsourcing companies. But it was hard to understand how to jump in and what a person with a creative mindset could do there. It was very difficult. But eventually I was invited to work at Apalon through some creative acquaintances of mine, who told me that for mobile app production, in particular for mobile app advertising, you really need videos. I was like, "Wow, that's something I know how to do! Very good, I'll make a lot of videos. " There were so many ideas. Vitaly Davydov: Did you do them as a producer, as a copywriter, or as a video editor? Natalia: There were different projects. In some projects I was only a copywriter, writing dialogues. Then we had shooting days: lots of cameras, studios, lights, actors. There were smaller projects where I could act as a producer as well: I organized the set, calculated the budget, and negotiated with the actors. We did our own filming for Wargaming. It was an amusing experience, I never thought before that I would be organizing something for Wargaming. At that time it seemed to me something unbelievable, super complicated. But actually, everything comes with experience. From Apalon to Gismart Natalia: My buddy, Anton Marchenko, offered me a job at Apalon. They needed someone who was good at making videos. I had to come up with a huge number of ideas for different product formats. There were weather apps, alarm clocks, coloring books. I got to generate a bunch of ideas and test them all quickly. I wouldn't say I was a producer, I was more of a creator – a creative manager. My academic approach to coming up with creatives didn't work, and the guys didn't understand how to test them all quickly. After four months we parted ways. My first attempt to come into IT failed. VItaly: How many people worked at Apalon when you got there? Natalia: About 150 people. There I already knew Anton Marchenko, I met Slava Kononenko and a bunch of sellers and guys who still work there or have worked there. Despite the fact that I was there only four months, it was a good, high-quality time, and I was able to learn and understand a lot of things and meet great people. In general, I gained some experience. It was also there that I met Arkady Kuznetsov, who later invited me to Gismart. Everything came together later. Vitaly: What did you do between Apalon and Gismart? Natalia: I got into a venture called RocketBody, a fitness startup. There were a lot of startups in Minsk at one time. It's a very dense community, where everyone knows each other, everyone has worked for each company, and everyone has crossed paths in one way or another. Since I am an avid follower of running, I was interested in everything associated with a healthy lifestyle. I came to RocketBody. It was a fitness startup – a fitness bracelet... --- What's new in Adapty in Aprli: reworked cohorts, SearchAdsHQ integration and team growing! Join the Adapty team Adapty is growing thanks to you! We welcomed 4 new team members over the past month and had some internal changes. My role has also changed, I’m switching to the CPO role, while our backend lead Artem who’s been in Adapty from day one will be the new CTO. It’s a big step for both me and the team, so you’ll hear more from me. We’re looking for a project manager who’ll be responsible for delivering new features, internal processes, and team management. If you have relevant experience and would like to work with us at Adapty, please, contact me. As the time has come to make our team bigger, we realized that you’re the best candidates who can join us to build the most advanced subscription platform today. Check all the available positions on our website. What's new in Adapty in April April was an exciting month for Adapty: we launched the long-awaited cohorts and SearchAdsHQ integration, plus made some other improvements and fixes. Cohorts v2 We’ve completely redesigned our cohorts both inside and outside. They work much (100x times) faster on the larger datasets and just fast on the smaller ones. We’ve added attribution and segment filters to help you better understand subscription patterns. You can easily switch between the products of the different periods or view the data for all the products. You can read about new cohorts in the docs, give them a try, and please, share your thoughts with us. SearchAdsHQ (SplitMetrics Acquire) integration If you run Apple Search Ads campaigns, chances are you might be interested in the SearchAdsHQ integration (upd. now known as SplitMetrics Acquire). They allow you to automate and optimize ASA campaigns, and also send all subscription lifecycle events straight from Adapty, no coding needed :) Check our docs for the details. Proceeds in charts You asked and we delivered! Now all money charts have the Proceeds toggle. It’s on by default, and it means that all the data is displayed with the App Store / Play Store commission subtracted. Read how the commission is calculated in the docs. “Access level updated” webhook event Those of you who track subscription status in your database/system should find this feature quite helpful. Before, you had to keep track of several events to sync subscription state and some cases were not covered, like setting access level manually from Adapty CRM. Now, no matter what the source of the access level changes is, you will always receive a dedicated event for that. It can be configured in webhook integration and you can check the available properties in the docs. Other improvements & fixes More accurate revenue tracking for subscription upgrades Improved loading speed of the chart filters Fixed users search in CRM Adapty Unity SDK is almost done; let me know if you’d like to use it in your apps --- What's new in Adapty in March: Home metrics, paywall and A/B tests duplication It was a busy month for Adapty, we’ve released a lot of small fixes and made a huge progress in developing our next big features that are yet to come! Video version: Home metrics We’re getting closer to making the Home tab a dashboard for your app. Now you’ll find Revenue, MRR, Active Subscriptions and Active Trials on your Home tab. Keep an eye on your metrics! Paywall and A/B tests duplication Small but important UX improvement: now you can duplicate paywalls and A/B tests. You can modify products and payload after duplicating, so this way you save time on creating new paywalls and tests based on the already existing ones. Access this feature by 3-dot icon in your paywalls and A/B tests lists or on the edit page. Billing details Now all your billing details are in one place! Proceeds in A/B tests metrics We recently added the Average Revenue Per Paying User metric in A/B tests. Now we’ve upgraded our metrics with Proceeds: revenue after Apple or Google cut. Other fixes & improvements: * Rounded values in charts* Fixed Last month in date picker* Improved UX of Paywall Edit page* Added ability to remove users access level on lifetime purchases Blog updates: * How to choose money-making keywords for your app * How to improve app visibility and conversion in the App Store using promoted in-app purchases? --- Learn about promoted in-app purchases and how they may improve your app's visibility in the App Store This article has been written by our friends from the Checkaso. io team. Promoted in-app purchases is an incredible new opportunity to improve ASO. The very fact that promoted in-app purchases exist is a big deal for app visibility in the App Store. Though, many happen to miss out on the benefits of this kind of optimization. In this article, we'll explain how to improve your metadata and push your competitors out of the search results. What is App Store Optimization (ASO)? In short, App Store Optimization (ASO) is a comprehensive process for improving app metadata for app stores. Text optimization helps apps get indexed by keywords right and rank higher among search results. Graphic optimization makes the app page more appealing and, accordingly, improves conversion to installs. How does app indexing work in the App Store? In the App Store, keywords and keyword combinations can only be indexed from metadata like app title, subtitle, keywords field, developer name, or in-app purchases. The full description doesn’t get indexed at all. Besides, several localizations can be indexed in a single country.   Keyword relevance depending on the metadata type The image above shows the influence of metadata; that is, keyword relevance and the chance that a certain keyword will be indexed. In turn, keywords have a frequency that defines how common they are in a certain country. Of course, the lower the keyword frequency, the weaker your competitors are, the easier it is to make it to the top. Let's get to the point: ASO and in-app purchases In-app purchases (IAP) in the App Store are conventionally divided into two types: regular and promoted ones. The regular IAP are only available in the app, when the promoted ones exist directly in the App Store. You can create up to 20 promoted in-app purchases at a time. Here’s what you should also know about them: They are displayed on the app page. They get indexed by keywords and ranked in the search results. They get featured in Collections and in the Today, Games, or Apps tabs. Data from the Checkaso ASO tool In terms of ASO, the following three metadata elements are important for promoted in-app purchases: Title (up to 30 characters) – gets indexed. Description (up to 45 characters) – doesn't get indexed. Ad image (PNG or high-quality JPEG with a resolution of up to 1024x1024). You may want to look through Apple's advice on how to create efficient metadata.   Using promoted in-app purchases for App Store optimization goals The very fact that promoted in-app purchases exist is a big deal for app visibility in the App Store. First, in-app purchases make it easier to improve app ranking, because Apple benefits from promoting an app that brings money. App developers may notice that their apps may be ranking higher once people have purchased something in-app. This is logical because users should install an app first to make a purchase.   Secondly, promoted in-app purchases encourage a higher conversion to installs. If your app is among the top search results by a certain keyword, you can take up to two or three positions simply by adding a keyword to the in-app purchase title. This way, competitor apps that take part of the traffic will be pushed out of the top, and your app will have all the attention because you will occupy the entire first screen of the search results. This is how a promoted in-app subscription looks like in the App Store search Thanks to an innovation in iOS15, an already installed app is now displayed in the search results in a shortened way, with no screenshots. Promoted in-app purchases that go right after the app in the search results become more valuable as they keep their full size, pushing competitors out.   It’s only logical that improved IAP visibility may result in an increase in the number of purchases. That doesn't mean a revenue boost though; when users search for an app in the App Store, they are not yet motivated to buy something. If you improve how your in-app purchase is displayed in the search results, it will influence your app revenue indirectly. Increased visibility leads to more installs and therefore more purchases. It's all about the long-term strategy. Insights and tips for your ASO Let's pay special attention to optimizing your promoted in-app purchase title, because this metadata element gets indexed by the App Store. The best way to optimize an in-app purchase for search is to use relevant keywords in its title. Here are some tips and tricks: For in-app purchases, the title is the only thing that gets indexed. On the plus side, all in-app purchase titles get indexed for all locales.   In-app purchases can be indexed by keywords in the in-app purchase title metadata and by keywords in the app metadata. If your app ranks first by a certain keyword, add that keyword to the promoted in-app purchase title to occupy the entire first screen of the search results. The higher the keyword frequency, the more challenging it is to make it to the top. If you use keywords in the promoted in-app purchase title that are not found in the app metadata, then your promoted in-app purchase will rank low or be displayed too far from your app once it has been indexed. If a promoted in-app purchase doesn't get indexed by a certain keyword or doesn't go right after the app, don't waste your time on that keyword and try other ones. At the same time, you can change your list of promoted in-app purchases right on the spot. Stop those you don't need and try launching other in-app purchases. Say, you plan to launch a limited-time promo campaign or offer some exclusive content to users. The only disadvantage is that, when you resume the promotion of a certain in-app purchase, you'll have to improve its ranking again. Feel free to conduct experiments and share your knowledge. There are few professionals... --- Uygulamanızın abonelik gelirini artırmak için birkaç basit adımda en alakalı keywordleri bulun App Store’da reklam için keyword kullanırken, yalnızca yaklaşık yükleme sayısına değil, aynı zamanda uygulama içi satın almalardan elde edilen potansiyel gelire de odaklanmak gerekir. Bu yazıda para kazandıran ve gelirlerinizi arttırmanızı sağlayacak keywordlerin nasıl bulunacağını ve hangi kelimelerin abonelik getirdiğini Adapty ile nasıl anlayacağınızı öğreneceksiniz. En iyi para kazandıran anahtar kelimeleri bulmak için Apple Search Ads(ASA) verilerini kullanabilirsiniz. ASA’de reklam veren uygulamalar her zaman arama sonuçlarının en üstünde yer alır. Bu sonuçların altında App Store Optimization (ASO) kullanılarak o anahtar kelime için görüntülenmek üzere optimize edilmiş uygulamaları bulacaksınız. Özetlemek gerekirse, ASA ve ASO araçları aynı amaçla kullanılır, ancak trafik türü farklıdır: birincisi reklamcılık tarafından oluşturulan, ikincisi organik trafik. ASO ve ASA araçlarını kullanarak anahtar kelime tanıtımının uygulanabilirliğini üç adımda test edebilirsiniz: App Store’daki aramalar ve reklamlar için uygulamanızın kullanıcı davranışının ne kadar benzer olduğunu inceleyin. Bu, bir ASO stratejisi oluştururken ASA verilerini kullanıp kullanamayacağınıza karar vermenize yardımcı olacaktır. ASO araçlarını kullanarak, popülerlik ve rekabet arasında bir denge oluşturarak en iyi anahtar kelimeleri bulun. Her bir anahtar kelimeye yönelik satın alma yapan kullanıcıların davranışlarını incelemek için bir test reklamı oluşturun. Bu verilere dayanarak, kullanıcıların uygulamanızda satın alma yapmasına en sık yol açan anahtar kelimeleri seçebilirsiniz. Bu adımların her birinin pratikte nasıl uygulanacağını bu yazıda öğreneceksiniz. Bu kılavuzun sonunda, abonelik dönüşüm oranlarınızı artırmanıza yardımcı olacak ekstra bir yöntem de bulacaksınız. 1. Adım: ASO ve ASA dönüşüm oranlarını karşılaştırın Bir ASO stratejisi geliştirmek için ASA istatistiklerini kullanmayı bilmek çok önemlidir. Bunu anlamak için , ASO ve ASA’ten dönüşüm oranlarınızı karşılaştırmanız gerekir. Adapty’de App Store aramalarından ve Apple Search Ads’ten gelen kullanıcılar için ayrı segmentler oluşturabilirsiniz. Örnek olarak Grafik ve Tasarım kategorisindeki bir uygulamayı kullanarak dönüşüm oranlarını nasıl karşılaştıracağımızı görelim. App Store aramalarından gelen organik trafik ve reklamlardan gelen organik olmayan trafik için genel verileri karşılaştıracağız. Uygulamanın yalnızca iki teklifi var: yıllık ve aylık abonelik planları. Aynı zamanda, fiyat açısından daha çekici ve göze daha hoş geldiği için promosyon için yıllık olana öncelik verilmektedir. Uygulamadaki tüm ücretli trafik istatistiklerine bakalım. Uygulamanın ücretli trafik istatistikleri Reklam amaçlı kullanılan Welcome New ödeme duvarının tüm trafiğinin dönüşüm oranı %0,34'tür. Uygulamada deneme olmadığı ve pahalı abonelik seçeneğine vurgu yapıldığı için bu dönüşüm beklenen bir değerde. Organik kaynaklardan gelen kullanıcılar ise Limited Time Offer ödeme duvarına yönlendirilir. Abonelik dönüşüm oranları %0,35'tir. Organik ve organik olmayan trafik için dönüşüm oranları Organik trafik kaynakları için abonelik ödemelerine dönüşüm oranı yaklaşık %0,35'tir ve tüm ücretli trafik için yaklaşık %0,34'tür. Dönüşüm oranları hemen hemen aynı olduğu için organik ve ücretli kaynaklardan gelen kullanıcıların davranışlarının oldukça benzer olduğu sonucuna varabiliriz . 2. Adım: App Store’da tanıtım için en iyi keywordleri seçin ASA verilerinden ASO tahminleri çıkarabileceğimizi bir önceki adımda anladık. Şimdi, aramalar ve Apple Search Ads aracılığıyla tanıtım için anahtar kelimeleri seçelim. Uygun anahtar kelimeleri bulmak için Asodesk’in Keyword Yöneticisi ve Otomatik Keyword Önerileri araçlarını kullanabilirsiniz. Keyword Yöneticisi , otomatik öneri özelliği ile tanıtım için çok sayıda anahtar kelime önerisi sunacaktır. Araçta, uygulamanın şu an listelendiği ve potansiyel olarak indirme alabileceği anahtar kelimeleri de göreceksiniz. Asodesk’te Keyword Yöneticisi Bu araç tüm keyword varyasyonlarını gösterecektir. Örneğin, Apple Search Ads önerileri bölümü, App Store’da bir uygulamanın reklamı yapılırken kullanılabilecek keyword önerilerini göstermektedir. Anahtar Kelime Yöneticisi’nde Apple Search Ads Reklamları Önerileri Açıkçası yüksek rekabetli ve popüler sorgular için App Store’un arama sonuçlarında en üstte yer almak oldukça zorlaşır. Bu nedenle, uygulamanızı App Store aramasında tanıtmanız için size gerçek bir şans verecek anahtar kelimeler seçmeniz önemlidir. Daha önce önerilerde eklediğiniz anahtar kelimelerin popülerliğini ve rekabetini Anahtar Kelime Tablosu aracında görebilirsiniz. Daily Impressions, o sorgu için günlük gösterim sayısını gösterirken, iPhone total apps, aramayı içeren toplam uygulama sayısını gösterir. Asodesk’te Anahtar Kelime Tablosu Popüler genel aramalar genellikle en iyi dönüşüm oranlarını vermez. Çoğu zaman uygulamanızın amacını daha doğru bir şekilde yansıtan belirli düşük hacimli sorgular tarafından ortaya çıkar. Bu tür ifadeler, Long-Tail Keywords aracı kullanılarak bulunabilir. Aramada ilerlemenizi kolaylaştıracak şekilde, dört kelimeden daha uzun anahtar ifadeler gösterecektir. Bu makalede daha ayrıntılı adım adım bir kılavuz bulabilirsiniz . Birçok geliştirici, trafiğinin bir kısmını elde etmek için rakiplerin aramaları için reklam satın alır. Diğer promosyon seçenekleriyle ilgilendikten sonra bu aslında yapacağınız son şey olmalıdır, çünkü pratikte başka birinin markalı anahtar kelimelerinden yapılan yüklemeler en kötü dönüşüm oranlarını verir. Ancak, rakibin anahtar kelimelerinden yükleme almak sizin için önemliyse , Asodesk’in Otomatik Anahtar Kelime Önerileri bölümünde Rakiplerin En İyi Anahtar Kelimelerini kontrol edin. Burada, indirmeleri rakiplerinize getiren uygulamayla ilgili anahtar kelimeleri göreceksiniz. Otomatik Anahtar Kelime Önerisinde Rakiplerin En İyi Keywordleri Uygulama meta verilerinizde rakiplerinizin markalı anahtar kelimelerini kullanmamanız gerektiğini unutmayın. Anahtar kelimeler alanına başka birinin ürünü için yanlış yazılmış aramalar eklemeyi düşünebilirsiniz, ancak önce bu anahtar kelimelerin trafiğini kontrol etmek gerekir. Yukarıdan da görebileceğiniz gibi, anahtar kelime seçerken sadece ne kadar popüler olduklarına değil, aynı zamanda ticari rakiplerinizin tanıtım stratejisine de dikkat etmek önemlidir. Özelleşmiş ve daha az popüler olan anahtar kelimeler, uygulamanızın amacını daha iyi yansıttıkları ve sonuçta daha ilgili kullanıcılar edindikleri için genellikle daha yüksek abonelik dönüşümleriyle sonuçlanır. Şimdi, dönüşüm oranlarını nasıl kontrol edeceğimizi görelim. 3. Adım: Apple Search Ads reklamı satın alın ve kullanıcıların davranışlarını analiz edin ASO araçlarını kullanarak bir anahtar kelime listesi derledikten sonra, bu aramalardan yapılan yüklemelerin ücretli aboneliklere nasıl dönüştüğünü analiz etmek için ASA reklamı satın almayı deneyin. ASA ile test maliyetinin ASO’nun maliyetini geçmemesi önemlidir. Grafik ve Tasarım kategorisindeki bir geliştiricinin keyword reklamlarını nasıl satın aldığını kontrol edin. Adapty’de anahtar kelimelere göre reklam satın alımının analizi Ne yazık ki, bu yazıda belirli anahtar kelimeleri gösteremiyoruz. Bu uygulama için Asodesk, rakibin markalı VSCO anahtar kelimesine dikkat edilmesini öneriyor. Adapty’de bu anahtar kelimeler için abonelik oranlarını kontrol edelim. İstediğiniz anahtar kelimeleri seçebilir ve bu anahtar kelimeleri kullanarak uygulamayı indirdikten sonra yıllık veya aylık aboneliklere kaydolan kullanıcı sayısını görebilirsiniz. Toplam abonelik sayısı Bu grafik, hangi anahtar kelimelerin kullanıcıların aboneliklerini yenilemelerine yol açtığını ve hangi anahtar kelimelerin büyük olasılıkla onları abonelikten çıkarmasına yol açtığını görmenizi sağlar. Etkin ve etkin olmayan abonelik sayısı Adapty grafikleri uygulamanın, rakibin anahtar kelimeleri için Apple Search Ads’ten yaklaşık 60 aktif aboneliğe sahip olduğunu gösteriyor. Kullanıcıların yaklaşık yarısı otomatik abonelik yenilemeyi kapatmış, ancak neredeyse tamamı yıllık aboneliğe kaydolmuş. ASA’daki dönüşüm oranı düşük olsa bile, aboneler... --- Find the most lucrative keywords for your app in a few simple steps When using keywords for promotion in the App Store, it’s important to focus not only on the possible number of installs it can yield, but also on the potential revenue from in-app purchases. In this article, we'll show you how to find the keywords that are most likely to help your customers find you and make a purchase. To find the best money-making keywords, you’ll use Apple Search Ads (ASA) data. Those apps that advertise in the ASA always sit atop search results. Next to those you’ll find those apps that have been optimized to be displayed for that keyword using App Store Optimization (ASO). To sum up, ASA and ASO tools are used in the same context, but the type of traffic is different: the former advertising-generated, the latter organic. We offer to test the feasibility of keyword promotion using ASO and ASA tools in three steps: Study how similar your app's user behavior is when it comes to searches and ads in the App Store. This will help decide whether you can use ASA data when forming an ASO strategy. Using ASO tools, find keywords in the sweet spot of a good balance between popularity and competition. Make a test ad purchase and study the behavior of users making purchases for each keyword. Based on this data, you’ll choose the keywords that most often lead to users making purchases in your app. We’ll show how to implement each of these steps in practice. At the end of this guide, you’ll also get an extra lifehack that will help improve your subscription conversion rates. Step 1: Compare ASO and ASA conversion rates It’s important to understand whether you can use ASA statistics to develop an ASO strategy. To do this, you need to compare your conversion rates from ASO and ASA. You can create separate segments for users that come from App Store searches and Apple Search Ads in Adapty. The interface of the platform offers a step-by-step guide on doing this. Let's see how to compare the conversion rates using an app from the Graphics & Design category as an example. Unfortunately, app’s marketing managers don’t segment paid traffic channels individually, so we'll be comparing the overall data for organic traffic coming from searches and non-organic traffic from ads. The app has only two offers: annual and monthly subscription plans. At the same time, the annual one is prioritized for promotion, as it’s more appealing in terms of price and more pleasing to the eye. Let's look at the statistics for all paid traffic in the app. Paid traffic statistics in the app The conversion rates of all traffic of the Welcome New paywall, which is used for advertising, is 0. 34%. There is no trial in the application, and it puts emphasis on its expensive subscription, so this conversion value is rather expected. As for users from organic sources, application developers refer them to the Limited Time Offer paywall. Their subscription conversion rate is 0. 35%. Conversion rates for organic and non-organic traffic Conversion rate to subscription payments for organic traffic sources is about 0. 35%, and for all paid traffic, it’s about 0. 34%. Since the conversion rates are almost the same, we can conclude that the behavior of users that come from organic and paid sources is quite similar. Step 2: Pick the best keywords for promotion in App Store You already saw you can infer ASO insights from ASA data. Now, let's pick the keywords for promotion through searches and Apple Search Ads. You can use Asodesk's Keyword Manager and Keyword Auto-Suggestions tools to find suitable keywords. Keyword Manager will help you build a semantic core for your application. An endless feed of automatic suggestions will offer a large number of keyword options for promotion. In the tool, you’ll see the keywords for which the app ranks and can potentially get downloads. Keyword Manager in Asodesk This tool will also show keyword variations that aren’t yet part of your semantic core. For example, the Apple Search Ads Suggestions section shows the keywords using which an app should be advertised in the App Store. Apple Search Ads Suggestions in Keyword Manager As a rule, sky-high competition makes it quite difficult to get ranked in the top of the App Store’s search results for popular queries. That’s why it is important to choose keywords that will give you a real chance of promoting your app in the App Store search. You can see the popularity and competition for keywords that you previously added to the semantic core in the Keyword Table tool. Daily Impressions shows the number of impressions for that query per day, while iPhone total apps shows the total number of apps that are also shown for the search. Keyword Table in Asodesk Highly popular general searches often don’t yield the best conversion rates. Much more often than not, those are brought on by those specific low-volume queries that more accurately reflect the purpose of your app. Such phrases can be found using the Long-Tail keywords tool. It’ll show key phrases longer than four words, which will make it easier for you to advance in the search. Long-Tail Keywords in Asodesk You can find a step-by-step guide on compiling a semantic core in this article. Many developers buy ads for competitors’ searches in order to get some of their traffic. This should actually be the last thing you do after you’ve dealt with the rest of the promotion options, since in practice, installs from someone else’s branded keywords give the worst conversion rates. However, if getting installs from competitor’s keywords is important to you, check Competitors Best Keywords in Asodesk's Keyword Auto-Suggestions. Here, you’ll see app-relevant keywords that bring downloads to your competitors. Competitors Best Keywords in Keyword Auto-Suggestion Keep in mind that you can't use your competitors' branded keywords in your app metadata. You can consider adding misspelled searches for someone else’s product in the keywords field, but it's important to check the... --- What's new in Adapty in February: ARPPU Metric, improved attribution During this February we’ve made improvements to Adapty to help you bring you mobile products to new heights. ARPPU Metric in A/B Tests You can find new column in your A/B Tests Metrics – Average Revenue Per Paying User. It’s calculated as total revenue divided by unique paying users. It can be helpful in situations when you compare entirely different offers on you paywalls. We hope this metric will help you decide on winning paywall in A/B Test. Improved attribution and integrations We’ve rebuilt our attribution and integrations engine, covering more edge-cases. Now there is much less chance for events to get lost in a way to your integrations, such as AppsFlyer. Content updates New article about purchasing an app: which metrics to look at, how the deal will be done, and what you must never neglect. You can also join our discord-community to participate in discussions about app monetization and learn something new from the experts! --- Bir mobil uygulama alım sürecinin tüm detayları: neleri kontrol etmeli, riskler neler ve tüm satın alma süreçleri Sıfırdan bir uygulama geliştirmek için çok fazla zamana ve kaynağa ihtiyacınız olacak. Alternatif olarak, sıfırdan başlamak yerine hazır bir uygulama satın alabilir ve planlarınızı bunun üzerine yapabilirsiniz. Yine de bu seçenekle ilgili dikkate alınması gereken birçok durum ve risk var. Bu yazıda, bir uygulama satın almaya nasıl yaklaşılacağını, hangi metriklere bakılacağını, anlaşmanın nasıl yapılacağını ve neleri asla ihmal etmemeniz gerektiğini tartışacağız. Neden bir mobil uygulama satın almalısınız? Bir mobil uygulama tam anlamıyla ayrıntılı bir iş planı gerektirir: Gelirinizi arttırmak için uygulamanın gelişimine sürekli yatırım yapmanız gerekir. İşte bir uygulama satın almanın en yaygın nedenleri. Mobil uygulama pazarında deneyimlisiniz ve uygulamaların mevcut sahibinden daha düşük bir maliyetle yeni aboneler edinebilirsiniz. Uygulamadan para kazanma, sürekli yeni abone akışı gerektiren bir süreçtir. Bu, reklamları yapılandırma ve optimize etmenin yanı sıra paywall dönüşüm oranınızı iyileştirmeye yönelik sistematik bir yaklaşıma sahip olmanız gerektiği anlamına gelir. Deneyimli bir ekip, para kaybettiren bir uygulamadan karlı bir iş çıkarabilir. İlgili pazarlama kanallarına veya trafik kaynaklarına erişiminiz olabilir. Uygulama satma veya satın alma ile ilgilenenlerin genellikle trafik ağlarına sahip şirketleri ve medya satın alma ajanslarından oluşması oldukça dikkate değerdir. Uygulamayı ürün açısından iyileştirebilirsiniz. Bazen bir uygulamanın kullanıcılar tarafından sevilen ve para kazandıran kaliteli bir ürüne dönüştürülmesi için biraz cilalanması yeterlidir. Deneyimli bir ekibiniz varsa, kesinlikle değeri bilinmeyen bir uygulama bulmayı ve onu büyük ölçüde iyileştirmeyi deneyebilirsiniz. Kendi ürününüzü güçlendirmek veya bir rakip edinmek istiyor olabilirsiniz. Zaten sağlam bir uygulamanız olduğunu düşünelim. Aynı kategoriyi paylaşan daha küçük uygulamalar edinerek hedef kitlenizi neden genişletmiyorsunuz? Mobil oyunlar burada en güzel örnektir: Sizinkine benzer bir oyun satın alırsanız ve ardından kullanıcıların projenize geçmesine yardımcı olursanız, bu oyununuzun konumunu sağlamlaştıracak ve onu potansiyel rakiplerden koruyacaktır. Uygulamalar neden satılır? Uygulamanın sahibinin uygulamayı satmak istemesinin ardındaki nedenlere bağlı olarak, çok farklı fırsatlar elde edebilirsiniz. Gerçekçi olmayan beklentiler. Mobil uygulama piyasasında yeni olanlar genellikle bir uygulama geliştirerek gelir elde etmenin çok kolay bir iş olduğunu düşünürler. Daha sonra aboneliklerin iade edilebileceğini, uygulamanın güncelleme ve bakım gerektirdiğini, incelemelerin dikkat gerektirdiğini ve sürekli daha fazla trafik çekerek para kazanıldığını öğrendiklerinde şaşırırlar. Uygulama geliştiricisi bu kadar zorlu bir süreçten bıkarak tam zamanlı işine geri dönmek istemiş olabilir. Kaynak yetersizliği. Geliştiricilerin, uygulamaya yeni kullanıcılar çekmek, uygulamanın gelişimini devam ettirebilmek için daha fazla kişiyi işe almak gerektiğini ve tüm bunlar için paraya ihtiyaç olduğunu anladığı bir nokta vardır. Bu durum daha fazla büyüme ve yatırım gerektirir, ancak kimse isimsiz bir geliştiriciyle uğraşmak istemez. Uygulamayı satmak genellikle bir ekip ve yatırımcı aramaktan daha kolaydır. Tükenmişlik. Geliştirici, uygulamasından bıkmış olabilir. Başka bir iş bulmak veya bir sonraki fikirleri üzerinde çalışmaya devam etmek istemiş olabilirler. Takım çatışması. Bu önemsiz ama oldukça yaygın bir neden. Kurucular anlaşamayınca yollarını ayırmaya karar verebilirler. Uygulamayı başka birine satıp parayı paylaşmayı düşünebilirler. Uygulama uyarı vermektedirUygulamadan para kazanılmıyorsa ve geliştiricinin parası bitiyorsa, bazen ekstra fon aramak yerine onu satmak daha kolaydır. Spekülasyon. Bazıları uygulama satın alma, onları karlı hale getirme ve ardından yeniden satma konusunda uzmanlaşmıştır. Satıcınızın işinin bu olduğundan şüpheleniyorsanız dikkatli olun — sağladıkları verilerle çok iyi aldatıyor olabilirler. Para acil ve kişisel nedenler. Bazen satıcının kişisel nedenleri olabilir. Örneğin, yeni bir ev satın almaları, sağlık harcamaları veya borçlarını ödemeleri gerekebilir. Bir uygulama satın alırken nelere dikkat edilmelidir? Kurucuların ve markanın veya uygulamanın itibarı Uygulamanın arkasındaki geliştirici veya ekip geçmişte şüpheli şeyler yaptıysa — bu başka uygulamalarda olsa bile — bu, uygulamaya musallat olacak ve uygulama diğer geliştirici hesaplarına aktarıldıktan sonra bile olumsuz bir etkiye sahip olacaktır. Adları Google’da arayın, incelemeleri arayın ve topluluklarda soruşturun. Geliştiricinin uygulama pazarındaki itibarı Geliştirici, şüpheli reklamlarla musallat olan web görünümü uygulamaları başlattıysa, itibarları büyük ihtimalle kötü etkilenmiştir. Uygulama, onların hesabından sizin hesabınıza aktarıldığında, güncelleme incelemeleriyle ilgili sorunlarla karşılaşabilir ve hatta uygulamanızın silinmesine bile neden olabilirsiniz. Bu nedenle, uygulamalarından birini satın almadan önce geliştirici hesabının geçmişini kontrol etmek çok önemlidir. Uygulamanın mağaza yönergelerine uygunluğu Bazen uygulama, uygulama mağazası tarafından getirilen bazı politika veya yönerge değişikliklerinin ardından artık incelemeleri geçemeyebiliyor. Mağazadan kaldırılmasa da geliştiricinin herhangi bir güncelleme yayınlayamadığı durumlar olabiliyor. Genel olarak, uygulama uzun süredir herhangi bir güncelleme almadıysa, bu bir tehlike işareti olarak kabul edilmelidir. Satıcıya bunu sorun ve herhangi bir güncelleme sorunu olmadığından emin olun. Şirketin ve hissedarlarının yasal durumu Satış için listelenen uygulamanın gerçekten satıcıya ait olduğundan emin olun. İster bir pazar yeri veya komisyoncu hizmetleri kullanıyor olun, isterseniz doğrudan geliştiriciyle pazarlık yapın, satıcının uygulamayı yasa dışı olarak ele geçirme olasılığı her zaman vardır. Emin olmak için en iyisi bir avukata danışın. Ayrıca satıcının veya şirketinin adını aramayı denemeli, alan adının kime ait olduğunu görmeli ve geliştiricilerin sosyal medya hesaplarını kontrol etmelisiniz. Patent hakları Bir uygulama satın alarak, onunla ilgili tüm adların ve patentlerin haklarını da satın alırsınız. Hak ve patent devirleri oldukça meşakkatli bir işlemdir, bu konularda da bir hukukçudan bilgi almanızı öneririm. Ekonomik boyut En yaygın risk, uygulama sahibinin tüm resmin en azından bazı kısımlarını sizden gizleyebilmesidir. Para kazandıran bir uygulama satın aldığınızda, satıcı sorunları halının altına süpürmeye çalışabilir. Muhtemelen sayıları daha iyi göstermeye çalışacak, hatta verileri doğrudan manipüle edecektir. Bir mobil uygulama satın alırken en önemli risk, farkında olmadan kırmızı renkte olan bir işletmeyi satın almaktır. Uygulamanın ekonomik verilerini iyi incelemezseniz ileride gelir kaybı yaşamanız olasıdır. Gelir nasıl denetlenir? Mobil uygulamalar çoğunlukla kendi projenizi oluşturmanız gereken şablonlar olarak satılır. Ancak burada kendi ekonomisiyle hazır bir iş olarak bir uygulama satın almayı düşünüyoruz. Aksi takdirde, uygulama para kazanmıyorsa, para kazanma potansiyeli olmadığı anlamına gelmelidir. Bu durumda neden satın alınsın ki? AdMob tabanlı para kazanma özelliğine sahip uygulamalar genellikle ucuz görünse de, abonelik modeli genellikle en güvenilir para kazanma tekniği olarak kabul edilir. Ancak içerik uygulamaları, uygulama içi trafikleriyle abonelik modeline göre çok daha az kazanacaktır. Daha iyi bir seçenek için, reklamlara dayanan bir içerik uygulaması satın alabilir ve bunun yerine abonelikler sunabilirsiniz. Bir uygulamayı değerlendirmek için şu formülü kullanabilirsiniz: aylık gelir*bir ya da üç yıl. Örnek: Ayda 10$ ödeyen 1000 aboneniz var ve ayrıca Apple Küçük İşletme Programına üyesiniz diyelim. Bununla ayda 0,85 * 1000 * 10 = 8500 $ kazanıyorsunuz. Bu paranın %30'unu trafiğe ve %20 veya daha fazlasını diğer ödemelere harcadığınızı varsayalım. Bu durumda, 0,5 * 8500 = 4250 $ net gelir elde edersiniz. Bu nedenle, uygulamayı 51. 000... --- The process of buying an app in details: what to check, what the red flags are, and what the purchase looks like To develop an app from scratch, you’d need a lot of time and human resource. Alternatively, you can buy a ready-made app and build up on it. There’s a lot of nuance and risks to consider with this option, though. In this article, we’ll discuss how to approach purchasing an app, which metrics to look at, how the deal will be done, and what you must never neglect.   Why buy a mobile app An app is a business: you invest in its development to earn even more.   Calculating an app's revenue is easy Here are the most common reasons for buying an app. 1. You’re experienced with the mobile traffic market and can acquire new subscribers for a lower cost than the apps’ current owner. App monetization requires a constant flow of new subscribers. This means you need to have a systematic approach towards configuring and optimizing ads, as well as improving your paywall conversion rate. An experienced team can make a profitable business out of a money-losing app. 2. You have access to relevant marketing channels or traffic sources. Examples include app review websites or even other apps where you can place ads. It’s quite notable those involved with selling or buying apps often include companies that own traffic networks, as well as CPA and media buying agencies. 3. You can improve the app from the product standpoint. Sometimes an app just needs to be polished a bit to be transformed into a quality product loved by users and earning money. If you have an experienced team, you can certainly try finding an underrated app and improving it drastically. 4. You want to strengthen your own product or acquire a competitor. You already have a solid app asset. Why not expand your audience by acquiring smaller apps sharing the same category? Mobile games make the easiest example here: If you buy a game similar to yours and then help the users move over to your project, this will solidify your game’s position and protect it from potential competitors. If you're an app developer or app product owner focused on acquiring applications with a vision to enhance their conversion rates and in-app subscriptions, Adapty is your strategic partner! By scheduling a free demo call with us, you’ll explore how our solutions can help you significantly elevate conversion rates and revenue for the app you intend to buy, ensuring a profitable app purchase. Whether it's improving your paywall conversion rate or optimizing ads, make your app acquisition journey rewarding with Adapty! Why apps are sold Depending on the reasons behind the app’s owner looking to sell it, you can get very different deals. The pitfalls of creating an app 1. Unrealistic expectations. Those new to the mobile app business market often come in expecting to build an app, set up monetization tools, and lay on the couch watching their bank account grow. They are then surprised to learn that subscriptions will be refunded, the app requires updates and maintenance, reviews demand attention, and the traffic is constantly to be acquired and monetized. The developer then thought back to the sweet carefree days of being an employee and decided to get rid of the app. 2. Lack of resources. There’s a point where the developer realizes that for the app to continue growing, they’ll need money to acquire new users and hire more people to maintain the app and create content. It’d also be great to do a redesign, polish the interface, and more. Further growth requires investments, but no one wants to deal with a no-name developer. It’s often easier to sell the app than to look for a team and investors. 3. Burnout. The developer has simply got weary of their app. They then wanted to switch fields, find a job, or proceed to working on their next idea. They looked towards moving on but didn’t want to neglect the app, which is why they decided to sell it. 4. Irrelevant asset. This happens if the app was initially developed to supplement some other business and ended up no longer needed because of the main business collapsing. For example, gym owners decided to develop a health app with trainer-curated recommendations, workout plans, a step counter, and more to make their gym more appealing to customers. Then the pandemic hit, and the gym had to close down. To compensate for the losses — at least partly — the owners have no other choice but to sell the app. 5. Team conflict. That’s a trivial yet quite common reason. The founders couldn’t find a common ground and decided to part ways. They had to sell the app to someone else and share the money. 6. The app is in the red. If the app isn’t monetized and the developer is running out of money, it’s sometimes easier to sell it than seek extra funding. 7. Speculation. Some specialize in buying apps, making them profitable, and then reselling them. Be cautious if you suspect that’s your seller’s occupation — they may very well be deceitful with the data they provide. 8. Money emergency and personal reasons. Sometimes the seller may have deeply personal reasons. For example, they may need to buy a new home, afford costly medical treatment, or pay their debts. What to consider when buying an app The founders’ & the brand’s or app’s reputation This step is obvious yet is often overlooked for this very reason. Despite being a mass product, mobile apps face heavy limitations imposed by their chosen niche. If the developer or team behind the app has done dubious things in the past — even if that was with some other apps — this will haunt the app and have negative impact even after the app is transferred to other developer accounts. Google the names, look for reviews, and ask around in the community. The developer’s reputation in the app marketplace Stores rank developers by how much they trust them. If the developer has launched... --- --- ## Cases --- ## Compare --- ## Ebooks --- ## Events A curated evening where mobile app leaders share the specific strategies driving their growth. Get tactical insights on user acquisition costs, retention frameworks, and monetization models from apps that have scaled beyond 1M users. Join 50+ app leaders in Barcelona on October 22. Gain proven tactics on growth, retention, and monetization. Networking with top mobile experts. --- A curated evening where mobile app leaders share the specific strategies driving their growth. Get tactical insights on user acquisition costs, retention frameworks, and monetization models from apps that have scaled beyond 1M users. Join 100+ app leaders in Warsaw on October 17. Gain proven tactics on growth, retention, and monetization. Networking with top mobile experts. --- A curated evening where mobile app leaders share the specific strategies driving their growth. Get tactical insights on user acquisition costs, retention frameworks, and monetization models from apps that have scaled beyond 1M users. Join 120+ app leaders in Berlin on September 30. Gain proven tactics on growth, retention, and monetization. Networking with top mobile experts. --- The Growth Phestival is a Berlin-based exclusive event focusing on expert-level growth marketing discussions. This edition follows six previous successful ASO Conferences The Growth Phestival is a Berlin-based exclusive event focusing on expert-level growth marketing discussions. This edition follows six previous successful ASO Conferences. --- Join us for a great Steak dinner in the WWDC 25 week! We'll host only 10 +$100K Mobile App founders Join us for a great Steak dinner in the WWDC 25 week! We'll host only 10 +$100K Mobile App founders --- 9 Haziran, 202519:00 (GMT+3)Etkinlik Adresi: AppNation Office, IstanbulApple’ın WWDC25 keynote etkinliğini birlikte izlemek için sizi AppNation ofisine bekliyoruz. Yeni duyuruları değerlendirerek fikir alışverişinde bulunacağımız ve Apple ekosistemindeki son gelişmeleri birlikte analiz edeceğimiz bir akşam planlıyoruz. WWDC25 sadece bir etkinlik değil, aynı zamanda ilham veren yeni teknolojilere birlikte bakma fırsatı. Katılımcılarla birlikte, sektördeki değişimleri tartışabileceğimiz, sorularımıza yanıt arayabileceğimiz samimi bir ortam yaratıyoruz. Kontenjan sınırlıdır, davet almanız gerekmektedir. Şimdi kayıt olun, yerinizi ayırtın! --- From monetization strategies and investment opportunities to safety, privacy and more, this year’s conference promises to deliver unparalleled insights into the world of digital romance. It takes place at Etc. Venues, 601 Lexington Avenue, from 10am to 4pm on Wednesday, March 19th. --- Mobil uygulama yayıncıları ve bireysel geliştiricilerin buluştuğu sektörün en büyük etkinliğinde yerinizi alın. Mobil uygulamalarda para kazanma stratejilerinde son trendleri ve öngörüleri öğrenin. HUBX ortaklığı ile düzenlenen bu etkinlik, mobil uygulama yayıncıları ve bireysel geliştiricilerin buluştuğu sektörün en büyük etkinliğidir. Katılımcılar, mobil uygulamalarda para kazanma stratejileri hakkında son trendleri ve öngörüleri öğrenebilir. Etkinlik 11 Mayıs'ta İzmir'de, saat 13:00-17:30 arasında gerçekleşti ve kayıt kapanmıştır. Hemen kayıt olun! --- Take your place at the biggest event of the sector where mobile application publishers and individual developers meet. Learn the latest trends and forecasts in monetization strategies in mobile applications. Organized in partnership with Paddle, this event is the largest event in the industry, where mobile application publishers and individual developers meet. Participants can learn the latest trends and forecasts about monetization strategies in mobile applications. The event took place on Dec. 8 in Istanbul between 17:00 and 22:00 and registration has closed. Register now! --- Join us for an exceptional event tailored for app developers
and owners. Gain actionable insights into app monetization strategies, trends, and forecasts. This special event is organized for application developers and owners. You will gain applicable insights about application revenue strategies, trends and forecasts. Registration has closed, stay tuned for future events. The event took place on Dec. 13 in Cyprus between 17:00 and 23:00. Don’t wait, register now! --- AGS UK, held in London, United Kingdom, was a significant gathering for professionals in the app growth sector. The conference provided sessions on user acquisition, retention strategies, and monetization, tailored to the UK and European markets. Participants had the chance to network with industry peers, learn from successful case studies, and discuss the future of app growth in the region. --- Swift Leeds, hosted in Leeds, UK, was a conference dedicated to Swift programming and iOS development. The event featured talks from experts in the field, covering topics ranging from beginner to advanced levels. Attendees participated in workshops, coding challenges, and networking sessions, enhancing their skills and knowledge in Swift development. --- The Adapty App Founders Meetup in Ankara is designed for app developers and founders interested in leveraging subscription models to boost their app's revenue. This event brings together industry leaders to discuss current trends in subscription-based monetization, offering strategies to increase user engagement and retention. Attendees will gain insights into the use of sophisticated analytics for managing subscriptions and explore various paywall strategies to optimize their app's financial performance. Networking plays a central role at this meetup, providing a venue for app creators to connect, share insights, and build professional relationships. The event includes interactive Q&A sessions where participants can learn from experts, discuss real-world applications, and collaborate on innovative solutions. The focus is on practical, actionable advice that can help developers navigate the subscription landscape, fostering a community of learning and growth in Ankara's tech scene. --- The Adapty App Founders Meetup in Istanbul is tailored for those at the helm of mobile app development, specifically targeting founders and developers keen on exploring subscription models for app monetization. This event serves as a platform where industry leaders share insights on the latest trends in app subscriptions, discuss strategies to enhance user retention, and delve into successful case studies. Participants can expect to learn about advanced analytics tools for subscription management and how to experiment with different paywall designs to maximize revenue. Networking is a key component of this meetup, designed to connect like-minded individuals who are passionate about app growth and monetization. Attendees will have the opportunity to engage in Q&A sessions with experts, share experiences, and forge new partnerships. The atmosphere is set to be collaborative, with a focus on practical advice that attendees can apply directly to their own apps, aiming to help them navigate the complexities of the subscription economy. --- Held on September 3, 2024, in Berlin, Germany, the ASO Conference focused on expert-level growth marketing discussions, emphasizing App Store Optimization (ASO) strategies. The event aimed to break down silos by delivering impactful content across various growth disciplines, including acquisition, retention, engagement, and monetization. With over 500 attendees and numerous speakers, it provided a platform for professionals to share insights and network within the app marketing community. --- NSSpain XII took place in Logroño, Spain, gathering iOS developers and enthusiasts to explore advancements in Swift and iOS development. The conference featured technical sessions, hands-on workshops, and talks from renowned speakers in the iOS community. Attendees engaged in deep dives into new frameworks, best practices, and emerging trends in iOS development, fostering a collaborative environment for learning and innovation. --- App Promotion Summit was a key event for app marketers and developers aiming to enhance their app's visibility and success. The summit covered topics such as app store optimization, user acquisition strategies, and effective marketing campaigns. With a lineup of industry leaders as speakers, attendees gained valuable insights into promoting and monetizing mobile applications in a competitive market. --- The FlutterFlow conference in New York, USA, focused on the Flutter framework and its applications in mobile app development. The event included workshops, coding sessions, and presentations on building efficient and high-performance mobile applications using Flutter. Developers and designers gathered to share experiences, learn from experts, and explore the latest features and updates in the Flutter ecosystem. --- The Adapty Conference in Warsaw, titled "App Growth Unlocked," is an exclusive, invite-only event designed to connect app developers, marketers, and growth hackers with the forefront of mobile success strategies. Scheduled for June 13, 2024, at Racławicka 99, the event runs from 10:00 AM to 6:00 PM, offering a full day of learning, networking, and growth-focused activities. With registration now closed, this conference is set to explore the latest trends in mobile subscriptions, share insights on creating effective onboarding flows, and delve into the art of experimentation for app growth. Participants will benefit from a rich agenda featuring talks by industry leaders like Vitaly Davydov, who will discuss the state of mobile subscriptions in 2024, and Hannah Parvaz, sharing best practices for onboarding flows that convert. The conference also includes hands-on workshops, such as Nathan Hudson's paywall critique session aimed at boosting revenue, and a panel discussion on app market trends for 2024-2025. The day is structured to not only educate but also to foster connections through various networking opportunities, including a lunch break and a networking party, making it a pivotal event for anyone looking to scale their app's growth. --- AGS SF, held in San Francisco, USA, was a premier event for professionals in the app growth and marketing sector. The conference offered sessions on the latest tools, strategies, and case studies related to app scaling, user engagement, and performance marketing. Participants benefited from networking opportunities and discussions led by industry experts, focusing on the challenges and opportunities in the app growth landscape. --- This summit in Singapore brought together industry leaders and professionals to discuss the latest trends and strategies in mobile and app growth. The event featured keynote speeches, panel discussions, and workshops covering topics such as user acquisition, retention strategies, and monetization techniques. Attendees had the opportunity to network with peers and gain insights into the rapidly evolving mobile ecosystem. --- Kick off the year with SubHub Meetup — an informal networking event by Adapty and FunnelFox for professionals in the mobile app industry, with a focus on subscription apps. Connect with a community of like-minded peers and industry experts for meaningful conversations and networking. --- Join us at the App Promotion Summit London on April 24, 2025, for an unparalleled experience in app growth. This event gathers app marketing, growth, product, CRM, and revenue leaders to explore the latest in AI-enabled marketing, product-led growth, retention strategies, and more. Discover how to scale your app in an era where technology and user engagement are paramount. At the iconic Brewery, you'll not only learn from over 70 speakers across 7 content stages but also enjoy a 5-star networking environment. Connect with top app platforms and agencies, gaining insights from industry leaders like Dmitry Gurski of Flo and Asya Kuznetsova of Wise. Whether you're looking to enhance user acquisition, master retention techniques, or drive revenue growth, APS London offers practical strategies tailored for today's app market. This summit is your gateway to understanding how to integrate AI into your marketing, leverage privacy-centric user acquisition methods, and foster product-driven growth. Don't miss this opportunity to be at the forefront of app innovation, where over 1000 attendees will come together to redefine the future of app growth. --- Join us at MAU Vegas from May 20-22, 2025, where the world of mobile app marketing converges in Las Vegas. This isn't just another conference; it's a three-day celebration of innovation, bringing together over 2,000 professionals from six continents. Whether you're a marketer, executive, founder, or tech pro, MAU Vegas is where personal and professional growth intertwine with the latest in AdTech and MarTech. At MAU Vegas, you'll immerse yourself in an environment designed for learning and networking. With 83 speakers across 70 sessions, you'll gain insights that are critical to your career advancement. The event is renowned for its 94% attendee satisfaction rate, where 88% of participants influence or control purchasing decisions, making it a fertile ground for forging new partnerships and securing business opportunities. This gathering is your move in the chess game of app marketing. Discover how to capture new customers, explore cutting-edge technologies, and map out your strategic moves in the industry. MAU Vegas isn't just about attending; it's about being part of a community that drives the future of mobile app marketing. Don't miss your chance to be at the heart of it all – it's your move. --- Web Summit, the epicenter of global technology, returns to Lisbon from November 11-14, 2025. This isn't just a conference; it's where the tech world converges to redefine the future. Expect over 70,000 attendees, 1,000+ speakers, and the opportunity to connect with the companies that are reshaping industries. Discover the latest in tech across 15 tracks, from AI and SaaS to fintech and beyond. Web Summit is known for its dynamic atmosphere where innovation thrives, offering unparalleled networking opportunities with industry leaders, startups, and investors from around the globe. Whether you're here to launch your startup, seek investment, or learn from the brightest minds in tech, Web Summit provides a platform where ideas are born, partnerships are formed, and technology's future is crafted. Join us in Lisbon for an experience that's been described as "the best technology conference on the planet. " --- App Promotion Summit NYC brings together app marketing, growth, product, CRM and revenue leaders. You’ll learn how to grow and scale apps and understand key topics including AI-enabled marketing, Product Led growth, Retention, AdAttributionKit and Subscriptions. --- App Promotion Summit Berlin, held on December 5, 2024, was a leading event for app marketing professionals in Europe. The summit offered a comprehensive agenda covering app growth strategies, user engagement, and monetization techniques. With a diverse lineup of speakers and interactive sessions, attendees gained actionable insights to drive their app's success in the European market. --- --- ## Glossary Paywall A/B testing is a method to evaluate mobile paywall effectiveness through controlled experiments. Paywall A/B testing is a research method that involves conducting a randomized controlled experiment to assess the effectiveness of mobile app paywalls.   What’s A/B testing for mobile app paywalls The A/B testing process typically involves randomly dividing users into two or more groups, presenting each group with a different version of the paywall, and measuring the results over a period of time.   With paywall A/B testing app publishers can evaluate the effectiveness of different paywalls by tracking metrics such as conversion rate, revenue per user, and retention rate, and grow MRR (check how Social Kit doubled MRR with A/B testing).   Many SaaS platforms use A/B testing and build their solutions empowered by this statistical method for different business purposes (i. e. Squarespace A/B testing for web pages, Amplitude A/B testing for features or experiences on a website or app, iOS 15 A/B testing in the App Store, etc. ). At Adapty, we designed a dedicated paywall A/B testing tool to create multiple paywalls, easily set up and run an A/B testing experiment and see detailed statistics on user behavior to make data driven-decisions on paywall optimization. Despite many advantages of A/B testing, mobile app publishers approach A/B testing with caution due to the challenges connected to creating variations, managing the experiment, collecting large amounts of data, and gathering insights for future tests. With Adapty A/B testing solution you can create multiple paywalls without involving a designer or developer, easily set up a test, and see the detailed performance metrics for each variation - all in one dashboard.   How to create paywall A/B examples and run app paywall A/B testing To run an A/B test on your paywall, you compare two versions - the original (variation A) and the new one (variation B). You can make new versions or use the current one. Test one thing at a time, like prices or buttons, to see which is better. You can test for all users or some. Split the users equally (50/50) or with different weights (70/30, 80/20, etc. ). The weight decides how many people see each version. For example, if paywall A has 30% weight and paywall B has 70%, then 30% of people see A and 70% see B. To get reliable results from the test, it's important to reach statistical significance. A/B tests should have at least 90% or 95% statistical significance. This means the change will either help or hurt the paywall. The test should run until it reaches the necessary statistical significance. Adapty can calculate this for you when you set up the test. Follow a step-by-step guide to launch a paywall test. --- Apple's App-Specific Shared Secret is a 32-character key for auto-renewable subscription receipts. What is App Store Connect Shared Secret? The App-Specific Shared Secret from Apple is a distinctive 32-character key to receive receipts for auto-renewable in-app subscriptions. How to get an App Store Connect Shared Secret  A Shared Secret is a critical component of server validation, which is a process used to authenticate the authenticity of purchases made through an app. Server-side receipt validation is performed on the server side and involves the device or server sending a request to Apple's servers to confirm the validity of the purchase. This validation process relies on the Shared Secret to ensure that the purchase is authentic and valid. Apple offered special App Store API. Upon creating an API key in App Store Connect, a unique Shared Secret is automatically generated by Apple for that specific key. This Shared Secret can be downloaded as a text file, which contains a confidential string that must be securely stored on your server. To authenticate your authorization to access the App Store Connect API, the Shared Secret must be included as part of your authorization header when making requests to the API. Adapty uses The App Store Connect Shared Secret for receipt verification. Learn how to configure App Store shared secret for each of your apps with a step-by-step guide here.   --- App installs gauge an app's popularity and success, a key metric in mobile app marketing. How to measure mobile app installs and uninstalls App installs are a measure of the popularity and success of an app and one of the most essential metrics to keep an eye on in mobile app marketing. High install rates coupled with low uninstall rates indicate a healthy app with engaged users, while high uninstall rates could indicate problems with the app's design, functionality, or user experience. According to Business of Apps, around 50% of Android apps are uninstalled within the first 30 days after installation, but the uninstall rate can differ depending on the category of the app, and even within its subcategories. Understanding industry benchmarks for your app category can help optimize your app marketing for fewer uninstalls.   Gaming apps usually get uninstalled the most (66%) within 30 days after being downloaded because people lose interest quickly. Social, education, utilities, and finance apps also have high uninstall rates (between 45-60%). But travel apps are different because they have more loyal users who are less likely to uninstall (only 31%). How to track app downloads App installs tracking is initially done by app stores. While more advanced analytics to track app downloads, (such as total installs, daily installs, and geographic distribution of installs, same for uninstalls) can be acquired through various analytics tools, MMP, and third-party mobile app marketing solutions including Adapty.   How to track app installs with Adapty With the Adapty dashboard, you can see the real-time analytics for Android and iOS app install tracking and understand the fluctuation of app installs and uninstalls, get insights into user behavior, and drive conclusions on app conversion rates and user retention to determine areas for improvement in the app. Create an Adapty account and integrate the Adapty SDK into your app. Set up the App Store Connect and Google Play integrations to automatically track installs from their respective stores. Utilize Adapty's analytics dashboard to view important metrics such as daily installs, total installs, and geographic distribution of installs. Use Adapty's event tracking feature to monitor app uninstalls. You can configure an event to occur when a user deletes the app from their device and track the frequency of that event. Analyze user behavior and retention rates over time with Adapty's cohort analysis feature.   --- An Apple App Analytics dashboard helps iOS developers track app performance. A dashboard within App Analytics provided by Apple designed for iOS app developers to track iOS app performance. What are peer group benchmarks? The Peer Group Benchmarks is a dashboard that displays percentile information regarding how an app performs in specific metrics relative to other comparable apps. Peer group benchmarks leverage data from the entire range of applications available on the App Store, offering precise, pertinent, and privacy-conscious evaluations for apps regardless of their category, business model, or download numbers. How to use app benchmarks within App Analytics Peer group benchmarks provide various significant metrics, including conversion rate, crash rate, day 1, day 7, and day 28 retention rates, and the average revenue generated per paying user. The term "peer group" signifies that the data is obtained by comparing your app with other similar apps in your category. A variety of metrics are involved in benchmarks, such as the App Store conversion rate benchmark, which gauges the relationship between views and downloads. This rate is calculated by dividing the total downloads by the number of unique device impressions, and it assesses the efficacy of your App Store page. To maintain a satisfactory score, it should not drop below the 25th percentile. If it does, it may be necessary to contemplate optimizing it. How to manage data between Peer Group Benchmarks and Adapty Analytics Adapty has an analytics dashboard that provides crucial information about an app's performance and revenue. The dashboard includes various metrics, some of which overlap with those found in the App Store, such as Proceeds per Paying User and ARPPU. However, the formulas used to calculate these metrics differ, resulting in different final numbers. The key difference in calculation methods is that the App Store only considers new purchases, whereas Adapty's platform includes subscription renewals that occur within the same period. This provides a more comprehensive comparison of revenue generated by an app. Adapty's dashboard can also enhance the measurement of user retention. While Peer Group Benchmarks show user retention, Adapty's tracking of subscription retention not only reveals how engaged users remain with the app but also how well they stick to the app's subscription and generate revenue. --- Ad servers manage a campaign's creative elements (images, audio, videos) and select versions for specific audiences. What is an ad server? Ad servers play a crucial role in housing a campaign's various creative elements like images, audio, and videos, and deciding which versions to present to particular audiences. Additionally, advertisement servers collect essential information on ad performance, such as impressions and clicks, which can offer valuable insights to a UA manager. How do ad servers work Ad server technology is designed to connect ads with relevant audiences based on descriptive tags such as geolocation, interests, and behavior. Mobile ad servers act as a mediator between advertisers and app developers/publishers, enabling them to monetize their content and generate revenue through advertising. For instance, if a user is interested in a healthy lifestyle, the ad server may display creative assets promoting supplements, clean recipes, or sports gear. In the case of mobile apps, the ad server may suggest a health-tracking app.   The ad server will also continue searching for similar users whose data indicates an interest in health and wellness. This targeted approach ensures that ads are delivered to the most relevant audience, increasing the likelihood of engagement and conversion. By leveraging data and analytics on users' interaction with the ads, ad servers can optimize ad placement and help advertisers achieve their marketing goals. Ad servers for mobile apps The main purpose of an ad server for mobile apps is to handle and distribute various types of ads like banner, interstitial, native, and video ads. Ad servers for advertisers manage and store creative assets, such as images, videos, and audio files, and display them to specific target audiences based on several criteria like geographic location, device type, and user behavior. Mobile ad servers operate by collaborating with ad networks and demand-side platforms (DSPs) to gain access to a wide range of ad inventory and demand sources. They employ algorithms and machine learning models to optimize ad delivery and guarantee that the most suitable and captivating ads are shown to users. Ad servers also provide data analytics and reporting tools that enable advertisers to monitor ad performance and measure the effectiveness of their campaigns. For mobile app developers and publishers, ad servers offer an avenue to generate revenue through advertising without adversely impacting the user experience. By displaying relevant and appealing ads, ad servers can improve user engagement and retention rates, which can lead to higher user lifetime values (LTVs). For advertisers, ad servers offer a means to reach a highly engaged and targeted audience through mobile apps. By leveraging the insights and data provided by ad servers, advertisers can optimize their campaigns and ensure that their ads are displayed to the most appropriate users at the right time. Ad servers can also help to reduce ad fraud and ensure that ads are displayed to real users, not bots or fraudulent traffic sources. The features and capabilities of ad servers for mobile apps can vary depending on the provider and the specific needs of the user, including:  Ad management: Ad servers allow users to create, manage, and track their ad campaigns within a single platform. Users can upload and organize their creative assets, set targeting criteria, and adjust their bids and budgets to optimize campaign performance. Ad delivery: Ad servers use advanced algorithms and targeting capabilities to deliver ads to specific users based on various factors, such as location, device type, and user behavior. Reporting and analytics: Ad servers provide detailed reporting and analytics tools that enable users to track ad performance and measure the effectiveness of their campaigns. Users can view metrics such as impressions, clicks, conversions, and revenue, and use this data to optimize their campaigns for better results. Fraud prevention: Ad servers use a variety of techniques and technologies to prevent ad fraud, including bot detection, ad verification, and viewability measurement. By ensuring that ads are served to real users, ad servers can help to improve the overall quality and effectiveness of ad campaigns. --- App Analytics is a segment within App Store Connect that is solely focused on measuring the performance of iOS apps. What is App Store App Analytics? App Analytics is a segment within App Store Connect that is solely focused on measuring the performance of iOS apps. It offers insights on how users interact with the app, providing crucial data on user engagement, retention, conversion rates, and revenue. To fully comprehend your app's performance and develop an effective app growth strategy, it's essential to know and analyze the key metrics. With Apple App Analytics, mobile app developers can gain insights into the number of app downloads, user retention rates, frequency of app usage, and the amount of money spent on in-app purchases. This data can guide developers in making informed decisions that can enhance their app's performance, user experience, and revenue generation. Some specific features of App Store App Analytics include: App UnitsThis metric within iOS app analytics covers app download analytics and shows how many times the app has been downloaded for the first time. It's important to note that updates, re-downloads, and downloads on other devices with the same Apple ID are not counted. This metric is essential for understanding the reach of the app and for tracking its growth over time. In-app purchasesAnother critical metric in App Store Connect analytics is In-app purchases, which shows the number of first-time purchases made on a device. It's important to keep in mind that returned purchases on the same or other devices are included in this metric. This metric can help developers understand how users are interacting with the app and where they are spending money. The Sales NumberThe Sales Number metric is also crucial, as it describes the overall sum of revenue generated through app purchases, app bundles, and in-app purchases in Apple App Store statistics. This metric only includes taxes if they were included in the App Store price. By tracking revenue over time, developers can understand the effectiveness of their monetization strategies and make informed decisions to optimize revenue. Paying UsersPaying Users is another important metric, which counts the overall number of individual users who made any payment in or for the app. This includes users who bought the app or made in-app purchases. By tracking paying users, developers can understand the effectiveness of their monetization strategies and optimize revenue. Active DevicesActive Devices is a metric that counts the number of devices that started the app at least once during the selected time period. This metric only includes app users who agreed to share their data with the developer. By understanding how many devices are actively using the app, developers can track its growth and engagement.   SessionsSessions is a metric that counts how often the app has been actively opened on a device for at least two seconds. If the app is in the background and used again later, it counts as another session. This metric only counts the number of devices sharing user data. By tracking sessions, developers can understand how frequently users are engaging with the app and identify areas for improvement. CrashesCrashes is another critical metric that shows how often the app has crashed on iOS devices. This metric only shows a summary and can help developers identify and fix bugs in the app. Active in the Last 30 DaysThis metric counts the number of devices that opened the app at least once during the last 30 days. This metric only includes devices that agreed to share their usage data. By understanding how many active users the app has over a specific time period, developers can track engagement and growth. Installations Installations is a metric that displays how often the app was installed on iOS devices. This number includes redownloads on the same devices and family-sharing installations. Downloads on multiple devices with the same Apple ID count as separate installations too. Advanced analytics for iOS apps To gain advanced app store metrics and deeper insights into app performance beyond App Store Connect's App Analytics section, mobile app publishers often turn to specialized mobile app marketing tools such as MMPs, app data solutions, crash reporting tools, ASO tools, and more. The Adapty dashboard is one such tool that provides real-time subscription metrics for both iOS and Android apps. With Adapty, mobile app publishers can access a wide range of metrics, including MRR, churn rate, cancellation reasons, and more, all in one convenient dashboard. Adapty algorithms take into account subscription renewals, different currencies, timezones, refunds, and other factors, providing a 99. 5% accuracy rate when compared to App Store Connect. Metrics are categorized and displayed on dedicated pages within the Adapty dashboard for easy reference. Subscriptions & In-App metrics entail: Revenue MRR ARR ARPPU Active subscriptions New subscriptions Subscriptions renewal cancelled Expired (Churned) subscriptions Trials: Active trials New trials Trials renewal cancelled Expired (Churned) trials Issues: Grace period Billing issue Refund events Refund money To ensure that you stay updated with any significant fluctuations in your app's performance and economic status and make necessary adjustments to your app monetization strategy, Adapty offers daily, weekly, or monthly reports that can be delivered to you via email or Slack. Adapty analytics VS App Store App Analytics Adapty offers a comprehensive solution to track subscription events across all platforms, including iOS, Android, and the Web, in a single place.   The platform enables users to apply powerful filters to metrics, such as attribution, platform, and more, and save them for later use. One of the key advantages of Adapty is that it calculates analytics on the user level, providing in-depth insights into the behavior of app audiences. This is in contrast to App Store Connect, which offers more general metrics. With Adapty, users can gain a deeper understanding of their app's performance and tailor their strategy accordingly. --- iOS app users purchase in-app products or services via the App Store's In-App Purchase (IAP) system. What is billing retry state? When an iOS app user tries to purchase a product or service within the app, the In-App Purchase (IAP) system of the App Store is used to initiate the transaction. If the payment is declined or there is a connectivity issue, the transaction is marked as "failed". In the same way, when a subscription renewal payment fails, the subscription enters the billing retry state. During this state, the App Store periodically retries the transaction with increasing intervals to give the user time to complete the purchase.   This continues until the transaction is successful, the user cancels it, or the product/service is no longer available. The transaction is considered to be in the Billing Retry State throughout this process. The app can monitor this state and take appropriate action, such as displaying an error message or suggesting another payment method. It is worth noting that the retry process is solely managed by the App Store, and the app has no control over how many times or when the transaction will be retried. How to reduce subscriber churn within billing retry state Managing billing issues in the App Store is crucial for app developers as it can reduce churn and revenue loss. Since the introduction of iOS 13, users can easily view their active subscriptions, making it even more important to handle billing issues properly. If a user's billing information is invalid, their subscription renewal will fail and their subscription will enter a billing retry state. Apple's Billing Grace Period feature allows subscribers whose subscriptions failed to renew due to billing issues to still access the app for up to 60 days. During this time, the App Store will continue to attempt to collect payment. If the user updates their billing information within 60 days, their new billing date will be established on the date of recovery. The Billing Grace Period feature benefits both users and app developers by preventing involuntary churn and providing more days of paid service. Without the grace period, app developers could lose revenue if the user's subscription is rebilled successfully after a few days of discontinuation. Prompting users to update their billing information during the subscription recovery process can assist in the recovery efforts and provide uninterrupted service. Implementing a grace period can offer a better customer experience and avoid revenue loss if the subscription is recovered within the grace period. It is essential to implement solutions that reduce churn and increase revenue from existing subscribers. How to spot users in the Billing Grace Period with Adapty Identifying users who have entered the billing grace period can be useful in reducing involuntary subscription churn. You can reach out to these users through various channels such as push notifications, in-app messaging, or email, and encourage them to update their payment details. The Adapty dashboard provides data on users who entered the grace period under Analytics > Charts > Issues. If you want to access comprehensive information, you can navigate to Profiles & Segments > Profiles. This section not only displays users who are currently in the grace period but also those whose subscription renewal resulted in a billing error. Apart from tracking these events, Adapty has integrated with push notification tools such as OneSignal and Pushwoosh, which allows you to promptly contact your users, help resolve their billing issues and reduce the churn rate.   --- CPI (Cost Per Install) is the cost an advertiser pays per mobile app install from an ad click. What is cost per install? CPI stands for Cost Per Install, meaning the cost that an advertiser pays each time a user installs their mobile app after clicking on an ad. CPI is a performance-based pricing model, which means that the advertiser only pays for results that directly contribute to their business goals, such as app installations. This pricing model is particularly popular among mobile app developers who want to promote their apps and acquire new users. How to calculate CPI? Here is the formula to calculate CPI: CPI = Total Campaign Cost / Total Number of App Installs For example, if your advertising campaign cost $10,000 and generated 5,000 app installs, the CPI for your campaign would be: CPI = $10,000 / 5,000 app installs CPI = $2 per app install This means that for each app install generated by your campaign, you paid an average of $2. To calculate CPI (Cost Per Install) in mobile advertising: Determine the total cost of your advertising campaign: This includes all the costs associated with your advertising campaign such as ad spend, creative production, and third-party fees. Determine the total number of app installs generated by your campaign: This includes all the app installs that can be attributed to your advertising campaign. You can track this using mobile app analytics or attribution tools. Divide the total cost of your advertising campaign by the total number of app installs generated: This will give you the CPI for your campaign. CPI in advertising The CPI pricing model is based on an auction system, where advertisers bid for ad placements in mobile apps. The advertiser with the highest bid typically gets the ad placement, and they pay the cost per install for each user who installs their app after clicking on the ad. CPI pricing can vary widely depending on various factors, such as the competition for ad placements, the target audience, and the app category. CPIs can range from a few cents to several dollars, depending on the app's popularity, niche, and the value of a new user to the advertiser. Why CPI is important CPI is a crucial metric for mobile app marketers as it directly affects the ROI of their advertising campaigns. When developers purchase ads, they pay for installations, not targeted actions, which is also true for CPA campaigns where costs are related to CPI. Therefore, to evaluate the efficiency of acquiring traffic, it's essential to consider the income generated by users who installed the application during a specific period. By optimizing their campaigns for a lower CPI, advertisers can acquire new users at a lower cost and enhance the profitability of their app. However, it's worth noting that a low CPI does not necessarily indicate a high-quality user. Advertisers must balance CPI with other metrics, such as retention, engagement, and LTV, to ensure the long-term success of their app. --- Cohort analysis groups data by shared characteristics or experiences, typically within a specific time frame, for analysis. What is cohort analysis? Cohort analysis is a method of analyzing data that involves grouping data sets by shared characteristics or experiences, typically within a specific time frame. The purpose of cohort analysis is to track changes or patterns in behavior over time and to gain insights into the factors that influence those changes. Cohort analysis in marketing for mobile apps User retention is a critical aspect of mobile app analytics, but it can be difficult to track changes in user behavior because of varying levels of engagement and user journey stages. This is where cohort analysis comes in. This methodology groups users based on specific shared criteria, allowing developers and marketers to compare the performance of these groups over time. This provides valuable insights into trends and movements that might otherwise go unnoticed. Every mobile user has a lifespan, and their activity varies at different stages. Cohort analysis enables developers and marketers to remove interference and observe user behavior patterns based on specific criteria. For example, they can group users who downloaded an app in January and monitor how many of those users remain active after a certain period, such as 30 or 60 days. This data can then be used to identify trends and patterns in user behavior, enabling them to optimize their app and retention strategies to improve user engagement and increase revenue. For instance, developers can divide their app users into groups based on the specific week they installed the app after its launch. They can then observe and analyze the behavior of each group as a cohort throughout their entire user journey. Cohort analysis is also a useful tool for measuring the effectiveness of marketing campaigns and user acquisition efforts. By analyzing the retention rates of users acquired through various channels or campaigns, developers and marketers can identify which channels are most effective and adjust their marketing strategies accordingly. Cohort analysis helps developers and marketers gain valuable insights into their user base and make data-driven decisions that optimize their app and retention strategies. Running a Cohort Analysis for mobile apps can provide a number of advantages, including: Identifying potential customers who are ready to make an in-app purchase Predicting future behavior such as retention or defection and identifying app users who can be retained Targeting specific customer groups for cross-selling or up-selling initiatives  Determining which activities, features, or changes are effective for customers Using present data as a benchmark for future improvement of mobile app growth strategy How to do cohort analysis in Adapty In order to effectively monetize your app, it's crucial to have a clear understanding of your revenue metrics and how different groups of paying users are impacted by app growth. This is where Adapty comes in with the advanced real-time cohort analysis for mobile subscriptions. Adapty's Analytics dashboard provides a dedicated section for cohorts, allowing you to evaluate your monetization strategies, track your app's churn rate, and analyze how key metrics evolve over time. The dashboard presents revenue, subscriber count, and average revenue per subscriber (ARPPU) for each month in a user-friendly table format. By segmenting users into specific cohorts based on various criteria, you can observe how they renew or churn and determine the effectiveness of changes to your app, such as pricing modifications. Cohorts are typically grouped by month, but retention is tracked according to your product. Adapty's platform enables you to analyze data at the renewal period and day level, which is particularly helpful for tracking non-subscription products like consumables or one-time purchases. For example, if your app offers weekly subscriptions, you can display ARPPU, ARPAS, total revenue, or subscriptions and track the performance of each cohort on the 1st, 3rd, 7th, 14th, and other days. You can also use filters to analyze payment trends for specific countries, products, duration, paywalls, attribution, and store to assess performance changes over time compared to previous months. With Adapty's Analytics dashboard, you can gain valuable insights into your app's revenue metrics and optimize your monetization strategy. To learn more about how mobile app companies can benefit from Adapty’s subscription analytics in cohort analysis, check out the case study of Union Apps.   --- The amount spent for each newly-acquired mobile app user over a given time period. The amount spent for each newly-acquired mobile app user over a given time period. What is cost of customer acquisition? Customer Acquisition Cost (CAC) for mobile apps refers to the cost that a business incurs to acquire a new user for their mobile application over a specific period of time. In other words, it is the amount of money spent to attract a user to download and install a mobile app on their device. Whether you are just embarking on your journey or navigating quite a while to create a successful mobile app, the Customer Acquisition Cost (CAC) must be at the forefront of your mind. How to calculate CAC Сustomer acquisition cost formula for mobile apps looks like:  CAC = Total Cost of User Acquisition / Total Number of Acquired Users In this formula, the "Total Cost of User Acquisition" refers to all the expenses associated with acquiring new users for your mobile app. This could include marketing and advertising costs, referral program rewards, or any other expenses that directly contribute to the acquisition of new users. The "Total Number of Acquired Users" is the total number of new users who have downloaded and installed your mobile app within a specific period. To get an accurate calculation of CAC, it's important to consider all of the costs associated with acquiring new users, as well as the time period over which those users were acquired. By tracking CAC over time, you can identify trends and adjust your acquisition strategy to optimize your investment in acquiring new users. CAC marketing with the Adapty platform Within Adapty you can reach Cohort sections in the Analytics dashboard, and see the cohorts based on your app installs. With cohorts analytics, you can see the dynamics of how users are paying and unsubscribing from month to month as well as the revenue generated by each cohort in total. This data provides an ability to estimate how much money the cohort will bring in the future and whether it will be profitable. Comparing the acquisition cost for a particular period with the result of a long tail for the consequent cohort, you can see the associated return on investments and thus understand if the cost of the customer acquisition pays off. Cost of customer acquisition (CAC) in marketing for mobile apps The cost of acquiring a customer for mobile apps can include various expenses such as marketing and advertising costs, referral program rewards, development costs, and overhead expenses that contribute to acquiring new users. By calculating the CAC, businesses can determine the effectiveness of their user acquisition strategy and optimize their marketing efforts accordingly. A high cost of customer acquisition means that a business is spending more money to acquire new users, which may not be sustainable in the long term. On the other hand, a low cost of acquisition per customer indicates that the business is effectively acquiring users at a lower cost, resulting in a higher return on investment (ROI) for the business. The CAC is a critical metric in app marketing, allowing you to evaluate the effectiveness of not just your marketing spend, but also the other hidden costs such as development and overheads. It is the key to understanding the true cost of acquiring new users for your app. --- App conversion rate is the percentage of users completing goals like purchases, signups, subscriptions, or surveys. What is a CVR? Mobile app conversion rate (CR or CVR) is the percentage of users who achieve a specific goal within the app, such as making a purchase, creating an account, subscribing to a service, or completing a survey. Conversion rates are an important metric for mobile app developers and marketers as they indicate the effectiveness of the app in driving user engagement and achieving business goals. A higher conversion rate typically means that the app is successfully guiding users towards the desired action, while a lower conversion rate may indicate that there are issues with the user experience or the app's marketing strategy. How to calculate conversion rate The formula for mobile marketing CVR: Conversion Rate = (Number of Users who Completed the Desired Action / Total Number of Users who Engaged with the App) x 100% For example, if 1,000 users engaged with a mobile app and 200 of them completed a purchase, the conversion rate to paying customers would be: Using the CVR formula, the conversion rate would look like  (200 / 1,000) x 100% = 20% Conversion rate to paying customers To determine the success of marketing and monetization strategies, the conversion rate to paying customers in mobile apps measures the percentage of users who make a purchase or subscribe to a paid service within the app. A higher conversion rate suggests a successful conversion of users into customers, while a lower rate may indicate the need for changes in the app's pricing strategy, user experience, or marketing tactics. To improve your conversion rate, conducting A/B testing on mobile paywalls can be helpful. Adapty offers the option to create a paywall, conduct A/B tests, and view metrics on user behavior such as churn and LTV. It also allows you to see the conversion rates to purchases and trials, as well as the critical monetization metrics of ARPPU and revenue. --- DAU refers to the app's popularity, as it tracks the number of users who visit it every day. What is DAU? Daily Active Users (DAU) refers to the app's popularity, as it tracks the number of users who visit it every day. DAU is not limited to new users alone but also includes existing users who have remained active within the app in the past twenty-four hours. This means that whether a user spends a minute or an hour on the app, they are counted towards the DAU metric. For app developers, this metric is a vital tool that helps them assess user engagement and loyalty. A high number of daily active users indicates that the app is meeting user needs and providing an immersive experience. It also means that users are more likely to remain loyal to the app over time, which can have a positive impact on the app's success. How to calculate DAU Determining what defines an "active" user is a crucial factor in calculating the daily active users (DAU) metric for your app. Daily interactions that qualify as "active" can vary depending on the app's functionality. For example, financial apps may consider a transaction as an active interaction, e-commerce apps may consider a purchase and messaging apps may consider sending a message as an active interaction. Social media apps may consider logging in as an active interaction. Measuring user activity on a daily, weekly, or monthly basis (DAU, WAU, or MAU) is crucial for examining the customer journey and the impact of marketing campaigns. However, it's also important to combine DAU with other related metrics, such as MAU, user acquisition metrics, in-app purchases (IAPs), reviews, and user engagement. Neglecting any of these metrics can hinder your understanding of your app's performance and potentially overlook any issues that require attention. How to evaluate your DAU The number of daily active users (DAU) varies across different app categories. Some categories, such as real estate, financial, or utility apps, may not require daily usage and may benefit from tracking weekly or monthly active users instead. Conversely, social media, messaging, and e-commerce apps heavily rely on daily active users to measure success. Monitoring DAU, Lifetime Value (LTV), and Average Revenue Per Paying User (ARPPU) is recommended to track user retention and monetization for all types of apps. Why is tracking DAU important for your app marketing strategy Along with the download rate, the DAU metric is essential to rate app success. Apps that have the highest number of downloads tend to also have high numbers of active users, indicating their success. Measuring daily active users (DAU) enables you to gauge user engagement and estimate potential revenue generated by users. Increasing unique active users is the key to enhancing long-term user engagement rates. By combining DAU with monthly active users, you can monitor if users are dropping off over time and take necessary steps to address the situation. Tracking this important metric over time is often a more reliable way to assess whether your app has significant traction compared to relying solely on monthly active users (MAU). If your DAU:MAU ratio is low, such as only 20%, it's an indication that you should consider optimizing your funnel. --- Mobile deep linking uses a custom URL to direct users to a specific app page. The process of utilizing a custom URL to direct users to a specific page within an app is known as mobile deep linking. What is deep linking? Deep links are dedicated links that take you directly to an app instead of a website or a store. They can send you straight to a specific place within the app, instead of just opening it up. This technique helps guide users to explore deeper within the app, beyond the initial launch screen, ultimately improving user engagement and retention. Deep links work by using a special deeplink URL scheme (iOS Universal Links) or an intent URL (on Android devices) that opens the app if you already have it installed. You can also use deep links to take you to specific events or pages within the app, which can tie into an advertising campaign. The initial point of a deep link can be placed pretty anywhere, like Instagram, Snapchat, emails or text messages, search engines, and even QR codes. They're an important tool for mobile app marketing, as they can help increase user engagement and drive sales. Deep linking for mobile marketing Using deep links in your app can significantly enhance the user experience by eliminating the need for log-ins and other obstacles. This, in turn, can result in higher conversion rates and revenues. Deep links allow for a seamless user journey, reducing churn and increasing the chances of an install or target action. To promote a new release in your movie app, you might allocate a budget for advertising on a popular website. However, you want users to watch the movie trailer within the app for a better experience. Using a deep link, you can direct them straight to the correct page within your app, ensuring a smooth user experience. By doing so, you increase the likelihood of users watching the trailer, generating interest in the film, and ultimately leading to more ticket sales and revenue for the app. Retargeting campaigns can also be effective in encouraging people to try new experiences, particularly when they receive incentives or offers. Types of deep linking A deep linking engine facilitates two types of journeys for marketers and product managers - one for app users and another for non-app users. Standard Mobile Deep Linking, also called universal linking, forwards a user to a specific part of the app through a simple deep link. These links only work if the user has the app installed and hence are "deep linked" to the content seamlessly. Deferred deep linking is used to direct the user to the appropriate app store where they can download, install, and launch the app, after which they will be taken to the relevant in-app content. Once the app is installed, the user is referred to the original location, and this can help app developers and companies acquire more customers. Contextual Deep Linking is used to provide users with a personalized and targeted app experience right after they open the app, also known as onboarding. These links allow developers to create features that take users to a customized welcome screen after downloading or allow them to automatically upload a promo code. They also allow marketers to collect information on how advertising campaigns and marketing channels are performing. These links function similarly to basic and deferred deep links, but they not only transmit user data to an app through the install, enabling users to be correctly redirected to their intended location within the app, but also record information about the user, such as who they are, where they came from, who referred them, or which promotion code they want to apply to their order. Deep linking to paywall When using deep linking, you can send users directly to an app's paywall without requiring them to navigate through the app. This makes it easier for users to access premium content or features and increases the likelihood of them making a purchase and generating revenue for the app. App developers can use this tool to streamline the user experience and boost revenue. They can test different combinations of audiences, initial sources of deep links, and variations of paywalls. Adapty Paywall Builder can help create various paywall options, and the dashboard can track conversion rates to evaluate the effectiveness of the funnel. --- Error rate measures the reliability and performance of a mobile app. What is the error rate? Error rate is a crucial metric that measures the reliability and performance of a mobile application. A high error rate indicates that the app is more prone to crashes or malfunctions, which can lead to user frustration and prompt users to uninstall the app. Hence, monitoring the error rate of an app is essential to ensure that the app is running smoothly and providing a positive user experience. How to calculate error rate? You can calculate the error rate using the following formula: Error Rate = (Number of requests with errors / Total number of requests) * 100% For example, if your app made 1,000 requests in a given time period and 50 of those requests resulted in errors, the error rate would be: Error Rate = (50 / 1,000) * 100% = 5% This means that 5% of all requests made by the app resulted in errors. How to improve the error rate? Error handling is a technique used to mitigate the effects of certain errors, but it cannot prevent all errors from occurring. That is why it's important to track the error rate of an app to identify areas that require improvement to enhance overall performance and user satisfaction. Additionally, a sudden spike in the error rate can indicate that significant performance issues are on the horizon. Another crucial metric to track alongside the error rate is the percentage of crash-free users. This metric represents the number of users that have not experienced any errors within a given time frame. Crashes are a major concern for mobile app users and can result in massive abandonment and uninstallation of the app. Therefore, it is important to keep the percentage of crash-free users as high as possible. The average crash rate for mobile apps is between 1% to 2%, which means aiming for 98% crash-free users is ideal. --- Flutter is a free Google framework for building natively compiled cross-platform apps. What is Flutter? Flutter is a freely available framework developed by Google that enables the creation of cross-platform applications that are natively compiled using a single codebase. Using Dart - a Flutter coding language, Flutter facilitates the development of applications for both Android and iOS devices. How Flutter works? In the past, there was a dilemma between choosing to develop universal mobile apps or native apps. Universal apps utilized web technologies like HTML and JavaScript, which often underperformed on mobile devices. Native apps, on the other hand, performed better because they were written separately for each platform, but they were costly and required a specialized development team for each platform. However, with the advent of Flutter technology, this issue has been resolved. Flutter has addressed the challenge of creating two separate codebases for native iOS and Android apps, significantly reducing development time and costs. With Flutter, it's easier to reach a broader audience worldwide while also enhancing the user experience with a native look and feel. Additionally, Flutter includes a headless testing framework that enables app testing on devices without a UI. This feature is beneficial for automating app testing procedures. How to use the Adapty SDK for Flutter? Every payment plugin, including the Adapty Flutter SDK, acts as a wrapper around native libraries such as StoreKit and Billing Library. In the case of the Adapty SDK, it wraps around our proprietary Adapty iOS and Android SDK libraries. To begin using Adapty, you must first add the adapty_flutter library to your project and configure your app to work with Adapty by adding the AdaptyPublicSdkKey flag with your public SDK key. You can then activate the SDK by calling the Adapty. identify method, which retrieves the user's ID and sends it to the subscription and analytics systems to assign events to this profile. You can also locate your clients by customerUserId in Profiles. Adapty records error messages and other essential data to assist you in comprehending what is happening. Learn how to configure Adapty SDK for Flutter here. Flutter for mobile app development In today's fast-paced and highly competitive mobile app industry, selecting the right technology is a critical factor for success. Opting for a language or framework with inadequate performance could significantly reduce your chances of success. Flutter was introduced in 2018 and quickly gained popularity. Today, it is widely used by both small companies and large brands such as Alibaba. com, Abbey Road Studios, and The New York Times. For smaller brands, Flutter is an ideal tool for creating an app MVP, testing product ideas, and presenting them to investors, even with limited resources. Flutter's features, widgets, and vignettes are showcased in the Flutter Gallery app, providing a quick overview and demo of its capabilities. --- A paywall functions as a digital blockade that restricts users from accessing certain content. What is a paywall for mobile apps? A paywall functions as a digital blockade that restricts users from accessing certain content or services until they have paid a fee or subscribed to a service. It may require users to sign up for a subscription or purchase individual content items before granting access to the content.   For mobile app developers, paywalls present an opportunity to showcase the value of their product and address any concerns that potential subscribers may have when deciding whether to opt for the premium version of the app. This paywall meaning highlights how they can effectively monetize their app while providing users with a glimpse of what the premium version offers. Although paywalls can be an effective revenue-generating strategy, they can also impede user engagement and retention. By utilizing paywall A/B testing, developers can evaluate different paywall variations to improve conversion rates, as demonstrated in the case study of ABBYY Fine Reader app. Using the Adapty SDK, you can natively manage and test your paywalls. A paywall is a fundamental component that comprises a collection of products and a remote configuration file - a JSON file that contains the metadata defined in your dashboard. The paywall ID is integrated into your app's code and utilized to retrieve the configuration file and product information. You can easily modify either of these elements without needing to update your app. Adapty offers free access to a library of more than 500 paywalls for various mobile app categories, providing inspiration for design and creating variations for paywall A/B testing. For detailed instructions on how to create and manage paywalls for your mobile app using Adapty, refer to Adapty documentation. --- Identifier for Vendors is a 32-character code used to distinguish devices interacting with an app. What is IDFV? The IDFV (Identifier for Vendors) is a 32-character code that serves the purpose of differentiating individual devices that interact with an app. It is used for identifying vendor apps and differentiating them from other apps present on the same device. The IDFV is deleted as soon as all the apps from the developer are uninstalled. What is the difference between IDFV and IDFA? While the IDFA (Identifier for Advertisers) is exclusive to each app installed on a device, the IDFV is distinct to the app developer account and remains the same for all the vendor apps released by that developer present on the user's device. How to use IDFV? Apple's IDFV is a tool used to track and manage vendor data on a device. It is often used in conjunction with other identifier values such as IDFA to gain a better understanding of the vendor's activity on the device. With the introduction of the App Tracking Transparency (ATT) framework, IDFV has become an alternative method for measuring user behavior, but its effectiveness is limited by the availability of first-party data. IDFV provides app marketers with an advantage by allowing app developers to measure user-level data across multiple apps from the same content provider without requiring the user's consent. This is particularly useful for companies operating multiple apps, as it allows them to execute cross-promotional iOS campaigns and target large publishers with a broad user base across multiple apps. As long as an IDFV is included in the tracker URLs, marketers can obtain more accurate attribution data for their iOS campaigns. App developers can also use IDFV to implement frequency capping, which limits ad fatigue within a single developer's ecosystem. IDFV can be shared with an ad partner to assist with frequency capping in instances where an app lacks access to an IDFA. However, this approach is only applicable to frequency capping within the context of a single app or a network of apps from a single developer. The IDFA value is required to control the frequency at which users view an individual ad across all apps. --- IDFA is a unique, random alphanumeric code assigned to each iOS device by Apple. IDFA, short for Identifier for Advertisers, is a distinct and unpredictable alphanumeric code that is assigned to each iOS device by Apple.   What is IDFA? Identifier for Advertisers (IDFA) is a unique identifier assigned by Apple to each iOS device (such as iPhone, iPad, or iPod touch) that allows advertisers to track user behavior across different apps and websites. Advertisers use this identifier to deliver targeted ads and measure the effectiveness of their advertising campaigns. With the changes to Apple's privacy policy, app developers are now required to explicitly ask for user permission to track their IDFA. Users can choose to opt out of IDFA tracking by turning on the "Limit Ad Tracking" (LAT) option in their device's settings, which will prevent advertisers from using their IDFA for personalized advertising. How does IDFA work? The Apple IDFA is used for tracking and identifying a user without revealing personal information. The data can then be used to discover information such as which in-app events a user triggers. The IDFA can also identify when users interact with a mobile advertising campaign, provided the channel offers IDFA tracking and the advertiser tracks users who interact with as successfully. Since 2016, Apple devices have included a privacy feature called LAT (Limited Ad Tracking) that enables users to control whether advertisers can access data on their device activity. When LAT is enabled, the user's identifier for advertisers is replaced with a string of zeros, effectively preventing advertisers from accessing their device-specific data. This means that measurement providers receive a string of zeros instead of a unique string of numbers for a given Device ID. With iOS 14 release, Apple moved towards user privacy with the App Tracking Transparency Framework which limited advertisers’ ability to rely on IDFA for mobile campaign measurement.   How Adapty represents data after IDFA deprecation? Following the deprecation of IDFA by Apple, other tracking techniques and instruments have gained more prominence, especially ones that provide insights into user behavior within ad campaigns and after. MMPs (Mobile Measurement Partners) resort to probabilistic attribution to associate campaigns with users or behavior-based attributes. However, this method is not entirely reliable, as it may not accurately determine whether a particular campaign led to an app install, since there is a possibility that the install was the result of more than one campaign. Adapty's platform enables publishers to obtain extensive analytics on app installs, uninstalls, user behavior, in-app purchases, and revenue. This information can be used to evaluate the effectiveness of advertising campaigns and optimize user engagement and retention. --- In-app notifications can highlight updates, welcome users, or offer usage guidance. When a user is in your app, notifications in app can pop up to showcase new updates or features, greet the user to the platform, or provide guidance through instructions or training on how to use the app. What is an in-app notification? Distinguishing between in-app/push notifications can sometimes cause confusion, as they are closely related. Put simply, push notifications are mobile alerts and messages that appear on your phone's lock screen, even when the app is closed. On the other hand, in-app notifications are designed to be highly contextual and support users within the app, either by guiding them through the product or drawing attention to a new feature. These notifications are styled to match the platform's user interface and can appear as fullscreen pop-ups or small overlays. How to use in-app notifications? Utilizing in-app notifications can effectively capture users' attention and direct them towards new features, special offers, or improved onboarding processes. By delivering multimedia content like videos and images, or promoting in-app events, users can stay engaged and prolong their usage sessions. In addition to promoting engagement, in-app notifications can also be utilized for in-app purchases. For example, game developers can send notifications encouraging players to buy special tools, characters, or coins to enhance their gameplay experience for real-world money. Another application for in-app notifications is interacting with app users on payment-related issues, such as entering a billing retry state. Adapty offers integrations with in-app notification services like Pushwoosh and OneSignal to help address these concerns. Through these integrations, in-app messages can be set up to reach out to users during the grace billing period and prompt them to fix any payment issues they may be experiencing. How to set up in-app notifications with Adapty? Adapty offers seamless integration with OneSignal and Pushwoosh, allowing you to access all subscription events in a single location. This enables you to automate communication triggered by these events. To get started, head over to the Integration section within the Adapty platform and select the desired service. Check out our step-by-step tutorials on the integration process to simplify the setup. Adapty + OneSignal Adapty + Pushwoosh How do in-app notifications work? In-app notifications can be categorized into two types: transactional and non-transactional. Transactional notifications are designed to automatically appear and provide guidance to help users master the app. Non-transactional messages include flash sale offers and new feature announcements. To effectively send in-app notifications, product teams must be equipped with the ability to perform three key tasks, which not all apps natively support. These tasks include identifying unique users within the app, selectively targeting, scheduling, and notifying users, and analyzing the impact of notifications. Notifications can be triggered based on demographics, timing, behaviors, or a combination of these factors. It's important to coordinate these notifications to support your customer marketing funnel. --- iOS developers use in-app purchases to monetize apps beyond the initial price or support a freemium model. In iOS, developers can enable users to purchase additional features or content within an app using in-app purchases, providing a way to monetize their apps beyond the initial purchase price or to offer a "freemium" model. Apple manages the payment process and deducts a commission, known as the "Apple tax", from the sales amount. The commission rate is typically 30% of the app's price, but it may vary for subscriptions and in-app purchases. To address concerns from developers, Apple reduced its commission to 15% for small businesses with annual sales below $1 million in 2020, both for new and existing developers. Using Apple's in-app purchase system, app creators can monetize their digital goods or services in 175 storefronts without the need to create their own payment infrastructure. StoreKit 2 is a framework for Apple in-app purchases, enabling developers to add IAPs to their iOS, macOS, watchOS, and tvOS apps. Types of iOS in-app purchases In-app purchases allow users to buy digital items within an app, which are called products. The App Store provides four types of products: Consumable: these products can be purchased repeatedly after being consumed by the user. Non-consumable: these products are purchased only once. When the user reinstalls the app, they do not have to pay again as these products are restored from the App Store. Auto-renewable subscriptions: users can purchase access to content or features for a specific duration, and the subscription renews automatically upon expiration. Users can cancel the subscription anytime. Non-renewing subscriptions: this type of subscription is similar to auto-renewable subscriptions, but it does not renew automatically, and the content of the in-app purchase also varies. Difference between iOS and Android in-app purchases In-app purchases are one of the most common monetization models for both iOS and Android app creators. According to Business of Apps, Users are spending $380 billion worldwide on in-app purchases. This generates 48. 2% of mobile app earnings as compared to 14% from ads-based revenue and 37. 8% from paid app downloads. As for the app categories, game apps tend to use in-app purchases more massively (around 79% of games available in app stores) compared to 50% of non-gaming apps using this monetization tool. Platform-wise, iOS is way ahead of Google Play with almost doubled the consumer spend of Google Play.   iOS and Android in-app purchases share some similarities, but there are also some differences between the two platforms. Payment systems. Apple uses its own payment system for in-app purchasing in iOS, while Google allows developers to use Google Play Billing or a third-party payment system. This means that Apple takes a commission on every Apple in-app purchase made through the App Store, while Google only takes a commission if the developer uses Google Play Billing. In-app purchase process. On iOS, the purchase process is handled by Apple's StoreKit framework, while on Android it is handled by Google Play Billing. The user interface and user experience may also differ slightly between the two platforms. Refunds. Apple allows users to request refunds within a certain timeframe and may grant refunds in certain circumstances, while Google's policy is more flexible, allowing users to request refunds within 48 hours of purchase or in certain other circumstances. Subscription management. On iOS, users can manage their subscriptions through the App Store, while on Android they can manage them through the Google Play Store or directly through the app. Store approval process. Apple and Google have different app store approval processes, which can affect how in-app purchases are reviewed and approved. Apple is known for having stricter guidelines and a more rigorous review process, while Google's process is generally more flexible. How to connect iOS in-app purchases with Adapty To ensure the secure and efficient management of in-app purchases for your app, Adapty requires users to provide their In-App Purchase API information. This information is used to obtain authorization from the App Store Server API for each request made to the API. Uploading an In-App Purchase API key is necessary to enable secure authentication and validation of in-app purchase transaction history requests for your app's customers with Apple through Adapty. If you want to enable customer lookup through Order ID for iOS apps, you must also provide an Issuer ID. To help you through this process, Adapty provides a step-by-step guide, which you can follow after you add in-app purchases in iOS to ensure that your app's in-app purchase process is secure and efficient. --- In-app subscriptions charge users regularly for access to premium content or features. In-app subscriptions are a payment model in which users are charged on a recurring basis in exchange for access to premium content, exclusive features, or services. They are frequently used by developers as a way to monetize their apps by providing users with ad-free experiences or exclusive content.   The subscription-based model has been highly effective for many popular app-based brands, such as Netflix, Spotify, Tinder, and Disney+. However, in order to retain their customers and keep them engaged, apps using a subscription model must continuously improve their offerings and provide new incentives. How to connect your in-app subscriptions to Adapty Adapty platform offers a range of tools and features to help developers manage their in-app subscriptions: Subscription analytics: Adapty provides detailed analytics on how your subscriptions are performing, such as the number of subscribers, churn rate, and revenue. This information can help you optimize your subscription strategy to maximize revenue. Subscriber segmentation: Adapty allows you to segment your subscribers based on different criteria, such as the subscription plan they are on, their subscription status, or their location. This can help you target your marketing efforts more effectively and personalize your subscription offers. In-app messaging: Adapty provides integration with tools like OneSignal and Pushwoosh for in-app messaging, which allows you to communicate with your subscribers directly within the app. This can be used to promote new subscription offers, offer personalized content recommendations, or provide customer support. Subscription management: Adapty delivers tools for managing your subscriptions, such as the ability to change subscription plans, cancel subscriptions, or offer free trials. Revenue optimization: Adapty provides features to help optimize your revenue, such as the ability to offer dynamic pricing, upsell and cross-sell opportunities, and promotional discounts. With Adapty you can see both Android and iOS in-app subscriptions. Use a step-by-step guide to help you connect your app and get detailed analytics on your in-app subscriptions. --- In-app events refer to activities that users perform on an app post-installation. In-app events refer to activities that users perform on an app post-installation. These activities may consist of playing games, making purchases, adding items to shopping carts, or completing tutorials, among other things. Types of mobile application events In-app events vary in frequency and importance. Some mobile application events are considered standard and occur in all apps, such as flipping through screens, tapping on tabs, or viewing content. Others are higher in value, such as completing tutorials, registering an account, sharing the app with friends, or engaging for extended periods. Finally, there are extremely valuable events like purchases, which are critical for app monetization. Typically, mobile app developers categorize in-app events into two primary types: Standard in-app events, which include actions like registration, adding items to a cart, making purchases, and opening the app. Rich in-app events, which encompass more engaging activities, such as achieving levels, completing tutorials, inviting other users, and sharing on social media. In-app event tracking  Analytics for in-app events can be considered the mobile equivalent of website analytics. They provide valuable insights into user behavior, customer journeys, and areas where users may be encountering issues or avoiding certain features. In order to identify and retain loyal users, app developers track and monitor in-app events to measure app performance, identify trends, and optimize the user experience. This is particularly important in the age of privacy and SKAdNetwork, where it's crucial to quickly identify events that are predictive of high-LTV users and evaluate the future value of acquired user cohorts. In-app trials, subscriptions, and purchases are essential metrics for understanding app monetization and are often set as KPIs for increasing monetization efforts. Adapty provides detailed analytics on these metrics, allowing app developers to track conversion rates and understand how app installs convert to in-app events. The Conversion section of the Adapty dashboard displays various types of conversions within the cadence of installs, trials, and subscriptions over different time periods. Additionally, Adapty enables tracking of events related to in-app issues such as entering grace periods, billing issues, and refunds. --- The mobile app onboarding process involves a series of steps that new users take to get started with an app. The mobile app onboarding process involves a series of steps that new users take to get started with an app. This process of onboarding in app entails guiding users through the product, providing relevant information, and helping them set up their accounts. During onboarding, you may need to educate new users, collect consent for user information, and guide them through account registration. This is the first opportunity for users to understand the value of your product. By the end of the mobile customer onboarding process, users should be familiar with the mobile user interface (UI), navigation patterns, and basic app functionality. A smooth app onboarding process can increase app usage as it reduces user uncertainty and frustration. Incorporating a well-designed onboarding procedure into your app can lead to positive reviews, more downloads, and higher engagement. Types of in-app onboarding  Mobile app onboarding can be tackled in various ways, such as the progressive approach, the functional approach, and the benefit-oriented approach. Progressive onboarding The primary objective of a progressive application onboarding process is to facilitate user learning by allowing them to explore the app and access new information as they go. This approach often employs pop-up screens that explain or highlight features in the user interface (UI). The main advantage of progressive onboarding is that it doesn't overwhelm users, as they can take control of their onboarding experience. Each new piece of information is presented in context, giving them the opportunity to try it out. Progressive onboarding promotes a "learn by doing" approach and minimizes barriers that prevent users from trying out your app immediately. This approach of mobile onboarding is particularly effective for apps with complex workflows, multiple sections, or gesture-based interactions. It provides users with an overview of what to expect without overwhelming them with too much information. Function-oriented onboarding  The function-oriented onboarding method quickly demonstrates to new app users how to use the app's essential features and functions. This approach teaches users where to start and how to perform the most basic tasks. A visual tour with detailed instructions is an excellent example of this functional approach. When using the function-oriented onboarding method, it's critical to focus solely on the core features. Including trivial functionality is pointless and may even be detrimental. It's best to limit onboarding to only 3-5 features as a general guideline. Additional features can be introduced later as in-app tips. Function-oriented onboarding is ideal for apps with complex or unique features that are their selling point. This approach can also be a wise choice for apps that address challenging tasks. Benefits–oriented onboarding The benefits-oriented approach, also known as feature-based mobile onboarding, demonstrates an app's value through benefits-oriented onboarding before anything else. Instead of focusing on how to use the app, it emphasizes what it can do. For instance, users can opt to receive push notifications or allow the app to access their device's location in this type of onboarding. Benefits-oriented onboarding is highly impactful because it appeals to users' emotions. Instead of explicitly stating the benefits, real user testimonials can be included. Social proof is especially powerful because it psychologically communicates to the user that the benefits are achievable. After all, if an average person can do it, they can too. How to improve mobile app onboarding There are various options to improve your app onboarding process, such as: Use a video to grab attention; Keep the onboarding process short; Maintain consistency in your branding; Emphasize the value of your app right away; Add an element of fun to the process; Allow for personalization by users; Make the onboarding process optional; Only request necessary information; Use annotations to provide additional guidance; Make the process progressive. It's essential to determine which technique works best for your app niche. For example, a video tutorial may work better for social media or lifestyle apps, while popup instructions might be better for financial or utility apps. To find the optimal approach, avoid design and information overload and beta test onboarding for your apps. Customize the onboarding process for different user segments, and roll out the new version based on a data-driven approach instead of relying on gut instinct. Start your mobile onboarding optimization process by visiting Adapty's free-access library, which has a collection of mobile app paywalls featuring the best paywall examples from successful mobile apps worldwide. Check Adapty Paywall Library. Choose a paywall design and add products, then set up and conduct A/B testing for your onboarding paywall within the Adapty platform. Learn more about Paywall A/B testing. View detailed analytics on user behavior during onboarding and gain insights into retention and monetization via the Adapty dashboard. This comprehensive analytics can help you make data-driven decisions about the effectiveness of your onboarding process by showing how your new users convert to paying customers after onboarding. Find out how Union Apps used Adapty to experiment with onboarding and paywalls, growing their ARR from $205k to $1M within three months. --- A native mobile app is built for a specific OS, like iOS or Android, using its dedicated language. A native mobile app refers to a type of smartphone application that is developed and programmed specifically for a particular operating system, such as iOS or Android, using a dedicated programming language such as Objective C for iOS or Java for Android.   What is a native application Native mobile apps are mobile applications that are specifically built for either the Android or iOS operating system and are designed to utilize the distinct features and functionalities of that platform. Native mobile applications can be directly downloaded and installed onto a user's device from an app store or marketplace. These types of apps typically provide a seamless user experience that is optimized for the specific platform they are built for, resulting in a faster and smoother performance compared to other types of mobile apps. Different types of mobile apps When it comes to developing mobile applications, there are two main approaches: native and cross-platform development. The choice between these two methods can greatly impact the app's design, development process, and user accessibility. Cross-platform development, on the other hand, allows developers to build apps that can run on multiple operating systems. In addition to native mobile apps, companies can also choose from other options to promote themselves in the smartphone market, including: Hybrid Apps: these apps are compatible with multiple platforms and can access a device's hardware. They are built using platforms such as Sencha, PhoneGap, and Mosync. Dedicated Web Apps: these are websites that are specifically designed to function on mobile devices and are tailored to a particular platform, making them incompatible with other smartphones and feature phones. Generic Mobile Apps: these are mobile websites that can be accessed on any type of mobile phone. React Native mobile app development Facebook created React Native, an open-source mobile application framework that enables developers to create mobile applications for iOS and Android platforms with a single codebase. React Native uses JavaScript and the same design as React, allowing developers to create a rich mobile UI with declarative components. This approach streamlines mobile app development and maintenance, enabling developers to create mobile apps that feel like native apps while being more efficient. Adapty supports various mobile development frameworks, including native iOS, native Android, Flutter, Unity, and React Native. With Adapty, React Native developers can easily incorporate in-app purchases, subscriptions, and paywalls into their apps without the complexity of building these features from scratch. Adapty provides built-in analytics tools for key metrics, cohort analysis, server-based purchase validation, A/B testing for paywalls, flexible segmentation for promo campaigns, integrations with third-party analytics tools, and more. If you have a React Native app, you can access a tutorial on implementing in-app purchases quickly. --- An in-app purchases SDK is a toolkit from platforms like Apple or Google that lets developers enable purchases within their app. An In-app purchases SDK (Software Development Kit) is a set of tools, code libraries, and documentation provided by a developer platform, such as Apple or Google, that allows app developers to integrate the ability for users to make purchases within their app. This feature enables users to unlock additional features, functionality, or content within the app, typically through the use of virtual currency or real money. What is SDK in mobile app purchases? The In-app purchases SDK provides developers with a way to handle the purchase process within their app, including managing the user's account, verifying the transaction, and delivering the purchased content or feature. This allows app developers to monetize their app and generate revenue through purchases made by users. What is Adapty in-app purchase SDK? Adapty In-app purchases SDK is a tool that allows app developers to integrate in-app purchase functionality into their app. Adapty in-app SDK provides features such as subscription management, revenue analytics, and A/B testing for pricing and promotional offers. Adapty In-app purchases SDK also supports multiple payment methods, such as Apple Pay and Google Pay, to enable a smooth and secure purchase experience for users. --- Mobile marketers categorize app downloads as paid or organic. Mobile app marketers typically classify app downloads into two categories: those obtained through paid sources and those obtained organically. Mobile app marketers refer to the installs that are called organic, meaning no marketing activities or paid advertising was employed to acquire such users. Following the organic marketing definition, organic installs occur when users come across the app through various marketing efforts, such as search engine optimization (SEO), app store optimization (ASO), or word-of-mouth recommendations. Moreover, an install can also be classified as organic if a user clicks or views an advertisement but downloads the app after the attribution window has expired. This implies that if a download occurs outside the time frame that can be traced back to an engagement with an advertisement, it cannot be confirmed if it resulted from the ad, and hence, the install is considered organic. Uses of organic installs Validating app hypothesis on prelaunch Organic users offer a valuable means of validating app hypotheses, owing to their more engaged behavior. If a company can cultivate organic traffic before launching the app, this can provide an excellent way of validating the app without the need for substantial investment in paid advertising. In an age where ad costs continue to escalate, attracting organic users to an emulated app store page can prove a cost-effective means of running prelaunch validation and saving budget on resourceful app design and development.   Growing LTV and ROI Organic app installs matter because they frequently attract the most high-value users who are more committed to a product or service. These users retain more effectively and engage in more in-app sessions than their paid counterparts. As a result, organic installs can lead to higher ROI on marketing activities and customer lifetime value (LTV). However, scaling organic installs can be notoriously difficult and time-consuming compared to paid acquisition, owing to the decreasing organic multiplier, i. e. , the ability of non-organic campaigns to drive organic installs. This means that the options for using paid campaigns to scale organically have become more limited. How to track your organic installs with Adapty By leveraging Adapty, you can track app installs based on the acquisition channel and evaluate how your organic installs are performing in comparison to your paid acquisition campaigns in terms of converting to paying customers. Adapty also facilitates integration with mobile measurement partners such as Appsflyer and Adjust, enabling you to access comprehensive analytics on app installs and subscriptions across the entire customer journey. Simply navigate to the Analytics section of the Adapty dashboard to review the detailed data. --- Paid installs (non-organic installs) happen when users download an app after seeing a marketing campaign. Paid installs, also known as non-organic installs (NOI), occur when a user downloads and installs an app after being exposed to a marketing campaign. These campaigns can take various forms of advertising, such as social media ads, display ads, video ads, or search ads, and are part of user acquisition efforts on paid and owned media.   Advertisers pay a fee to the ad network or mobile app publisher for each user who clicks on the ad and installs the app. Owned marketing channels, unlike paid ones, are channels that businesses own and don't have to pay for. Both types of campaigns aim to attract users to download an app after viewing and clicking on an ad. Pay per install Pay per install (PPI) is a common form of mobile app advertising where advertisers pay for each app install that is generated through an advertisement. Mobile app pay-per-install networks are platforms that facilitate this process by connecting app developers with advertisers who want to promote their apps through their websites, social media channels, and other mobile apps. To succeed in a pay-per-install campaign, it's important to choose the right network and target the right audience. Advertisers should also optimize their app store listings, create engaging ad creatives, and continually test and refine their campaigns to improve performance. Uses of paid installs Boost app downloads and ROI The objective of paid app installs is to enhance the number of downloads and augment the visibility and exposure of the app. By leveraging paid app-install ads or campaigns, a substantial amount of downloads can be generated in a relatively short period of time, thereby elevating the app's rank on the app store being advertised. This, in turn, boosts the app's visibility, attracting a new audience of potential users. Grow organic app installs Paid installs are crucial for brands competing for mobile real estate on smartphone home screens, as they can increase organic installs. By maintaining a certain amount of paid downloads and positive reviews over time, an app's ranking can improve, leading to organic traffic and active downloads, which are organic app installs. However, this strategy is more effective for certain app categories than others. Social and multiplayer games, such as racing and word games, tend to benefit the most from this approach, as users often share them with friends to play together, resulting in multiple installs. In contrast, app categories such as tools, strategy, and shopping may see weaker organic boosts. How to track paid app installs in Adapty In Adapty, you can see paid app installs by navigating to the Analytics section of the Adapty dashboard. From there, you can view detailed data on your app's installs, including the number of installs by acquisition channel, such as paid advertising campaigns. Adapty provides integration with mobile measurement partners including AppsFlyer and Adjust to provide you with full-funnel analytics on your app installs and subscriptions, allowing you to track the performance of your paid acquisition campaigns and see how your organic installs compare to your paid installs in terms of conversion rates and user retention. --- The paywall is where users are asked to pay for premium content or features. What is paywall optimization? The paywall is the point at which users are prompted to pay for access to premium content or features within the app. Mobile app paywall optimization refers to the process of fine-tuning the design and user experience of an app's paywall to maximize revenue from paid subscriptions or in-app purchases. Paywall optimization involves analyzing user behavior and identifying the most effective paywall placement, messaging, pricing, and incentives to encourage users to convert from free to paid users. This process may include A/B testing different variations of the paywall to determine which design and messaging perform the best. Paywall optimization serves multiple business goals. For instance, testing a new offer can bring in quick capital. Experimenting with different subscription plans can help you restructure your app's customer base and increase revenue over time. Similarly, testing different subscription lengths can ensure a stable cash flow, which is essential for the sustainability of your app business. --- StoreKit lets developers add in-app purchases to iOS, macOS, watchOS, and tvOS apps. Developers can use Apple's StoreKit framework to incorporate in-app purchases (IAPs) into their apps on iOS, macOS, watchOS, and tvOS. The framework facilitates secure payment processing on behalf of the app, connecting with the AppStore and requesting user authorization for payments. The StoreKit framework and IAP APIs manage the entire purchase process, from retrieving product details to payment processing and product delivery. In addition, StoreKit enables: Validating advertisement-driven app installations with ad network attribution; Providing recommendations for third-party content; Requesting App Store reviews and ratings from app customers; Display App Store messages in mobile apps. The purpose of iOS StoreKit is to simplify the management of in-app purchases, which has become increasingly complex in recent years. As apps have shifted from offering one-time purchases to recurring subscriptions with varying levels of features, durations, and pricing tiers, StoreKit has been developed to help developers handle the complexity of these subscription models. How to configure In-App Purchase API (StoreKit) with Adapty Adapty requires users to provide their In-App Purchase API details to ensure the secure and efficient management of in-app purchases for their app. Uploading an In-App Purchase API key is necessary for secure authentication and validation of transaction history requests for customers using Adapty to communicate with Apple. Additionally, iOS apps require an Issuer ID for customer lookup through Order ID. The StoreKit implementation can be divided into three primary components: product setup, the purchase process on the device, and purchase verification. For a step-by-step guide, please refer to this resource. --- Subscription revenue is income from users paying a regular fee for premium app content or features. Subscription revenue refers to the income generated from a recurring payment model, where users pay a regular fee, often on a monthly or yearly basis, to access premium features, content, or services within the app.   How to calculate subscription revenue  You can view your subscription revenue in the Analytics section of the Adapty dashboard. This metric takes into account all the money received from both subscriptions and one-time purchases but does not include revenue from refunded subscriptions and purchases. The calculation is done before deducting the store's fee. For example, during the chosen financial period, there were: 5 monthly subscriptions for $10 each; 1 yearly subscription for $100; 10 one-time purchases for $50. The total subscription revenue formula in Adapty looks like this: Subscription revenue = 5*$10 + 1*$100 + 10*$50 = $650 In addition to the subscription revenue, the Adapty dashboard also displays other key financial metrics such as MRR (Monthly Recurring Revenue), ARR (Annual Recurring Revenue), and ARPPU (Average Revenue Per Paying User). These metrics are complemented by data on the number of active, new, and churned subscriptions, as well as subscription renewals and cancellations over time. By analyzing these metrics, you can gain a better understanding of your app monetization strategy and evaluate its effectiveness in both the short and long term. How to increase subscription revenue To boost app revenue, it's important to identify the right moments when users are willing to pay for enhanced experiences. According to Statista, subscription apps have an average purchase conversion rate of around 5%. By offering free trials, basic or short-term subscriptions, or premium or long-term subscriptions at these hotspots, you can increase the likelihood of converting users into loyal, long-term customers. This is essentially your subscription funnel, which should be tracked to encourage users to transition to the next stage. Common scenarios include onboarding newcomers, offering subscription upgrades when users see additional value in the app, stimulating purchases with special discounts, winning back churned users, and more. To grow subscription revenue, consider taking the following steps: Increase awareness of subscription options for app users through in-app notifications, emails, and other methods. Segment the audience into groups based on characteristics, behavior, and engagement levels to find the most converting segment. Upgrade current paying users to transfer their high engagement into upgraded revenue. For example, you can offer a 6-month or 12-month subscription to users who have been using a monthly plan consistently to increase their lifetime value. Learn more about different cohorts of users here.   Test different subscription products, such as various price points, trial periods, and promo offers, using Adapty's configuration options. Test different paywall designs and product configurations using paywall A/B testing. --- Active Subscriptions count users on recurring paid plans for premium app features. The number of users who have signed up for a recurring payment plan to access premium or additional features within the app. These subscriptions typically involve monthly or yearly payments, and give users access to features that are not available to non-subscribers. Auto-renewable subscriptions and active subscriptions Auto-renewable subscriptions allow users to access content, services, or premium features in your app on a recurring basis. These subscriptions are automatically renewed at the end of their duration unless the user chooses to cancel. Having a subscription-based app requires frequent updates and fresh content, which fosters a personalized and positive relationship with users. This can encourage users to stay engaged with the app and explore new features, leading to higher levels of brand loyalty and an increased likelihood of receiving referrals. Furthermore, recurring payments provide developers with a steady income, and users are no longer required to purchase new versions of the app. Tracking active renewals instead of just active subscriptions can be a more informative metric to target. This is because users who have canceled their subscriptions are still considered active until the end of the paid period, which may lead to unexpected churn. A high rate of unsubscriptions may indicate that deeper analysis of the product and analytics is needed. It may be useful to investigate if there is a correlation between the marketing channel and churn rate, and if not, to examine the product itself for potential issues. This can lead to new hypotheses and opportunities for customer research and implementing significant changes to improve the app's auto-renewal rates. How to check subscriptions Incorporating a subscription model into a mobile app can pose challenges for app creators. Not only do they need to ensure that the client is adapted to support subscriptions, but they also need to create a server that can handle Apple events in order to track renewals and cancellations. Additionally, they must match user IDs with corresponding transactions, store this data in a database, and match it with other events. Finally, these events need to be sent to an analytics system such as Mixpanel or Amplitude, or an attribution system like AppsFlyer or Adjust. Fortunately, the Adapty SDK simplifies this process by allowing app creators to integrate subscriptions into their apps with just a few straightforward steps. Go to the Adapty dashboard and access the Charts tab within the Analytics section. The dashboard will show active subscriptions segmented by auto-renew status, which indicates if the subscription will be renewed in the next period. In addition to monitoring new and churned subscriptions, the Adapty dashboard can provide a quick overview of your subscriber acquisition efficiency and subscriber retention rate. With the Adapty SDK, checking the status of a subscription no longer requires hardcoding product IDs. Instead, simply verify that the user has active access to the subscription level. Whenever a user's subscription changes, Adapty will automatically generate an event to reflect the updated status. --- Average Revenue per User measures the average revenue from all active users, while ARPPU focuses only on paying users. ARPU stands for Average Revenue per User, and it refers to the average amount of revenue an app generates from each active user. App growth teams that develop subscription or revenue-driven apps often include ARPU as a key performance indicator to measure their financial success. By calculating ARPU, you can determine the average amount of money you earn from each user. While ARPU takes into account the revenue earned from both paying and non-paying users, there is another similar metric used specifically for subscription-based apps. This metric is known as ARPPU (Average Revenue per Paying User), which only considers the revenue generated by users who have made a payment. The difference between ARPU and ARPPU Mobile analytics commonly use both ARPU and ARPPU metrics. However, with ARPPU, you can focus on smaller groups of paying customers and understand their value to your business. This metric provides condensed data on app monetization, allowing you to concentrate on revenue without the interference of the non-paying majority. Therefore, ARPPU almost always exceeds ARPU. A high ARPU doesn't always equate to app success. Even with the high price of subscription products, a low number of users can still result in a high ARPU. Conversely, ARPPU provides a better understanding of app monetization success by tracking a smaller number of users who contribute the majority of your revenue. This makes it easier to assess the impact of new monetization methods on existing buyers. How to calculate ARPPU When calculating ARPPU, it is crucial to exclude non-paying players such as free trial users, canceled subscriptions, and inactive accounts. In Adapty's Analytics section, you can view the ARPPU metric along with other significant financial metrics like revenue, ARR, MRR, and ARPAS (Average Revenue per Active Subscriber). The ARPPU formula is simple: Total revenue divided by the number of users who paid. For instance, if the revenue for a given day is $1000, and 50 users made at least one purchase, the ARPPU would be $20, calculated as follows: ARPPU = 1000 / 50 = $20. However, it's important to note that as one user may pay multiple times during the whole period, the chosen period's ARPPU value may be higher than the daily ARPPU value. How to grow ARPU and ARPPU It's crucial to monitor metrics like ARPPU to detect issues at an early stage. A drop in ARPPU can be caused by various unexpected factors. For instance, reducing the price of in-app purchases or subscriptions may lead to a decrease in ARPPU instead of the expected revenue growth and an increase in paying share. This may occur when only the previously paying users continue to pay, but now they pay a smaller amount. Alternatively, the structure of the paying audience may have changed, and only new or recent users are paying. ARPPU is also useful for testing and comparing different offers on your paywalls, such as by running an A/B test with two paywall variations to determine which one generates more revenue. You can test different designs, such as dark vs. light versions, or combinations of products, such as 3 months and 1-year subscriptions or 1-, 3-, and 6-month subscription options. Another option is to test your pricing by making slight differences between monthly and weekly subscriptions, for instance. By checking ARPPU after the test, you can understand the number of loyal users who bring stable revenue every month and how much users are willing to pay for subscribing to your mobile app. To learn more about recommendations and best practices for Paywall A/B testing, check out our guides. --- App retention is an app's ability to keep users engaged and active for a period after downloading and installing it. What is a retention rate App retention refers to the capacity of an application to sustain users' engagement and activity for a specified duration after they have downloaded and installed it on their devices. It gauges the proportion of users who revisit the app after their initial download and reuse it. Essentially, app retention is an indicator of user loyalty and demonstrates the app's ability to deliver a positive user experience and satisfy user requirements over time. Retention rates are typically measured on Day 1, Day 7, and Day 30. High app retention rates are critical for the success of an app because they suggest that users perceive value in the app and are inclined to continue using it in the future. App retention formula looks like: App retention = number of monthly active users / number of monthly installs What is a good retention rate App retention rate can vary depending on the app store, app category, and even within different user segments of the same app. To assess your app's retention rate, it's important to monitor changes over time within different user cohorts. Industry benchmarks can also provide insight into the basic retention rate for your app category. Business of Apps reports that research into mobile app retention metrics worldwide indicates an average mobile app retention rate of 25. 3% on Day 1 across 31 mobile app categories, which drops to 5. 7% by Day 30. A good DAU/MAU (daily active users/monthly active users) ratio is around 20%, while anything above 25% is considered exceptional. Users who engage with an app at least once a week are 90% more likely to become long-term users. How to calculate retention To inspect how the users you've attracted renew and become loyal, head over to the Analytics section of the Adapty dashboard and navigate to the Retention tab. Using the Retention feature, you can easily evaluate the loyalty of your user base with the data gathered through SDK and store notifications, without the need for any additional configuration. Retention charts offer insights into questions such as how your app retains clients from period to period, which products are more appealing and retain better, what groups of users are more loyal, which retention level can serve as a benchmark for growth, and how to save money by investing in your existing audience instead of acquiring new users. With Adapty's retention feature, you can view absolute and relative retention numbers over time, as well as understand how retention varies by location, product, paywall, and marketing parameters. Utilize filters such as duration, country, and attribution to gain deeper retention insights. By examining the retention chart, you can determine how the number of users varies based on the step they take, such as trial or 1st and 2nd payments. When selecting a date range for the retention chart, it's important to understand which users are being counted. For example, if you select the last 3 months in the calendar without checking the "show trials" checkbox, only those who have had their 1st subscription during the last 3 months are counted. However, if the "show trials" checkbox is checked, all users who have had their trials during the last 3 months are counted. The retention for the Nth step is shown as both an absolute value and a relative value, calculated as a ratio of the absolute amount of the Nth payment to the total amount of subscriptions or trials during the selected time range. Using cohort analysis to calculate mobile app user retention Cohort analysis is a technique that involves grouping a large customer or user base into smaller segments based on shared characteristics over a specific time frame. These characteristics can include factors such as language, location, acquisition date, or preferences. By using cohort analysis, you can gain valuable insights into customer behavior and understand why they may or may not be engaging with your app or product. In the Adapty platform, you can access the Cohorts tab to view revenue, subscriber numbers, and average revenue per subscriber (ARPPU) for each cohort of users. Cohorts are grouped based on the month in which your mobile app was installed. By tracking how users renew their subscriptions, you can draw conclusions about user retention and, what’s really important, on retaining paying users. --- Lifetime Value measures total revenue a user generates over their entire app usage. LTV meaning, Lifetime Value (LTV), is a performance indicator used to evaluate the total earnings generated by a customer throughout their entire tenure of using a mobile application. Historical data on user retention rates is often used to estimate the expected duration of user engagement. Having knowledge of what is LTV and the average LTV of your customers is crucial for executing successful marketing strategies. LTV in marketing for mobile apps is normally used to optimize revenue streams such as subscriptions, in-app advertising, and in-app purchases by determining the amount of money that can be spent on user acquisition while still being profitable. From an LTV/advertising point of view, the profitability is tracked by comparing the LTV to the cost of customer acquisition (CAC). If the revenue generated by a user surpasses the cost of acquiring them, then the business is making a profit and should consider scaling their user acquisition to expand their operations. The difference between lifetime value and retention In mobile app metrics, LTV refers to the total amount of revenue that a user generates or spends on an app over time, whereas retention is the percentage of users who continue to use the app after a specified period, such as a month or a year. The primary distinction between lifetime value and retention in mobile apps is that LTV measures the total revenue that a customer generates throughout their lifetime of using the app, while retention gauges the percentage of users who continue to use the app beyond a particular time frame. LTV metric provides insight into the app's overall profitability, while retention measures the degree of engagement and satisfaction among users. How to calculate LTV The calculation of LTV can vary depending on the business model, revenue streams, and objectives of your mobile app. For instance, if in-app purchases are the primary source of revenue, LTV may be determined as the sum of a user's total purchases. If ad revenue is the primary source of revenue, LTV may be calculated as the average ad revenue per user multiplied by their lifetime. If the goal of your app is to increase brand awareness or website traffic and it is free, retention may be defined as the percentage of users who access the app or click on links monthly. Cohort analysis can be utilized to group users based on the date they first used the app and compare their LTV and retention over time. Customer segments can also be employed to categorize users based on their characteristics, such as location, behavior, demographics, or device, and evaluate their LTV and retention patterns. The standard formula for computing LTV is: LTV = Average purchase size x Number of purchases x Retention period. LTV for subscription apps Typically, marketing requires an upfront investment while revenue is generated gradually as customers use the service. This is especially true for subscription-based business models where clients are charged on a monthly, semi-annual, or annual basis. Therefore, it's crucial to estimate the LTV metric over a defined period, such as six months, one year, or two years. Based on your available capital, you should determine the acceptable period to break even and achieve a positive return on your advertising investment. For apps that operate on a subscription-based model, retention can be defined as the percentage of users who renew their subscriptions after a specific period. In this case, the LTV formula can be calculated as: LTV = (average monthly amount expected from each customer) / churn rate Assuming a monthly subscription fee of $200 and a churn rate of 8%, the lifetime value (LTV) for a new customer can be calculated as follows: LTV = (Monthly Subscription Fee / Churn Rate) x Expected Lifetime LTV = ($200 / 0. 08) x 20 LTV = $5,000 This means that the LTV for a new customer is $5,000, which is the estimated amount of revenue that the customer will generate over their expected lifetime of 20 months. To calculate your LTV, you'll need to track several key metrics. Revenue metrics like ARPPU can be found within your Analytics dashboard. In the Retention tab, you'll find detailed data on user retention, broken down by specific steps such as the trial period, the first payment, the second payment, and so on. These retention charts show the actual consumption lifetime of your product and enable you to make long-term forecasts. Customer Lifetime Value CLTV (Customer Lifetime Value) is a variation of LTV that measures the total revenue a customer is expected to generate over their entire relationship with a business. To calculate CLTV, you can use the formula: Average Revenue Per User (ARPU) multiplied by the expected lifespan of a customer, and then subtract the cost of acquisition. For example, if the ARPU is $20 and the expected lifespan of a customer is 24 months, and the cost of acquiring a customer is $50, then the CLTV can be calculated as follows: CLTV = (ARPU x Expected Lifespan) - Cost of Acquisition CLTV = ($20 x 24) - $50 CLTV = $480 - $50 CLTV = $430 So, in this example, the CLTV of each customer is $430, which represents the estimated revenue the customer will generate over their entire relationship with the business, taking into account the cost of acquiring them. --- Server validation verifies the authenticity of in-app purchases. Server validation, also known as server-side receipt validation, is a process used to ensure that purchases made within an app are authentic. This is achieved by using an encrypted file, in PKCS#7 format, which contains information about all in-app purchases. To authenticate purchased content, you can include receipt validation code in your app or server. App Store receipt validation involves sending a request to Apple’s servers to verify the purchase and determine whether it was valid. This is particularly important for auto-renewable subscriptions as you need to know when they expire in order to provide or block access to your content. Receipt validation is also used when users need to restore a purchase, such as when they reinstall your app. After each transaction, a receipt is issued by Apple, which is stored locally on the device. However, there are three ways to validate it: local validation using OpenSSL, validation through Apple from an iOS device, or validation through Apple using your own server. While the first method is more complex and requires integrating the OpenSSL library into your application, it's the other two methods that are safer and more reliable. Validating receipts on the device can be unsafe, as there's a risk of interception of your requests. Why do you need receipt validation While server validation is not compulsory, it offers several benefits. One of these is advanced payment analytics, which is particularly crucial for subscriptions since any activity after activation is not processed by the device. Without server purchase processing, it would be impossible to determine the current subscription status, whether the user has renewed or canceled it, or if there are any billing issues. Receipt validation is an essential way of preventing fraudulent in-app purchases in the iOS and Android app stores. Many people attempt to make in-app purchases using fake receipts, but App Store receipt validation can prevent this. Another benefit of server validation is cross-platform subscriptions. By checking a user's subscription status in real-time, you can synchronize it with other platforms. For example, if a user purchases a subscription from an iOS device, they can use it on Android, the web, and other platforms. Furthermore, server-side content access control protects against users who try to access data without a subscription by merely executing requests to the server. --- The Google Play Developer API allows temporary deferral of subscription purchases. Deferred Payment definition The Google Play Developer API offers subscription purchase deferral, which allows developers to delay subscription purchases for a limited time period. This feature is beneficial for various reasons, such as offering users a free trial or allowing them to postpone payment due to financial challenges. Following the deferred payment definition, the API allows developers to manage subscription deferrals by setting up deferral periods, retrieving information on deferred subscriptions, and canceling or resuming deferred subscriptions as needed. Additionally, the API provides reporting tools that enable developers to track the number of deferred subscriptions, revenue, and other metrics related to their app's subscription model. During the deferral period, subscribers can still access the content or services associated with the subscription but will not be charged until the deferral period ends. The developer sets the length of the deferral period, which can range from a few days to several weeks. To give users free access as part of a bundle or special offer, such as giving free access to web content to users who subscribe to a print magazine, developers can use deferred billing. Billing can be deferred by up to one year per call to the API, and developers can call the API again to defer billing further. It is recommended to notify the user by email or within the app when their billing date changes. This feature works the same for free trials and current subscriptions. --- --- ## Integrations --- ## Reports --- ## SDK . activar // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID") . realizarCompra // Your app's code Adapty. getPaywall(placementId: "YOUR_PLACEMENT_ID", locale: "en") { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } } . restaurarCompras // Your app's code Adapty. makePurchase(product: product) { result in switch result { case let . success(info): if info. profile. accessLevels? . isActive ? ? false { // successful purchase } case let . failure(error): // handle the error } } . getProfile // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } } . restaurarCompras // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): if info. profile. accessLevels? . isActive ? ? false { // successful access restore } case let . failure(error): // handle the error } } Ejemplo // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY") // Make a purchase, Adapty handles the rest do { let purchasedInfo = try await Adapty. makePurchase(product) // successful purchase } catch { // handle the error } --- . activate // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID") . makePurchase // Your app's code Adapty. getPaywall(placementId: "YOUR_PLACEMENT_ID", locale: "en") { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } } . restorePurchases // Your app's code Adapty. makePurchase(product: product) { result in switch result { case let . success(info): if info. profile. accessLevels? . isActive ? ? false { // successful purchase } case let . failure(error): // handle the error } } . getProfile // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } } . restorePurchases // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): if info. profile. accessLevels? . isActive ? ? false { // successful access restore } case let . failure(error): // handle the error } } Örnek // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY") // Make a purchase, Adapty handles the rest do { let purchasedInfo = try await Adapty. makePurchase(product) // successful purchase } catch { // handle the error } --- . активувати // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID") . зробитиПокупку // Your app's code Adapty. getPaywall(placementId: "YOUR_PLACEMENT_ID", locale: "en") { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } } . відновитиПокупки // Your app's code Adapty. makePurchase(product: product) { result in switch result { case let . success(info): if info. profile. accessLevels? . isActive ? ? false { // successful purchase } case let . failure(error): // handle the error } } . getProfile // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } } . restorePurchases // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): if info. profile. accessLevels? . isActive ? ? false { // successful access restore } case let . failure(error): // handle the error } } Приклад // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY") // Make a purchase, Adapty handles the rest do { let purchasedInfo = try await Adapty. makePurchase(product) // successful purchase } catch { // handle the error } --- makePurchase // Your app's code Adapty. MakePurchase(product, (profile, error) => { if(error ! = null) { // handle error return; } }); restorePurchases // Your app's code Adapty. RestorePurchases((profile, error) => { if(error ! = null) { // handle the error } else { // check the access level } }); identify // Your app's code Adapty. Identify("YOUR_USER_ID", (error) => { if(error == null) { // successful identify } }); updateProfile // Your app's code var builder = new Adapty. ProfileParameters. Builder . ("Profile_Parameters") Adapty. UpdateProfile(builder. Build, (error) => { if(error ! = nil) { // handle the error } }); updateAttribution // Your app's code Adapty. UpdateAttribution("", source, "", (error) => { if (error ! = null) { // handle the error } // succesfull attribution update }); Example // Your app's code using AdaptySDK; Adapty. makePurchase(product, (profile, error) => { if (error == null) { // successful purchase } }); --- makePurchase // Your app's code Adapty. MakePurchase(product, (profile, error) => { if(error ! = null) { // handle error return; } }); restorePurchases // Your app's code Adapty. RestorePurchases((profile, error) => { if(error ! = null) { // handle the error } else { // check the access level } }); identify // Your app's code Adapty. Identify("YOUR_USER_ID", (error) => { if(error == null) { // successful identify } }); updateProfile // Your app's code var builder = new Adapty. ProfileParameters. Builder . ("Profile_Parameters") Adapty. UpdateProfile(builder. Build, (error) => { if(error ! = nil) { // handle the error } }); updateAttribution // Your app's code Adapty. UpdateAttribution("", source, "", (error) => { if (error ! = null) { // handle the error } // succesfull attribution update }); Example // Your app's code using AdaptySDK; Adapty. makePurchase(product, (profile, error) => { if (error == null) { // successful purchase } }); --- makePurchase // Your app's code Adapty. MakePurchase(product, (profile, error) => { if(error ! = null) { // handle error return; } }); restorePurchases // Your app's code Adapty. RestorePurchases((profile, error) => { if(error ! = null) { // handle the error } else { // check the access level } }); identify // Your app's code Adapty. Identify("YOUR_USER_ID", (error) => { if(error == null) { // successful identify } }); updateProfile // Your app's code var builder = new Adapty. ProfileParameters. Builder . ("Profile_Parameters") Adapty. UpdateProfile(builder. Build, (error) => { if(error ! = nil) { // handle the error } }); updateAttribution // Your app's code Adapty. UpdateAttribution("", source, "", (error) => { if (error ! = null) { // handle the error } // succesfull attribution update }); Example // Your app's code using AdaptySDK; Adapty. makePurchase(product, (profile, error) => { if (error == null) { // successful purchase } }); --- makePurchase // Your app's code Adapty. MakePurchase(product, (profile, error) => { if(error ! = null) { // handle error return; } }); restorePurchases // Your app's code Adapty. RestorePurchases((profile, error) => { if(error ! = null) { // handle the error } else { // check the access level } }); identify // Your app's code Adapty. Identify("YOUR_USER_ID", (error) => { if(error == null) { // successful identify } }); updateProfile // Your app's code var builder = new Adapty. ProfileParameters. Builder . ("Profile_Parameters") Adapty. UpdateProfile(builder. Build, (error) => { if(error ! = nil) { // handle the error } }); updateAttribution // Your app's code Adapty. UpdateAttribution("", source, "", (error) => { if (error ! = null) { // handle the error } // succesfull attribution update }); Example // Your app's code using AdaptySDK; Adapty. makePurchase(product, (profile, error) => { if (error == null) { // successful purchase } }); --- makePurchase // Your app's code Adapty. MakePurchase(product, (profile, error) => { if(error ! = null) { // handle error return; } }); restorePurchases // Your app's code Adapty. RestorePurchases((profile, error) => { if(error ! = null) { // handle the error } else { // check the access level } }); identify // Your app's code Adapty. Identify("YOUR_USER_ID", (error) => { if(error == null) { // successful identify } }); updateProfile // Your app's code var builder = new Adapty. ProfileParameters. Builder . ("Profile_Parameters") Adapty. UpdateProfile(builder. Build, (error) => { if(error ! = nil) { // handle the error } }); updateAttribution // Your app's code Adapty. UpdateAttribution("", source, "", (error) => { if (error ! = null) { // handle the error } // succesfull attribution update }); Example // Your app's code using AdaptySDK; Adapty. makePurchase(product, (profile, error) => { if (error == null) { // successful purchase } }); --- makePurchase // Your app's code Adapty. MakePurchase(product, (profile, error) => { if(error ! = null) { // handle error return; } }); restorePurchases // Your app's code Adapty. RestorePurchases((profile, error) => { if(error ! = null) { // handle the error } else { // check the access level } }); identify // Your app's code Adapty. Identify("YOUR_USER_ID", (error) => { if(error == null) { // successful identify } }); updateProfile // Your app's code var builder = new Adapty. ProfileParameters. Builder . ("Profile_Parameters") Adapty. UpdateProfile(builder. Build, (error) => { if(error ! = nil) { // handle the error } }); updateAttribution // Your app's code Adapty. UpdateAttribution("", source, "", (error) => { if (error ! = null) { // handle the error } // succesfull attribution update }); Example // Your app's code using AdaptySDK; Adapty. makePurchase(product, (profile, error) => { if (error == null) { // successful purchase } }); --- makePurchase // Your app's code Adapty. MakePurchase(product, (profile, error) => { if(error ! = null) { // handle error return; } }); restorePurchases // Your app's code Adapty. RestorePurchases((profile, error) => { if(error ! = null) { // handle the error } else { // check the access level } }); identify // Your app's code Adapty. Identify("YOUR_USER_ID", (error) => { if(error == null) { // successful identify } }); updateProfile // Your app's code var builder = new Adapty. ProfileParameters. Builder . ("Profile_Parameters") Adapty. UpdateProfile(builder. Build, (error) => { if(error ! = nil) { // handle the error } }); updateAttribution // Your app's code Adapty. UpdateAttribution("", source, "", (error) => { if (error ! = null) { // handle the error } // succesfull attribution update }); Example // Your app's code using AdaptySDK; Adapty. makePurchase(product, (profile, error) => { if (error == null) { // successful purchase } }); --- makePurchase // Your app's code Adapty. MakePurchase(product, (profile, error) => { if(error ! = null) { // handle error return; } }); restorePurchases // Your app's code Adapty. RestorePurchases((profile, error) => { if(error ! = null) { // handle the error } else { // check the access level } }); identify // Your app's code Adapty. Identify("YOUR_USER_ID", (error) => { if(error == null) { // successful identify } }); updateProfile // Your app's code var builder = new Adapty. ProfileParameters. Builder . ("Profile_Parameters") Adapty. UpdateProfile(builder. Build, (error) => { if(error ! = nil) { // handle the error } }); updateAttribution // Your app's code Adapty. UpdateAttribution("", source, "", (error) => { if (error ! = null) { // handle the error } // succesfull attribution update }); Example // Your app's code using AdaptySDK; Adapty. makePurchase(product, (profile, error) => { if (error == null) { // successful purchase } }); --- makePurchase // Your app's code Adapty. MakePurchase(product, (profile, error) => { if(error ! = null) { // handle error return; } }); restorePurchases // Your app's code Adapty. RestorePurchases((profile, error) => { if(error ! = null) { // handle the error } else { // check the access level } }); identify // Your app's code Adapty. Identify("YOUR_USER_ID", (error) => { if(error == null) { // successful identify } }); updateProfile // Your app's code var builder = new Adapty. ProfileParameters. Builder . ("Profile_Parameters") Adapty. UpdateProfile(builder. Build, (error) => { if(error ! = nil) { // handle the error } }); updateAttribution // Your app's code Adapty. UpdateAttribution("", source, "", (error) => { if (error ! = null) { // handle the error } // succesfull attribution update }); Example // Your app's code using AdaptySDK; Adapty. makePurchase(product, (profile, error) => { if (error == null) { // successful purchase } }); --- makePurchase // Your app's code Adapty. MakePurchase(product, (profile, error) => { if(error ! = null) { // handle error return; } }); restorePurchases // Your app's code Adapty. RestorePurchases((profile, error) => { if(error ! = null) { // handle the error } else { // check the access level } }); identify // Your app's code Adapty. Identify("YOUR_USER_ID", (error) => { if(error == null) { // successful identify } }); updateProfile // Your app's code var builder = new Adapty. ProfileParameters. Builder . ("Profile_Parameters") Adapty. UpdateProfile(builder. Build, (error) => { if(error ! = nil) { // handle the error } }); updateAttribution // Your app's code Adapty. UpdateAttribution("", source, "", (error) => { if (error ! = null) { // handle the error } // succesfull attribution update }); Example // Your app's code using AdaptySDK; Adapty. makePurchase(product, (profile, error) => { if (error == null) { // successful purchase } }); --- makePurchase // Your app's code Adapty. MakePurchase(product, (profile, error) => { if(error ! = null) { // handle error return; } }); restorePurchases // Your app's code Adapty. RestorePurchases((profile, error) => { if(error ! = null) { // handle the error } else { // check the access level } }); identify // Your app's code Adapty. Identify("YOUR_USER_ID", (error) => { if(error == null) { // successful identify } }); updateProfile // Your app's code var builder = new Adapty. ProfileParameters. Builder . ("Profile_Parameters") Adapty. UpdateProfile(builder. Build, (error) => { if(error ! = nil) { // handle the error } }); updateAttribution // Your app's code Adapty. UpdateAttribution("", source, "", (error) => { if (error ! = null) { // handle the error } // succesfull attribution update }); Example // Your app's code using AdaptySDK; Adapty. makePurchase(product, (profile, error) => { if (error == null) { // successful purchase } }); --- . makePurchase // Your app's code Adapty. makePurchase(product: product) { result in switch result { case let . success(profile): // successful purchase case let . failure(error): // handle the error } } . identify // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): // check the access level case let . failure(error): // handle the error } } . updateAttribution // Your app's code Adapty. identify("YOUR_USER_ID") { error in if error == nil { // successful identify } } . updateProfile // Your app's code let builder = AdaptyProfileParameters. Builder . with("Profile_Parameters") ... Adapty. updateProfile(params: builder. build) { error in if error ! = nil { // handle the error } } . updateAttribution // Your app's code Adapty. updateAttribution("", "", "") { error -> if (error == null) { // succesfull attribution update } } --- . makePurchase // Your app's code Adapty. makePurchase(product: product) { result in switch result { case let . success(profile): // successful purchase case let . failure(error): // handle the error } } . identify // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): // check the access level case let . failure(error): // handle the error } } . updateAttribution // Your app's code Adapty. identify("YOUR_USER_ID") { error in if error == nil { // successful identify } } . updateProfile // Your app's code let builder = AdaptyProfileParameters. Builder . with("Profile_Parameters") ... Adapty. updateProfile(params: builder. build) { error in if error ! = nil { // handle the error } } . updateAttribution // Your app's code Adapty. updateAttribution("", "", "") { error -> if (error == null) { // succesfull attribution update } } --- . makePurchase // Your app's code Adapty. makePurchase(product: product) { result in switch result { case let . success(profile): // successful purchase case let . failure(error): // handle the error } } . identify // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): // check the access level case let . failure(error): // handle the error } } . updateAttribution // Your app's code Adapty. identify("YOUR_USER_ID") { error in if error == nil { // successful identify } } . updateProfile // Your app's code let builder = AdaptyProfileParameters. Builder . with("Profile_Parameters") ... Adapty. updateProfile(params: builder. build) { error in if error ! = nil { // handle the error } } . updateAttribution // Your app's code Adapty. updateAttribution("", "", "") { error -> if (error == null) { // succesfull attribution update } } --- . makePurchase // Your app's code Adapty. makePurchase(product: product) { result in switch result { case let . success(profile): // successful purchase case let . failure(error): // handle the error } } . identify // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): // check the access level case let . failure(error): // handle the error } } . updateAttribution // Your app's code Adapty. identify("YOUR_USER_ID") { error in if error == nil { // successful identify } } . updateProfile // Your app's code let builder = AdaptyProfileParameters. Builder . with("Profile_Parameters") ... Adapty. updateProfile(params: builder. build) { error in if error ! = nil { // handle the error } } . updateAttribution // Your app's code Adapty. updateAttribution("", "", "") { error -> if (error == null) { // succesfull attribution update } } --- . makePurchase // Your app's code Adapty. makePurchase(product: product) { result in switch result { case let . success(profile): // successful purchase case let . failure(error): // handle the error } } . identify // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): // check the access level case let . failure(error): // handle the error } } . updateAttribution // Your app's code Adapty. identify("YOUR_USER_ID") { error in if error == nil { // successful identify } } . updateProfile // Your app's code let builder = AdaptyProfileParameters. Builder . with("Profile_Parameters") ... Adapty. updateProfile(params: builder. build) { error in if error ! = nil { // handle the error } } . updateAttribution // Your app's code Adapty. updateAttribution("", "", "") { error -> if (error == null) { // succesfull attribution update } } --- . makePurchase // Your app's code Adapty. makePurchase(product: product) { result in switch result { case let . success(profile): // successful purchase case let . failure(error): // handle the error } } . identify // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): // check the access level case let . failure(error): // handle the error } } . updateAttribution // Your app's code Adapty. identify("YOUR_USER_ID") { error in if error == nil { // successful identify } } . updateProfile // Your app's code let builder = AdaptyProfileParameters. Builder . with("Profile_Parameters") ... Adapty. updateProfile(params: builder. build) { error in if error ! = nil { // handle the error } } . updateAttribution // Your app's code Adapty. updateAttribution("", "", "") { error -> if (error == null) { // succesfull attribution update } } --- . makePurchase // Your app's code Adapty. makePurchase(product: product) { result in switch result { case let . success(profile): // successful purchase case let . failure(error): // handle the error } } . identify // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): // check the access level case let . failure(error): // handle the error } } . updateAttribution // Your app's code Adapty. identify("YOUR_USER_ID") { error in if error == nil { // successful identify } } . updateProfile // Your app's code let builder = AdaptyProfileParameters. Builder . with("Profile_Parameters") ... Adapty. updateProfile(params: builder. build) { error in if error ! = nil { // handle the error } } . updateAttribution // Your app's code Adapty. updateAttribution("", "", "") { error -> if (error == null) { // succesfull attribution update } } --- . makePurchase // Your app's code Adapty. makePurchase(product: product) { result in switch result { case let . success(profile): // successful purchase case let . failure(error): // handle the error } } . identify // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): // check the access level case let . failure(error): // handle the error } } . updateAttribution // Your app's code Adapty. identify("YOUR_USER_ID") { error in if error == nil { // successful identify } } . updateProfile // Your app's code let builder = AdaptyProfileParameters. Builder . with("Profile_Parameters") ... Adapty. updateProfile(params: builder. build) { error in if error ! = nil { // handle the error } } . updateAttribution // Your app's code Adapty. updateAttribution("", "", "") { error -> if (error == null) { // succesfull attribution update } } --- . makePurchase // Your app's code Adapty. makePurchase(product: product) { result in switch result { case let . success(profile): // successful purchase case let . failure(error): // handle the error } } . identify // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): // check the access level case let . failure(error): // handle the error } } . updateAttribution // Your app's code Adapty. identify("YOUR_USER_ID") { error in if error == nil { // successful identify } } . updateProfile // Your app's code let builder = AdaptyProfileParameters. Builder . with("Profile_Parameters") ... Adapty. updateProfile(params: builder. build) { error in if error ! = nil { // handle the error } } . updateAttribution // Your app's code Adapty. updateAttribution("", "", "") { error -> if (error == null) { // succesfull attribution update } } --- . makePurchase // Your app's code Adapty. makePurchase(product: product) { result in switch result { case let . success(profile): // successful purchase case let . failure(error): // handle the error } } . identify // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): // check the access level case let . failure(error): // handle the error } } . updateAttribution // Your app's code Adapty. identify("YOUR_USER_ID") { error in if error == nil { // successful identify } } . updateProfile // Your app's code let builder = AdaptyProfileParameters. Builder . with("Profile_Parameters") ... Adapty. updateProfile(params: builder. build) { error in if error ! = nil { // handle the error } } . updateAttribution // Your app's code Adapty. updateAttribution("", "", "") { error -> if (error == null) { // succesfull attribution update } } --- . makePurchase // Your app's code Adapty. makePurchase(product: product) { result in switch result { case let . success(profile): // successful purchase case let . failure(error): // handle the error } } . identify // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): // check the access level case let . failure(error): // handle the error } } . updateAttribution // Your app's code Adapty. identify("YOUR_USER_ID") { error in if error == nil { // successful identify } } . updateProfile // Your app's code let builder = AdaptyProfileParameters. Builder . with("Profile_Parameters") ... Adapty. updateProfile(params: builder. build) { error in if error ! = nil { // handle the error } } . updateAttribution // Your app's code Adapty. updateAttribution("", "", "") { error -> if (error == null) { // succesfull attribution update } } --- . makePurchase // Your app's code Adapty. makePurchase(product: product) { result in switch result { case let . success(profile): // successful purchase case let . failure(error): // handle the error } } . restorePurchases // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): // check the access level case let . failure(error): // handle the error } } . identify // Your app's code Adapty. identify("YOUR_USER_ID") { error in if error == nil { // successful identify } } . updateProfile // Your app's code let builder = AdaptyProfileParameters. Builder . with("Profile_Parameters") ... Adapty. updateProfile(params: builder. build) { error in if error ! = nil { // handle the error } } . updateAttribution // Your app's code Adapty. updateAttribution("", "", "") { error -> if (error == null) { // succesfull attribution update } } --- makePurchase // Your app's code Adapty. MakePurchase(product, (profile, error) => { if(error ! = null) { // handle error return; } }); restorePurchases // Your app's code Adapty. RestorePurchases((profile, error) => { if(error ! = null) { // handle the error } else { // check the access level } }); identify // Your app's code Adapty. Identify("YOUR_USER_ID", (error) => { if(error == null) { // successful identify } }); updateProfile // Your app's code var builder = new Adapty. ProfileParameters. Builder . ("Profile_Parameters") Adapty. UpdateProfile(builder. Build, (error) => { if(error ! = nil) { // handle the error } }); updateAttribution // Your app's code Adapty. UpdateAttribution("", source, "", (error) => { if (error ! = null) { // handle the error } // succesfull attribution update }); Example // Your app's code using AdaptySDK; Adapty. makePurchase(product, (profile, error) => { if (error == null) { // successful purchase } }); --- makePurchase // Your app's code try { const purchaseResult = await adapty. makePurchase(product); switch (purchaseResult. type) { case 'success': const isSubscribed = purchaseResult. profile? . accessLevels? . isActive; if (isSubscribed) { // Grant access to the paid features } break; case 'user_cancelled': // Handle the case where the user canceled the purchase break; case 'pending': // Handle deferred purchases (e. g. , the user will pay offline with cash) break; } } catch (error) { // Handle the error } restorePurchase // Your app's code try { const profile = await adapty. restorePurchases; const isSubscribed = profile. accessLevels? . isActive; if (isSubscribed) { // restore access } } catch (error) { // handle the error } identify // Your app's code try { await adapty. identify("YOUR_USER_ID"); // successfully identified } catch (error) { // handle the error } updateProfile // Your app's code try { await adapty. updateProfile(params); } catch (error) { // handle `AdaptyError` } updateAttribution import { adapty, AttributionSource } from 'react-native-adapty'; import appsFlyer from 'react-native-appsflyer'; appsFlyer. onInstallConversionData(installData => { try { const uid = appsFlyer. getAppsFlyerUID; adapty. setIntegrationIdentifier("appsflyer_id", uid); adapty. updateAttribution(installData, "appsflyer"); } catch (error) { // handle the error } }); // ... appsFlyer. initSdk(/*... */); Example import { adapty } from 'react-native-adapty'; await adapty. activate('YOUR_APP_KEY'); // Make a purchase, Adapty handles the rest try { const purchaseResult = await adapty. makePurchase(product); if (purchaseResult. type === 'success') { const profile = purchaseResult. profile; // successful purchase } } catch (error) { // handle the error } --- . makePurchase Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { val info = result. value //NOTE: info is null in case of cross-grade with DEFERRED proration mode val profile = info? . profile if (profile? . accessLevels? . get("YOUR_ACCESS_LEVEL")? . isActive == true) { // grant access to premium features } } is AdaptyResult. Error -> { val error = result. error // handle the error } } } . restorePurchases // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): if info. profile. accessLevels? . isActive ? ? false { // successful access restore } case let . failure(error): // handle the error } } . identify // Your app's code Adapty. identify("YOUR_USER_ID") { error -> if (error == null) { // successful identify } } . updateProfile // Your app's code val builder = AdaptyProfileParameters. Builder . with("Profile_Parameters") Adapty. updateProfile(builder. build) { error -> if (error ! = null) { // handle the error } } . updateAttribution // Your app's code Adapty. updateAttribution(attribution, AdaptyAttributionSource. CUSTOM) { error -> if (error ! = null) { //handle error } } Example // Your app's code Adapty. activate(this, "YOUR_APP_KEY") // Make a purchase, Adapty handles the rest Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { // successful purchase } is AdaptyResult. Error -> { // handle the error } } } --- . activate // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID") . getPaywall // Your app's code Adapty. getPaywall(placementId: "YOUR_PLACEMENT_ID", locale: "en") { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } } . makePurchase // Your app's code Adapty. makePurchase(product: product) { result in switch result { case let . success(info): if info. profile. accessLevels? . isActive ? ? false { // successful purchase } case let . failure(error): // handle the error } } . getProfile // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } } . restorePurchases // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): if info. profile. accessLevels? . isActive ? ? false { // successful access restore } case let . failure(error): // handle the error } } Example // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY") // Make a purchase, Adapty handles the rest do { let purchasedInfo = try await Adapty. makePurchase(product) // successful purchase } catch { // handle the error } --- makePurchase // Your app's code try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } restorePurchases // Your app's code try { final profile = await Adapty. restorePurchases; // check the access level } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } identify // Your app's code try { await Adapty. identify(customerUserId); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } updateProfile // Your app's code final builder = AdaptyProfileParametersBuilder . . setFirstName('John') . . setLastName('Appleseed'); try { await Adapty. updateProfile(builder. build); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } updateAttribution // Your app's code try { await Adapty. updateAttribution("", source: "", networkUserId: ""); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } Example // Your app's code import 'package:adapty_flutter/adapty_flutter. dart'; Adapty. activate; // Make a purchase, Adapty handles the rest try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (error) { // handle another errors } --- . makePurchase Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { val info = result. value //NOTE: info is null in case of cross-grade with DEFERRED proration mode val profile = info? . profile if (profile? . accessLevels? . get("YOUR_ACCESS_LEVEL")? . isActive == true) { // grant access to premium features } } is AdaptyResult. Error -> { val error = result. error // handle the error } } } . identify // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): if info. profile. accessLevels? . isActive ? ? false { // successful access restore } case let . failure(error): // handle the error } } . updateAttribution // Your app's code Adapty. identify("YOUR_USER_ID") { error -> if (error == null) { // successful identify } } . updateProfile // Your app's code val builder = AdaptyProfileParameters. Builder . with("Profile_Parameters") Adapty. updateProfile(builder. build) { error -> if (error ! = null) { // handle the error } } . updateAttribution // Your app's code Adapty. updateAttribution(attribution, AdaptyAttributionSource. CUSTOM) { error -> if (error ! = null) { //handle error } } 示例 // Your app's code Adapty. activate(this, "YOUR_APP_KEY") // Make a purchase, Adapty handles the rest Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { // successful purchase } is AdaptyResult. Error -> { // handle the error } } } --- . makePurchase Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { val info = result. value //NOTE: info is null in case of cross-grade with DEFERRED proration mode val profile = info? . profile if (profile? . accessLevels? . get("YOUR_ACCESS_LEVEL")? . isActive == true) { // grant access to premium features } } is AdaptyResult. Error -> { val error = result. error // handle the error } } } . identify // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): if info. profile. accessLevels? . isActive ? ? false { // successful access restore } case let . failure(error): // handle the error } } . updateAttribution // Your app's code Adapty. identify("YOUR_USER_ID") { error -> if (error == null) { // successful identify } } . updateProfile // Your app's code val builder = AdaptyProfileParameters. Builder . with("Profile_Parameters") Adapty. updateProfile(builder. build) { error -> if (error ! = null) { // handle the error } } . updateAttribution // Your app's code Adapty. updateAttribution(attribution, AdaptyAttributionSource. CUSTOM) { error -> if (error ! = null) { //handle error } } Exemple // Your app's code Adapty. activate(this, "YOUR_APP_KEY") // Make a purchase, Adapty handles the rest Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { // successful purchase } is AdaptyResult. Error -> { // handle the error } } } --- . makePurchase Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { val info = result. value //NOTE: info is null in case of cross-grade with DEFERRED proration mode val profile = info? . profile if (profile? . accessLevels? . get("YOUR_ACCESS_LEVEL")? . isActive == true) { // grant access to premium features } } is AdaptyResult. Error -> { val error = result. error // handle the error } } } . identify // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): if info. profile. accessLevels? . isActive ? ? false { // successful access restore } case let . failure(error): // handle the error } } . updateAttribution // Your app's code Adapty. identify("YOUR_USER_ID") { error -> if (error == null) { // successful identify } } . updateProfile // Your app's code val builder = AdaptyProfileParameters. Builder . with("Profile_Parameters") Adapty. updateProfile(builder. build) { error -> if (error ! = null) { // handle the error } } . updateAttribution // Your app's code Adapty. updateAttribution(attribution, AdaptyAttributionSource. CUSTOM) { error -> if (error ! = null) { //handle error } } Beispiel // Your app's code Adapty. activate(this, "YOUR_APP_KEY") // Make a purchase, Adapty handles the rest Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { // successful purchase } is AdaptyResult. Error -> { // handle the error } } } --- . makePurchase Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { val info = result. value //NOTE: info is null in case of cross-grade with DEFERRED proration mode val profile = info? . profile if (profile? . accessLevels? . get("YOUR_ACCESS_LEVEL")? . isActive == true) { // grant access to premium features } } is AdaptyResult. Error -> { val error = result. error // handle the error } } } . identify // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): if info. profile. accessLevels? . isActive ? ? false { // successful access restore } case let . failure(error): // handle the error } } . updateAttribution // Your app's code Adapty. identify("YOUR_USER_ID") { error -> if (error == null) { // successful identify } } . updateProfile // Your app's code val builder = AdaptyProfileParameters. Builder . with("Profile_Parameters") Adapty. updateProfile(builder. build) { error -> if (error ! = null) { // handle the error } } . updateAttribution // Your app's code Adapty. updateAttribution(attribution, AdaptyAttributionSource. CUSTOM) { error -> if (error ! = null) { //handle error } } 例 // Your app's code Adapty. activate(this, "YOUR_APP_KEY") // Make a purchase, Adapty handles the rest Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { // successful purchase } is AdaptyResult. Error -> { // handle the error } } } --- . makePurchase Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { val info = result. value //NOTE: info is null in case of cross-grade with DEFERRED proration mode val profile = info? . profile if (profile? . accessLevels? . get("YOUR_ACCESS_LEVEL")? . isActive == true) { // grant access to premium features } } is AdaptyResult. Error -> { val error = result. error // handle the error } } } . identify // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): if info. profile. accessLevels? . isActive ? ? false { // successful access restore } case let . failure(error): // handle the error } } . updateAttribution // Your app's code Adapty. identify("YOUR_USER_ID") { error -> if (error == null) { // successful identify } } . updateProfile // Your app's code val builder = AdaptyProfileParameters. Builder . with("Profile_Parameters") Adapty. updateProfile(builder. build) { error -> if (error ! = null) { // handle the error } } . updateAttribution // Your app's code Adapty. updateAttribution(attribution, AdaptyAttributionSource. CUSTOM) { error -> if (error ! = null) { //handle error } } 예시 // Your app's code Adapty. activate(this, "YOUR_APP_KEY") // Make a purchase, Adapty handles the rest Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { // successful purchase } is AdaptyResult. Error -> { // handle the error } } } --- . makePurchase Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { val info = result. value //NOTE: info is null in case of cross-grade with DEFERRED proration mode val profile = info? . profile if (profile? . accessLevels? . get("YOUR_ACCESS_LEVEL")? . isActive == true) { // grant access to premium features } } is AdaptyResult. Error -> { val error = result. error // handle the error } } } . identify // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): if info. profile. accessLevels? . isActive ? ? false { // successful access restore } case let . failure(error): // handle the error } } . updateAttribution // Your app's code Adapty. identify("YOUR_USER_ID") { error -> if (error == null) { // successful identify } } . updateProfile // Your app's code val builder = AdaptyProfileParameters. Builder . with("Profile_Parameters") Adapty. updateProfile(builder. build) { error -> if (error ! = null) { // handle the error } } . updateAttribution // Your app's code Adapty. updateAttribution(attribution, AdaptyAttributionSource. CUSTOM) { error -> if (error ! = null) { //handle error } } Przykład // Your app's code Adapty. activate(this, "YOUR_APP_KEY") // Make a purchase, Adapty handles the rest Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { // successful purchase } is AdaptyResult. Error -> { // handle the error } } } --- . makePurchase Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { val info = result. value //NOTE: info is null in case of cross-grade with DEFERRED proration mode val profile = info? . profile if (profile? . accessLevels? . get("YOUR_ACCESS_LEVEL")? . isActive == true) { // grant access to premium features } } is AdaptyResult. Error -> { val error = result. error // handle the error } } } . identify // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): if info. profile. accessLevels? . isActive ? ? false { // successful access restore } case let . failure(error): // handle the error } } . updateAttribution // Your app's code Adapty. identify("YOUR_USER_ID") { error -> if (error == null) { // successful identify } } . updateProfile // Your app's code val builder = AdaptyProfileParameters. Builder . with("Profile_Parameters") Adapty. updateProfile(builder. build) { error -> if (error ! = null) { // handle the error } } . updateAttribution // Your app's code Adapty. updateAttribution(attribution, AdaptyAttributionSource. CUSTOM) { error -> if (error ! = null) { //handle error } } Exemplo // Your app's code Adapty. activate(this, "YOUR_APP_KEY") // Make a purchase, Adapty handles the rest Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { // successful purchase } is AdaptyResult. Error -> { // handle the error } } } --- . makePurchase Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { val info = result. value //NOTE: info is null in case of cross-grade with DEFERRED proration mode val profile = info? . profile if (profile? . accessLevels? . get("YOUR_ACCESS_LEVEL")? . isActive == true) { // grant access to premium features } } is AdaptyResult. Error -> { val error = result. error // handle the error } } } . identify // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): if info. profile. accessLevels? . isActive ? ? false { // successful access restore } case let . failure(error): // handle the error } } . updateAttribution // Your app's code Adapty. identify("YOUR_USER_ID") { error -> if (error == null) { // successful identify } } . updateProfile // Your app's code val builder = AdaptyProfileParameters. Builder . with("Profile_Parameters") Adapty. updateProfile(builder. build) { error -> if (error ! = null) { // handle the error } } . updateAttribution // Your app's code Adapty. updateAttribution(attribution, AdaptyAttributionSource. CUSTOM) { error -> if (error ! = null) { //handle error } } Пример // Your app's code Adapty. activate(this, "YOUR_APP_KEY") // Make a purchase, Adapty handles the rest Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { // successful purchase } is AdaptyResult. Error -> { // handle the error } } } --- . makePurchase Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { val info = result. value //NOTE: info is null in case of cross-grade with DEFERRED proration mode val profile = info? . profile if (profile? . accessLevels? . get("YOUR_ACCESS_LEVEL")? . isActive == true) { // grant access to premium features } } is AdaptyResult. Error -> { val error = result. error // handle the error } } } . identify // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): if info. profile. accessLevels? . isActive ? ? false { // successful access restore } case let . failure(error): // handle the error } } . updateAttribution // Your app's code Adapty. identify("YOUR_USER_ID") { error -> if (error == null) { // successful identify } } . updateProfile // Your app's code val builder = AdaptyProfileParameters. Builder . with("Profile_Parameters") Adapty. updateProfile(builder. build) { error -> if (error ! = null) { // handle the error } } . updateAttribution // Your app's code Adapty. updateAttribution(attribution, AdaptyAttributionSource. CUSTOM) { error -> if (error ! = null) { //handle error } } Ejemplo // Your app's code Adapty. activate(this, "YOUR_APP_KEY") // Make a purchase, Adapty handles the rest Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { // successful purchase } is AdaptyResult. Error -> { // handle the error } } } --- . makePurchase Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { val info = result. value //NOTE: info is null in case of cross-grade with DEFERRED proration mode val profile = info? . profile if (profile? . accessLevels? . get("YOUR_ACCESS_LEVEL")? . isActive == true) { // grant access to premium features } } is AdaptyResult. Error -> { val error = result. error // handle the error } } } . identify // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): if info. profile. accessLevels? . isActive ? ? false { // successful access restore } case let . failure(error): // handle the error } } . updateAttribution // Your app's code Adapty. identify("YOUR_USER_ID") { error -> if (error == null) { // successful identify } } . updateProfile // Your app's code val builder = AdaptyProfileParameters. Builder . with("Profile_Parameters") Adapty. updateProfile(builder. build) { error -> if (error ! = null) { // handle the error } } . updateAttribution // Your app's code Adapty. updateAttribution(attribution, AdaptyAttributionSource. CUSTOM) { error -> if (error ! = null) { //handle error } } Örnek // Your app's code Adapty. activate(this, "YOUR_APP_KEY") // Make a purchase, Adapty handles the rest Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { // successful purchase } is AdaptyResult. Error -> { // handle the error } } } --- . makePurchase Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { val info = result. value //NOTE: info is null in case of cross-grade with DEFERRED proration mode val profile = info? . profile if (profile? . accessLevels? . get("YOUR_ACCESS_LEVEL")? . isActive == true) { // grant access to premium features } } is AdaptyResult. Error -> { val error = result. error // handle the error } } } . identify // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): if info. profile. accessLevels? . isActive ? ? false { // successful access restore } case let . failure(error): // handle the error } } . updateAttribution // Your app's code Adapty. identify("YOUR_USER_ID") { error -> if (error == null) { // successful identify } } . updateProfile // Your app's code val builder = AdaptyProfileParameters. Builder . with("Profile_Parameters") Adapty. updateProfile(builder. build) { error -> if (error ! = null) { // handle the error } } . updateAttribution // Your app's code Adapty. updateAttribution(attribution, AdaptyAttributionSource. CUSTOM) { error -> if (error ! = null) { //handle error } } Приклад // Your app's code Adapty. activate(this, "YOUR_APP_KEY") // Make a purchase, Adapty handles the rest Adapty. makePurchase(activity, product) { result -> when (result) { is AdaptyResult. Success -> { // successful purchase } is AdaptyResult. Error -> { // handle the error } } } --- makePurchase // Your app's code try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } restorePurchases // Your app's code try { final profile = await Adapty. restorePurchases; // check the access level } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } identify // Your app's code try { await Adapty. identify(customerUserId); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } updateProfile // Your app's code final builder = AdaptyProfileParametersBuilder . . setFirstName('John') . . setLastName('Appleseed'); try { await Adapty. updateProfile(builder. build); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } updateAttribution // Your app's code try { await Adapty. updateAttribution("", source: "", networkUserId: ""); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } Example // Your app's code import 'package:adapty_flutter/adapty_flutter. dart'; Adapty. activate; // Make a purchase, Adapty handles the rest try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (error) { // handle another errors } --- makePurchase // Your app's code try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } restorePurchases // Your app's code try { final profile = await Adapty. restorePurchases; // check the access level } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } identify // Your app's code try { await Adapty. identify(customerUserId); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } updateProfile // Your app's code final builder = AdaptyProfileParametersBuilder . . setFirstName('John') . . setLastName('Appleseed'); try { await Adapty. updateProfile(builder. build); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } updateAttribution // Your app's code try { await Adapty. updateAttribution("", source: "", networkUserId: ""); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } Exemple // Your app's code import 'package:adapty_flutter/adapty_flutter. dart'; Adapty. activate; // Make a purchase, Adapty handles the rest try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (error) { // handle another errors } --- makePurchase // Your app's code try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } restorePurchases // Your app's code try { final profile = await Adapty. restorePurchases; // check the access level } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } identify // Your app's code try { await Adapty. identify(customerUserId); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } updateProfile // Your app's code final builder = AdaptyProfileParametersBuilder . . setFirstName('John') . . setLastName('Appleseed'); try { await Adapty. updateProfile(builder. build); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } updateAttribution // Your app's code try { await Adapty. updateAttribution("", source: "", networkUserId: ""); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } Example // Your app's code import 'package:adapty_flutter/adapty_flutter. dart'; Adapty. activate; // Make a purchase, Adapty handles the rest try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (error) { // handle another errors } --- makePurchase // Your app's code try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } restorePurchases // Your app's code try { final profile = await Adapty. restorePurchases; // check the access level } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } identify // Your app's code try { await Adapty. identify(customerUserId); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } updateProfile // Your app's code final builder = AdaptyProfileParametersBuilder . . setFirstName('John') . . setLastName('Appleseed'); try { await Adapty. updateProfile(builder. build); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } updateAttribution // Your app's code try { await Adapty. updateAttribution("", source: "", networkUserId: ""); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } Example // Your app's code import 'package:adapty_flutter/adapty_flutter. dart'; Adapty. activate; // Make a purchase, Adapty handles the rest try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (error) { // handle another errors } --- makePurchase // Your app's code try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } restorePurchases // Your app's code try { final profile = await Adapty. restorePurchases; // check the access level } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } identify // Your app's code try { await Adapty. identify(customerUserId); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } updateProfile // Your app's code final builder = AdaptyProfileParametersBuilder . . setFirstName('John') . . setLastName('Appleseed'); try { await Adapty. updateProfile(builder. build); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } updateAttribution // Your app's code try { await Adapty. updateAttribution("", source: "", networkUserId: ""); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } Example // Your app's code import 'package:adapty_flutter/adapty_flutter. dart'; Adapty. activate; // Make a purchase, Adapty handles the rest try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (error) { // handle another errors } --- makePurchase // Your app's code try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } restorePurchases // Your app's code try { final profile = await Adapty. restorePurchases; // check the access level } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } identify // Your app's code try { await Adapty. identify(customerUserId); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } updateProfile // Your app's code final builder = AdaptyProfileParametersBuilder . . setFirstName('John') . . setLastName('Appleseed'); try { await Adapty. updateProfile(builder. build); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } updateAttribution // Your app's code try { await Adapty. updateAttribution("", source: "", networkUserId: ""); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } Example // Your app's code import 'package:adapty_flutter/adapty_flutter. dart'; Adapty. activate; // Make a purchase, Adapty handles the rest try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (error) { // handle another errors } --- makePurchase // Your app's code try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } restorePurchases // Your app's code try { final profile = await Adapty. restorePurchases; // check the access level } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } identify // Your app's code try { await Adapty. identify(customerUserId); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } updateProfile // Your app's code final builder = AdaptyProfileParametersBuilder . . setFirstName('John') . . setLastName('Appleseed'); try { await Adapty. updateProfile(builder. build); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } updateAttribution // Your app's code try { await Adapty. updateAttribution("", source: "", networkUserId: ""); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } Example // Your app's code import 'package:adapty_flutter/adapty_flutter. dart'; Adapty. activate; // Make a purchase, Adapty handles the rest try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (error) { // handle another errors } --- makePurchase // Your app's code try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } restorePurchases // Your app's code try { final profile = await Adapty. restorePurchases; // check the access level } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } identify // Your app's code try { await Adapty. identify(customerUserId); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } updateProfile // Your app's code final builder = AdaptyProfileParametersBuilder . . setFirstName('John') . . setLastName('Appleseed'); try { await Adapty. updateProfile(builder. build); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } updateAttribution // Your app's code try { await Adapty. updateAttribution("", source: "", networkUserId: ""); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } Example // Your app's code import 'package:adapty_flutter/adapty_flutter. dart'; Adapty. activate; // Make a purchase, Adapty handles the rest try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (error) { // handle another errors } --- makePurchase // Your app's code try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } restorePurchases // Your app's code try { final profile = await Adapty. restorePurchases; // check the access level } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } identify // Your app's code try { await Adapty. identify(customerUserId); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } updateProfile // Your app's code final builder = AdaptyProfileParametersBuilder . . setFirstName('John') . . setLastName('Appleseed'); try { await Adapty. updateProfile(builder. build); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } updateAttribution // Your app's code try { await Adapty. updateAttribution("", source: "", networkUserId: ""); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } Example // Your app's code import 'package:adapty_flutter/adapty_flutter. dart'; Adapty. activate; // Make a purchase, Adapty handles the rest try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (error) { // handle another errors } --- makePurchase // Your app's code try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } restorePurchases // Your app's code try { final profile = await Adapty. restorePurchases; // check the access level } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } identify // Your app's code try { await Adapty. identify(customerUserId); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } updateProfile // Your app's code final builder = AdaptyProfileParametersBuilder . . setFirstName('John') . . setLastName('Appleseed'); try { await Adapty. updateProfile(builder. build); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } updateAttribution // Your app's code try { await Adapty. updateAttribution("", source: "", networkUserId: ""); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } Example // Your app's code import 'package:adapty_flutter/adapty_flutter. dart'; Adapty. activate; // Make a purchase, Adapty handles the rest try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (error) { // handle another errors } --- makePurchase // Your app's code try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } restorePurchases // Your app's code try { final profile = await Adapty. restorePurchases; // check the access level } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } identify // Your app's code try { await Adapty. identify(customerUserId); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } updateProfile // Your app's code final builder = AdaptyProfileParametersBuilder . . setFirstName('John') . . setLastName('Appleseed'); try { await Adapty. updateProfile(builder. build); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } updateAttribution // Your app's code try { await Adapty. updateAttribution("", source: "", networkUserId: ""); } on AdaptyError catch (adaptyError) { // handle the error } catch (e) { } Example // Your app's code import 'package:adapty_flutter/adapty_flutter. dart'; Adapty. activate; // Make a purchase, Adapty handles the rest try { final profile = await Adapty. makePurchase(product: product); // successful purchase } on AdaptyError catch (adaptyError) { // handle the error } catch (error) { // handle another errors } --- makePurchase // Your app's code try { const purchaseResult = await adapty. makePurchase(product); switch (purchaseResult. type) { case 'success': const isSubscribed = purchaseResult. profile? . accessLevels? . isActive; if (isSubscribed) { // Grant access to the paid features } break; case 'user_cancelled': // Handle the case where the user canceled the purchase break; case 'pending': // Handle deferred purchases (e. g. , the user will pay offline with cash) break; } } catch (error) { // Handle the error } restorePurchase // Your app's code try { const profile = await adapty. restorePurchases; const isSubscribed = profile. accessLevels? . isActive; if (isSubscribed) { // restore access } } catch (error) { // handle the error } identify // Your app's code try { await adapty. identify("YOUR_USER_ID"); // successfully identified } catch (error) { // handle the error } updateProfile // Your app's code try { await adapty. updateProfile(params); } catch (error) { // handle `AdaptyError` } updateAttribution import { adapty, AttributionSource } from 'react-native-adapty'; import appsFlyer from 'react-native-appsflyer'; appsFlyer. onInstallConversionData(installData => { try { const uid = appsFlyer. getAppsFlyerUID; adapty. setIntegrationIdentifier("appsflyer_id", uid); adapty. updateAttribution(installData, "appsflyer"); } catch (error) { // handle the error } }); // ... appsFlyer. initSdk(/*... */); Example import { adapty } from 'react-native-adapty'; await adapty. activate('YOUR_APP_KEY'); // Make a purchase, Adapty handles the rest try { const purchaseResult = await adapty. makePurchase(product); if (purchaseResult. type === 'success') { const profile = purchaseResult. profile; // successful purchase } } catch (error) { // handle the error } --- makePurchase // Your app's code try { const purchaseResult = await adapty. makePurchase(product); switch (purchaseResult. type) { case 'success': const isSubscribed = purchaseResult. profile? . accessLevels? . isActive; if (isSubscribed) { // Grant access to the paid features } break; case 'user_cancelled': // Handle the case where the user canceled the purchase break; case 'pending': // Handle deferred purchases (e. g. , the user will pay offline with cash) break; } } catch (error) { // Handle the error } restorePurchase // Your app's code try { const profile = await adapty. restorePurchases; const isSubscribed = profile. accessLevels? . isActive; if (isSubscribed) { // restore access } } catch (error) { // handle the error } identify // Your app's code try { await adapty. identify("YOUR_USER_ID"); // successfully identified } catch (error) { // handle the error } updateProfile // Your app's code try { await adapty. updateProfile(params); } catch (error) { // handle `AdaptyError` } updateAttribution import { adapty, AttributionSource } from 'react-native-adapty'; import appsFlyer from 'react-native-appsflyer'; appsFlyer. onInstallConversionData(installData => { try { const uid = appsFlyer. getAppsFlyerUID; adapty. setIntegrationIdentifier("appsflyer_id", uid); adapty. updateAttribution(installData, "appsflyer"); } catch (error) { // handle the error } }); // ... appsFlyer. initSdk(/*... */); Example import { adapty } from 'react-native-adapty'; await adapty. activate('YOUR_APP_KEY'); // Make a purchase, Adapty handles the rest try { const purchaseResult = await adapty. makePurchase(product); if (purchaseResult. type === 'success') { const profile = purchaseResult. profile; // successful purchase } } catch (error) { // handle the error } --- makePurchase // Your app's code try { const purchaseResult = await adapty. makePurchase(product); switch (purchaseResult. type) { case 'success': const isSubscribed = purchaseResult. profile? . accessLevels? . isActive; if (isSubscribed) { // Grant access to the paid features } break; case 'user_cancelled': // Handle the case where the user canceled the purchase break; case 'pending': // Handle deferred purchases (e. g. , the user will pay offline with cash) break; } } catch (error) { // Handle the error } restorePurchase // Your app's code try { const profile = await adapty. restorePurchases; const isSubscribed = profile. accessLevels? . isActive; if (isSubscribed) { // restore access } } catch (error) { // handle the error } identify // Your app's code try { await adapty. identify("YOUR_USER_ID"); // successfully identified } catch (error) { // handle the error } updateProfile // Your app's code try { await adapty. updateProfile(params); } catch (error) { // handle `AdaptyError` } updateAttribution import { adapty, AttributionSource } from 'react-native-adapty'; import appsFlyer from 'react-native-appsflyer'; appsFlyer. onInstallConversionData(installData => { try { const uid = appsFlyer. getAppsFlyerUID; adapty. setIntegrationIdentifier("appsflyer_id", uid); adapty. updateAttribution(installData, "appsflyer"); } catch (error) { // handle the error } }); // ... appsFlyer. initSdk(/*... */); Example import { adapty } from 'react-native-adapty'; await adapty. activate('YOUR_APP_KEY'); // Make a purchase, Adapty handles the rest try { const purchaseResult = await adapty. makePurchase(product); if (purchaseResult. type === 'success') { const profile = purchaseResult. profile; // successful purchase } } catch (error) { // handle the error } --- makePurchase // Your app's code try { const purchaseResult = await adapty. makePurchase(product); switch (purchaseResult. type) { case 'success': const isSubscribed = purchaseResult. profile? . accessLevels? . isActive; if (isSubscribed) { // Grant access to the paid features } break; case 'user_cancelled': // Handle the case where the user canceled the purchase break; case 'pending': // Handle deferred purchases (e. g. , the user will pay offline with cash) break; } } catch (error) { // Handle the error } restorePurchase // Your app's code try { const profile = await adapty. restorePurchases; const isSubscribed = profile. accessLevels? . isActive; if (isSubscribed) { // restore access } } catch (error) { // handle the error } identify // Your app's code try { await adapty. identify("YOUR_USER_ID"); // successfully identified } catch (error) { // handle the error } updateProfile // Your app's code try { await adapty. updateProfile(params); } catch (error) { // handle `AdaptyError` } updateAttribution import { adapty, AttributionSource } from 'react-native-adapty'; import appsFlyer from 'react-native-appsflyer'; appsFlyer. onInstallConversionData(installData => { try { const uid = appsFlyer. getAppsFlyerUID; adapty. setIntegrationIdentifier("appsflyer_id", uid); adapty. updateAttribution(installData, "appsflyer"); } catch (error) { // handle the error } }); // ... appsFlyer. initSdk(/*... */); Example import { adapty } from 'react-native-adapty'; await adapty. activate('YOUR_APP_KEY'); // Make a purchase, Adapty handles the rest try { const purchaseResult = await adapty. makePurchase(product); if (purchaseResult. type === 'success') { const profile = purchaseResult. profile; // successful purchase } } catch (error) { // handle the error } --- makePurchase // Your app's code try { const purchaseResult = await adapty. makePurchase(product); switch (purchaseResult. type) { case 'success': const isSubscribed = purchaseResult. profile? . accessLevels? . isActive; if (isSubscribed) { // Grant access to the paid features } break; case 'user_cancelled': // Handle the case where the user canceled the purchase break; case 'pending': // Handle deferred purchases (e. g. , the user will pay offline with cash) break; } } catch (error) { // Handle the error } restorePurchase // Your app's code try { const profile = await adapty. restorePurchases; const isSubscribed = profile. accessLevels? . isActive; if (isSubscribed) { // restore access } } catch (error) { // handle the error } identify // Your app's code try { await adapty. identify("YOUR_USER_ID"); // successfully identified } catch (error) { // handle the error } updateProfile // Your app's code try { await adapty. updateProfile(params); } catch (error) { // handle `AdaptyError` } updateAttribution import { adapty, AttributionSource } from 'react-native-adapty'; import appsFlyer from 'react-native-appsflyer'; appsFlyer. onInstallConversionData(installData => { try { const uid = appsFlyer. getAppsFlyerUID; adapty. setIntegrationIdentifier("appsflyer_id", uid); adapty. updateAttribution(installData, "appsflyer"); } catch (error) { // handle the error } }); // ... appsFlyer. initSdk(/*... */); Example import { adapty } from 'react-native-adapty'; await adapty. activate('YOUR_APP_KEY'); // Make a purchase, Adapty handles the rest try { const purchaseResult = await adapty. makePurchase(product); if (purchaseResult. type === 'success') { const profile = purchaseResult. profile; // successful purchase } } catch (error) { // handle the error } --- makePurchase // Your app's code try { const purchaseResult = await adapty. makePurchase(product); switch (purchaseResult. type) { case 'success': const isSubscribed = purchaseResult. profile? . accessLevels? . isActive; if (isSubscribed) { // Grant access to the paid features } break; case 'user_cancelled': // Handle the case where the user canceled the purchase break; case 'pending': // Handle deferred purchases (e. g. , the user will pay offline with cash) break; } } catch (error) { // Handle the error } restorePurchase // Your app's code try { const profile = await adapty. restorePurchases; const isSubscribed = profile. accessLevels? . isActive; if (isSubscribed) { // restore access } } catch (error) { // handle the error } identify // Your app's code try { await adapty. identify("YOUR_USER_ID"); // successfully identified } catch (error) { // handle the error } updateProfile // Your app's code try { await adapty. updateProfile(params); } catch (error) { // handle `AdaptyError` } updateAttribution import { adapty, AttributionSource } from 'react-native-adapty'; import appsFlyer from 'react-native-appsflyer'; appsFlyer. onInstallConversionData(installData => { try { const uid = appsFlyer. getAppsFlyerUID; adapty. setIntegrationIdentifier("appsflyer_id", uid); adapty. updateAttribution(installData, "appsflyer"); } catch (error) { // handle the error } }); // ... appsFlyer. initSdk(/*... */); Example import { adapty } from 'react-native-adapty'; await adapty. activate('YOUR_APP_KEY'); // Make a purchase, Adapty handles the rest try { const purchaseResult = await adapty. makePurchase(product); if (purchaseResult. type === 'success') { const profile = purchaseResult. profile; // successful purchase } } catch (error) { // handle the error } --- makePurchase // Your app's code try { const purchaseResult = await adapty. makePurchase(product); switch (purchaseResult. type) { case 'success': const isSubscribed = purchaseResult. profile? . accessLevels? . isActive; if (isSubscribed) { // Grant access to the paid features } break; case 'user_cancelled': // Handle the case where the user canceled the purchase break; case 'pending': // Handle deferred purchases (e. g. , the user will pay offline with cash) break; } } catch (error) { // Handle the error } restorePurchase // Your app's code try { const profile = await adapty. restorePurchases; const isSubscribed = profile. accessLevels? . isActive; if (isSubscribed) { // restore access } } catch (error) { // handle the error } identify // Your app's code try { await adapty. identify("YOUR_USER_ID"); // successfully identified } catch (error) { // handle the error } updateProfile // Your app's code try { await adapty. updateProfile(params); } catch (error) { // handle `AdaptyError` } updateAttribution import { adapty, AttributionSource } from 'react-native-adapty'; import appsFlyer from 'react-native-appsflyer'; appsFlyer. onInstallConversionData(installData => { try { const uid = appsFlyer. getAppsFlyerUID; adapty. setIntegrationIdentifier("appsflyer_id", uid); adapty. updateAttribution(installData, "appsflyer"); } catch (error) { // handle the error } }); // ... appsFlyer. initSdk(/*... */); Example import { adapty } from 'react-native-adapty'; await adapty. activate('YOUR_APP_KEY'); // Make a purchase, Adapty handles the rest try { const purchaseResult = await adapty. makePurchase(product); if (purchaseResult. type === 'success') { const profile = purchaseResult. profile; // successful purchase } } catch (error) { // handle the error } --- makePurchase // Your app's code try { const purchaseResult = await adapty. makePurchase(product); switch (purchaseResult. type) { case 'success': const isSubscribed = purchaseResult. profile? . accessLevels? . isActive; if (isSubscribed) { // Grant access to the paid features } break; case 'user_cancelled': // Handle the case where the user canceled the purchase break; case 'pending': // Handle deferred purchases (e. g. , the user will pay offline with cash) break; } } catch (error) { // Handle the error } restorePurchase // Your app's code try { const profile = await adapty. restorePurchases; const isSubscribed = profile. accessLevels? . isActive; if (isSubscribed) { // restore access } } catch (error) { // handle the error } identify // Your app's code try { await adapty. identify("YOUR_USER_ID"); // successfully identified } catch (error) { // handle the error } updateProfile // Your app's code try { await adapty. updateProfile(params); } catch (error) { // handle `AdaptyError` } updateAttribution import { adapty, AttributionSource } from 'react-native-adapty'; import appsFlyer from 'react-native-appsflyer'; appsFlyer. onInstallConversionData(installData => { try { const uid = appsFlyer. getAppsFlyerUID; adapty. setIntegrationIdentifier("appsflyer_id", uid); adapty. updateAttribution(installData, "appsflyer"); } catch (error) { // handle the error } }); // ... appsFlyer. initSdk(/*... */); Example import { adapty } from 'react-native-adapty'; await adapty. activate('YOUR_APP_KEY'); // Make a purchase, Adapty handles the rest try { const purchaseResult = await adapty. makePurchase(product); if (purchaseResult. type === 'success') { const profile = purchaseResult. profile; // successful purchase } } catch (error) { // handle the error } --- makePurchase // Your app's code try { const purchaseResult = await adapty. makePurchase(product); switch (purchaseResult. type) { case 'success': const isSubscribed = purchaseResult. profile? . accessLevels? . isActive; if (isSubscribed) { // Grant access to the paid features } break; case 'user_cancelled': // Handle the case where the user canceled the purchase break; case 'pending': // Handle deferred purchases (e. g. , the user will pay offline with cash) break; } } catch (error) { // Handle the error } restorePurchase // Your app's code try { const profile = await adapty. restorePurchases; const isSubscribed = profile. accessLevels? . isActive; if (isSubscribed) { // restore access } } catch (error) { // handle the error } identify // Your app's code try { await adapty. identify("YOUR_USER_ID"); // successfully identified } catch (error) { // handle the error } updateProfile // Your app's code try { await adapty. updateProfile(params); } catch (error) { // handle `AdaptyError` } updateAttribution import { adapty, AttributionSource } from 'react-native-adapty'; import appsFlyer from 'react-native-appsflyer'; appsFlyer. onInstallConversionData(installData => { try { const uid = appsFlyer. getAppsFlyerUID; adapty. setIntegrationIdentifier("appsflyer_id", uid); adapty. updateAttribution(installData, "appsflyer"); } catch (error) { // handle the error } }); // ... appsFlyer. initSdk(/*... */); Example import { adapty } from 'react-native-adapty'; await adapty. activate('YOUR_APP_KEY'); // Make a purchase, Adapty handles the rest try { const purchaseResult = await adapty. makePurchase(product); if (purchaseResult. type === 'success') { const profile = purchaseResult. profile; // successful purchase } } catch (error) { // handle the error } --- makePurchase // Your app's code try { const purchaseResult = await adapty. makePurchase(product); switch (purchaseResult. type) { case 'success': const isSubscribed = purchaseResult. profile? . accessLevels? . isActive; if (isSubscribed) { // Grant access to the paid features } break; case 'user_cancelled': // Handle the case where the user canceled the purchase break; case 'pending': // Handle deferred purchases (e. g. , the user will pay offline with cash) break; } } catch (error) { // Handle the error } restorePurchase // Your app's code try { const profile = await adapty. restorePurchases; const isSubscribed = profile. accessLevels? . isActive; if (isSubscribed) { // restore access } } catch (error) { // handle the error } identify // Your app's code try { await adapty. identify("YOUR_USER_ID"); // successfully identified } catch (error) { // handle the error } updateProfile // Your app's code try { await adapty. updateProfile(params); } catch (error) { // handle `AdaptyError` } updateAttribution import { adapty, AttributionSource } from 'react-native-adapty'; import appsFlyer from 'react-native-appsflyer'; appsFlyer. onInstallConversionData(installData => { try { const uid = appsFlyer. getAppsFlyerUID; adapty. setIntegrationIdentifier("appsflyer_id", uid); adapty. updateAttribution(installData, "appsflyer"); } catch (error) { // handle the error } }); // ... appsFlyer. initSdk(/*... */); Example import { adapty } from 'react-native-adapty'; await adapty. activate('YOUR_APP_KEY'); // Make a purchase, Adapty handles the rest try { const purchaseResult = await adapty. makePurchase(product); if (purchaseResult. type === 'success') { const profile = purchaseResult. profile; // successful purchase } } catch (error) { // handle the error } --- makePurchase // Your app's code try { const purchaseResult = await adapty. makePurchase(product); switch (purchaseResult. type) { case 'success': const isSubscribed = purchaseResult. profile? . accessLevels? . isActive; if (isSubscribed) { // Grant access to the paid features } break; case 'user_cancelled': // Handle the case where the user canceled the purchase break; case 'pending': // Handle deferred purchases (e. g. , the user will pay offline with cash) break; } } catch (error) { // Handle the error } restorePurchase // Your app's code try { const profile = await adapty. restorePurchases; const isSubscribed = profile. accessLevels? . isActive; if (isSubscribed) { // restore access } } catch (error) { // handle the error } identify // Your app's code try { await adapty. identify("YOUR_USER_ID"); // successfully identified } catch (error) { // handle the error } updateProfile // Your app's code try { await adapty. updateProfile(params); } catch (error) { // handle `AdaptyError` } updateAttribution import { adapty, AttributionSource } from 'react-native-adapty'; import appsFlyer from 'react-native-appsflyer'; appsFlyer. onInstallConversionData(installData => { try { const uid = appsFlyer. getAppsFlyerUID; adapty. setIntegrationIdentifier("appsflyer_id", uid); adapty. updateAttribution(installData, "appsflyer"); } catch (error) { // handle the error } }); // ... appsFlyer. initSdk(/*... */); Example import { adapty } from 'react-native-adapty'; await adapty. activate('YOUR_APP_KEY'); // Make a purchase, Adapty handles the rest try { const purchaseResult = await adapty. makePurchase(product); if (purchaseResult. type === 'success') { const profile = purchaseResult. profile; // successful purchase } } catch (error) { // handle the error } --- . activate // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID") . makePurchase // Your app's code Adapty. getPaywall(placementId: "YOUR_PLACEMENT_ID", locale: "en") { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } } . restorePurchases // Your app's code Adapty. makePurchase(product: product) { result in switch result { case let . success(info): if info. profile. accessLevels? . isActive ? ? false { // successful purchase } case let . failure(error): // handle the error } } . getProfile // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } } . restorePurchases // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): if info. profile. accessLevels? . isActive ? ? false { // successful access restore } case let . failure(error): // handle the error } } 示例 // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY") // Make a purchase, Adapty handles the rest do { let purchasedInfo = try await Adapty. makePurchase(product) // successful purchase } catch { // handle the error } --- . activer // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID") . faireAchat // Your app's code Adapty. getPaywall(placementId: "YOUR_PLACEMENT_ID", locale: "en") { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } } . restaurerAchats // Your app's code Adapty. makePurchase(product: product) { result in switch result { case let . success(info): if info. profile. accessLevels? . isActive ? ? false { // successful purchase } case let . failure(error): // handle the error } } . getProfile // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } } . restorePurchases // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): if info. profile. accessLevels? . isActive ? ? false { // successful access restore } case let . failure(error): // handle the error } } Exemple // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY") // Make a purchase, Adapty handles the rest do { let purchasedInfo = try await Adapty. makePurchase(product) // successful purchase } catch { // handle the error } --- . aktivieren // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID") . kaufDurchführen // Your app's code Adapty. getPaywall(placementId: "YOUR_PLACEMENT_ID", locale: "en") { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } } . käufeWiederherstellen // Your app's code Adapty. makePurchase(product: product) { result in switch result { case let . success(info): if info. profile. accessLevels? . isActive ? ? false { // successful purchase } case let . failure(error): // handle the error } } . getProfile // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } } . restorePurchases // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): if info. profile. accessLevels? . isActive ? ? false { // successful access restore } case let . failure(error): // handle the error } } Beispiel // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY") // Make a purchase, Adapty handles the rest do { let purchasedInfo = try await Adapty. makePurchase(product) // successful purchase } catch { // handle the error } --- . activate // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID") . makePurchase // Your app's code Adapty. getPaywall(placementId: "YOUR_PLACEMENT_ID", locale: "en") { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } } . restorePurchases // Your app's code Adapty. makePurchase(product: product) { result in switch result { case let . success(info): if info. profile. accessLevels? . isActive ? ? false { // successful purchase } case let . failure(error): // handle the error } } . getProfile // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } } . restorePurchases // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): if info. profile. accessLevels? . isActive ? ? false { // successful access restore } case let . failure(error): // handle the error } } 例 // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY") // Make a purchase, Adapty handles the rest do { let purchasedInfo = try await Adapty. makePurchase(product) // successful purchase } catch { // handle the error } --- . activate // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID") . makePurchase // Your app's code Adapty. getPaywall(placementId: "YOUR_PLACEMENT_ID", locale: "en") { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } } . restorePurchases // Your app's code Adapty. makePurchase(product: product) { result in switch result { case let . success(info): if info. profile. accessLevels? . isActive ? ? false { // successful purchase } case let . failure(error): // handle the error } } . getProfile // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } } . restorePurchases // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): if info. profile. accessLevels? . isActive ? ? false { // successful access restore } case let . failure(error): // handle the error } } 예제 // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY") // Make a purchase, Adapty handles the rest do { let purchasedInfo = try await Adapty. makePurchase(product) // successful purchase } catch { // handle the error } --- . aktywuj // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID") . zakup // Your app's code Adapty. getPaywall(placementId: "YOUR_PLACEMENT_ID", locale: "en") { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } } . przywróćZakupy // Your app's code Adapty. makePurchase(product: product) { result in switch result { case let . success(info): if info. profile. accessLevels? . isActive ? ? false { // successful purchase } case let . failure(error): // handle the error } } . getProfile // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } } . restorePurchases // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): if info. profile. accessLevels? . isActive ? ? false { // successful access restore } case let . failure(error): // handle the error } } Przykład // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY") // Make a purchase, Adapty handles the rest do { let purchasedInfo = try await Adapty. makePurchase(product) // successful purchase } catch { // handle the error } --- . activate // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID") . makePurchase // Your app's code Adapty. getPaywall(placementId: "YOUR_PLACEMENT_ID", locale: "en") { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } } . restorePurchases // Your app's code Adapty. makePurchase(product: product) { result in switch result { case let . success(info): if info. profile. accessLevels? . isActive ? ? false { // successful purchase } case let . failure(error): // handle the error } } . getProfile // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } } . restorePurchases // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): if info. profile. accessLevels? . isActive ? ? false { // successful access restore } case let . failure(error): // handle the error } } Exemplo // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY") // Make a purchase, Adapty handles the rest do { let purchasedInfo = try await Adapty. makePurchase(product) // successful purchase } catch { // handle the error } --- . activate // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID") . makePurchase // Your app's code Adapty. getPaywall(placementId: "YOUR_PLACEMENT_ID", locale: "en") { result in switch result { case let . success(paywall): // the requested paywall case let . failure(error): // handle the error } } . restorePurchases // Your app's code Adapty. makePurchase(product: product) { result in switch result { case let . success(info): if info. profile. accessLevels? . isActive ? ? false { // successful purchase } case let . failure(error): // handle the error } } . getProfile // Your app's code Adapty. getProfile { result in if let profile = try? result. get { // check the access } } . restorePurchases // Your app's code Adapty. restorePurchases { result in switch result { case let . success(profile): if info. profile. accessLevels? . isActive ? ? false { // successful access restore } case let . failure(error): // handle the error } } Пример // Your app's code import Adapty Adapty. activate("PUBLIC_SDK_KEY") // Make a purchase, Adapty handles the rest do { let purchasedInfo = try await Adapty. makePurchase(product) // successful purchase } catch { // handle the error } --- --- ## Webinars Откройте для себя практические инструменты финансирования развития приложений в 2025 году Хотите ускорить рост без инвесторов и потери доли? На вебинаре разберем реальные инструменты финансирования для мобильных приложений: Факторинг: как использовать средства из App Store и Google Play без ожидания 30–45 дней. Ранние источники капитала: FFF, собственные средства, ангелы, акселераторы и гранты. Финансирование роста и масштабирования: revenue-based financing, паблишинг, кредитные линии и институциональные фонды. --- Get your ASO roasted live and learn what’s holding you back with Replug’s experts. Join us for a live ASO review session, where we’ll walk through three selected apps, analyze their app store presence, and share practical, expert-level recommendations from REPLUG, a mobile growth agency with proven experience in boosting app visibility and performance across global markets. Our speaker, Luca Mastrorocco, Co-founder at REPLUG, and host, Murat Menzilci, Developer Advocate Lead at Adapty, will offer insights based on years of hands-on experience in mobile growth and app store optimization. What to expect: Why isn’t your app ranking better? What should you test first? How does ASO align with UA and product strategy? Which markets are worth localizing for and how to do it right? --- Discover what’s really driving growth in 2025. Join us for a live webinar where we’ll break down what’s really happening with in-app subscriptions in 2025 using exclusive data from Adapty’s report based on 11,000+ apps, 160K paywalls, and $1. 9B in tracked revenue. Inside, you’ll learn how to: - Price smarter across regions using the new Adapty Pricing Index - Choose the right plan type to maximize retention and LTV - Decide whether to use a trial and what length works best - Run better paywall experiments, backed by real-world resultsSave your spot. --- Join a live teardown with ScreensDesign and Adapty. Get tips, spot UX mistakes, and see how AI boosts monetization. What do fast-growing apps getting $10K+ MRR within a year have in common? It’s not luck. It's intentional onboarding, smart monetization, and a paywall that converts. In this live session, we’ll review three recently launched apps from different categories together with Alex Vech, Founder of ScreensDesign. What we’ll cover: Onboarding that drives retention. Practical examples of user flows that engage early and keep users coming back. Paywall strategy that works. How recently launched apps approach placement, pricing, and logic to maximize conversion and what you should test next. UX patterns to fix (and follow). The most common mistakes we see, and the proven design choices used by high-performing apps. AI in monetization workflows. How AI speeds up testing, improves paywall iterations, and where it fits in your roadmap. Secure your spot. Bring your questions. Walk away with practical ideas to apply tomorrow. --- Discover how to scale your mobile video content using CapCut fast, simple, and effective. Join us for a practical, hands-on session where we’ll walk you through how to create high-quality video content for your app using CapCut, one of the most powerful and accessible editing tools available today. In just one hour, you’ll learn how to build scroll-stopping creatives using ready-made hooks, captions, transitions, and more all without needing a production team. Whether you're a founder, marketer, or creative on a mobile growth team, this session will help you get more out of your content efforts. What we’ll cover: Why CapCut is the easiest way to scale app video content How to navigate the CapCut interface Basic editing techniques: cuts, sound, speed, and layout Adding eye-catching text, transitions, effects, stickers, and filters Using AI-generated subtitles to improve clarity and engagement Working with music and sound effects Exporting and publishing videos to TikTok, Instagram, and YouTube Join us to discover how you can turn your app into a content engine without sacrificing time, quality, or creativity. --- Join us to explore fresh Search Ads tactics for 2025 and learn how to boost your app's growth Yeni dönemde ASO/ASA performansınızı nasıl artırabilirsiniz? Search Ads gerçekten pahalı mı yoksa doğru stratejileri mi uygulamıyoruz? Viral olmayan uygulamalar için neden birinci reklam kanalı olabilir? Bu soruların cevaplarını birlikte keşfedeceğimiz bu webinara sizi davet ediyoruz. Bu webinara neden katılmalısınız? Katılımcılar, güncel ve etkili Search Ads stratejilerini öğrenecek, pazarlama performansını artırma yollarını keşfedecek ve sektördeki yeni trendlerle tanışacak. Etkinlik, uygulama büyümesi ve reklam performansı odaklı uzman görüşleri sunuyor. Konuşmacılarımız, gerçek deneyimlerden yola çıkarak pratik ipuçları ve uygulanabilir önerilerle katkıda bulunacak. Kimler için? Uygulama geliştiricileri, pazarlama uzmanları, büyüme ekipleri ve performans reklamcılığıyla ilgilenen tüm profesyoneller için tasarlandı. Şimdi kaydolun ve sorularınızı paylaşarak aktif katılım sağlayın! Birlikte öğrenelim, birlikte büyüyelim! --- Dive deep into the psychological triggers that drive user behavior at every stage of the funnel — from the first ad impression to the final subscription decision. This webinar dives deep into the psychological triggers that drive user behavior at every stage of the funnel — from the first ad impression to the final subscription decision. Whether you’re running user acquisition campaigns or optimizing paywalls, this session will give you actionable frameworks to align your ads and monetization strategy for maximum ROI. What you'll learn:- How to optimize ads to influence user decisions- What really drives ad performance- What makes users say “Yes” to a subscription- How to identify high-LTV user segments --- Пришлите свой креатив и получите лайв-разбор от креативного продюсера и growth эксперта! Вы разрабатываете мобильные приложения и хотите, чтобы ваши креативы стали ещё эффективнее? Присылайте их нашему эксперту и получите детальный анализ с полезными рекомендациями. Что будет на вебинаре: Лайв-разбор присланных креативов с комментариями и советами. Практические идеи по оптимизации и повышению эффективности. Q&A с креативным продюсером и growth экспертом. Это шанс получить обратную связь от профессионала и узнать, как улучшить креативы для большей вовлечённости и конверсии. Регистрируйтесь и присылайте свои креативы на разбор! --- Join our webinar to get step-by-step examples of what’s working in Japan right now, straight from the apps that are nailing it. Many apps fail to gain traction in Japan because they rely on global strategies that simply don’t resonate with Japanese users. From onboarding flows that feel rushed to paywalls that scare users away, the stakes are high — and the cost of getting it wrong is even higher. Join our webinar to get step-by-step examples of what’s working in Japan right now, straight from mobile marketing leaders aix Inc. We'll cover: Why Western onboarding & paywall designs fail in Japan—and how to fix them Step-by-step onboarding strategies that align with Japanese cultural expectations Proven strategies to build trust, reduce friction, and drive subscriptions in Japan Why Japanese users hesitate at paywalls—and how to boost conversions Reserve your spot now and transform your app’s performance in Japan! --- Bu canlı yayında konuğumuz Each AI ekibinden Co-founder & CEO Eftal Yurtseven ile mobil AI uygulamalarındaki son trendleri konuşacağız. Mobil uygulama mağazalarında son iki yılda AI tabanlı uygulama sayısında ve gelirlerinde inanılmaz bir artış var. Birçok geliştirici ve şirket için en son trendleri ve modelleri takip etmek bu yarışta çok önemli. Bu canlı yayında konuğumuz Each AI ekibinden Co-founder & CEO Eftal Yurtseven ile mobil AI uygulamalarındaki son trendleri konuşacağız. Neler konuşulacak? En güncel ve popüler olan modeller AI Tabanlı uygulamalar için verimli backend yapıları oluşturma stratejileri Karma gelir modelleri kullanarak uygulama kazançlarını arttırma yolları Ve daha fazlası Hemen canlı yayın için kayıt olun ve siz de yerinizi alın! --- Join our webinar to uncover why Korean apps ace onboarding & paywalls — and how you can adapt their winning strategies to boost conversions and engagement. Korean users have unique expectations, and if you’re using the same strategies that work in the West, you’re probably leaving money — and users — on the table. The truth is, Korea’s app market is a whole different ballgame. From paywalls that focus on discounts to cultural nuances that shape user behavior, there’s a lot to unpack. And if you don’t get it right, you risk losing out to competitors who do. In this no-nonsense webinar with mobile marketing leaders in Korea — aix Inc. We'll cover: Why Korean apps focus on benefits (e. g. discount) in paywalls Lessons from top-grossing Korean apps: Subscription vs. in-app purchases Cultural UX differences: What works in Korea but may not in Western markets? Reserve your spot now — your Korean users are waiting! --- Join our webinar with Patrick Falzon, CEO of The App Shop to turn your pricing strategy into a powerful engine for scaling your business. Finding the right pricing strategy can be a real challenge. Common mistakes lead to low conversion rates, high churn, and missed opportunities for scaling. How to set prices that will attract users, retain them, and grow revenue? Join our webinar with Patrick Falzon, CEO of The App Shop to turn your pricing strategy into a powerful engine for scaling your business. We'll discuss: How to use mobile user habits to set prices How to form subscription plans that fit real users How to keep users longer with smart pricing How to test and tweak your plans --- Join our live Q&A session to learn how to grow your app with Adapty We know, app growth can be a real headache. That’s why we’re hosting a live session: “Getting started with Adapty” Join our weekly session to learn how to grow your app with Adapty. It's a live Q&A where our Developer Advocate can answer any related questions — our platform, app development struggles, or our favorite tips for growing revenue. --- Learn how to keep your app compliant with App Store and Google Play guidelines, avoid rejections, and prevent costly suspensions with expert tips! With strict guidelines and frequent updates, many apps risk being rejected in the App Store or Google Play. How can you ensure your app stays compliant and avoids costly suspensions? We'll discuss: Why the apps get rejected and how to avoid it. How to stay on top of App Store and Google Play guidelines. Tips for integrating compliance into your app development process. Ways to quickly spot and fix potential compliance issues. --- Struggling to get more subscribers from your app’s paywall? Join us for a laid-back, practical webinar where we’ll share simple tips you can apply right away to boost conversions without all the fluff. Here’s what we’ll chat about: Setting the right price (without guessing). How to offer trials and discounts that actually work. Little design tweaks that make a big difference. Just real talk with our growth team and useful tips you can start using today! --- Хотите получать больше подписчиков с пейволла в своём приложении? Присоединяйтесь к нашему уютному вебинару, где мы поделимся простыми, но действенными советами по повышению конверсий. О чём поговорим: Как грамотно отобразить цены. Как эффективно исользовать пробные периоды и скидки. Какие элементы дизайна помогут увеличить конверсию. Вас ждёт живое общение с нашей командой по развитию и только рабочие советы, которыми вы сможете начать пользоваться уже сегодня! --- Uygulamanızın paywallu ile daha çok abone kazanmakta zorlanıyor musunuz? Dönüşümlerinizi arttırmanıza yardımcı olacak ve kolayca uygulayabileceğiniz pratik ipuçlarını paylaşacağımız webinarda bize katılın. Neler konuşulacak? Doğru fiyatı belirleme (tahmin etmek zorunda olmadan). Trial ve indirimleri nasıl sunmalısınız. Büyük fark yaratan küçük tasarım değişiklikleri. Growth ekibimizle konuşma ve uygulamanızda fark yaratacak taktikleri öğrenme şansını kaçırmayın! --- Mars Studios ekibinden Growth Marketing Manager Eylül İyison ve CEO Destan Keskinkılıç'ın yorumlarıyla TikTok reklamcılığının tüm detaylarını konuşacağımız özel webinarımıza katılın! TikTok reklamları ile uygulamanızın büyümesini hızlandırmanıza yardımcı olacak bir canlı yayına davetlisiniz. Uygulama indirmelerinizi ve subscription gelirlerinizi arttırmak ve yeni kitlelere ulaşabilmek için TikTok'un gücünden nasıl yararlanacağınızı öğrenmek ister misiniz? Mars Studios ekibinden Growth Marketing Manager Eylül İyison ve CEO Destan Keskinkılıç'ın yorumlarıyla TikTok reklamcılığının tüm detaylarını konuşacağımız özel webinarımıza katılın! Neler konuşulacak? TikTok'un reklam platformu olarak temelleri Subscription growth üzerine detaylar Creative ve reklam test stratejileri Birçok başarılı kampanyayı yönetmiş uzman konuklarımızın yorumlarını dinlemek ve soru sorma şansı için siz de hemen kayıt olun, canlı yayına katılın! --- Join our exclusive interactive session where you get to submit your app’s paywalls for a live review. We’ll break down paywalls and reveal insights on how to optimize them for maximum conversions. Join our exclusive interactive session where you get to submit your app’s paywalls for a live review. We’ll break down paywalls and reveal insights on how to optimize them for maximum conversions. Simply fill in the registration form and then attach your paywall if you’d like it to be reviewed by our experts! --- Join us on the webinar and learn how to maximize app revenue by avoiding marketing mistakes with Michal Synowiec from AppDNA. Join us on the webinar and learn how to maximize app revenue by avoiding marketing mistakes with Michal Synowiec from AppDNA. During the session, we'll discuss common marketing mistakes, optimizing your marketing strategies to scale your growth, latest trends in app marketing, and so on. Don't miss out on the opportunity to boost your app's success. Register now! --- Bu canlı yayında konuğumuz Aysel Aydın ile bireysel geliştirici olma serüvenini konuşacağız. Play Store'da yayınladığı uygulamalarla gelir elde etme hikayesini dinleyeceğimiz sohbete sizleri de bekliyoruz. Hemen kayıt olup yerinizi ayırın! Bu canlı yayında konuğumuz Aysel Aydın ile bireysel geliştirici olma serüvenini konuşacağız. Play Store'da yayınladığı uygulamalarla gelir elde etme hikayesini dinleyeceğimiz sohbete sizleri de bekliyoruz. Hemen kayıt olup yerinizi ayırın! --- Sektördeki en kapsamlı abonelik raporunu canlı yayında uzman konuklarımızla değerlendirip, yorumluyoruz. Sektördeki en kapsamlı abonelik raporunu canlı yayında uzman konuklarımızla değerlendirip, yorumluyoruz. 2024 yılının iOS uygulama pazarına dair fiyat değişiklikleri, LTV, retention, renewal, refund oranları ve en iyi çalışan paywall örneklerini içeren raporu ilk kez bu canlı yayında öğreneceksiniz. Hemen kayıt olun siz de yerinizi alın. --- Are you ready to skyrocket your app's subscription revenue? Are you ready to skyrocket your app's subscription revenue? We've got an exciting opportunity for you! Join our upcoming webinar featuring Simon Thillay, Head of ASO at AppTweak. Get ready to learn cutting-edge strategies and secrets that will help you harness the power of App Store Optimization and Apple Search Ads to take your app's revenue to new heights. In this webinar, you'll discover: How to choose money-making keywords, Proven strategies to increase your app's organic reach, Expert advice on creating profitable campaigns, Don't miss out on this incredible chance and save your spot now! --- Yazılım şirketlerinin vergiler konusunda bilmesi gereken tüm detayları ve en çok sorulan soruların cevaplarını öğrenmek için bu canlı yayını kaçırmayın. Yazılım şirketlerinin vergiler konusunda bilmesi gereken tüm detayları ve en çok sorulan soruların cevaplarını öğrenmek için bu canlı yayını kaçırmayın. Sizi konuğumuz Evren Özmen ile birlikte vergi ve teşvikler konusunda en son yasal düzenlemeleri içeren bir canlı yayına davet ediyoruz. Neler konuşulacak? En son yayınlanan vergi düzenlemeleri Yurtdışı hizmet ve diğer gelir türlerinde vergi avantajları Ve daha fazlası. Siz de kayıt olun canlı yayında yerinizi alın. Not: Yayının tüm kaydı eposta olarak etkinlik sonrası size gönderilecektir. --- Kickstart 2024 well-prepared for upcoming updates! Kickstart 2024 well-prepared for upcoming updates! Apple's pricing updates have been surprising recently. Join our panel, and we will equip you with all the necessary information. Our experts will discuss in detail the most significant updates in the App Store for 2024. We understand that it’s not just about updates; it’s about all the actionable tips and techniques that will actually work. During our live panel you will learn: - The newest features coming to the App Store in 2024, - Discussion of the most up-to-date insights for 2024, - Dos and don'ts in mobile marketing for the upcoming year, - Predictions, risks, and numbers for the new year. Don't miss the chance to ask our experts and get hands-on with Apple pricing updates during the Q&A! Join us for this panel to succeed in the app business in 2024! Register now. --- Türkiye'nin ilk ve en büyük mobil uygulama girişimci topluluğu olan SubHub Türkiye'de her hafta canlı yayında mobil abonelik dünyasından son gelişmeler, reklam platformları ve sektöre dair konuşup, fikir alışverişinde bulunacağız. SubHub Türkiye topluluğunun haftalık canlı yayınlarına davetlisiniz! Türkiye'nin ilk ve en büyük mobil uygulama girişimci topluluğu olan SubHub Türkiye'de her hafta canlı yayında mobil abonelik dünyasından son gelişmeler, reklam platformları ve sektöre dair konuşup, fikir alışverişinde bulunacağız. Zoom linki mailinize gönderilecektir. Görüşmek üzere! --- Apple Search Ads 20 ülke ile birlikte sonunda Türkiye'de de hizmete girdi. Reklam kanalları arasında en yüksek dönüşüm yüzdelerinden birine sahip olan Apple Search Ads ile ilgili giriş seviyesinden ileri seviyeye kadar tüm detayları bu yayında öğreneceksiniz. Apple Search Ads 20 ülke ile birlikte sonunda Türkiye'de de hizmete girdi. Reklam kanalları arasında en yüksek dönüşüm yüzdelerinden birine sahip olan Apple Search Ads ile ilgili giriş seviyesinden ileri seviyeye kadar tüm detayları bu yayında öğreneceksiniz. Neler var? Apple Search Ads'in Türkiye'de hizmet vermeye başlamasının önemi nedir? Dönüşümü yüksek reklam kampanyaları nasıl oluşturulur? Kampanyaların detaylı analizleri nasıl yapılır? Karlı kampanyalar için uzman tavsiyeleri Formu doldurun yayın linkini epostanıza gönderelim! --- Web-to-App funnels are revolutionizing mobile app revenue growth, helping businesses overcome the limitations of app stores. However, launching a Web-to-App funnel can feel daunting, as it comes with its own risks, including significant investment in user acquisition, technology, and optimization. Web-to-App funnels are revolutionizing mobile app revenue growth, helping businesses overcome the limitations of app stores. However, launching a Web-to-App funnel can feel daunting, as it comes with its own risks, including significant investment in user acquisition, technology, and optimization. In this webinar, we’ll discuss 5 proven strategies to help you master the Web-to-App funnel and take it from 0 to 100. Join us to learn: How to launch winning Web-to-App user acquisition campaigns with best channels and creatives How to set up marketing attribution properly for accurate tracking Tips to create an engaging onboarding experience How to choose the ideal payment provider for seamless Web-to-App transactions Effective monetization strategies that make Web-to-App funnels profitable --- Son dönemde Maliye Bakanlığı'nın açıkladığı %80 vergi istisnası ve mobil uygulama geliştiren şirketlerin vergileri hakkında Evren Özmen ile canlı yayında tüm ayrıntıları konuşacağız. Son dönemde Maliye Bakanlığı'nın açıkladığı yurtdışı hizmet gelirinde %80'lik vergi istisnası ve mobil uygulama geliştiren şirketlerin vergilerine dair merak edilen konuları Evren Özmen ile canlı yayında tüm ayrıntılarıyla konuşacağız. Merak ettiğiniz soruların yanıtlarını da bu yayında bulacaksınız. Etkinlik Zoom üzerinde canlı yayınlanacaktır. Hemen kayıt olup yerinizi ayırın! --- The holiday season is huge for subscription apps. Whether it’s Halloween, Black Friday, Christmas, or New Year’s, some apps see up to 30% of their annual revenue during these times. So, how do you make sure your app is ready to cash in? The holiday season is huge for subscription apps. Whether it’s Halloween, Black Friday, Christmas, or New Year’s, some apps see up to 30% of their annual revenue during these times. So, how do you make sure your app is ready to cash in? Join us for a practical and actionable webinar on how to prepare your mobile subscription app for the holiday season. Our expert Jacob Rushfinn (author of Retention. blog, Retention & Monetization Consultant) will walk you through strategies to optimize your pricing, promotions, and in-app experience to boost conversions and retain users. What you’ll learn: How to create killer holiday offers that work for Halloween, Black Friday, Christmas, and beyond Proven strategies to keep users around even after the holiday buzz dies down Real examples from subscription apps that nailed their holiday promotions Don’t miss out on the chance to level up your app’s performance during the biggest sales season of the year! --- Join us for an exclusive session where we take you inside Adapty, showcasing how our tools can boost your app’s revenue. We’ll gather all your questions and walk you through the key features of our all-in-one tool for subscription apps. Join us for an exclusive session where we take you inside Adapty, showcasing how our tools can boost your app’s revenue. We’ll gather all your questions and walk you through the key features of our all-in-one tool for subscription apps. In this session, we’ll cover: Comprehensive analytics for informed decision-making Fast migration/launch from in-house development or other platforms No-code paywalls you can create without a designer Discover how Adapty can streamline your app’s growth and optimize your revenue strategy. --- In today’s competitive app market, simply launching your app isn’t enough. You need the perfect blend of App Store Optimization (ASO) and Apple Search Ads to drive downloads and outsmart your competition. Join us for a power-packed session where we’ll reveal insider strategies to skyrocket your app's visibility, conversions, and overall success on the App Store. Our webinar will equip you with actionable insights to elevate your app’s performance. In today’s competitive app market, simply launching your app isn’t enough. You need the perfect blend of App Store Optimization (ASO) and Apple Search Ads to drive downloads and outsmart your competition. Join us for a power-packed session where we’ll reveal insider strategies to skyrocket your app's visibility, conversions, and overall success on the App Store. Our webinar will equip you with actionable insights to elevate your app’s performance. Why Attend? Learn how these two strategies work together to drive more downloads and visibility. Discover data-driven techniques to optimize your ad campaigns and get the most out of your budget. Hear real examples and expert tips to avoid common mistakes and boost your app’s performance. --- Our panel, including Max from GrowthMads, Artem from UnionApps, and Altai from DiveoMedia, will discuss market challenges and adaptation, paywall & pricing strategies for 2023, impacts of experiments on revenue, and new market trends. Recoding: https://youtu. be/ojcJs6-g-A4 Uncover the future of mobile subscriptions in our expert-led webinar, discussing 'State of In-App Subscriptions 2023'. Our panel, including Max from GrowthMads, Artem from UnionApps, and Altai from DiveoMedia, will discuss market challenges and adaptation, paywall & pricing strategies for 2023, impacts of experiments on revenue, and new market trends. Learn how to adapt to changes, strategize paywalls and pricing, and capitalize on quality experimentation for increased revenue. Don't miss out on this comprehensive deep-dive into the world of subscription apps. --- Şirketiniz için devlet teşviğine başvurmayı planlıyorsanız bu webinara mutlaka katılmalısınız! Şirketiniz için devlet teşviğine başvurmayı planlıyorsanız bu webinara mutlaka katılmalısınız! Yazılım şirketleri için devlet teşvikleri ile ilgili tüm ayrıntıları bu yayında bulacaksınız. Neden katılmalısınız? Teşvik alabilmeniz için gerekli en son şartlar hakkında bilgi sahibi olun. Reklam harcamaları için nasıl ödeme alacağınızı öğrenin. Yazılım araçları ve diğer destekleri tüm ayrıntılarını keşfedin. --- Join us for an exclusive webinar designed for app owners, marketing experts, and growth managers looking to stay ahead of the curve in the rapidly evolving world of in-app subscriptions. During this session, we'll discuss the highly anticipated "State of In-App Subscriptions 2024" report by Adapty. Join us for an exclusive webinar designed for app owners, marketing experts, and growth managers looking to stay ahead of the curve in the rapidly evolving world of in-app subscriptions. During this session, we'll discuss the highly anticipated "State of In-App Subscriptions 2024" report by Adapty. Why Attend? Get expert advice on when to implement weekly subscriptions. Understand the regional differences in LTV and how to optimize your strategy accordingly. Discover practical AI tools and strategies to enhance your app's performance and profitability. Learn from real-world examples and get actionable tips to take your app to the next level. --- --- > _Generation by VM Adapty Automation_ ---