Google Play tracks one payment per user. Your bidder thinks that's the whole customer.
Here's the trap I keep finding in subscription App campaigns.
Install dashboard up month over month. CPI falling. Everyone in the standup is happy.
Then I pull D7 ROAS and it's sitting at 0.18x.
The spike wasn't growth. It was churners.
That's what tCPI buys you. You ask Google for the cheapest installs, and it finds them, clustered in low-intent users who uninstall before they ever pay.
The fix is target ROAS fed by real revenue, so the bidder filters toward payers instead of tourists.
But there's a structural ceiling almost nobody on the UA side sees.
Google Play codeless conversions record only the FIRST purchase. Renewals, upgrades, multi-product IAP are all invisible to the model.
So if someone pays $14.99 once and stays for a year, the bidder still thinks they're worth $14.99. True 12-month value might be $120, and Google under-bids for your best cohort in every auction because the signal never showed up.
The wire that fixes this is a renewal postback. The whole problem is a feed-the-model problem, which is why "scale installs" never solves it.
Here's the ladder I run:
Stage 1: tCPI for volume plus proxy events, until you've cleared ~100 conversions and exited learning.
Stage 2: tCPA on an engaged-trial event once you're at 50+/week.
Stage 3: tROAS once you've accumulated 300+ revenue events. Wire purchase AND renewal through AppsFlyer or Adjust as separate revenue conversions, extended window. Skip the revenue parameter and tROAS silently degrades into tCPA.
One more: trial_start is also the wrong event. It fires for instant-abandoners.
RevenueCat's data shows optimizing on "trial not cancelled at 2 hours" instead lifted install-to-subscription from 2.6% to 8.3%. Same spend, a signal the auction can actually trust.
Most of this is a wiring problem, not a budget or creative one.
If you want to see where your postback rig is leaking before you touch a bid strategy, the AI Max audit flags it: tegra.co/agents/google-ads-agent
Ruslan co-founded Tegra in 2017. Runs the Google Ads practice - feed, PMax, search, attribution. Writes weekly about the parts of paid search operators are afraid to touch.