In-app personalization for mobile apps

Earn more from the users you already have

Show the right offer, rating prompt or upsell at the moment a user is ready. No app release.

PlanFree
Installed3+ days ago
Paywall closed2+ times
Free week of Premium
PlanFree
Installed3+ days ago
Paywall closed2+ times
Free week of Premium
iOS
·
Android
·
React Native
·
Kotlin Multiplatform
·
Flutter(soon)
·
Unity(soon)

Your analytics already know when to act

Turn every event your app tracks into the moment to sell, upsell or keep a user

No analytics yet? It works from day one.

Your campaigns

A free user closes the paywall for the second time.

Sheets, cards, stories, full screens. One builder

Design it in the visual builder, choose how it opens over your app, and publish. New campaigns need no app release.

Slides up from the bottom. The app stays visible behind it.

SETUP

Your sets it up

Connect the Amply MCP, approve it in your browser, and your agent wires up the SDK as a diff you review.

claude — ~/your-app
1 · Install Amply skill
2 · Install Amply MCP
3 · Approve in your browser
4 · Detect app stack
5 · Audit analytics setup
6 · Map events to Amply
7 · Wire SDK and deeplinks
1/7

Install Amply skill

amply-integration skill installed

$

Works alongside your stack

Keep your subscriptions, analytics and attribution. Amply only controls when in-app logic fires.

Amply works alongside your stack:

  • RevenueCat: Sends subscription state (subscription_status, is_trial) from CustomerInfo. Shows the paywall when Amply says it is time.
  • Amplitude: Gets CampaignShown from your app, so campaigns sit next to your events.
  • Mixpanel: Gets CampaignShown from your app, so you measure campaigns in your funnels.
  • PostHog: Gets CampaignShown from your app, next to the rest of your product data.
  • AppsFlyer: Sends media_source from its conversion callback, to target by where users came from.
  • Adjust: Sends the network from its attribution callback, to target by where users came from.

Live in production

See the recipes in the docs →

Price localization

A converted price isn’t a local one

$9.99 becomes R$49.99 in Brazil. Amply sets each country’s price on local terms and sends it to the store.

No SDK, no release

App Store & Google Play

In every plan

See price localization

Brazil

· $9.99 a month

Converted at the market rate

R$49.99

Local price · PPP

R$23.99

52% lower than converted. Based on what money buys in each country.

Start free. Upgrade when real traffic begins

1 app · 10,000 MAU · 3 active campaigns. Every feature included. No credit card.

Three products in every plan

  • Campaigns

    Show every user segment its own offer, inside your app

  • Store prices

    Price every country on local terms, not by exchange rate

  • Overlay

    Get the installs your social links were losing

Core

$99/mo

(billed annually)

$79/mo

(billed annually)

For studios bringing their first apps onto Amply

  • Up to 3 apps
  • 50,000 MAU per app
  • Unlimited campaigns
  • Visual builder
Start free

Growth

Recommended
$299/mo

(billed annually)

$239/mo

(billed annually)

For studios running a portfolio of live apps

  • Up to 10 apps
  • 100,000 MAU per app
  • Unlimited campaigns
  • Everything in Core + priority support
Start free

An app is iOS and Android together. Flat price — no cut of your revenue.

Enterprise

Tailored

More apps or MAU · Annual contract & invoicing · Dedicated support

Talk to us

The questions your team will ask

One SDK: init, track(), a deeplink listener. Most campaigns reuse events and deeplinks that already exist. From signup to live test in a day. The optional MCP + integration skill produce the wiring as a reviewable diff.

Yes. Amply hosts an MCP server, and there is an open-source Apache-2.0 integration skill to go with it. You point Claude Code or Codex CLI at it, approve what it may do in the browser, and the agent integrates Amply in your app and authors campaigns for you — you review it as a diff.

No. Amply opens the screens you already have. Need a new one? Build it in the visual builder — full screens, sheets, stories, surveys — and it goes live without an app release.

Your screens or ours — Amply decides who sees them, when, and where.

No. Decisions happen right on the device, so nothing waits on the network when a campaign shows. Builder screens download in advance and open instantly — even offline.

No. Keep RevenueCat for billing, Amplitude for measurement, AppsFlyer for attribution. Amply is the layer that decides which in-app flow fires.

Session state, device context (OS, app version, country), the user id and custom properties your app sets, a rolling buffer of recent events, and the published config cached for offline. Not a data warehouse: it stores what a decision needs and nothing else. Payment data, your analytics history, and anything your app doesn't explicitly send never reach Amply.

If Amply is unreachable, the app falls back to the default behavior you shipped. No matching campaign, no config, servers down — the worst case is the status quo.

FALLBACKapp as shipped

Flags toggle code paths. The campaign grammar on top — live audiences, event triggers with param conditions, repeat rules, frequency limits, an instant Cancel — is the internal tool teams keep almost building: it loses the roadmap fight and scatters across flags with no owner. Amply ships it ready-made, operable by the team that owns the metric — no engineer in the loop.

In the analytics tool you already trust. Forward the same events to Amplitude or Mixpanel; run different campaigns to different segments and read the funnels there.

Still have questions? [email protected]

GETTING STARTED

What happens after signup

From signup to a live test in a day. Your growth team runs the rest from the dashboard.

Step 1

Step 2

Step 3

Ongoing

Sign up

Create an account, add your app. No demo gate.

Step 1

Sign up

Create an account, add your app. No demo gate.

Step 2

Setup autopilot

Your AI agent wires the SDK — the console above is the real flow.

Step 3

First test live

Growth ships its first experiment from the dashboard — paywall, onboarding fork, or a flow you already own.

Ongoing

You stay in control

Move audiences, swap variants, cancel instantly. The dashboard stays in your team’s hands.

Go on — press it.

Your next campaign doesn't need a release

Integrate once. From then on, audiences, triggers, surfaces, and fallbacks are dashboard edits — live in minutes, on the app version your users already have.