Practitioner pattern · Thomas Petit (Sells consulting services and runs a paid signal-engineering workshop at App Growth Annual; works with Voyantis)
Check that Meta and Google receive the same event counts as your own analytics
Gaps of 30-50% are common; fix anything above 10% before touching ads
What they did
What happened
In their words
Signal Engineering: Strategic Data Filtering for Better Ad Performance — Thomas Petit, Independent Consultant
David Barnard"Ah, I don't feel like I can trust my data." So, so what do you mean by that? And then like, where do you see data being broken in ways, and you kind of already shared shared one, but what are the steps, or what are the tools, or what are the the kind of basics that you should have in place for for even monitoring to make sure that things don't break even when you think they're working? How do you figure out whether your data is good or not?
Thomas PetitSo, it's always hard to prevent future breaks, but I know when somebody tells me like, "Hey, go go check my ad account, tell me what you think," or make an audit, I don't make so many of them, but like sometimes, maybe it's a friend, maybe it's a portfolio companies, where I'll still do it. And they say, "Oh, here here's the Ads Manager." And I say, "I don't care about the Ads Manager, show me the Events Manager." Like, so Facebook calls it Events Manager, in Google it's called Goals. That's the first place I look. I don't even look at the ad account.
Thomas Petit… is, so let's say it's going to be install and free trial and paid subscriptions, to simplify, and I'm going to go check in the event manager, do the number that the platform reports being sent match more or less what we have internally? And very often, it's not the case. I really don't care about a 5% discrepancy here, and it's never going to 100% match, and that's okay. And there's a number of answers of why it's not 100%. It doesn't matter.
Thomas PetitBut in so many cases, I'm seeing 30% or 50%, and this this is going to be a a major problem that I need to fix before seeing anything else. So, I take Facebook as an example, because it's a big example, but I'm going to go to the Events Manager, and I'm going to say, "Okay, show me last 30 days or last 7 days. How many installs did you see? How many free trials did you see?" In total, without attribution, not the ones that Facebook think were coming from the campaigns, not the one that Google attributes to this particular paid activity,
Thomas Petitbut like what we're actually sending them, because they reported there. And I'm going to compare it with something like RevenueCat, or Amplitude, or Mixpanel, or whatever they have that is internal, before we send it. If I'm seeing more than 10% discrepancy here, it's going to be a problem. Those tools, they're not particularly sophisticated, but they're not particularly easy to understand, either. So, it's sometimes kind of tricky to match the dates, the geographies, the platform properly, and so to debug that actually the data I'm seeing there
Thomas Petitis the one that is supposed to be there. I remember making mistakes myself sometimes, like, I don't know, one case I was like, "Why am I seeing double the event on Facebook? How is this even possible, that there's twice as many users that we actually have?" It's just that they had two sources that Meta managed to deduplicate, but that doesn't show up like this in the Events Manager. So, the first step I do is, what the platform is receiving, is …
Get tactics like this every Monday
New tactics from the week's founder interviews, each linked to where it was said.
More from this episode
- Send trial starts, direct purchases, trial conversions and renewals as separate eventsDefault SDK mapping often lumps them all into one event; guest says fix it first
- Send ad networks only the trials likely to pay, as their own eventGuest's go-to first step when paid trial quality lags; no numbers given
- Tell Meta to value some users more or less instead of excluding themKeeps cheap under-25 reach instead of cutting it; no numbers given
- Report each user's expected value at month 13, not what they paid on day oneGuest's main advanced lever; no numbers given
- Look up each conversion's value from a server so you can change it without a releaseAvoids app releases for every price or currency change; says it makes a big difference
- Send your conversion signal within a day, waiting a few hours to see early useVoyantis showed timing matters; guest says signals after 24 hours are nearly useless
- Keep at least 10 conversion events per campaign per day before filteringUnder ~10/day optimization breaks; well above it, fewer better events win
- Report low-value users as worth less and high-value users as worth morePushes delivery toward top users but hides true ROAS; has backfired when overdone
- Send every event to every ad network, then pick a different signal for each
- Compare the value you report with real revenue by country, not just in total
- Send Google only the trials that look likely to payGoogle trials converted at ~15% vs ~40% elsewhere; the fix moved the needle
- Count a business user's yearly plan as worth 5 weekly consumer plansWorked at first; went stale after 18 months of price changes and needed fixing
- Change which events you send to ad networks, even as a young appBig uplift per the guest; details saved for a blog post
- Put all spend behind one channel and one optimization signalGrew from 0 to eight figures in two years, then had no fallback when it broke
- Let a signal specialist filter and send your ad events, and test itOne of two tests looks good, the other doesn't; not conclusive
- Tell ad networks which users reported high anxiety, since they pay far more
- Treat users who rush a 30-screen onboarding in under a minute as low valueHeld for one app; another app found its fastest finishers were its best users
- Change what you report as user value when cash matters more than long-term LTV
- Sell $5-10 top-up credits on top of subscription tiers
- Send buyers to web checkout once the store fee jumps from 15% to 30%Works for them, per the guest; no numbers
- Report a $1 value for non-payers who look likely to stick around
- Report your biggest spenders as mid-value so Meta doesn't stop early
Tags: meta, google, tiktok, signal-engineering, events-manager, data-audit, tracking