Angler AI

Value Optimization Inside the Walled Gardens: How to Bid on Predicted LTV (pLTV) on Meta and Google (Part 2)

Part 1 of this series — Value Optimization Is a Sharp Stick — argued that most retailers hand the auction a pre-return fiction: gross revenue as “value” and gross margin as “profit.” Feed that in and platform AI dutifully goes and finds you more of the customers who return the most merchandise. The fix was to send predicted net revenue and net margin for the current order.

This part goes one step further out in time. Getting the current order right is table stakes. The prize the platforms are now opening up is the next order, and the one after that — bidding on what a customer will be worth over 90, 180 or 365 days, at the moment you are deciding whether to pay for them.

What the platforms are actually shipping

Both walled gardens have converged on the same idea from different directions: let the advertiser define value, and let the auction optimize against that definition rather than against a conversion count.

  • Meta now supports predicted lifetime value as a first-class signal through the Conversions API. You send a pLTV score alongside the conversion event, Meta trains a brand-specific model on your pLTV event stream, and delivery is steered toward the people your model says will be worth the most. See Meta’s pLTV integration guidance.
  • Google has been in value-based bidding for longer, with tROAS and value rules, and supports restating a conversion’s value after the fact through conversion adjustments — the mechanism you use when a prediction sharpens, an order is partly refunded, or a customer’s trajectory changes.

Two capabilities matter most, and they are new enough that most advertisers have not built for them yet:

  1. Advertiser-defined value. You choose the value equation: revenue, gross margin, net revenue after returns, net margin, contribution margin — or a non-monetary value attached to a high-value user action. The platform optimizes toward whatever you say the value is. It has no opinion about which is right for your P&L.
  2. Refreshable predictions. A pLTV score is a forecast, and forecasts improve. Meta’s AppendValue method lets you update the pLTV attached to an event as a new signal arrives; Google’s conversion adjustment feature does the equivalent by restating conversion value. Both mean your first score no longer has to be your final answer.

The platforms have moved the hard part to your side of the wall. They will optimize against any value definition you can produce, refresh, and deliver fast enough. Producing it is the work.

pLTV bidding is not value hacking

Plenty of sophisticated advertisers have been doing a version of this for years, unofficially. It is usually called value hacking: overwrite the value field on the purchase event with something other than order value — a pLTV score, a margin estimate, a tiered multiplier — and let the platform’s existing value optimizer chase it.

It works, up to a point. But native pLTV support is a materially different thing, in three ways.

Value hackingNative pLTV signal
What the platform learns fromThe same generic value model every advertiser gets, pointed at a number you suppliedA model built for your brand on your pLTV event stream
Where the number livesIn the value field, overwriting order valueIn its own predicted_ltv parameter, alongside value; order value stays where it belongs
What you can measure in platform reportingEither immediate ROAS or pLTV:CAC — not both, because one field is holding both jobsImmediate ROAS and pLTV:CAC off the same event
Updating a predictionRisky, potentially double counting. Change of value will likely count as a new conversion, not an update to the original.Supported natively — AppendValue on Meta, conversion adjustments on Google

That last row is the one that quietly costs teams the most. Once the value field is carrying a prediction, every ROAS number in the account is a prediction too, and nobody downstream knows it. Keeping current order value in value and the forecast in its own predicted_ltv parameter means finance and marketing can keep reading the same account without translating.

What that looks like in the payload

On Meta, the prediction rides in custom_data next to the order value rather than on top of it — value stays the real transaction, predicted_ltv carries the forecast:

{
 "event_name": "Purchase",
 "event_time": 1633552688,
 "action_source": "website",
 "custom_data": {
   "currency": "USD",
   "value": 142.52,
   "predicted_ltv": 678.9
 }
}

If your model needs more time than the checkout does, you send the conversion event as usual and follow it with a separate AppendValue event that Meta matches back to the original using event_id and/or order_id in original_event_data. On Google, the equivalent move is a conversion adjustment keyed to the transaction or order ID.

Before you plan the build: Meta’s eligibility bar

Worth checking against your account before anyone scopes engineering time. To use pLTV value optimization on Meta today you need:

  • An existing web Conversions API integration — app events are not supported yet.
  • A pLTV model that has been validated in some way, such as one already used for optimization, measurement or budget decisions.
  • At least five distinct pLTV values, all positive, with the highest at least 3× the lowest. A binary or near-flat score will not qualify.
  • A minimum of 100 conversion events per week attributed to Meta in each of the last four weeks.
  • A dataset that is not in Core Setup — those cannot use the product.

Supported events are Purchase, Subscribe, StartTrial, CompleteRegistration, AddPaymentInfo and custom events. Full detail in Meta’s pLTV integration guidance.

What this means for advertisers

1. Decide what value actually means — and get the CFO in the room

Value optimization forces a decision most organizations have deferred: which number are we buying against? Revenue is easy and usually wrong. Gross margin is better. Net revenue after returns is a lot better in any category with meaningful returns. Contribution margin after shipping, payment and variable fulfilment costs is closest to what the business actually banks.

This is a rare opportunity to align the CMO and the CFO on one shared definition and then codify it — not in a deck, but in the feature definitions of a model and the payload of an event. Once it is codified, the argument about whether performance marketing is “working” gets a lot shorter.

Non-monetary value counts too. A high-value user action — a registration that historically converts at 4×, a first subscribe-and-save enrollment, an app install that reaches a retention milestone — can carry a value score even when no revenue has changed hands.

2. Predict at the individual level, in real time

This is where most in-house attempts stall. Three requirements, all non-negotiable:

  • Individual, not cohort. A cohort average tells the auction that every customer acquired in March is worth $180. That is not a signal, it is a constant. The auction cannot learn anything from a constant.
  • Forward-looking, not RFM. Recency-Frequency-Monetary scoring is a description of the past. Your finance and analytics teams almost certainly have a backward-looking LTV view already, and that is perfectly good for reporting and cohort analysis. It is the wrong instrument for bidding, which needs a forecast of a customer you acquired eleven minutes ago.
  • Low latency, not next-day. A prediction that lands the following morning has already missed the window in which the auction is deciding what you are worth bidding for. Predictions need to be available in-session or within minutes of the conversion.

3. Predict before the purchase, not only after it

Post-purchase pLTV is the obvious half. Pre-purchase pLTV, a forecast of what a visitor will be worth, conditioned on them converting at all, is the half that changes prospecting economics. It gets its own section below, because it is also the half most advertisers skip.

4. Wire the predictions into your CAPI infrastructure

Prediction pipelines and signal pipelines are usually built by different teams, and the seam between them is where value optimization programs die. The pipeline needs to emit predictions in the format each platform accepts — Meta and Google have different protocols, different objects, and different update mechanics — and push an update when a customer’s pLTV moves materially, not on a nightly batch schedule because that was easier to build.

Why pre-purchase predictions are necessary

The argument for pre-purchase pLTV is a sparsity-versus-noise trade-off, and it is worth being precise about it.

If you only attach pLTV to the purchase event, you have given the auction a beautifully discriminating label on a vanishingly small number of labels (rows). Platform AI needs to learn enough across all your campaigns, ad sets, creatives, copy variants and placements. Every one of those cells needs enough labelled events to learn from.

This is not a small-advertiser problem. A brand spending $100M+ a year still runs out of labelled purchase events once volume is divided across a live creative matrix. The result is an auction that has an excellent value signal it cannot act on with any confidence, because the evidence is too thin at the level where decisions get made.

Send pre-purchase signals in addition, and the arithmetic changes. Every session, product view, cart and checkout carries a graded value — a conversion propensity multiplied by a predicted LTV conditioned on converting. The auction now trains on full-funnel volume without giving up the value discrimination that made pLTV worth doing.

Sparsity vs. noise: what the auction gets to learn from
Purchase-only pLTV gives the auction a sharp label on under 1% of the funnel. Full-funnel pLTV keeps the volume and adds the discrimination.
The trade-off: Purchase-only pLTV is low-noise and far too sparse. Unvalued upper and mid funnel events are high volume and carry no value information at all. Pre-purchase pLTV is the only option that gives you both: full-funnel volume with a value gradient across every event.

What to watch out for

Definition drift between training and serving

Whatever value equation you pick has to be computed the same way when you train the model and when you serve predictions in production. That sounds obvious and it breaks constantly, usually through cost data.

A worked example: you are modelling gross margin, and your cost table holds current standard cost. You train on three years of orders, computing each order’s margin using today’s cost. An order from two years ago is now scored against a cost that did not exist when it was placed. Costs move — commodity prices, freight, supplier renegotiations, private-label mix — so you have just baked a systematic bias into every historical label, and the model learns a margin structure that never happened. Cost has to be as-of the order date, in training and in production.

Returns, if you sell anything people send back

If you are modelling net revenue or net margin — and in apparel, footwear or fashion retail you should be, for the reasons laid out in Part 1 — then production needs a returns prediction model too. At the moment the order is placed you do not know what will come back, so expected net revenue on the current order is itself a prediction. Skip it and you are back to optimizing against a pre-return fiction, just with more machinery.

Feature leakage

Feature leakage is when information that would not have been available at prediction time sneaks into a training feature. The model looks brilliant offline and falls apart in production, because in production the future has not happened yet.

The canonical example in this domain: lifetime total order count. It is a genuinely strong feature — customers who have ordered more tend to keep ordering. But if you compute it as the total in your database today, then for a customer’s first order in 2024 you have handed the model the fact that they went on to place eleven more. Trained that way, the model learns to read the future. In production it gets a 1 and predicts like a one-time buyer.

Every historical feature has to be imputed as of the moment of prediction — order count as of that timestamp, days since last order as of that timestamp, category affinity built only from events that had already occurred. This is tedious and there is no shortcut.

Evaluate where the money is, not where the model looks good

Aggregate accuracy metrics hide the segments that matter. The opportunity in pLTV bidding is concentrated in exactly the segments that are hardest to predict, so that is where evaluation should concentrate:

  • New customers. No purchase history, no behavioural depth — just the current order and whatever the identity layer can resolve. Nail this and every prospecting campaign optimizing on LTV:CAC benefits, because prospecting is by definition all first orders.
  • Pre-purchase prospects. Harder still. Expect a less precise model and evaluate it against the right bar: does it separate non-converters from converters, and among likely converters, does it separate high future value from low? Rank ordering and calibration matter more here than point accuracy.
  • Returning customers. The easiest of the three, and still valuable — it is the signal behind retention bidding, lifecycle audiences and win-back economics.

Current limitations worth knowing about

Native pLTV support is new. Google’s value-based bidding has been around longer and is comparatively mature; Meta’s pLTV offering is newer, and there are constraints worth planning around today.

  1. One pLTV event per dataset. You select a single event per dataset to carry the pLTV signal. If you wanted one upper-funnel and one bottom-funnel event, or custom events split by segment — Male Registration versus Female Registration, say — you cannot do that yet. Pick the single most impactful event and build around it.
  2. Roughly two to three weeks to activation. Once a healthy integration is in place, the pLTV pipeline typically takes about two to three weeks to spin up. There is very little instrumentation in Events Manager telling you whether your account is ready for pLTV optimization, and you may need the account whitelisted for it. Have your Meta support team verify status rather than guessing from the UI. We expect Meta to add visibility features here in due course.
  3. Update windows are tighter than some business models. AppendValue supports pLTV value updates for 7 days after the original event is created. For brands with long consideration cycles or infrequent engagement, seven days of refresh may not be enough to capture the signal that actually moves the prediction. The window for net revenue and margin updates is tighter still — around two hours.

None of these are reasons to wait. They are reasons to design the integration knowing where the edges currently are — and we expect most of them to loosen as pLTV bidding moves from early adopters into mainstream use.

How Angler approaches value optimization

This is the problem the Foundation Ad Model was built for. A few things we have learned are worth doing properly:

Flexibility in the value definition

Revenue, gross margin, net revenue, net margin, contribution margin, or a non-monetary score on a high-value action — the value equation is a configuration, not a rebuild. Where current order value itself has to be modelled (net revenue or net margin), that is supported out of the box: two models run in unison, one predicting the net value of the current order, one predicting future value excluding it.

Full-funnel predictions

Pre-purchase predictions are broken out by conversion propensity and pLTV conditioned on conversion, so the auction gets a value gradient across the whole funnel rather than a sharp label on 1% of it.

Transparency, and proof before spend

Predictions are available per entity — per customer, per order — and land in your data warehouse, where your own data and marketing teams can inspect them. Before a dollar of media is bid on a prediction, we run seal-the-envelope testing: predictions are generated from the production environment, sealed, and then tracked against actuals as the cohort matures. It simulates the real use case rather than a backtest, and it is how teams build conviction before committing budget.

Monitoring, drift and retraining

Automated monitoring for model drift and feature shift, plus graceful handling of features the model has never seen — a new discount code appearing on a Tuesday should not degrade predictions while someone retrains. Models retrain on a schedule and on demand, which matters most for retailers heading into a peak period where behaviour changes faster than any fixed cadence.

Configurable to the business, not to the model

  • Prediction windows of 90, 180 or 365 days. Long windows still lean on the most recent data available, so the model captures current temporal trends while producing a long-horizon forecast.
  • Sales-channel-specific models for omni-retailers: predictions by acquisition channel, and repurchase modelled either within the same channel or across all channels combined.
  • Closed-loop measurement: predictions and actuals are triangulated through campaign-level UTM attribution, so you bid on predicted LTV and then true up against actual LTV when the cohort matures.

Does any of this actually predict well?

Fair question, and the only honest way to answer it is with out-of-sample results on the hard problems, not the easy ones. The charts below are from held-out data with no overlap with the training period.

Difficulty runs in this order: pre-purchase prediction is hardest, new-customer prediction next, returning-customer prediction easiest.

Hardest: pre-purchase prediction

Every score below is generated before the visitor has ever bought, from on-site behaviour alone, with no purchase history to learn from. Prospects only; returning customers excluded. 877,735 prospect sessions in a held-out test week, sorted into 20 bands of 5% by predicted 90-day LTV.

Pre-purchase prediction: conversion rate, predicted vs actual, prospects
Conversion rate by predicted-LTV band: 13.4% predicted vs 12.6% actual in the top band, 0.11% vs 0.13% in the bottom — a 120× spread, rank-ordered cleanly across all 20 bands.
Pre-purchase prediction: 90-day LTV, predicted vs actual, prospects
90-day LTV per visitor by band: $53 predicted vs $54 actual at the top, $0.32 vs $0.36 at the bottom — a 170× spread from a model that has never seen the visitor buy anything.

Two things matter here. The model separates non-converters from converters across two orders of magnitude, and among the visitors it does expect to convert, it separates high future value from low. That is precisely the discrimination the auction needs on upper-funnel events.

Hard: new customers, no purchase history

First-order customers, ranked into 100 equal buckets of 1% each by predicted 90-day LTV, on a non-overlapping holdout of 315,681 new customers.

First-order accuracy: new customers, predicted vs actual 90-day LTV
New-customer 90-day LTV, predicted vs actual across 100 buckets. Total predicted value lands within 0.5% of total actual.
  • 92 of 100 buckets land within 10% of actual; 78 within 5%.
  • Excluding the bottom five buckets — the noisiest tail, where a handful of dollars swings the percentage — all but three of the remaining 95 are within 10%, and mean absolute error falls to 3.1%.
  • Rank ordering holds cleanly at the decile level across a 49× spread in actual value — $10.50 in the bottom bucket, $516 in the top.
  • Aggregate calibration is 0.995 — the model’s total predicted value is within half a percent of what actually materialized.

The deepest buckets are where the model is least precise, and we would rather show that than crop it. In a bidding context it matters less than it looks: the decision the auction is making is whether this prospect belongs in the top decile or the bottom one, and on that question the model is unambiguous.

Easiest — and still worth a lot: returning customers

Returning-customer orders, ranked into 100 buckets of equal order volume, on a holdout of 1,936,713 orders.

Returning-customer accuracy: predicted vs actual 90-day LTV
Returning-customer 90-day LTV, predicted vs actual. All 100 buckets land within 10% of actual.
  • 100 of 100 buckets within 10% of actual; 97 of 100 within 5%.
  • Mean absolute error of 2.0% across buckets.
  • The top 1% of orders: $1,173 predicted against $1,176 actual — a quarter of a percent apart, at 25× the value of the bottom bucket.

This is an easy problem, but easy does not mean low value. It is the signal underneath retention bidding, lifecycle segmentation, win-back thresholds and subscribe-and-save economics — and it is the one most brands can stand up first.

When done correctly, pLTV models are accurate enough to bid on — and that holds on the hard problems, not just the convenient one. Pre-purchase scoring separates value across two orders of magnitude before a visitor has ever bought. New-customer predictions land within half a percent in aggregate with no purchase history at all. Returning-customer predictions land within 10% in every single bucket.

Frequently asked questions

Is this only for subscription brands? I don’t have a subscription business.

No — it is not just for subscription businesses, though subscription brands (and brands offering both one-off purchases and subscribe-and-save) are a natural fit because repeat behaviour is built into the model. But if you are a DTC brand or an omni-retailer with a fair bit of repurchase activity in the first 90 days after acquiring a new customer, this is for you too. The question to ask is not “do I sell subscriptions” — it is “do a meaningful share of my new customers come back inside my prediction window?” If the answer is yes, there is LTV signal to bid on.

How is pLTV bidding different from value hacking?

Value hacking overwrites the value field on your conversion event with a predicted number, so the platform’s generic value model — the same one every advertiser gets — chases it. Native pLTV support means the platform builds a model for your brand from your pLTV event stream, and the prediction travels in its own object. Current order value stays in the value field, so you can still calculate immediate ROAS and pLTV:CAC from the same event instead of choosing between them.

Do I have to pick revenue or margin? What if my CFO and CMO disagree?

You pick one primary value equation per optimization, but that choice is a configuration rather than a permanent commitment. In practice, the exercise of choosing is the most useful part — it is the moment the CMO and CFO agree on a single definition of value and codify it in the model and the event payload. Most brands with meaningful returns land on net revenue or net margin; brands with wide cost variation across SKUs tend toward contribution margin.

How long does it take to get live on Meta?

Assuming a healthy Conversions API integration is already in place, the pLTV pipeline typically takes about two to three weeks to spin up. Events Manager gives you little visibility into whether your account is enabled for pLTV optimization, so verify status with your Meta account team rather than inferring it from the UI. You may also need your account whitelisted.

What prediction window should I use — 90, 180 or 365 days?

Start with the window your repurchase behaviour actually fills. If most repeat orders land inside 90 days, a 90-day window gives you a tighter, faster-validating signal. Longer windows suit considered-purchase categories and higher-ticket goods. A long window does not have to mean a stale model — ours still leans on the most recent data available so the forecast reflects current temporal trends.

How do I know the predictions are good before I spend media against them?

Seal-the-envelope testing. Predictions are generated from the production environment, sealed, and then tracked against actuals as the cohort matures — the same setup you would run live, measured before any budget is committed to it. It is a materially stronger test than a backtest, because it exercises the real pipeline including latency, feature availability and identity resolution.

We already have an LTV model from our analytics team. Can we use that?

Possibly, but check three things first. Is it individual-level rather than cohort or RFM-based? Is it forward-looking from the moment of acquisition rather than a backward-looking description? And can it serve a prediction within minutes rather than in a nightly batch? Backward-looking LTV models are genuinely useful for reporting and cohort analysis; they are the wrong instrument for bidding. Also audit for feature leakage — historical features computed as-of today rather than as-of the prediction time are the most common failure mode.

Does this work for omnichannel retailers with physical stores?

Yes. Predictions can be produced by acquisition channel — online versus in-store — and repurchase can be modelled either within the same channel or across all channels combined. For most omni-retailers the combined view is the honest one, since a customer acquired online frequently repurchases in store and crediting only one side understates what the acquisition was worth.

What is feature leakage, in one sentence?

Feature leakage is when a training feature contains information that would not have been available at the moment of prediction — for example, using a customer’s lifetime order count as it stands today when scoring their first order — which makes the model look excellent in evaluation and fail in production, where the future has not happened yet.

Where to start

  1. Agree the value equation. Get the CMO and CFO in one room and pick the number the business actually banks. Write it down.
  2. Audit your current signal. Is the value field carrying order value, or has it been hacked? Can you calculate immediate ROAS and pLTV:CAC from the same event today?
  3. Check your prediction capability against the three requirements: individual-level, forward-looking, low-latency. Audit for leakage.
  4. Add pre-purchase scoring. Purchase-only pLTV will leave the auction starved of labels no matter how large your spend.
  5. Prove it before you spend it. Seal the envelope, let the cohort mature, then bid.

Angler builds a Foundation Ad Model for each brand — turning first-party data into the auction-ready signals platform AI needs, delivered through Predictive CAPI to Meta, Google and TikTok. If you want to see what your value optimization signal could look like, book a demo.

Read Part 1: Value Optimization Is a Sharp Stick — Getting Value and Profit Right on Meta and Google

Related: Cracking Predictive LTV-Based Bidding on Meta and Google Ads

References

Angler AI

The signal layer for AI-run advertising.

SOC 2 certified
© 2026 Angler AI Inc. All rights reserved.