Case study · Azzurro Club Vacanze · Meta ads · 2025

Hospitality · Paid social · Creative analysis

The creative year: 296 ads, one account, 2025

The twelve weeks above are one campaign. This is the whole of 2025, pulled from the Meta API at ad level and reconciled against the account totals: 296 ads, €63,734.75, 20.1 million impressions, 236,350 link clicks. It says three things a campaign report does not.

296ads, archived and deleted included
€63,735100% of the account's 2025 spend
20.1Mimpressions
7.2%of budget spent on ads under €100 — 177 of 296

Pushing harder made the media dearer, not the creative worse

Group every ad in the lead campaign by how much that single ad spent in its lifetime, and the cost of a thousand impressions climbs at every step: from €2.97 for the ads that spent under €50 to €5.24 for those past €1,000 — 76% more. Cost per click follows, €0.215 to €0.391, 82% more.

Cost per thousand impressions, by how much a single ad spent
Every ad in the lead campaign, grouped by its own lifetime spend. Same account, same year, same audience pool.
013462.97< €50€50–100€100–250€250–500€500–1k5.24> €1k
Show data table
Spend of the adAdsSpent €CTR %Cost per click €CPM €
< €50689771.380.2152.97
€50–100161,1121.410.2453.46
€100–250346,1191.630.2163.5
€250–500196,7451.580.243.8
€500–1k117,9941.530.3244.94
> €1k2030,1901.340.3915.24

The click-through rate, meanwhile, barely moves: it sits between 1.34% and 1.63% across every band, and the most expensive band is not the worst at persuading. So the creative is not wearing out. What changes is the price of reaching the next person in the same pool.

This is the shape of audience saturation, and it has a practical consequence: an ad's cost per click is not a property of the ad. Judge two creatives that spent €40 and €4,000 on the same number and you will retire the one that was simply asked to do more. The honest limit: this export has no reach or frequency column, so the pattern is consistent with saturation, not proof of it.

Watching to the end barely predicts a click

Every video pitch ends with a completion rate. Here are 108 videos with at least 5,000 impressions, split into four equal groups by the share of viewers who reached 95% of the video.

Cost per click, by how far people watched
108 videos with at least 5,000 impressions, split into four equal groups by the share of viewers reaching 95% of the video.
00.10.20.30.40.36least watched2nd3rd0.27most watched
Show data table
GroupVideosReached 95% of the videoCTR %Cost per click €
least watched274.1%1.260.36
2nd275.6%1.350.35
3rd276.9%1.810.31
most watched2710.4%1.520.27

Cost per click does improve across the groups, €0.36 to €0.27. But the click-through rate does not rise cleanly — the third group beats the most-watched one — and across all 108 videos the correlation between finishing and clicking is r = +0.10. Getting past the first three seconds correlates more than twice as strongly (r = +0.25).

Completion is close to a vanity metric here. The leverage is in the opening, not the ending, and a creative brief that optimises for watch-through is optimising the wrong half of the video.

Where the money went

Click-through rate by format
All 296 ads. Video took 91% of the budget and earned it — with one measurement caveat below.
Video1.42Carousel0.41Carousel with video0.33Boosted IG post0.01Image0.51
Show data table
FormatAdsSpent €Share of spendCTR %Cost per click €CPM €
Video23057,97791.0%1.420.263.67
Carousel232,3903.8%0.410.562.29
Carousel with video161,5682.5%0.330.421.37
Boosted IG post141,2111.9%0.0114.080.94
Image135880.9%0.510.140.72

Video took 91% of the spend and returned the best click-through rate of any format, 1.42% against 0.41% for carousels. The outlier needs stating rather than celebrating: boosted static Instagram posts show a cost per click of €14.08, but this whole page measures clicks on the link, and a boosted post collects its engagement on the post itself. That number condemns the measurement, not the creative.

Germany cost three and a half times Italy

Six ads ran in German, for €6,220. They performed better on persuasion — CTR 1.59% against 1.16% in Italy — and still cost far more: €10.21 per thousand impressions against €2.95, so €0.64 a click against €0.25. Among the ads that spent over €500, the three worst costs per click are all German and the five best are all Italian.

Read the creative and the market separately, or you retire a winning ad for being expensive in an expensive country.

This export stops at the click. It carries no leads, no bookings, no reach or frequency, so nothing here becomes a cost per booking — and the twelve-week dataset above is a different window and a different campaign. Joining media spend to confirmed stays is the thing I would build first, and it is why the two halves of this page cannot be added together.