I'm not sure if this is the correct place to report this issue.
During my time working for a monetization partner, I noticed revenue discrepancies between Xandr's dashboard and our own analytics system. I intercepted many creatives from real production bid responses and consistently found the AUCTION_PRICE macro in one of the impression pixels there which is ultimately replaced on the client and then sent to Xandr's data collector. Reviewing the whole bidding pipeline end-to-end I identified this as the root cause. Here's how it works:
- Assume auction currency is EUR.
- Price of the posted bid CPM is e.g. 1.0 USD.
- Prebid server performs currency conversion to EUR, which is worth more than USD, so the bid CPM is now e.g. 0.9 EUR.
- Prebid.js replaces the
AUCTION_PRICE macro with 0.9.
- Xandr's data collector seems to accept 0.9 as the USD bid value, even though the original bid was 1.0 USD. I'm assuming they accept it as-is because of second price auction support, but I'm not sure.
- Discrepancies were about the relative difference in value between EUR and USD (average ~15% over time).
Here's how we fixed it:
- Replace
AUCTION_PRICE macro with the original bid CPM and put it live.
- Wait for a few days.
- Run discrepancy calculation again.
- Discrepancies were now minimal (<1%), thus proving the macro to be the root cause.
If no revenue share is deducted and the auction currency is USD (i.e. same as Xandr's bidding currency), this issue doesn't materialize.
This issue might also materialize in c2s auctions if the auction currency differs from the bid currency, but I haven't investigated it as much as s2s.
If you have any questions or need investigation assistance, don't hesitate to ask.
I'm not sure if this is the correct place to report this issue.
During my time working for a monetization partner, I noticed revenue discrepancies between Xandr's dashboard and our own analytics system. I intercepted many creatives from real production bid responses and consistently found the
AUCTION_PRICEmacro in one of the impression pixels there which is ultimately replaced on the client and then sent to Xandr's data collector. Reviewing the whole bidding pipeline end-to-end I identified this as the root cause. Here's how it works:AUCTION_PRICEmacro with 0.9.Here's how we fixed it:
AUCTION_PRICEmacro with the original bid CPM and put it live.If no revenue share is deducted and the auction currency is USD (i.e. same as Xandr's bidding currency), this issue doesn't materialize.
This issue might also materialize in c2s auctions if the auction currency differs from the bid currency, but I haven't investigated it as much as s2s.
If you have any questions or need investigation assistance, don't hesitate to ask.