Revenue Leak Audit: 18 places app ad money is lost
Money leaks between the ad and the bank: in tracking the ad platform can't see, in paywalls, in failed payments and in refunds. The audit checks all 18 against your own accounts.
What you get
- A written report within 7 business days of receiving read access to your ad, analytics and store accounts.
- Each leak we find, with what it costs you and the order to fix it.
- US$490 one-off, paid upfront. It comes off your first month if you sign up for a plan.
- If we can't find three leaks worth fixing, we refund the US$490.
The audit is a diagnosis. We do not guarantee sales, CPA or ROAS, and any cost estimates come from your own data.
Measure
Can the ad platform see what pays?
| # | Leak | What happens | How to fix it |
|---|---|---|---|
| 01 | The ad platform is blind | Without server-side events, browser pixels and SDKs miss many conversions, especially on iOS. | Send conversion events from your server through the platform's conversions API. |
| 02 | Sales get counted twice | The same purchase fires from the app, the server and an analytics tool, so reported return looks better than it is. | Give each purchase one event ID and pick one system as the source of truth. |
| 03 | Optimizing for installs, not payers | The platform finds people who install and never pay. | Optimize for trial and purchase events, and map SKAN conversion values to revenue. |
| 04 | You can't say which ad paid | UTMs stop at the landing page and purchases never link back to a click. | Carry UTMs to checkout, identify users at sign-up and reconcile with App Store and Stripe revenue. |
| 09 | Every platform claims the same sale | Meta, Google and TikTok each count the conversion, so their totals exceed real sales. | Judge spend on bank and store revenue, and run holdout tests by region. |
| 17 | No Consent Mode v2 in the UK and EU | Without consent signals, Google cannot model lost conversions for those users. | Add Consent Mode v2 with a consent banner. |
Convert
Do clicks become paying users?
| # | Leak | What happens | How to fix it |
|---|---|---|---|
| 05 | The funnel leaks and nobody measures it | Visitors drop between landing page, sign-up and paywall without anyone knowing where. | Measure each step, fix the biggest drop first and measure again. |
| 10 | Deep links break after install | New users open the app on the home screen instead of the offer they clicked. | Use deferred deep links. |
| 11 | The ad and the store page disagree | The ad promises one thing and the App Store page shows another. | Match each ad set to its own Custom Product Page. |
| 12 | The paywall is weak | One price, no trial and no tests. | A/B test paywall layout, price packages and trial length. |
Revenue
Do you keep the money once it's paid?
| # | Leak | What happens | How to fix it |
|---|---|---|---|
| 06 | The App Store takes 15% to 30% | Every in-app purchase pays the store commission. | Move checkout to the web where the rules in your market allow it. |
| 13 | Failed card payments look like churn | Expired cards end subscriptions that people meant to keep. | Turn on Billing Grace Period in App Store Connect and Smart Retries in Stripe. |
| 14 | Refunds are approved too easily | Apple decides refund requests without your usage data. | Answer Apple's consumption requests through App Store Server Notifications. |
| 15 | Cancellations get no save offer | People who cancel leave without an offer to stay. | Use win-back offers on iOS and a cancel flow with a save offer on the web. |
| 16 | One USD price for every country | The price is too high in some markets and too low in others. | Price each country by local purchasing power. |
Spend
Is the budget going where it works?
| # | Leak | What happens | How to fix it |
|---|---|---|---|
| 07 | Bids and campaign structure are wrong | Bids below the auction floor never serve, and broad matching spends on the wrong searches. | Split brand, generic, competitor and discovery campaigns, and bid above the floor. |
| 08 | The same ad runs until it dies | Performance falls as the audience sees the same video again and again. | Ship new ads every month, each with several hooks. |
| 18 | Budget goes to junk placements | Low-quality placements bring accidental clicks, and daily edits keep resetting learning. | Exclude weak placements and change budgets and bids on a set schedule. |
Why we check these
We run our own iOS apps and built this tracking on them first. Five of our apps are live on the App Store under our founder's developer account. On those apps we have:
- Sent Meta, TikTok and Reddit conversion events from our own server, with event IDs to stop double counting.
- Configured 62 SKAdNetwork IDs with fine and coarse conversion values.
- Connected 17 Firebase events to Google Ads app campaigns, from first open to subscription renewal.
- Audited 70+ analytics events and found one purchase counted in four analytics tools at once.
- Connected Stripe web checkout to RevenueCat and tested Superwall paywalls.
These are our own setups, not client results. Several checks on this list, such as deep links, Custom Product Pages and Consent Mode, are ones we review against platform documentation rather than ones we have run on our own apps.
Book the audit
Send your App Store or website link and tell us which ad platforms you use. We reply with the access we need and a start date.
Email Acesley about the audit