For subscription apps running paid acquisition

Does your marketing data actually tie out?

We audited a subscription app whose dashboards all looked healthy. It was delivering 1 trial event in 7 to its ad stack. Drop your email, reply with the tools you run, and we send back your tie-out plan: the exact checks that would catch this in your stack, free.

Just your email · your tie-out plan back in 48 hours · no call required

If any of these sound familiar:

  • Trial or purchase counts that never match between your tools
  • iOS numbers that look worse than Android and nobody knows why
  • Two dashboards that disagree on ROAS for the same campaigns
  • A quiet feeling that you stopped trusting your own reporting

Then keep reading.

Every dashboard looked fine. Six of every seven events were gone.

A consumer subscription app with a capable engineering team asked us why its numbers never quite matched between tools. Not broken, just off. The kind of off that gets blamed on attribution windows and modeled data, shrugged at, and lived with.

We pulled one day of trial starters from their subscription platform, 25 users, each with the exact timestamp their attribution ID was written. Then we pulled the day's raw delivery log from their MMP, row by row. Five of the 25 events had been delivered. Nine users got their attribution ID between one minute and eleven hours after the trial started, and a late ID never fires the event. Eleven users never got an ID at all.

Android delivered 3 of 3. iOS delivered 2 of 22. The iOS attribution handoff ran late in the startup sequence, so anyone who reached the paywall quickly started their trial before the ID landed. Over the full week, 181 trials produced 26 delivered events. No tool errored. No alert fired. Every dashboard was internally consistent, because each one honestly reported the partial data it received.

The ad platforms spent that whole time optimizing against one seventh of reality, and every reported CPA was wrong on every channel. Left alone, this failure would have quietly degraded the entire paid acquisition program for as long as it ran.

The root cause was found in one day, and the fix was a call-ordering change your engineers would measure in lines. The hard part was knowing to look, and where.

The tie-out audit

A fixed-scope investigation of your event chain, from the store receipt to the ad platform. Here is what it covers.

Per-user tie-out across your whole stack

We join individual user records across your subscription platform, your MMP, your analytics, and your ad platforms. Not dashboard totals against dashboard totals. Every user in a sample window gets accounted for, one by one, so a gap cannot hide inside an average.

Delivery logs, not dashboard implications

Dashboards show you what a tool received. Raw delivery and integration logs show you what actually went out. We pull both sides of every integration seam and reconcile them, because the seam between two healthy-looking tools is where events go missing.

SDK timing and call-order analysis

Most silent event loss is a race: an attribution ID that lands a minute after the purchase it was supposed to tag. We reconstruct the exact timing per user, which shows not just that events are missing but precisely why, down to the SDK call that runs too late.

The specific fix, handed to your engineers

The deliverable is a short written report your engineering team can act on the same day: per-user evidence, the root cause, and the exact change, which is usually call ordering measured in lines of code. If everything ties out, you get that in writing instead.

From the audit above, every user verified individually

1 in 7

trial events reaching the MMP across a full week: 181 fired, 26 arrived

9%

iOS delivery rate on audit day, while Android delivered 100%, which is why nobody noticed

1 day

from first log pull to root cause, with the exact fix handed to engineering

Things you are probably wondering

We have capable engineers. Would this really happen to us?

The app in our audit had a strong engineering team, and the bug survived anyway. This class of failure is a timing race between two SDKs. It produces no error, no alert, and no inconsistency inside any single tool, so there is nothing for an engineer to notice during normal work. It only becomes visible when someone joins per-user records across systems, which is nobody’s day job.

What access do you need?

Read access only: API keys for your subscription platform and analytics, and a login that can view your MMP’s integration and delivery logs. We do not touch your production code, your app, or your campaigns. The fix itself ships through your own engineering team.

Which tools do you cover?

The stacks we work in daily: RevenueCat, AppsFlyer, Adjust, Branch, PostHog, Amplitude, GA4, Meta and SKAdNetwork, Google, TikTok, and Klaviyo. If your stack differs, the tie-out method is the same: per-user joins across every seam where one tool hands events to another.

How long does it take?

Days, not quarters. The audit in the case above went from first log pull to root cause in one day. A full engagement, including the written report and a walkthrough with your team, typically lands within a week.

What does it cost if we do nothing?

Ad platforms optimize against the events they receive. If a third of your conversions never arrive, every campaign trains on partial data, your reported CPA is wrong on every channel, and budget decisions compound the error. The app above was delivering one event in seven. The loss was invisible right up until it was measured.

Want the full technical walkthrough of the case, including how to run the tie-out yourself? We published the investigation here.

Find out what your stack is actually delivering.

Drop your email and reply with the tools you run. We send back your tie-out plan, the specific checks that would catch silent event loss in your stack, within 48 hours. Free, whether you hire us or not.

Trust your numbers before you spend against them.

The tie-out plan is the fastest way to learn whether your event chain deserves a closer look. If you want to see how we run paid acquisition once the data is solid, the full product is one click away.