Understanding Blended Segment CPMs

Salesforce Audience Studio offers customers the opportunity to build complex segments using multiple providers and rule operators.

You can read more about constructing segments here in the Segment Builder Guide

Contents of this article:

Salesforce Audience Studio Segment CPM Overview
Best Practices
CPM Calculation Details
CPM Fluctuations
Data Provider Payouts
Understanding the Methodology

Salesforce Audience Studio Segment CPM Overview

Effective March 1 2019

In an effort to provide the most accurate CPMs for segments that utilize 2nd and/or 3rd party data, Salesforce uses a CPM calculation and data provider payout algorithm that takes into consideration a number of factors. The Salesforce CPM algorithm returns back a calculated blended CPM and is also able to determine appropriate compensation to the data providers that have been used to contribute to the segment composition. While we will not disclose the actual calculations, the algorithms for calculating the blended CPM take into consideration a wide array of elements including:

  • rule operators
  • rule population
  • rule CPM
  • segment population
  • rule location (parent versus nested)

All of these elements are weighted and built into the CPM calculation. It is a blended CPM, so it can never exceed the highest rule CPM nor be lower than the lowest rule CPM. The calculation also takes into account suppression (AND NOT) rules which can often be as valuable as inclusion rules.

The figure below illustrates the potential blended CPM that could exist between the upper and lower limit rule CPMs. The calculated blended CPM for a complex segment will always exist between these boundaries based on the rules added to the segment.


On a monthly basis, the CPM calculated for a given segment is locked for the duration of the month. This CPM represents the estimated value customers are actually billed for using that segment in a given month, despite any fluctuations to the segment in a given month. Each month, the blended CPM will re-calculate the first time the segment processes, to help true up and take into account changes and fluctuations in the previous month. More details about why this is the case below.

Best Practices for Managing Segment CPMs

Once a segment processes and a CPM gets calculated, it is locked for the duration of the month.

The CPM will not be recalculated until the subsequent month, the first time the segment re-processes in that month. Any edits made to the segment during the course of the month will be reflected in the segment composition and vendors will be compensated per their contribution to the segment, but the CPM for the segment will not change during the course of the month.

The CPM in the UI is the CPM you will be charged for using a particular segment. The CPM value represents the cost per thousand impressions, so CPM costs only apply when:

  1. The segment is enabled for activation in an impression based activation partner
  2. Impressions are targeted against that segment within an activation partner

While it is difficult to calculate the blended CPM on your own, you can determine an approximate value by understanding the rules you are using while constructing a segment. The blended CPM will always exist somewhere between the highest and lowest CPM rule values in the segment regardless of how many rules have CPM values. If you were to construct a segment with 50 rules, each having different CPM values and the highest was $2.00 and the lowest was $0.50 the resulting blended CPM value will always exist between those boundaries, with weighting towards rules with higher populations. It is also important to factor in all 1st party data (at $0 CPM) as well as any partnership data which may also show up at a $0 CPM.

Once the segment processes and the blended CPM gets calculated it is locked for the month. Any segment edits will not get re-calculated into the blended CPM until the following month. The CPM you see is the CPM you will be charged. You are still able to make segment changes while the blended CPM is locked and those changes will behave in all normal and anticipated ways except for their impact on the blended CPM, which will not be adjusted until the subsequent month.

How to work with Salesforce Audience Studio CPMs

  • Try to estimate ahead of time where you think the CPM will be before you commit the segment. This will give you a sense of what the costs may be before the CPM gets locked. The information above can assist you in creating these estimates
  • If you have to edit segments, make sure you complete edits before the end of the month so the changes can be properly addressed in the next processing of the blended CPM
  • If you need to make more robust changes mid-month or you want to force a new CPM, copy the original segment, make your edits and let the new CPM process


CPM calculation details

When Salesforce calculates the blended CPM customers see in the UI for complex segments built using multiple data providers, we heavily weight allocations on a population dominant scale. That means that rules with larger population will typically receive more credit allocation and have a heavier influence on the calculated CPM. However, populations are not the only factor, and additional weighting factors like operators and rule location as a primary are also considered as part of the overall calculation. We look at how the rule operators and rule location impacts the rule population in proportion to the resulting segment population and add those factors into the CPM calculation.

Other methodologies may see $0 rules (1st party or partnership data) dropped from the CPM calculation (but not from the fair share payout) which would skew the CPM higher. The blended CPM calculation includes these rules (if they are present) as part of the base calculations.

What this means is that we calculate the CPM based on the contributions of the different data providers. This calculation will likely be difficult to replicate without the full weighting of the contributing factors, but here are some illustrative examples:

Example 1: A segment with 2 rules. Rule 1 has a population of 500,000 and a CPM of $3.00. Rule 2 has a population of 15,000,000 and a CPM of $0.50. The 2 rules are joined with an OR (Rule 1 OR Rule 2).

  • A traditional “max” CPM would simply put this CPM at $3.00 giving precedence to the larger CPM
  • A blended CPM would likely calculate this to be closer to $0.75 after weighing all of the contributing factors to the segment

Example 2: A segment with 2 rules. Rule 1 has a population of 500,000 and a CPM of $3.00. Rule 2 has a population of 15,000,000 and a CPM of $0.50. The 2 rules are joined with an AND NOT (Rule 1 AND NOT Rule 2).

  • A “max” CPM model may put this CPM at $3.00 giving precedence to the larger CPM. In this model there would be no compensation to the data provider that is joined with an AND NOT
  • Blended CPM would potentially calculate this to be closer to $1.25 since the operator does factor minimally into the calculation it could shift some additional weighting to rule 1. In this model both data providers would receive compensation

Example 3: A segment with 2 rules. Rule 1 has a population of 500,000 and a CPM of $3.00. Rule 2 has a population of 15,000,000 and a CPM of $0.50. The 2 rules are joined with an AND (Rule 1 AND Rule 2).

  • Different versions of “max” CPM would put this at either $3.50, essentially joining the CPMs, or using the highest value CPM of $3 to represent the segment.
  • Blended CPM would likely calculate this to be closer to $2.00 since it weights the operator but doesn't give it full precedence.

The estimated blended CPM calculations in the above are only for example purposes. The actual CPMs in those scenarios are based on a number of factors and may not match the examples provided.

CPM Fluctuations

In the Salesforce CPM model, the blended CPM that is calculated once a segment processes is locked for a given month. This value is what customers are actually charged for activating a given segment, and enables customers to better predict their data costs, while still being as accurate as possible for data providers contributing data to a complex segment.

In order to remain as accurate as possible, the CPM for a given segment will recalculate the first time the segment processes in a new month, helping to true up any changes that may have occurred to the segment composition. There are 3 main drivers that can impact the calculated CPM on a monthly basis:

  1. When a segment is edited
  2. Data provider taxonomy updates
  3. Segment rule populations changes

Of these, the customer has control of the first and should be mindful of making continuous segment edits throughout the month for a more predictable CPM month over month.

One of the main reasons for using the blended CPM model is to make as accurate a value as possible. By locking CPMs to be refreshed monthly we have aligned to the billing process of billing for activation 1 month in arrears, provided some levels of predictability and narrowed the gap that can exist between what you might estimate your data costs to be versus what you are actually charged. While locking a CPM indefinitely may appear to be an ideal scenario it would have larger implications beyond just making it easier to predict the CPM. In general it would be unfair to all parties involved, penalize customers for using 1p data and incorrectly compensate data providers without adjusting fluctuations.

As a result, the blended CPM gets locked after the first time it is calculated and recalculates (then locks again) each subsequent month the first time the segment processes that month. This establishes monthly predictability, manages minor naturally occurring fluctuations and establishes an understandable workflow.

This only locks the CPM, so it can be used as a predictable billing value for the month. You are still able to make changes to the segment but those changes will not be reflected in the CPM until the next blended CPM refresh in the following month.

It is important to keep in mind that Salesforce is focused on the pass through of data fees to data providers, meaning we pay out the data provider what we collect on their behalf. Salesforce does not apply an overall rev share to blended segments which could otherwise be used to mask fluctuations in CPMs creating an artificially static CPM.

The table below is a detailed example of the types of changes that may occur inside a segment after it is created and how the CPM will react.

  Month 1 Month 2
  Segment Created Segment Edited Data Provider made Changes No change from last modification
Segment Composition Segment A Segment A Segment A Segment A Segment A
Provider 1 = $1 Provider 1 = $1 Provider 1 = $1 Provider 1 = $1 Provider 1 = $1
Provider 2 = $2 removed      
  Provider 3 = $0 Provider 3 = $0 Provider 3 = $1.50 Provider 3 = $1.50
CPM (re)Processed Yes No No No Yes
UI CPM $1.67 $1.67 $1.67 $1.67 $1.25
CPM used for payouts and Data Providers included — Maximum Coverage Provider 1 = $1 Provider 1 = $1
Provider 2 = $2.00  
Provider 3 = $1.50 Provider 3 = $1.50
CPM Charged $1.67 $1.25
How the payout works Maximum coverage calculation looks for the day in which the most data providers were active in a segment. The 1st non zero CPM uses the data provider CPM from the first moment it was not $0



1st Non-Zero CPM

The first non-zero CPM the algorithm calculates (in a month) becomes the CPM for the entire month. Any changes to the CPM made after the creation of the 1st non-zero CPM are not used until the following month. If a CPM stays at $0 for the entire month it will stay at $0 during any payout allocations. In the table above you may wonder how we set the CPM for data provider 3 to $1.50 when the first occurrence that we see of the rule is set at $0. If, in the table above, Provider 1 were to change their CPM to $2 in that month we would still use the $1 CPM since that was the first non-zero CPM we saw for them. Segment rule CPMs can change over any given time span. The 1st non-zero CPM algorithm uses the first occurrence of a non-zero CPM it sees within a specific month regardless of how many edits may have been made to the segment rule within that timeframe.

Data Provider Payouts

In order to ensure the most accurate payout to data providers in a given month, Salesforce uses a maximum coverage calculation.

The blended CPM calculation and the 1st non-zero CPM algorithm only determine what will be charged for the segment. This does not have an impact on the method used to payout data providers.

Payouts to data providers utilize the maximum coverage calculation, which scours the segment composition data for the month to find the day in which the most data providers were active in the segment and bases the payout calculations on this composition. This method ensures any data provider that contributed to a segment within a given month will be compensated, even if that provider is no longer part of the segment at the point in time when the payout is calculated.

Understanding the Methodology

Most fair share analysis systems do not evaluate every single moment in time in which a segment received an impression. Allocation is never done in a real time state since there are often many systems involved, each operating on different time scales. The most accurate way to determine CPM and data costs would be to actively calculate the CPM at the exact moment a single impression is delivered to the segment where you completely evaluate the segment composition at that precise moment in time, calculate the CPM that would be charged, and determine exactly how you allocate that single impression. This of course would create a system so complex and incapable of forecasting or controlling data costs.

What most systems do as a result is to determine points in time. Most reporting from activation partners is delivered on a monthly basis and those systems that can/do report daily are often aggregated into monthly views. This now means that we have a monthly snapshot of a total number of impressions that were targeted against a segment. Since we now have a monthly number that we are forced to work from we must also have a single CPM to match that point in time. The simplest way to do this would be to set the CPM as the highest rule CPM in the segment and charge you at that price. This would unnecessarily charge you an inflated price for the data and, given our transparent business model, we would be refunding data costs monthly. Our model focuses on setting an optimal CPM that is as accurate as possible and is also predictable on a monthly basis.

This all happens 1 month in arrears where we take numerous reports from vendors, often in different formats and delivered through different methods, and process it through our algorithms to attribute use and costs against the data used in activation.


Have more questions? Submit a request


Article is closed for comments.