Understanding Currency Conversion in Prebid Server: What Publishers Need to Know
In a global digital advertising ecosystem, ads can be bought and sold in multiple currencies—creating both opportunities and challenges for publishers. When bids arrive in various currencies, inconsistencies can make reporting, revenue management, and auction fairness complicated.
Prebid Server’s currency conversion feature exists to solve these challenges, ensuring all bids are evaluated on equal footing and publishers get paid what they expect. This article explains how Prebid Server handles currency, what settings matter, and how publishers can configure and troubleshoot for optimal results.
How Prebid Server Handles Currency Conversion
Prebid Server is designed to normalize all bids into a single currency before evaluating and selecting winners. This step is crucial for running fair auctions when bidders respond in different currencies or when a publisher’s reporting needs require all revenue to be tracked in, for example, USD or EUR. Without it, publishers may unknowingly favor some bidders and lose out on potential revenue.
Request Currency vs. Bid Response Currency
Every auction processed by Prebid Server specifies a ‘desired request currency,’ which is the target currency for all bid responses. If a bidder returns a bid in a different currency, Prebid Server converts the value using up-to-date exchange rates. For example, if you request bids in USD but a bidder replies in EUR, Prebid Server will translate the EUR amount to USD for proper ranking and reporting.
Configuring the Desired Request Currency
Publishers (or their ad ops teams) declare the target auction currency primarily using the ‘cur’ parameter in the OpenRTB request or stored requests for AMP and app traffic. If none is set, each Prebid Server deployment defaults to a standard currency—usually USD. For fine control, PBS-Java environments can set a system-wide default using the ‘auction.ad-server-currency’ config. It’s best to be deliberate here to match your financial operations and reporting currency.
Sources and Management of Exchange Rates
Accurate and timely exchange rate data is essential for fair currency conversion. Prebid Server fetches exchange rates from a central, frequently updated source to ensure consistency and trust in auction outcomes.
Default Behavior and Customization
By default, both Prebid Server (Go and Java) fetch current rates from Prebid.org, which updates daily with data from the European Central Bank. Prebid Server regularly refreshes these rates: every 30 minutes by default for PBS-Go, or every 15 minutes for PBS-Java. For most publishers, these defaults should suffice.
If a publisher operates in a niche market or requires custom rates, the platform allows hosting a custom JSON file at any public URL—ensuring flexibility for special cases or more frequent updates.
Request-Defined Rates and Priority
Prebid Server supports per-request currency rates, enabling advanced ad ops teams to send specific rates in the header bidding call. A ‘usepbsrates’ flag determines whether Prebid Server uses the externally loaded rates or the rates provided directly in the request body. This flexibility is crucial for highly customized environments but should be handled carefully to avoid accidental rate mismatches or tampering.
Conversion Logic and Common Pitfalls for Publishers
Understanding how conversion impacts actual auctions is key to avoiding mistakes and ensuring optimal revenue.
Bid Conversion Example
Suppose a publisher requests all bids in USD. If a bidder replies with a CPM of 1 EUR and the current EUR-to-USD rate is 1.13, Prebid Server converts the bid to $1.13 for ranking and selection. If the rates aren’t available, those bids are ignored to prevent misvaluation—potentially reducing auction competition.
Disabling or Troubleshooting Currency Conversion
It’s possible (though rare) to disable the conversion mechanism by setting specific config values, usually for troubleshooting or very controlled test environments. Furthermore, Prebid Server provides an admin endpoint to debug current rates and validate that conversions are working as expected. Ad ops teams should check this endpoint if they notice unusual bid filtering or pricing anomalies.
Granularity and Currency Scaling
Currencies with vastly different CPM scales, like JPY or INR, require custom price granularity settings in Prebid Server. Failing to customize granularity can push most bids into a single pricing bucket, undermining the precision of auctions and hurting yield. Unlike Prebid.js, Prebid Server cannot apply a granularity multiplier – publishers must explicitly define price buckets tailored to their currency needs.
What this means for publishers
Currency conversion in Prebid Server directly impacts auction fairness, accuracy of revenue reporting, and ease of reconciliation. Publishers gain more control over international demand but must ensure their currency settings and exchange rate sources are reliable and transparent. Mishandling conversion settings or ignoring granularity can lead to hidden revenue loss or reporting confusion.
Practical takeaway
For publishers using Prebid Server, always define your desired auction currency explicitly and confirm it’s aligned with your internal reporting or your ad server’s settings. Regularly monitor the currency conversion sources and refresh intervals, and consider hosting your own rate file if you require special precision or timing.
Don’t overlook price granularity: for markets outside the USD/EUR norm, set custom buckets to maximize the competitiveness of your auctions. Finally, use Prebid Server’s admin tools to audit your configuration and troubleshoot unexpected bid behavior. Mastering these levers means better control, competitive yield, and smoother operations in an increasingly global ad ecosystem.