While the primary focus of a customer data platform (CDP) is on all types of customer data, the right CDP software should also allow for the activation of other types of data to grow Return On Ad Spend (ROAS) and Profit on Ad Spend (POAS) significantly.
Let’s take a look at some best practices in this area.
Additional Data Sources
There are several additional data sources that can be of importance for activation use cases. Within your data environment, you want to be sure that this additional information is also available, next to core customer information. You may think of product details. This matters because you don’t want to promote personalized offers in advertising for products that are not in stock, or are predicted to go out of stock quickly. Another data source that can be interesting is fulfillment delivery status so customer service and the customer have that insight when interacting.
In order to apply mature modeling such as pCLT (predicted Customer Lifetime Value) on profit for retailers, we need supporting data signals such as product margins (cost of goods sold), product returns, and discounts applied. These signals must be part of the data platform in order to apply the modeling and fuel the bidding algorithms to steer on profitable customers and to find profitable look-alikes that are similar to the existing customer with the highest lifetime value of profit. Another example is campaign performance data because you want to have that insight to be able to steer these campaigns for optimal ROI.
There are other data sources that can be interesting as well. Google Merchant Center Best Seller or price competitive reports can be leveraged as additional information you can use for your marketing strategy. In addition you can use Google Search Console data for SEO purposes, Google Trends, and weather forecasts. Weather can be used to advertise raincoats automatically when showers are predicted in a certain region. These are all data sources that can be valuable together while used in conjunction with your platform to build activation solutions and personalization.
Here is a solution architecture of a global omnichannel fashion retailer who we built a CDP for. They label it a ‘Marketing Activation Cloud’.
On the left side, you see the data sources that I just described are added to the activation and analytics platform. Next to the Google Analytics data and the Google Marketing products, we also have Merchant Center data. Additionally we have Search Console data, of course, while relevant parts of ERP and CRM information are living here too. Also information from the affiliate partners and other search engine systems and social marketing tools. They are all ingested in near real-time where possible so that this information is available for all kinds of activation use cases. And next to that other interesting sources like weather data.
So don’t limit yourself to customer data only. It’s important to note that the results can be looped back into a data lake or other sources of the enterprise. So both the sources and the results can go beyond the customer scoping.
Predicting The Return Rate Of A Transaction
One other best practice when using metrics like Customer Lifetime Value (CLTV) for marketing optimization as a retailer is to have a proper model for predicting the return rate of a transaction. If you want to calculate the profit of a transaction, you want to be able to calculate that quickly, immediately after the conversion, to send the value of the conversion to a marketing advertising platform. The return period of the product is much longer, so you want to predict the return rate.
You could take a very simple metric which is the average return rate of a transaction in your market. However, for steering on profit, you want a much more accurate prediction model developed. The nice thing about a return rate model is that this is not product information only.
The average return rate of a type of product is interesting, but other features of the transactions help to make a more accurate return rate model. The number of products in the basket, and the number of the same type of products, indicate that either multiple sizes or multiple colors were bought. Also, the payment method is a feature of predictions. Buyers who pay later have a higher tendency to return products than people that pay directly.
Summary
Adding non-customer data to your CDP has significant benefits. Models like Customer Lifetime Value (CLTV) are powerful for optimizations of bidding strategies. Adding non-customer data such as profit to CLTV will make steering on POAS powerful and accurate because revenue is not the same as profit.
In addition, you might want an accurate prediction of the net value of that transaction. A best practice, in this case, is to add product margin, product discounts and product return to the model. This way you can bid higher on customers and look-alikes of the most profitable customers.
This approach will make advertising and search platforms algorithms focus on generating orders with high profit instead of simply high turnover. This value is then used as (predictive) conversion value in these platforms, which drives the bidding algorithm to optimize for more profitable orders. You will be pleasantly surprised by the uptake of adding non-customer data to the Profit On Ad spend POAS in your CDP.
How non-customer data joins the customer profile
None of the sources above creates value until it can be joined to the profiles and events already in the platform. A margin table that lives in the ERP and a conversion event from the web shop describe the same order only if both carry a key the platform can match on. In practice that key is usually the product identifier — a SKU, a variant ID, or a product ID — plus a time dimension for signals that move, such as stock levels or delivery promises.
To make the join reliable, model external data at the same grain as the events it will enrich. If transactions are recorded per variant but margins are negotiated per style, a style-level margin applied to a variant-level conversion quietly distorts predicted profit. Geography has the same trap: a weather feed keyed by city cannot enrich a profile that only stores a country. Decide the grain up front, map every source to it, and leave out sources that cannot be mapped rather than averaging them in.
Conflicts need a declared winner, too. When the ERP and the analytics tool report different margins for the same product, the platform needs one declared source of truth per attribute instead of a silent last-write-wins. Conflicts that reach the bidding layer turn into bids nobody can explain afterwards, and they usually surface as margin numbers that no finance team recognizes. Name the winning system per signal, document the choice, and alert when a source starts disagreeing with its own history — that drift almost always precedes a broken feed.
Cadence matters as much as structure. Margins, discounts, and catalog structure change when merchandising changes them, so a daily batch is usually enough. Stock, pricing, and fulfillment status change continuously, and a bid informed by yesterday’s availability keeps spending on products a customer cannot actually receive. Once the enrichment is in place, the predicted profit of a conversion can leave the platform as a conversion value for the ad exchange and the bidding algorithms behind it — which is the whole point of the exercise.
Matching signals to activation decisions
Every signal earns its place only when it changes a decision that a bidding or activation system actually makes. The table below maps the signals discussed earlier to the decision they feed, where they act, and what breaks when the signal is wrong or stale. Treat it as a checklist before promising a use case: if you cannot name the decision, the signal is decoration.
| Signal | Decision it feeds | Where it acts | Failure mode when wrong |
|---|---|---|---|
| Product margins and discounts | Bidding on predicted profit instead of revenue | Conversion value passed to bidding platforms | Style-level margins applied to variant-level orders overstate profit on discounted variants |
| Return-rate prediction | Netting the profit of a conversion before the return window closes | Bid values and audience valuation | Category averages ignore basket size and payment method, so late payers look as profitable as direct payers |
| Stock and availability | Promoting only products that can actually ship | Promotional audiences and creative selection | Stale feeds keep buying impressions for out-of-stock items, and the orders are cancelled anyway |
| Weather forecasts | Regional offers and creative rotation | Geo-targeted campaigns | Region keys that do not match the targeting keys leave campaigns running on an outdated forecast |
| Competitive price and best-seller reports | Which products to push, and at which price point | Campaign structure and product feeds | A best-seller list reflects past sales, not future margin, so it rewards yesterday’s winners |
| Affiliate and partner performance | Budget split between owned channels and partners | Partner suppression and look-alike seeding | Duplicate conversions across partner and owned tracking inflate both channels |
Partner feeds deserve the extra discipline: deduplicate affiliate marketing conversions against owned-channel tracking before they enter the platform, or the model learns from orders it has counted twice. The same deduplication logic applies to any source that reports the same transaction from more than one side.
Failure modes and how to fix them
Most activations of non-customer data fail for operational reasons, not conceptual ones. Three patterns recur.
Silent staleness. A feed that ingested cleanly last quarter starts returning empty or partial files after an upstream system changes. Bidding continues on the last good value, and nothing errors, so nobody notices. Monitor row counts and freshness per source, and expire any signal that misses its valid window — a stock level older than its cadence should be dropped, not frozen.
Key drift. Merchandising restructures a product hierarchy, or a partner re-keys a feed, and joins suddenly match fewer rows. Conversion values inflate or collapse with no change in real demand. Reconcile join coverage on a regular schedule: the share of conversions that actually received their enrichment is a number worth watching.
Profit signals leaking into audiences. Margin and return data exist to price conversions, but they also describe customers. Feeding net profit back as a profile attribute without separating the two purposes builds audiences that chase high-margin, low-return buyers so narrowly that volume collapses. Keep the pricing signal in the bidding layer, and let campaign managers — or an agentic CDP that acts on the complete picture — own the audience logic.
FAQ
Which non-customer data sources improve POAS the most?
Product margin, return, and discount data improve POAS the most, because they are the signals that turn revenue into predicted profit. Without them, bidding optimizes toward turnover, and a high-revenue order full of discounted, frequently returned products still counts as success. Stock and fulfillment data then protect that estimate by stopping spend on products that cannot ship. Add weather and competitive reports once the profit prediction holds up.
How often should non-customer data be refreshed for ad activation?
Match the refresh cadence to how fast the underlying signal changes, not to a single daily batch for everything. Stock levels, prices, and fulfillment status change continuously, so a bid that uses yesterday’s availability keeps buying impressions for products that cannot ship. Margins, discounts, and catalog structure change when merchandising changes them, so a daily batch is enough. Whatever the cadence, expire signals that miss it instead of reusing the last good value.