◉ANTIGRAVITY LABJP
Articles/App Development
▣ App Development/2026-05-06Advanced

How I Tripled Wallpaper App Revenue Using Antigravity — AdMob Optimization to ASO (2026)

A case study on using Antigravity to overhaul a wallpaper app — improving AdMob revenue, App Store ratings, and organic downloads. Only the changes that actually moved the numbers, with real results.

antigravity464wallpaper-appadmob17asomonetization31app-store6indie-dev20iap

Wallpaper apps have always been a reliable category for indie developers. Users interact with their home screen daily, which creates organic retention. Once someone finds a wallpaper they love, they tend to keep the app around.

I've been building and maintaining wallpaper apps since 2014. Most of that time involved manual coding and a lot of trial and error. Starting in late 2025, I began using Antigravity more seriously for app iteration — and the same apps, with the same user bases, started performing differently. This is the record of going from baseline revenue to roughly 3x in about six months.

Starting Point: Three Problems That Had Been Sitting Too Long

The target app was an iOS wallpaper app with a monthly active user base in the tens of thousands. Primary revenue came from AdMob banner ads.

Three things were broken:

1. AdMob eCPM was stagnant. A single banner at the bottom of the screen. No interstitial, no rewarded ads.

2. App Store rating was 3.8. Most low-rating reviews said the same thing: users couldn't figure out how to set a wallpaper. A UX problem with a code fix — but it had sat unaddressed.

3. ASO was essentially untouched. Screenshots and store copy hadn't been updated in over a year.

These weren't mysteries. I knew exactly what was wrong. What was missing was bandwidth to actually do them. Antigravity changed that equation.

Step 1: Rewired AdMob Implementation

First target: ad placement. I loaded the existing implementation into Antigravity via AGENTS.md and asked for an improvement proposal.

# AGENTS.md ad improvement spec
## Current state
- Banner ad: bottom of screen (GADBannerView)
- Revenue: [baseline] eCPM $0.85

## Goals
- Interstitial ad on transition from wallpaper preview → settings screen
- Rewarded ad: user can temporarily unlock one premium wallpaper
- Upgrade banner to adaptive banner format

## Constraints
- Frequency cap: minimum 3 minutes between interstitials
- Must comply with iOS 16 privacy manifest

The rewarded ad logic Antigravity proposed was the most useful part:

class WallpaperViewController: UIViewController {
    
    private var rewardedAd: GADRewardedAd?
    private let rewardedAdUnitID = "YOUR_REWARDED_AD_UNIT_ID"
    
    func showPremiumWallpaperWithReward(wallpaper: Wallpaper) {
        guard let rewardedAd = rewardedAd else {
            showPremiumLockView(wallpaper: wallpaper)
            return
        }
        
        rewardedAd.present(fromRootViewController: self) { [weak self] in
            // Grant reward: unlock one premium wallpaper for this session
            self?.unlockPremiumWallpaperTemporarily(wallpaper: wallpaper)
        }
    }
    
    private func unlockPremiumWallpaperTemporarily(wallpaper: Wallpaper) {
        var unlockedItems = UserDefaults.standard.array(forKey: "sessionUnlocked") as? [String] ?? []
        unlockedItems.append(wallpaper.id)
        UserDefaults.standard.set(unlockedItems, forKey: "sessionUnlocked")
        showWallpaperDetail(wallpaper: wallpaper)
    }
}

The UX outcome: instead of a forced ad, the user makes an active choice to watch an ad in exchange for trial access to a premium wallpaper. Engagement goes up, complaints go down.

Results after 3 months:

  • AdMob eCPM: $0.85 → $2.10 (+147%)
  • Total ad revenue: ~2.1x

Rewarded ad unit rates are significantly higher than banner. Shifting a portion of impressions there moved total revenue meaningfully.

Step 2: Fixed the UX Problem Hurting Reviews

"Can't figure out how to set the wallpaper" shouldn't appear in reviews — but it did, repeatedly. I asked Antigravity to implement a first-launch walkthrough covering the wallpaper-setting flow on iOS.

The proposed sequence:

  1. Long-press on a wallpaper → show coachmark for "Set as Wallpaper"
  2. Before the Photos save dialog appears → show a brief explanation
  3. After saving → show step-by-step instructions for setting as home screen

Implementation time with Antigravity: approximately 2 hours. Without it, I'd estimate a full day of work.

Results after 2 months:

  • App Store rating: 3.8 → 4.4
  • "Can't set wallpaper" reviews: effectively zero

Higher rating directly improved App Store algorithm placement, which fed into organic download growth.

Step 3: ASO — Store Copy and Screenshots

App Store text and screenshots were both overdue. For store copy, I asked Antigravity to generate optimized Japanese and English descriptions incorporating target keywords naturally. For screenshots, I generated multiple headline variants and tested them through App Store Connect's product page optimization feature.

Results after 3 months:

  • Organic downloads: 1.8x
  • Ranking keywords: 3 → 12

The app started appearing for category searches (wallpaper, home screen customization, aesthetic wallpapers) it hadn't previously ranked for.

Step 4: IAP Redesign

The original in-app purchase was a single "premium pack" at ¥120 / $0.99. After discussing the design with Antigravity — asking it to compare subscription vs. one-time purchase performance for wallpaper apps specifically — I restructured it:

PlanPriceContent
Free¥0Free wallpapers + ads
Individual pack¥250Theme pack (15–20 wallpapers), lifetime
Premium monthly¥480/moAll wallpapers + no ads + weekly additions
Premium annual¥2,980/yrSame (¥248/mo equivalent)

Implementation used StoreKit 2. Antigravity generated both the client-side purchase flow and server-side receipt validation code.

Results after 2 months:

  • Subscription revenue: 68% of total IAP
  • Average individual pack purchases: 1.8 packs per purchasing user

Six-Month Summary

InitiativeContribution to revenue growth
AdMob optimization+110%
Rating improvement → ASO halo effect+40% (indirect)
ASO (download increase)+45%
IAP redesign+80%

These don't add up linearly — the effects compound and interact. The ~3x total is a lived result across all initiatives running together.

What Antigravity Actually Changed

The biggest shift wasn't speed, though speed improved. It was that the backlog of "important but effort-intensive" work finally got done.

AdMob restructuring, a first-launch tutorial, ASO optimization — I'd known these needed attention for months. The reason they sat untouched was that each one represented a non-trivial implementation block during time I didn't have.

With Antigravity, the workflow became: define the goal in AGENTS.md, review and adjust what it generates, ship. That's a meaningful difference in how much you can execute as a solo developer. The wallpaper app was already viable. These changes made it genuinely good — and profitable enough to justify the time investment in maintaining it.

Share

Thank You for Reading

Antigravity Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • ✦Copy-paste ready implementation code
  • ✦New advanced guides published daily
  • ✦$5/mo or $10 for lifetime access
View Membership →

If you found this article helpful, a small tip ($1.50) would mean a lot to us. Your support helps keep this site ad-free and covers server and hosting costs.

Related Articles

▣ App Dev2026-05-24
Running iOS Push Notification A/B Tests Weekly With Antigravity Agent — A Self-Improving Loop For Copy, Timing, And Segments
Drawing on years of indie iOS development across wallpaper and wellness apps, this article walks through a weekly Push Notification A/B loop powered by Antigravity Agent — the FCM bridge, BigQuery measurement, segment design, a D7 retention recovery story, and a dependency-free simulation that made me cut the number of arms and add a significance rule before declaring any winner.
▣ App Dev2026-04-19
Building a Fully Automated iOS App Release Pipeline with Antigravity — From Screenshot Generation to App Store Review Management
Use Antigravity, App Store Connect API, and GitHub Actions to automate every step from build to App Store submission. A complete advanced guide covering AI screenshot captions, metadata optimization, and rejection analysis.
▣ App Dev2026-03-27
Keeping the AdMob Waterfall While Adding Bidding: A Decision Record from Four Live Apps
How I added bidding on top of an existing AdMob waterfall across four live iOS apps: the ATT and init ordering, ad-gate design, and the metrics to watch.