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.
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.
Install Amply skill
amply-integration skill installed
$
Add the SDK, init, track(), a deeplink listener — once.
Most campaigns reuse events and deeplinks you already have. The full quickstart, every platform, lives in the docs.
Open the quickstart docs →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.
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
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
Core
(billed annually)
(billed annually)
For studios bringing their first apps onto Amply
- Up to 3 apps
- 50,000 MAU per app
- Unlimited campaigns
- Visual builder
Growth
Recommended(billed annually)
(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
An app is iOS and Android together. Flat price — no cut of your revenue.
Enterprise
TailoredMore apps or MAU · Annual contract & invoicing · Dedicated support
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 shippedFlags 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.