Why Did Your eCPM Drop? A Consent-Aware Revenue Diagnosis for Publishers
Don’t Blame the Banner First
When revenue falls, the banner is an easy target, especially if it was changed recently. But revenue is the product of traffic, fill, and price, and each can move for reasons that have nothing to do with consent. A good diagnosis separates them before you change anything.
Step 1: Split Revenue Into Its Parts
Write the equation down: revenue = impressions × eCPM / 1000. Then decide which side fell.
- Fewer impressions — fewer sessions, fewer pages per session, lower fill, or ad slots not loading.
- Lower eCPM — cheaper demand, more non-personalized traffic, or lower-quality placements.
Consent mainly affects eCPM, because ads with less user data usually earn less, but it can also reduce impressions if tags wait for a choice that never arrives.
Step 2: Check the Timeline
Line up the date of the drop against everything that changed:
- Banner design, wording, or button order.
- CMP version or configuration changes.
- Site releases, new ad units, or tag manager publishes.
- Seasonality, holidays, and known industry-wide demand shifts.
- Changes in your traffic sources.
A drop that starts on the exact day of a banner change points one way. A slow decline over weeks points elsewhere.
Step 3: Segment by Consent State and Region
This is the single most useful step. Report revenue and eCPM separately for:
- Visitors who accepted.
- Visitors who rejected.
- Visitors who never chose.
- Regions that require consent versus regions that do not.
If eCPM fell only in consent-required regions, the cause is likely in consent. If it fell everywhere, look at demand, floors, and placements.
Step 4: Look at the Share of Each State
An unchanged eCPM per state can still produce a lower blended number if the mix changed. For example, a rise in the share of visitors who never choose lowers the blend even though each group performs as before. Track the share of each consent state over time next to the eCPM.
Step 5: Verify the Technical Chain
Sometimes consent is the cause, but through a bug rather than user choice:
- A malformed or missing consent string makes partners treat everyone as unconsented.
- Consent signals reaching the ad tag too late delay or block the first auction.
- A vendor was removed from the vendor list and no longer receives consent.
- The banner fails to load on some browsers or devices.
Check a few real sessions in the browser tools to confirm the signals are present and correct.
Step 6: Compare Equivalent Traffic
Compare the same weekday, the same region, and the same device type, before and after the change. Aggregates hide the answer; narrow comparisons reveal it.
A Worked Example of the Reasoning
Suppose revenue fell the week after a banner redesign. You split it and find impressions steady but eCPM lower. Segmenting shows eCPM unchanged for visitors who accepted, but the share of visitors who never chose has grown. The cause is then not ad demand and not a signal bug; it is that more visitors leave the banner unanswered, perhaps because the new design is easy to ignore. The fix is to test the banner, not to change floors. Reasoning this way keeps you from solving the wrong problem.
Choosing the Fix
- Fewer people choosing: test a clearer banner, shorter text, and equal prominence of choices.
- More rejections: review wording and consider whether the number of purposes shown is overwhelming.
- Technical errors: fix the signal chain first; this is the cheapest revenue to recover.
- Demand shift: review floors and partners, since consent will not fix it.
Change one thing at a time and keep a log so you can attribute each result.
Where FlexyConsent Fits
FlexyConsent is a Google-certified CMP that sends Google Consent Mode v2 and IAB TCF 2.4 signals, so the consent side of this diagnosis starts from correctly formed signals rather than a custom setup you have to debug first. You still need your ad platform reports for the eCPM side.
Key Takeaways
- Split revenue into impressions and eCPM before looking for causes.
- Line up the drop against every change you made.
- Segment by consent state and region, and watch the mix as well as the rates.
- Rule out signal bugs before redesigning the banner.
- Change one variable at a time and keep a log.