Case study · Azzurro Club Vacanze · Dec 2022 – Feb 2026
Azzurro ads: 9,134 leads, and the week the funnel broke
After COVID the group needed its own booking channel instead of paying commission on most online sales. Direct online bookings went from 20% to 70% of revenue in two years. This page is about one campaign inside that work, and about the four weeks when it stopped working.
Context
Every booking made through an online travel agency costs the hotel a commission of roughly 15 to 20 percent. The direct channel has no commission, but it has to be built and fed: paid social to create demand, brand search so the intent already there is not bought by someone else, and email to bring back guests who had already stayed.
This campaign ran on Meta over twelve winter weeks, collecting leads for the summer season across the group's seaside properties at a roughly constant weekly budget.
What the campaign did
Show data table
| Week | Spend € | Leads | Cost per lead € |
|---|---|---|---|
| 10/11-16/11 | 853 | 734 | 1.16 |
| 17/11-23/11 | 1282 | 829 | 1.55 |
| 24/11-30/11 | 1187 | 730 | 1.63 |
| 01/12-07/12 | 1233 | 826 | 1.49 |
| 08/12-14/12 | 1203 | 901 | 1.34 |
| 15/12-21/12 | 1203 | 1230 | 0.98 |
| 22/12-28/12 | 1203 | 1375 | 0.87 |
| 29/12-04/01 | 914 | 1873 | 0.49 |
| 05/01-11/01 | 1182 | 193 | 6.12 |
| 12/01-18/01 | 1182 | 199 | 5.94 |
| 19/01-25/01 | 860 | 130 | 6.62 |
| 26/01-01/02 | 1352 | 114 | 11.86 |
The first eight weeks produced 8,498 leads for €9,078, an average of €1.07 each, with the best week over the holidays at €0.49. The last four weeks produced 636 leads for €4,576: €7.19 each, roughly fifteen times more expensive for the same money.
Where it broke
The obvious reading is that the audience got tired. The data says otherwise: impressions and clicks stayed in the same range in January, and the landing page kept receiving thousands of visits. What changed is what happened on the page.
Show data table
| Week | Landing page views | Leads | Conversion % |
|---|---|---|---|
| 10/11-16/11 | 2682 | 734 | 27.4% |
| 17/11-23/11 | 3771 | 829 | 22.0% |
| 24/11-30/11 | 3349 | 730 | 21.8% |
| 01/12-07/12 | 3547 | 826 | 23.3% |
| 08/12-14/12 | 3560 | 901 | 25.3% |
| 15/12-21/12 | 4580 | 1230 | 26.9% |
| 22/12-28/12 | 5352 | 1375 | 25.7% |
| 29/12-04/01 | 6670 | 1873 | 28.1% |
| 05/01-11/01 | 5083 | 193 | 3.8% |
| 12/01-18/01 | 4002 | 199 | 5.0% |
| 19/01-25/01 | 2465 | 130 | 5.3% |
| 26/01-01/02 | 2544 | 114 | 4.5% |
In the last week of December, 28% of landing page views became a lead. Two weeks later it was under 4%, with the same ads bringing the same volume of people to the same page. The media was still working; something on the page was not. Watching only the cost per lead would have sent me to rebuild creatives, which is the expensive way to fix the wrong thing.
I still cannot say what changed that week, and that is the actual finding. A holiday offer expiring, a form field breaking, a page edit made elsewhere in the company: any of them fits the shape of the data, and nothing in the setup could tell them apart, because only the ad account was instrumented. The first thing I would build now is the boring one: page-level conversion tracking with an alert, so a drop this size shows up on day two instead of week four.
Creative, hotel by hotel
The same offer, the same weeks, six properties: the cost per lead moved by a factor of eight depending on which opening image was used. A pool shot from above and the flag ran cheap and stayed cheap; a ball as the opening frame worked once and then stopped.
| Property | Opening frame | Round 1 | Round 2 | Round 3 |
|---|---|---|---|---|
| Alexander | pool from above + flag | €2.10 | €2.96 | €3.87 |
| Classic | pool from above / ball | €1.21 | €13.70 | €4.90 |
| Tokio | 4k video / ball | €2.27 | €9.65 | €8.46 |
| Mediterraneo | ball | €1.56 | — | — |
| Marina Beach | hotel + pool | €8.30 | — | — |
| King | hotel front + pool | €9.70 | — | — |
The decision this produced was simple: port the winning opening frame across properties instead of writing new scripts, and keep two variants per hotel in rotation so a fatigued hook never takes a whole property down with it.
One thing most people get wrong
Lead campaigns get judged on cost per lead, which mixes together three different things: how cheaply you buy attention, how well the page converts, and how good the offer is. Split them and the diagnosis takes minutes instead of a week. Cost per click tells you about the auction, conversion rate tells you about the page, and only the two together tell you what to change.
What didn't work, and what's missing
- Nobody was watching the page. The ad account had alerts, the landing page did not, so four weeks and about €4,500 went by before the drop was obvious.
- Leads are not bookings. This dataset stops at the form. What those 9,134 leads produced in confirmed stays was tracked elsewhere and never tied back to media spend, so I cannot state a cost per booking for this campaign.
- No holdout. With a small share of the audience kept out of the campaign, the share of bookings that would have happened anyway would be a number instead of an argument.
Figures from the campaign reporting sheet: twelve weeks, spend, impressions, clicks, landing page views and leads per week. The weekly data is in this repo.