Blog

Was it demand or was it us? How to tell seasonality from campaign changes

A good month gets credited to the season by default. Three checks, all of them readable in an afternoon, say whether the season earned it or something you changed did.

Melvin Salas4 October 20264 min readVerified 4 October 2026

The month everyone remembered

On one subscription account we manage, there was a month everyone remembered as the seasonal high. When we checked, it had lower search demand and fewer sign-ups than the month before. Its better cost per sale came from spending less. And the same spend in the same month a year later converted far worse, which pointed at the ads rather than the budget.

That is one account, so it carries no figures here. It is the reason we now run three checks before a good month is credited to the season, and the reason this post exists.

The platform will not tell you which it was

Google's own page on how its bidding algorithms learn says fluctuations in performance are often driven by internal factors like adding new keywords, testing new ad copy or updating landing pages, and that they can also be influenced by external factors like seasonality or competition. The same page says Smart Bidding takes seasonality into account and, in most cases, will automatically handle seasonal increases in traffic without requiring any input.

Our reading: both kinds of cause land in the same columns, and the bidder adapting to them does not label which one it adapted to. So the question has to be answered from outside the cost per sale figure itself.

Check one: did demand move?

Start with demand. Inside the account, the nearest measure we have found is the pool behind impression share. Google writes impression share as impressions/total eligible impressions, so a month's pool is its impressions divided by its impression share. That is our arithmetic on Google's formula, and we only do it inside one Search or Display campaign, on an impression count that leaves search partners out, because Google says search partners won't be included in impression share data and gives Shopping and Performance Max their own ways of counting.

Read it with care. Google says eligible impressions are estimated using many factors, including targeting settings, approval statuses and quality, and that changes to your bids, quality or Google's ad systems may change the set of auctions in which the system estimates that you were competitive. On our reading, the pool is a demand reading only for a campaign whose bids, targets, targeting and quality did not change between the two months, and even then Google's own systems can move it. Where they did, we take demand from a search volume measure outside the campaign instead.

Check two: did more people arrive wanting it?

Next, the site's own count of sign-ups or enquiries, taken from the site or the CRM rather than from the ad platform. This is our reasoning, not a platform rule: if the season lifted the month, more people should have arrived wanting the product, and the site records them whether or not an ad gets the credit.

If searches and sign-ups were both flat or down and cost per sale still improved, the season is not the explanation. Something about how the money was spent is.

Check three: what did we change?

List every change to every campaign across both months: budgets, targets, bid strategies, keywords, ads and landing pages. Start with spend. In our experience a campaign that spends less tends to give up its most expensive conversions first, so its cost per sale can improve in the same month it sells less. That is an observation from our accounts, not something Google documents.

Then find the like-for-like month a year on, at a similar spend, and read its demand the same way. If the same budget in the same month buys far fewer sales, the budget is not the reason, and what changed in the ads, the keywords or the site is where to look.

Let the months finish first

None of this works on an unfinished month. Google says that if you compare recent performance with past performance, your recent performance might not look as strong, because some of the people who clicked your ad haven't converted yet, and since spend is fully reported it may appear that you have fewer conversions and a higher cost per conversion.

Google's conversion delay page says to see your own delay with a date range that ends at least 30 days ago, or longer if you have a longer conversion window, segmented by Conversions > Days to conversion. A last month that looks worse than the one before may only be a month that has not finished reporting.

Where seasonality adjustments fit

Google offers seasonality adjustments, which it describes as an advanced tool that can be used to inform Smart Bidding of expected changes in conversion rates for future events like promotions or sales. It says to use them only if you expect major changes to conversion rates, because Smart Bidding already manages seasonal events, and that they are ideal for short events of 1 to 7 days and may not work as well for extended periods of more than 14 days at a time.

Our reading: an adjustment is for a sale you know is coming. It is not a tool for explaining a month after the fact, and a month nobody has explained is a poor basis for next year's adjustment.

What we do with it

This is our practice, drawn from too few accounts to carry a number. A good month is not credited to the season until demand, sign-ups and the change list have all been read. Where demand and sign-ups were flat or down, the credit goes to what we changed, and we name the change. Where they were up, the season gets the credit, and the plan for next year is to be ready for it rather than to repeat whatever we happened to do that month.

This is how we work, not only what we write about

Riibon's AI surfaces what it finds with the evidence attached, and a person decides. Recommendations are stress-tested before anyone acts on them, and every change is recorded with what happened afterwards.

Ask the Riibon app what changed in your account, and what happened next. It is free, with no time limit and no card. Or book a call and we run it for you.

← All posts
Share this pageLinkedIn