1.1.5: conversion funnel overhaul

Paywall:
- Redesigned PremiumView with yearly/monthly/lifetime side by side
- 7-day free trial badge with savings % vs monthly
- Social proof line, BEST VALUE highlight on yearly
- StoreManager: new yearlyProduct, lifetimeProduct, yearlySavingsPercent, hasTrialAvailable

Funnel:
- Paywall step added to onboarding (PaywallStepView)
- Contextual modal at dish limit (replaces silent block)
- Visible "X/15 dishes" counter in DishListView
- BottomPromoBanner rotates AdMob with internal "Remove ads" CTA (1 in 4)
- Free dish limit lowered 20 → 15
- Review prompt earlier: 2 weeks → 1 week

Analytics:
- paywall_viewed/dismissed with source + seconds_on_screen
- dish_limit_hit, week_limit_hit, free_trial_started events
- Every PremiumView call site now passes its source

StoreKit:
- MealMood.storekit: added yearly $19.99 + 7d trial, monthly trial, lifetime $39.99
- AppStoreConnect-1.1.5-setup.md with full manual setup instructions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
alexandrev-tibco
2026-06-11 22:21:36 +02:00
parent 72770801d3
commit b45cb2a530
31 changed files with 1067 additions and 104 deletions
@@ -199,7 +199,31 @@
"premium_purchase_cancelled" = "A compra foi cancelada.";
"premium_purchase_failed" = "A compra falhou. Tente novamente.";
"tag_selector_empty" = "Ainda não há tags disponíveis";
"premium_limit_dishes" = "Limite do plano grátis atingido: 20 pratos";
"premium_limit_dishes" = "Limite do plano grátis atingido: 15 pratos";
"dish_counter_label" = "pratos";
"dish_counter_upgrade_hint" = "Toque para pratos ilimitados com Premium";
"dish_limit_modal_title" = "Você está arrasando! 🔥";
"dish_limit_modal_message" = "Você encheu seu plano grátis. Desbloqueie pratos ilimitados, regras avançadas e mais com Premium.";
"dish_limit_modal_cta" = "Ver Premium";
"dish_limit_modal_dismiss" = "Talvez depois";
"onboarding_paywall_title" = "Experimente MealMood Premium grátis";
"onboarding_paywall_subtitle" = "Tudo liberado por 7 dias — sem compromisso.";
"onboarding_paywall_cta_trial" = "Iniciar teste grátis";
"onboarding_paywall_cta_skip" = "Continuar grátis";
"remove_ads_promo_title" = "Cansado de anúncios?";
"remove_ads_promo_subtitle" = "Vire Premium e nunca mais veja um.";
"remove_ads_promo_cta" = "Remover anúncios";
"premium_yearly" = "Anual";
"premium_year" = "ano";
"premium_lifetime" = "Vitalício";
"premium_one_time" = "pagamento único";
"premium_lifetime_badge" = "PAGAMENTO ÚNICO";
"premium_buy_lifetime" = "Comprar vitalício";
"premium_save_badge" = "ECONOMIZE %@";
"premium_best_value" = "MELHOR OPÇÃO";
"premium_trial_badge" = "7 dias grátis";
"premium_trial_note" = "Grátis por 7 dias, depois %@. Cancele quando quiser.";
"premium_social_proof" = "Aprovado por famílias felizes ★★★★★";
"premium_limit_rules" = "Regras avançadas de tags são Premium";
"premium_limit_future_weeks" = "O plano grátis permite planejar até a próxima semana";