progma_flutter 0.6.1 copy "progma_flutter: ^0.6.1" to clipboard
progma_flutter: ^0.6.1 copied to clipboard

PlatformAndroid
unlisted

Progma analytics, revenue, conversion attribution, native billing and SDUI paywall engine.

0.6.1 #

  • SDUI plan selection: product_card is selectable (radio style, starts on the highlight card) and a purchase_button with useSelection: true buys the selected plan.
  • product_card shows badge, uses style.color/borderColor/backgroundColor, and prices the exact base plan/offer on the card.
  • Styles accept padding/margin as a number or "t r b l", gradient as {colors}, plus textAlign, borderColor and borderWidth (same formats as the Android SDK).
  • purchase_button honors backgroundColor, color, borderRadius, height, fontSize, fontWeight and gradients.
  • The paywall keeps rendering with dashboard prices when Google Play is unavailable.

0.6.0 #

Breaking / behavior changes (integration hardening):

  • Requires Flutter 3.44+ / Dart 3.12+: the Android plugin uses Flutter's built-in Kotlin (no KGP), which future Flutter versions require.
  • configure() never auto-provisions apps: the app must exist in the Progma panel. Without sdkKey, the package name must match exactly one registered app. The fallback package com.progma.app and the placeholder key progma_sdk_auto_pending were removed.
  • configure() no longer throws on network errors; the last config is cached and used offline/at cold start (single cache key).
  • flush()/flushAdRevenue() never throw, send batches of 50, keep the batch on network/408/429/401/5xx and drop batches the backend rejects with other 4xx (no more stuck queues). Queue capped at 1000 events.
  • ProgmaProduct accepts productId (as saved by the dashboard) besides id, and exposes basePlanId/offerId. Before, a paywall saved by the dashboard broke the whole config parse.
  • New purchasePaywallProduct() and queryAnyStoreProducts() (subscriptions and one-time products). Paywalls no longer query one-time products as subscriptions.
  • restorePurchases() uses the store type of each purchase, so restored subscriptions are verified (and re-grant access).
  • Feature-access reasons match the backend: emergency_kill, flag_kill_switch, version_outdated, paywall_required, ... (kill_switch was split).
  • registerPlacement() gates by the placement's paywall when there is no flag with the same key; a flag-gated placement without a paywall no longer runs the feature.
  • Hard SDUI paywalls cannot be closed with back/close buttons; terms/privacy links open; invalid colors no longer crash the paywall.
  • New openUrl(), openStoreListing(), openSubscriptionManagement(); ProgmaVersionGuard and ProgmaCustomerCenter buttons now work.
  • Install referrer is submitted once per install; deep links forward gclid/gbraid/wbraid/fbclid/UTM content/term.

0.5.7 #

  • Customer Lifecycle Telemetry & Full Timeline Tracking:
    • trackPurchase now serializes rich purchase metadata (title, formattedPrice, basePlanId, offerId, store = 'Play Store') in purchase.raw and event properties.
    • Automatically wired into purchaseStoreProduct and restorePurchases.
    • Identity alias history tracking in Progma.instance.identify: records previous_user_id transitions and emits alias_created telemetry matching backend timeline requirements.
    • Native Firebase Analytics bridge expanded: added reflection support for setUserId, setUserProperty (with automatic installation_id user property registration), and getFirebaseAppInstanceId().

0.5.6 #

  • Docs Update: Atualização da documentação no README.md para cobrir autoConfigure, SDUI Placements, Customer Center e AdMob.

0.5.5 #

  • registerPlacement(context, placementId) — Superwall-style placement API:

    • New Progma.instance.registerPlacement() gates features behind paywalls with a single call.
    • Checks entitlement → presents paywall if needed → executes feature() callback only after successful purchase.
    • params map for tracking context, customVariables for SDUI token injection, ProgmaPlacementHandler for lifecycle callbacks (onPresent, onDismiss, onSkip, onError).
  • Custom Variables in SDUI Paywalls — RevenueCat V2-style {{ custom.key }} tokens:

    • showPaywall(context, customVariables: {'user_name': 'Alex', 'trial_days': '7'}) now injects values into SDUI template strings at render time.
    • Supported namespaces: {{ custom.* }}, {{ user.name }}, {{ user.id }}, {{ product.price }}, {{ product.title }}.
    • Applies to all text-rendering components: text, badge, button, restore_button, purchase_button.
    • ProgmaPaywallView and ProgmaSDUIRenderer both accept customVariables.
  • ProgmaCustomerCenter — RevenueCat CustomerCenterView equivalent:

    • New self-service subscription management widget: status card (gradient, active/inactive), active entitlements list, trial countdown banner, Restore Purchases button, Refresh Status button, Play Store deep-link, and cancellation retention survey.
    • embedded: true for inline embedding in settings; false (default) renders as a full-screen Scaffold with AppBar.
    • accentColor override and onManageSubscription callback.
    • Cancellation survey tracks cancellation_survey_submitted with reason to Progma backend.
  • ProgmaPlacementHandler:

    • New class mirroring Superwall's PaywallPresentationHandler with typed callbacks for the full placement lifecycle.

0.5.4 #

  • Auto-Detect App Connect & Zero-Config Backend:
    • Progma.autoConfigure(): Auto-detecção de metadados do aplicativo (packageName, appName, versionName, versionCode, installerPackageName) no Android.
    • Registro e vinculação instantânea com o backend NestJS sem necessidade de criar o app manualmente ou passar sdkKey hardcoded.
    • Sincronização e cache persistente automático de sdkKey, flags remotas, paywalls ativos, trials e entitlements.
    • Adicionado suporte a ProgmaOptions(autoConnect: true) e getters isConnected, isAutoConfigured, connectedAppName.

0.5.3 #

  • Ponte Nativa Firebase Analytics:
    • Reflexão dinâmica automática para o FirebaseAnalytics presente no classpath do app host no Android (ProgmaFirebaseBridge).
    • Espelhamento de eventos de retenção (retention_d1, retention_d3, retention_d7) e de anúncios diretamente no dispositivo.
    • Adicionado listener de eventos Dart Progma.onEventEmitted e flag Progma.instance.syncWithFirebaseAnalytics.

0.5.2 #

  • Cohorts de Retenção D1, D3, D7:
    • Método trackRetention(day, properties) para envio explícito de marcos de retenção.
    • Detecção automática de retenção em segundo plano baseada em carimbo de tempo persistente em SharedPreferences.
  • Granularidade de Inventário AdMob:
    • trackAdImpression(format, adUnitId, ...) com enum ProgmaAdFormat (banner, interstitial, rewarded, etc.) e repasse direto para ILRD.
    • trackAdReward(adUnitId, rewardType, rewardAmount) para concessão de bônus e prêmios.
    • trackAdClick(adUnitId, ...) para cliques em unidades de anúncio.

0.5.1 #

  • Behavioral Conversion Intelligence & Dual-Firebase Architecture:
    • Alinhamento de eventos comportamentais e compatibilidade com o pipeline Dual-Firebase (Firebase A lado cliente / Firebase B central).
    • Emissão de conversões preditivas high_intent_user com event_id canônico compartilhado.
    • Correção de mapeamento canônico de eventos para evitar erros de validação no backend NestJS.

0.5.0 #

  • Server-Driven UI (SDUI 2.0): Motor nativo de renderização de paywalls orientados por componentes server-side (ProgmaSDUIRenderer).
  • 4 Presets de Alta Conversão:
    • trial_timeline: Linha do tempo com lembrete no 5º dia e início de cobrança no 7º dia.
    • hero_comparison: Imagem hero dramática e matriz de comparação de recursos.
    • mascot_journey: Orbe 3D / mascote central com pilares de valor e jornada.
    • social_proof_sunrise: Louros de prêmio, 5 estrelas (35k+ avaliações) e fundo degradê nascer do sol.
  • Novos Componentes SDUI: timeline, comparison_table, social_proof_header, hero_header, bullet_list, product_card, purchase_button, restore_button, close_button e terms_footer.
  • Fluxo de Pagamento Integrado: showPaywall() dispara compras nativas do Google Play Billing 9.1.0 e atualiza entitlements automaticamente.

0.4.0 #

  • Feature Flags & Remote Config: Controle remoto de funcionalidades com avaliação síncrona instantânea (0ms) via cache local persistente em SharedPreferences.
  • UI Guards Inteligentes:
    • ProgmaFeatureGate: Guardião de interface para bloqueio e liberação de features pagas com paywalls dinâmicos.
    • ProgmaVersionGuard: Enforcer de versão mínima obrigatória com redirecionamento para Google Play Store.
    • ProgmaKillSwitchGuard: Bloqueio de emergência global com tela de manutenção bloqueante.
  • Suporte a UUID & ID de Suporte:
    • Getters publicUserId e supportId (formato amigável USER-XXXXXXXX).
    • Widget ProgmaSupportFooter pronto para rodapé de configurações com cópia em 1 toque para área de transferência.
  • Push Token FCM: Método registerPushToken(token) para registro de dispositivos e suporte a notificações push multicast de migração agressiva e alertas.
  • Hierarquia de Avaliação Resiliente: Fallback em cascata (Emergency Kill -> Versão Mínima -> Flag Kill-Switch -> Free Access -> Trial -> Entitlement / Google Play Billing).

0.3.0 #

  • Google Play Billing 9.1 integrado ao plugin Android.
  • Consulta de preços localizados, base plans e ofertas elegíveis.
  • Compra, acknowledgement, restore e revalidação server-side.
  • Catálogo comercial remoto para produtos avulsos e assinaturas.

0.2.0 #

  • Consentimento explícito para analytics, advertising e personalização.
  • Install Referrer e atribuição/deep links.
  • Receita publicitária por impressão.
  • Links de referral, wallet e saques Pix/PayPal.
  • Telemetria Play Integrity.

0.1.0 #

  • Primeira versão pública com eventos, compras e paywalls.
0
likes
130
points
525
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Progma analytics, revenue, conversion attribution, native billing and SDUI paywall engine.

Homepage
Repository (GitHub)
View/report issues

Topics

#analytics #attribution #flutter-plugin #paywall #subscriptions

License

MIT (license)

Dependencies

flutter, http, shared_preferences, uuid

More

Packages that depend on progma_flutter

Packages that implement progma_flutter