The data you already have and are not using
Your data is scattered across ticketing, a spreadsheet and three forms. Having emails is not having a database, and the difference shows.
Meta tells you each sale cost you €4.20. Your spreadsheet, when you reconcile it at the end of the month, says something else. Neither one is lying: they’re counting different things, and until you understand what that difference is, you’re making spending decisions with the wrong number.
When Meta reports a cost per result, it’s counting results it was able to see. And what Meta sees ends the exact moment someone leaves Instagram and lands on your purchase page.
If your tickets sell on your own website with the pixel properly installed, the chain holds and the number gets reasonably close to reality. But that’s not what happens for most live events. What happens is this:
In every one of those cases, the sale exists, you collect the money, and Meta never finds out. The result is an algorithm optimising toward the only thing it can actually measure: clicks, visits, people who “started checkout.” Metrics that resemble a sale without being one.
Here’s the part that stings, and it isn’t the miscalculated number. It’s what that miscalculated number does with your money.
Ad systems learn from what you feed back to them. If you feed them clicks, they learn to find you people who click. And it turns out people who click a lot and people who buy tickets are not the same group: there’s a user profile that engages with everything, clicks on everything, and almost never buys. It’s cheap to reach, it inflates your metrics, and it doesn’t fill your venue.
So your campaign can be performing brilliantly according to the dashboard while your sell-through trails behind the previous edition. Both numbers are true at once. They simply aren’t talking about the same thing.
Try this: take your last ad campaign and answer these three questions.
How many tickets did you actually sell during those days? You have that number in your ticketing platform.
How many sales did the ad platform attribute to itself? You have that one in the Meta dashboard.
Do they match?
They almost never do. And the gap isn’t a rounding error: for live events it’s usually substantial, in one direction or the other. Sometimes Meta takes credit for sales that would have happened anyway, because someone who had already decided to go happened to see your ad along the way. Sometimes it misses real sales it actually caused.
What matters isn’t which of the two is true in your case. It’s that you don’t currently know, and you’re splitting budget between campaigns and creatives based on that number anyway.
There’s a way to close that loop, and it’s older than social media: it’s called an offline conversion, and it means sending the sale that happened outside the platform’s reach back to it.
The mechanism is simple to understand. When someone buys a ticket on your ticketing platform, you have that data: who, when, how much. If you send that information back to Meta — anonymised — the platform can match it against who saw or clicked your ads and close the chain.
From there, two things happen:
You see your real cost. Not cost-per-click dressed up as cost-per-sale, but what each sold ticket actually cost you, counting the ones closed on another device or three days later too.
The algorithm starts working for you. This is the part most underrated. If you teach Meta who actually buys, it stops finding you people who click and starts finding you people who resemble your buyers. It’s the same budget doing a different job.
Closing that loop means connecting your ticketing platform to your ad platform, and that’s a project. But there are three things you can do this week, with no new tools, that already move you closer.
Start comparing the two numbers for every campaign. Real sales in the ticketing platform against attributed sales in the dashboard, for the same period. Even if you can’t correct the gap yet, knowing it exists changes how you read the dashboard.
Stop optimising toward intermediate metrics. If your campaign is set up to maximise clicks, traffic or engagement, you’re explicitly asking for what you don’t actually want. It’s better to optimise toward a deeper event, even with less data volume to work with.
Use your real buyers as an audience. Even if you can’t send the sales back yet, you can still upload your buyer base as an audience and ask the platform to find people who resemble them. It doesn’t close the loop, but it stops you starting from zero.
None of these decisions feel urgent when all that matters is keeping the campaign live. But it’s worth asking the question before the season ends, while there’s still budget left to spend and time to correct course.
Because the problem with investing against the wrong CPA isn’t that you overspend for one season. It’s that every edition you make the same decision again, leaning on the same number, and the gap between what you believe is working and what’s actually filling your venue gets a little wider.
Tools like Nevent connect the ticketing sale with the ad platform to close that loop. But the first step needs no tool at all: open both tabs, compare the two numbers, and accept that they don’t match.
Because Meta only counts what it can see, and the purchase happens on a different domain, at the box office, or days later on another device. Those sales exist, you collect them, and the platform never knows.
Sending the sale that happened outside the ad platform back to it, anonymised, so it can match it against who saw your ads. It closes the loop and reveals your real cost per ticket.
Learn how Nevent can take your events to the next level
Leave us your email and we will send you ideas, guides, and updates to get the most out of your marketing
Leaving?
We will email you the full audience segmentation guide for festivals and events. Free, no spam.