After shipping 50+ apps for Australian startups, I’ve learned that choosing the right monetization model isn’t just about revenue—it’s about aligning your business model with user expectations and Australian consumer protection laws. Get it wrong, and you’ll either leave money on the table or face compliance issues with the ACCC.

The landscape in 2024 is shifting. Apple’s recent App Store changes following regulatory pressure, combined with strengthened Australian Consumer Law enforcement, mean that monetization strategies that worked two years ago need serious reconsideration. Whether you’re building a fitness app, a productivity tool, or a B2B SaaS platform, understanding the nuances between in-app purchases and subscriptions will determine your runway.

Understanding the Two Models

In-App Purchases (IAP): Consumable, Non-Consumable, and Non-Renewing

In-app purchases come in three flavors, each suited to different use cases:

Consumable IAPs are used once and depleted. Think coins in a game, credits in a design app, or additional AI generations in a content tool. Users can purchase these repeatedly, and they’re ideal for metered functionality. After a user consumes 100 credits, they need to buy more—simple economics.

Non-consumable IAPs are permanent unlocks. When someone buys “Pro Features” or “Remove Ads,” they own it forever across all their devices via iCloud/Google Play sync. This model works brilliantly for feature unlocks, one-time upgrades, and permanent content packs.

Non-renewing subscriptions technically fall under IAP but behave differently. They’re time-limited access that doesn’t auto-renew. Think season passes or 30-day premium access without automatic renewal. Apple and Google take these less seriously in promotional terms—they won’t show up in subscription management settings.

Auto-Renewable Subscriptions: The Recurring Revenue Engine

Auto-renewable subscriptions are the holy grail for predictable revenue. Users authorize ongoing charges (weekly, monthly, annually) until they explicitly cancel. Apple and Google provide robust infrastructure: grace periods, billing retry logic, family sharing, and promotional offers.

The platforms love subscriptions because they generate ongoing revenue share. In return, you get powerful tools: introductory pricing, promotional offers, subscription groups, and prominent placement in App Store search. The trade-off? You’re committing to ongoing value delivery and stricter platform rules.

The Revenue Model Reality

The Revenue Model Reality Check Infographic Check

Platform Commission Structure (2024)

Both Apple and Google take their cut, but the details matter:

  • Year 1: 30% commission on all transactions (IAP and subscriptions)
  • Year 2+: Subscriptions drop to 15% after 12 months of continuous subscription
  • Small Business Program: Apps earning under $1M USD annually qualify for 15% across the board

For Australian startups, this means your pricing needs to account for platform fees, GST (10%), and payment processing. If you’re selling a $9.99 AUD monthly subscription through Apple, you’re netting around $6.30 AUD after commissions and GST—less if you haven’t hit year 2 retention or qualified for small business rates.

Lifetime Value Calculation

The math shifts dramatically between models:

IAP Model Example:

  • One-time purchase: $14.99 AUD
  • Net after 30% commission: $10.49 AUD
  • Customer LTV: $10.49 (unless they buy consumables)

Subscription Model Example:

  • Monthly subscription: $9.99 AUD
  • Year 1 net (30%): $83.88 AUD (12 months)
  • Year 2+ net (15%): $101.88 AUD (12 months at reduced commission)
  • Customer LTV over 2 years: $185.76 AUD

The subscription model generates 17.7x more revenue over two years. But here’s the catch: you need to retain subscribers. If your average retention is 3 months, that LTV drops to $25.16 AUD—barely 2.4x the one-time purchase.

Australian Consumer

Law Compliance

Critical Requirements for Subscriptions

The Australian Competition and Consumer Commission (ACCC) doesn’t mess around with subscription dark patterns. In 2024, following several high-profile enforcement actions, compliance is non-negotiable:

Clear Terms Before Purchase: You must clearly disclose the subscription price, frequency, and cancellation terms before users authorize payment. “Unlock Premium” isn’t enough—show “$9.99/month, cancel anytime” upfront.

Easy Cancellation: The ACCC requires cancellation to be as easy as signup. If users can subscribe in-app with one tap, they must be able to cancel with similar ease. Directing users through convoluted settings or requiring them to email support violates consumer law.

Cooling-Off Period: While not strictly required for digital goods under $40, best practice is to honor refund requests within 24 hours of purchase. Apple and Google provide refund mechanisms—don’t fight legitimate requests.

Automatic Renewal Notifications: The platforms handle this, but verify that users receive renewal reminders. Apple sends notifications 24 hours before renewal; Google varies by timing. Document this in your terms.

Compliance Code Example

When implementing subscriptions with RevenueCat (the de facto standard for Australian startups), your paywall presentation should explicitly show terms:

struct SubscriptionPaywall: View {
    let offering: Offering

    var body: some View {
        VStack(spacing: 20) {
            // Feature list

            ForEach(offering.availablePackages) { package in
                SubscriptionButton(package: package)
            }

            // ACCC Compliance: Clear terms before purchase
            VStack(spacing: 8) {
                Text("Auto-renews at \(package.product.localizedPriceString) per \(package.packageType.billingPeriod)")
                    .font(.caption)

                Text("Cancel anytime in Settings. See Terms & Privacy Policy.")
                    .font(.caption2)

                Button("Restore Purchases") {
                    // Handle restoration
                }
                .font(.caption)
            }
            .foregroundColor(.secondary)
        }
    }
}

The key is explicit disclosure: price, frequency, and cancellation method visible before the purchase button. Don’t hide this in collapsed accordions or require scrolling to find it.

Choosing Your Model: Dec

Choosing Your Model: Decision Framework Infographic ision Framework

Use In-App Purchases When:

Your app provides discrete value. Photo editing apps that sell filter packs, games that sell character skins, or productivity apps selling template bundles benefit from IAP. Users understand paying once for specific functionality.

Users have variable engagement. If your app is used sporadically—say a recipe manager where users cook 2-3 times per week—subscriptions feel exploitative. One-time purchases or consumable credits align better with usage patterns.

You’re selling content, not service. Ebooks, music tracks, courses, or level packs are classic non-consumable IAPs. Users expect to own this content permanently.

Your Australian market is price-sensitive. Research shows Australian consumers are more resistant to subscriptions than US counterparts, particularly in categories like productivity and utilities. A $19.99 one-time purchase often converts better than $4.99/month.

Use Subscriptions When:

You’re delivering ongoing value. Fitness apps with new workouts, meditation apps with fresh content, or B2B tools with continuous updates justify recurring payments. Users understand paying for sustained service.

Your infrastructure costs scale with usage. If you’re running AI inference, cloud storage, or API calls per user, subscriptions align costs with revenue. An AI-powered design tool burning $2 per user monthly on OpenAI API calls can’t survive on one-time purchases.

You need predictable MRR for fundraising. Investors prefer subscription businesses with clear retention metrics. If you’re raising a seed round, $15K MRR growing 15% month-over-month beats $50K in one-time purchase revenue.

You have a clear upgrade path. Apps that offer free trials, freemium tiers, or introductory pricing convert better with subscriptions. The psychology of “try before you commit” works in your favor.

Pricing Strategies for the Australian Market

The Psychology of AUD Pricing

Australian consumers have specific price sensitivity thresholds. After A/B testing pricing across 30+ apps, here’s what converts:

Monthly subscriptions:

  • Sweet spot: $7.99–$12.99 AUD
  • Premium tier: $14.99–$19.99 AUD
  • Avoid: Anything over $24.99 monthly (resistance spikes dramatically)

Annual subscriptions:

  • Ideal discount: 40–50% off monthly equivalent
  • Example: $9.99 monthly → $59.99 annually (50% discount)
  • Australian consumers are discount-motivated—make the savings explicit

One-time purchases:

  • Utility apps: $9.99–$19.99 AUD
  • Premium tools: $24.99–$49.99 AUD
  • Avoid: Pricing above $99.99 (requires explicit value justification)

Introductory Pricing That Converts

Apple and Google both support promotional pricing, but implementation differs:

Free trials: Offer 7-day or 14-day trials for monthly subscriptions, 30 days for annual. Make sure to use StoreKit 2 on iOS to properly handle trial eligibility and prevent abuse.

// StoreKit 2: Check trial eligibility
func checkTrialEligibility() async throws -> Bool {
    guard let subscription = try await Product.products(
        for: ["com.eawesome.premium.monthly"]
    ).first else { return false }

    // Check if user is eligible for introductory offer
    let eligibility = await subscription.subscription?.isEligibleForIntroOffer ?? false
    return eligibility
}

Introductory pricing: Instead of free trials, consider $0.99 for the first month. This filters out tire-kickers while making conversion frictionless. We’ve seen 30% higher retention with paid intro offers versus free trials.

Annual upfront discount: Offer new users 30% off their first year. Google Play and App Store both support this through promotional offers. It front-loads revenue and improves annual retention metrics.

Platform-Specific Implementation Details

iOS StoreKit 2 Best Practices

Apple’s StoreKit 2 (introduced in iOS 15) is the modern approach. If you’re still using StoreKit 1, you’re missing critical features:

  • Async/await transaction handling: Cleaner code, better error handling
  • Transaction verification: On-device receipt validation (no server required)
  • Subscription status tracking: Real-time subscription state updates

Here’s a minimal StoreKit 2 purchase flow:

import StoreKit

class StoreManager: ObservableObject {
    @Published var products: [Product] = []
    @Published var subscriptionStatus: Product.SubscriptionInfo.Status?

    func loadProducts() async {
        do {
            products = try await Product.products(
                for: ["com.eawesome.premium.monthly", "com.eawesome.premium.annual"]
            )
        } catch {
            print("Failed to load products: \(error)")
        }
    }

    func purchase(_ product: Product) async throws -> Transaction? {
        let result = try await product.purchase()

        switch result {
        case .success(let verification):
            // Verify transaction signature
            let transaction = try checkVerified(verification)

            // Grant access to premium features
            await grantPremiumAccess()

            // Finish transaction
            await transaction.finish()

            return transaction

        case .userCancelled, .pending:
            return nil

        @unknown default:
            return nil
        }
    }

    func checkVerified<T>(_ result: VerificationResult<T>) throws -> T {
        switch result {
        case .unverified:
            throw StoreError.failedVerification
        case .verified(let safe):
            return safe
        }
    }
}

Android Google Play Billing Library 5

Google’s billing library has evolved significantly. Version 5 (current as of June 2024) introduced pending transactions and better subscription handling:

class BillingManager(private val context: Context) {
    private lateinit var billingClient: BillingClient

    fun initialize() {
        billingClient = BillingClient.newBuilder(context)
            .setListener { billingResult, purchases ->
                if (billingResult.responseCode == BillingClient.BillingResponseCode.OK && purchases != null) {
                    purchases.forEach { handlePurchase(it) }
                }
            }
            .enablePendingPurchases() // Required for subscriptions
            .build()

        billingClient.startConnection(object : BillingClientStateListener {
            override fun onBillingSetupFinished(billingResult: BillingResult) {
                if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) {
                    loadProducts()
                }
            }

            override fun onBillingServiceDisconnected() {
                // Retry connection
            }
        })
    }

    private fun handlePurchase(purchase: Purchase) {
        if (purchase.purchaseState == Purchase.PurchaseState.PURCHASED) {
            // Verify purchase on your server
            verifyPurchaseOnServer(purchase)

            // Acknowledge purchase (required within 3 days)
            if (!purchase.isAcknowledged) {
                acknowledgePurchase(purchase.purchaseToken)
            }
        }
    }
}

Critical: Google requires acknowledging purchases within 3 days, or they’ll refund the user automatically. Many developers miss this and lose revenue.

Cross-Platform Monetization with RevenueCat

After implementing platform-specific billing in multiple apps, I strongly recommend RevenueCat for any app targeting both iOS and Android. The SDK handles 90% of edge cases:

  • Cross-platform subscription sync
  • Receipt validation on their servers
  • Webhook notifications for subscription events
  • Analytics and cohort tracking
  • Promotional offers management
// React Native with RevenueCat
import Purchases from 'react-native-purchases';

async function setupPurchases() {
  // Initialize with API keys
  await Purchases.configure({
    apiKey: Platform.OS === 'ios' ? IOS_API_KEY : ANDROID_API_KEY,
  });

  // Check subscription status
  const customerInfo = await Purchases.getCustomerInfo();

  if (customerInfo.entitlements.active['premium'] !== undefined) {
    // User has active premium subscription
    unlockPremiumFeatures();
  }
}

async function purchaseSubscription() {
  try {
    const offerings = await Purchases.getOfferings();
    const monthlyPackage = offerings.current?.monthly;

    if (monthlyPackage) {
      const purchaseResult = await Purchases.purchasePackage(monthlyPackage);

      if (purchaseResult.customerInfo.entitlements.active['premium']) {
        // Successfully subscribed
        showSuccessMessage();
      }
    }
  } catch (error) {
    if (error.userCancelled) {
      // User cancelled, don't show error
    } else {
      handlePurchaseError(error);
    }
  }
}

RevenueCat’s free tier supports up to $10K monthly tracked revenue—more than enough for early-stage Australian startups.

Hybrid Models: The Best of Both Worlds

Some of the highest-grossing apps use hybrid monetization. Consider these approaches:

Freemium with Both IAP and Subscriptions

Offer a free tier with limited functionality, consumable IAP for pay-as-you-go users, and subscriptions for power users:

  • Free tier: 10 AI generations per month
  • Consumable IAP: $4.99 for 50 additional credits
  • Subscription: $9.99/month for unlimited generations + premium features

This captures three user segments: free users building awareness, occasional users buying credits, and power users subscribing.

Feature Unlocks + Subscription Add-ons

Charge once for the base app, then offer subscriptions for cloud features:

  • Base app: $19.99 one-time purchase (core functionality)
  • Cloud sync subscription: $2.99/month (sync across devices)
  • Premium content subscription: $7.99/month (ongoing content updates)

This works well for productivity apps where local functionality is valuable but cloud services justify recurring payments.

Metrics That Matter for Australian Apps

Track these KPIs regardless of your monetization model:

For In-App Purchases

  • Conversion rate: % of users who make any purchase (target: 2-5% for paid apps, 0.5-2% for freemium)
  • ARPU (Average Revenue Per User): Total revenue / total users (benchmark: $1-3 for freemium utilities)
  • Time to first purchase: Days from install to purchase (shorter is better; aim for less than 7 days)

For Subscriptions

  • Trial-to-paid conversion: % of trial users who convert to paying subscribers (target: 30-50%)
  • MRR (Monthly Recurring Revenue): The lifeblood metric; track month-over-month growth
  • Churn rate: % of subscribers cancelling each month (healthy: less than 5% monthly, less than 40% annually)
  • LTV/CAC ratio: Customer lifetime value vs. customer acquisition cost (target: 3:1 or higher)

Use Apple’s App Analytics and Google Play Console for baseline metrics, but supplement with tools like RevenueCat Charts or Mixpanel for cohort analysis.

Common Pitfalls to Avoid

1. Subscription Fatigue

Australian users are increasingly frustrated by “everything is a subscription.” Before choosing this model, ask: does my app genuinely deliver ongoing value? A calculator app doesn’t justify $4.99/month. A meal planning app with weekly recipes does.

2. Ignoring Family Sharing

Both Apple and Google support family sharing for subscriptions. Enable it—families are a massive market in Australia, and sharing multiplies your value proposition without costing you additional platform fees.

3. Poor Cancellation UX

Don’t fight cancellations. Make the process transparent, ask for feedback, and consider offering a pause option. Users who cancel gracefully are more likely to resubscribe later.

4. Inadequate Server-Side Validation

Always validate receipts server-side. Client-side checks can be bypassed with jailbreaks or rooted devices. Use Apple’s App Store Server API or Google’s Play Developer API, or let RevenueCat handle it.

Looking Ahead: Regulatory Changes

The Australian government is actively reviewing app store monopolies and subscription practices. While major changes are unlikely in 2024, expect increased scrutiny around:

  • Alternative payment methods: Pressure on Apple/Google to allow third-party payments
  • Subscription transparency: Stricter disclosure requirements
  • Refund policies: Potential mandates for cooling-off periods

Stay informed through ACCC updates and consider building flexibility into your monetization infrastructure. If alternative payment systems become viable, you’ll want the ability to migrate quickly.

Key Takeaways for Australian App Developers

Choosing between in-app purchases and subscriptions isn’t binary—it’s about aligning your monetization with user value, usage patterns, and regulatory requirements:

  1. Subscriptions win for ongoing value delivery but require sustained feature development and compliance rigor
  2. IAPs excel for discrete value like content packs, feature unlocks, or metered usage
  3. Australian consumers are subscription-skeptical—justify the recurring charge with clear, ongoing value
  4. ACCC compliance is non-negotiable—transparent pricing and easy cancellation aren’t nice-to-haves
  5. Use tools like RevenueCat to abstract platform complexity and focus on building great products
  6. Test hybrid models to capture different user segments and maximize revenue potential

The right monetization strategy can mean the difference between burning through your runway and building a sustainable app business. Start with your users’ needs, layer in the business model that serves them best, and stay compliant with Australian consumer protections. The platforms and tools exist to make this work—the hard part is choosing the model that fits your vision.

Infographic


Building an app and need help with monetization strategy? At eawesome.com.au, we help Australian startups architect and implement sustainable revenue models. Get in touch to discuss your app’s unique needs.