Skip to content

Price a buyer from its ping or post response

A buyer pricing rule can set what the buyer pays from a value in the buyer's own ping or post response, in tiers, with a fallback when nothing matches.

Buyers7 min readUpdated

This article shows how to set a buyer's price from what the buyer itself answers on its ping or post. For example, a buyer answers a ping with an eligible debt amount, and you pay $40 for 15,000 to 19,999.99, $60 for 20,000 to 29,999.99, and $10 when nothing matches.

If the buyer simply states its own price in the reply, you do not need a rule: read it with the price mapping described in Response mapping.

Prerequisites

  • A Ping Post buyer (priced from its ping, its post, or both) or a Direct Post buyer (priced from its post)
  • A real sample of the buyer's response

Two ways to read the response

A buyer pricing rule reads the buyer's answer in one of two ways:

Type this in a condition What it reads Setup on the buyer
ping.<name> A named value set up on any of the buyer's ping steps Yes
post.<name> A named value set up on the buyer's post step Yes
ping_step_N:<field> A field in ping step N's response, exactly as sent None
post:<field> A field in the post response, exactly as sent None

A dot means a named value, a colon means a raw field. post.amount is whatever the buyer's post step names amount, with its cleanup. post:amount is the literal amount key in the post response. A raw ping field always names its step, because a buyer can have several ping steps: type ping_step_1:amount, not ping:amount. Use dots for nested fields, for example ping_step_1:data.offer.amount.

Use a named value when the number needs cleanup (cents to dollars, rounding), a default when it is missing, or when one shared rule must read buyers that put the value in different places. A raw field needs no setup and is fine for a plain number or word on one buyer.

Step 1: Name the value on the buyer

Skip this step if you use raw fields.

  1. Open the buyer and go to its ping step, or its post.
  2. Find Response values for pricing rules, below the step's response mapping settings.
  3. Click Add value.
  4. Enter the Name in pricing rules, for example amount. Use lowercase letters, numbers and underscores, starting with a letter. Rules will call it ping.amount or post.amount.
  5. Enter the Field in the response, for example data.eligibleDebtAmount.
  6. Choose the value type: Number, Text or Boolean.
  7. Optionally set Multiply by (for example 0.01 to turn cents into dollars), Round to (0 to 4 decimal places) and a Fallback for when the field is missing.
  8. Paste a real reply into the Sample Response panel to pick the field by clicking it and preview what the value reads.
  9. Save the buyer.

A name must be unique across all of a buyer's ping steps, because a rule reads ping.<name> without a step number. Give each step's value its own name, such as price_step1 and price_step2, or read each step with a raw field.

Step 2: Write the pricing rule

  1. Open the buyer's Rules tab, or the campaign's Rules tab.
  2. Under the buyer's pricing list, click Add pricing.
  3. Add a tier. In the condition's field picker, open the Buyer response group and pick the value, or type one of the forms above.
  4. Set the condition and what the tier pays.
  5. Click Add tier for each further band.
  6. Set a Fallback for when no tier matches.
  7. Save the rule.

A tier can pay:

Price type Pays
Fixed A set amount, for example $60
Value of a field The value itself, for example the buyer's own price answer
% of a field A percentage of the value, for example 2% of the amount
Per unit of a field An amount per unit, for example $1 per 1,000 of the amount

Prices read from a field can have a minimum and a maximum. A result below 0 becomes 0. The rule's fallback cannot read the response itself.

Step 3: Test before going live

Click Test a lead on the Rules page. For a rule that reads the response, the tester asks for the response values in a Buyer response section and prices with them. A field left empty counts as missing.

How values are read

  • Number removes spaces, $ and commas, so "$1,500.50" reads as 1500.5. Numbers are read in US format. A value such as "100 USD" or "€100" counts as missing.
  • Text keeps the value as sent. Comparisons ignore letter case and surrounding spaces.
  • Boolean reads true, yes, y and 1 as true, and false, no, n and 0 as false. Anything else counts as missing.
  • Missing is never zero. A missing value with no value fallback makes the conditions that need it fail, so the rule moves to its next tier, then its fallback, then the buyer's usual price.

When the price is set

  • From the ping: after the buyer's last ping step answers, before the bid is checked. That price is the bid the auction ranks and the minimum price checks.
  • From the post: after the post is accepted. On a Direct Post buyer this is the only moment.

A price from the post is known only after the buyer already has the lead. So:

  • If it comes in below the minimum price, the sale still goes through and the lead shows a configuration warning naming the rule.
  • If it comes in below the payout quoted to the supplier on a route set to Only buyers that cover the quote, the sale still goes through and is marked Sold below quote.
  • At the ping, a buyer priced only from its post bids its usual price, because its real price is not known yet. Keep that buyer's usual price in line with its tiers, or price it from the ping instead.

Which price wins

  • Pricing rules run top to bottom, and the first that decides wins. An ordinary pricing rule above a response pricing rule decides first.
  • If a buyer delivery rule accepts with its own price, the pricing rule's price wins. The delivery rule's amounts only fill what the pricing rule left empty, such as a source payout.
  • A delivery rule that rejects the buyer is never overridden.

Shared rules across buyers

A shared pricing rule runs separately for each buyer, against that buyer's own response. With named values, each buyer can point the same name at its own field, so one rule prices buyers whose responses differ. The editor shows when a name is not set on a buyer, for example "Not set on Buyer B, so tiers that need it don't match there".

Expected result

On the lead's timeline, the buyer shows a PRICING step naming the rule, the tier that matched (or Fallback) and its price, with each value read shown as name = value. On the pings list, a bid set this way shows a calculator badge.

Troubleshooting

  • The rule always pays its fallback. The value is missing: wrong field path, wrong type, or a non-US number format. Paste a real response into the buyer's Sample Response panel and check what the value reads.
  • ping.x never matches, although the response has x. ping. reads only named values. Add a value named x on the ping step, or use ping_step_N:x.
  • A shared rule prices one buyer from its fallback. That buyer does not set the value name. Add it on that buyer.
  • The response rule's price is ignored. An ordinary pricing rule above it decides first. Move the response rule above it.
  • The price is the buyer's usual price, not a tier. No tier matched and the rule has no fallback. Add a fallback or widen the tiers.
  • "is already used" when saving the buyer. The same value name is set on two ping steps. Rename one.

Frequently asked questions

Either works. Type ping_step_1:amount or post:amount to read a field exactly as sent. Set up a named value when you need cleanup such as cents to dollars, a default when the field is missing, or one shared rule across buyers with different response formats.

ping.amount is the value the buyer names amount on its ping steps, with its cleanup applied. ping_step_1:amount is the literal amount key in ping step 1's response. If no value is named amount, ping.amount is missing even when the response has an amount key.

Missing is never read as zero. The value's own fallback is used if set. Otherwise the tiers that need it do not match, and the rule falls to its next tier, then its fallback, then the buyer's usual price.

A price from the post response is known only after the buyer already has the lead, so refusing it would send the same lead to a second buyer. The lead shows a configuration warning naming the rule so you can adjust its tiers or fallback.

No. Only buyer pricing rules can, because whether a buyer receives a lead is decided before its response exists.
Back to Help Center

Comments

No comments yet — be the first to share your thoughts.

Leave a comment

Comments are reviewed before they’re published.