Practitioner pattern · Thomas Petit (Sells consulting services and runs a paid signal-engineering workshop at App Growth Annual; works with Voyantis)
Report each user's expected value at month 13, not what they paid on day one
Guest's main advanced lever; no numbers given
What they did
What happened
In their words
Signal Engineering: Strategic Data Filtering for Better Ad Performance — Thomas Petit, Independent Consultant
Thomas Petit… they they offer event optimization, so they offer install optimization, which, honestly, you should never do. There are a couple edge cases where you might, but in most cases, a very bad idea. There's event optimization, which can be different events, they can be filtered, and so on, and we can talk a little bit more, and there's revenue optimization. And the problem with revenue optimization is that from the gaming world and e-commerce world,
Thomas Petitthis was just revenue. There was just revenue that was generated by the sale. But in subscription, because we've got the the free trial, and because we've got the renewals, the revenue that is actually happening that day is actually not what we need to send back to the platform. So, I started getting smarter and say, "Okay, I'm going to engineer the revenue that I'm sending." So, it's not a predicted LTV, is a predicted value at day X, maybe it's month two, maybe it's Personally, I like to use month 13, because I've got the first yearly renewal, and I think it's a better comparison between monthly and yearly.
Thomas Petit… that passed by default on the SDK is not the one that I want to be sending, because the free trial conversion is going to come too late, because it's going to overvalue the yearly over the monthly, but maybe Or or let's let's take the weekly. Sometimes the weekly the LTV of a weekly is great, because the price is so much higher. If somebody renews for 6 months on a weekly plan, the revenue we we want to send to the platform is not the real one.
Thomas PetitIt's going to Typically, platforms are going to over-index on yearly because all the revenue comes on day one, but maybe your weekly plan has a higher LTV when people renew a lot. So, you're just telling the platform something that is wrong about what you're looking for. And here the idea is not only to tweak, and I remember talking to Andre about signal engineering, and and he summarized it that, "Oh, Thomas is manipulating the ad platform." I'm like, "No, I'm manipulating data to send the ad platform what is the closest value of the users they're sending me.
Thomas PetitI'm not trying to lie here. At the contrary, I'm trying to fix something that is broken, in the sense of the platform is receiving a value that is not representative of my business value. Like, the default configuration is not what representative." One thing I'm working on right now, for example, is that users that are not converting within 24 hours, but are demonstrating a very high likelihood of retaining for long as a freemium user or …
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
- Check that Meta and Google receive the same event counts as your own analyticsGaps of 30-50% are common; fix anything above 10% before touching ads
- 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
- 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, applovin, signal-engineering, value-optimization, predicted-value, weekly-plan