ASF (Germany) and OBRAZ (Czech Republic) case study: A close look into getting 209 and 124 regular donors from Meta Ads.
This is a story of fundraising, struggles and wins.
And dear reader, this story, this deep dive is quite long. But that’s intentional. I’ve tried to give you as much real context as possible, so that after reading it, you don’t just understand what happened, but you actually feel confident enough to run a similar campaign yourself. Without guessing, without panic, and with a much better chance of making it work.
Acquiring regular (monthly) donors through Meta Ads is one of the most challenging things you can do in digital fundraising.
You're not asking someone to sign a petition. You're not asking for a one-time gift. You're asking a stranger to commit to giving you money every single month often based on a single ad they saw while scrolling through funny cats and dogs videos.
The cost per donor can easily exceed 100 EUR. Campaigns can burn through budget with nothing to show.
But when it works, it really works. Regular donors provide predictable income. They stay for years. A single donor giving 10 EUR/month is worth potentially hundreds of EUR over their lifetime.
That's why Meta Ads are worth it. Sometimes you just need a little help. And hopefully this deep dive will give it to you.
You will find detailed, practical results of two European animal welfare organizations which ran Meta Ads campaigns during the 2025/2026 year-end fundraising season to acquire regular donors. You will find insights, concrete numbers, concrete struggles, concrete wins.
Two organizations. Two countries. Two different challenges. One goal: Regular donors.
So it begins. And you start going through all these questions:
where to start? which content should I test? How many creatives? What should I look at in my reporting? Why is cost per donor so high?
This is normal. I was having these questions as well. The good news? They can be solved.
We'll go through the whole proccess - from setting KPIs through creating Meta Ads to reporting. But firstly, let's look at what was accomplished:
please note results are without VAT as OBRAZ doesn't work with it
→ Budget spent: 84 044 CZK (3 450 EUR)
→ Regular donors acquired: 124
→ Cost per donor: 678 CZK (28 EUR)
→ 12-month expected income: 243 810 CZK (10 020 EUR)
→ Return on investment: 3x (first year)
please note results are with VAT (21 %)
→ Budget spent: 14,946 EUR
→ Regular donors acquired: 209
→ Cost per donor: 71.5 EUR
→ 12-month expected income: 20,155 EUR
→ Return on investment: 1.35x (first year)
alright, cool, so both organisations will gain investment from Meta Ads in the first year, that's usually how you measure success of the ads. Which brings us to how both organisations started. So what's the first step?
Before any creative or ads were built, both campaigns aligned on two key metrics:
Primary KPI
Cost per donor: not clicks, reactions, or comments. The logic is straightforward. You want to calculate how much will the reuglar donor (acquired by Meta Ads) bring in a year. So you start with your average monthly gift (typically around 10 EUR) and multiply it by ten (not twelve as this already accounts for donor attrition over the year). The result is your benchmark for acceptable acquisition cost - so your investment will be back in a year.
In the ASF campaign, this set the target at 100 EUR per regular donor. In OBRAZ, the target was 40 EUR per regular donor, reflecting lower Meta Ads costs in the Czech Republic compared to the Germany market and a deliberate need to hit ambitious benchmarks to demonstrate that Meta Ads can deliver at scale and justify further investment.
Secondary KPI
Total number of donors acquired in the campaign window. ASF wanted to get to at least 100 regular donors through Meta Ads, OBRAZ set it at 50 regular donors.
okay, so I have my base number - cost per regular donor, I know how many regular donors I want to get, now I need what? The content plan:
This is the fun part, where we brainstormed the content. We wanted to establish what kinds of messages and visuals we want to work with.
In practice, two principles tend to work repeatedly in Meta Ads fundraising campaigns: urgency and social proof.
Urgency means giving people a clear reason to act now: a deadline, a limited window, or a sense that waiting has real consequences.
Social proof means showing that others already care and act: people donating, sharing, supporting, or standing behind the cause. It reduces hesitation and makes the decision feel safer and more “normal”.
Below you can see part of the creatives that were tested in the Obránci zvířat campaign.
We didn’t rely on one idea, but worked with several content principles and narratives in parallel.
The same image was often tested with different headlines, and the same headline was paired with different visuals.
Among the tested approaches were: personal story of a single chicken, strong visual contrast, close-ups of damaged or deformed body parts, detail shots focused on the eye, graphic representations of the space in which chickens live, and variations explicitly built around social proof and urgency.
The goal of brainstorming like this is not to guess the winner, but to give the campaign enough strong, distinct angles so that both people and the algorithm have something to respond to.
“There isn’t much time left.
949 out of 960 people like you have already become supporters.
We are looking for the last 11 heroes. Help now. Donate.”
We also tested a few video creatives, and this one was clearly the most successful. The reason is simple and very human. It combines several strong signals at once: clarity, urgency, and social proof. The video shows a concrete number of missing donors, which immediately makes the goal tangible, this is not an abstract problem, but something that can actually be finished. At the same time, it clearly says that there isn’t much time left, creating natural pressure to act now, not later. People can instantly understand what is happening, how close the campaign is to success, and what their donation would change.
Also, you can see it's not some big production. Basically just a simple video with a headline. Nothing complicated.
This piece of content generated 7 regular donors with a crazy low cost per regular donor at 12,3 EUR.
oh I am spoilering the results of some creatives already. well so let's skip few steps and already talk about how the content performed...
because I know, you want to know :P and then we'll go back to step-by-step
so what performed well?
It actually got really interesting.
We tested 27 different creative concepts. The performance gap between best and worst was not subtle, it was massive. Some ads brought in dozens of donors. Others, despite significant investment, brought zero.
Let's look at the data.
The clear winners
Three concepts stood out significantly above the rest.
Showing a chick appearing to cry out, with the headline "No one hears his cry full of pain. Only you. Help him, donate now."
This creative brought 30 regular donors across three versions (14 + 9 + 7) with same headline, different images. Cost per regular donor ranged from 20 EUR to 26 EUR. The emotional directness worked. It wasn't abstract suffering, it was a specific moment of distress, and the viewer was positioned as the only one who could respond.
Urgency messaging launched in the final phase of the campaign with the headline: "Only a few days left. Chicks need you right now. Goal: 700 donors. Join 621 people. Donate now."
26 regular donors. Cost per donor: 19 EUR. We already talked about urgency working in theory. This is what it looked like in practice. Same audiences that had been seeing emotional content for weeks suddenly responded much more strongly when a deadline appeared.
In her short life, she will only see pain. Help her, donate now.
This was our volume creative. 27 regular donors across three versions (14 + 6 + 7). But here's the thing: it was more expensive compared to other best creatives. Cost per donor: 49 EUR (v1), 38 EUR (v2), 26 EUR (v3) - same headline, different image among versions.
The first version especially was almost 2x more expensive than urgency or video creatives.
Why did we keep running it? Because in the early phase, we needed to test what resonated and didn't have that deadline/urgency yet or other winners. For the early stage of the campaign, it was the winning creative.
and what didn't work?
This is a factory for suffering. Help them. Donate now.
The wide shot showed the scale of the problem, thousands of chickens packed together. But it also made the problem abstract. It's harder to connect emotionally with a crowd than with a single face looking at you.
I am growing faster than my body can take. I deserve compassion as well. Donate now.
It seems that when you see only a body part of the animal and not a face, the creative doesn't land results.
okaay what about ASF?
With ASF we tested even more creatives. It was 59... yep, that's right. More than 20 of them brought zero conversions. But the ones that worked, worked well enough to make the entire campaign profitable.
One key difference from the Czech campaign: ASF ran their entire campaign with a matching offer. Major donors committed to matching donations, which gave every creative an extra persuasion layer: "your donation gets multiplied."
This shaped the messaging throughout. While OBRAZ relied purely on emotional appeal and urgency, ASF could add a concrete value proposition: your money goes further.
Like with OBRAZ, we didn't rely on one idea. Multiple narratives and visual approaches were tested in parallel:
First-person chicken voice: the chicken speaks directly: "I can't take it anymore!", "I'm suffering. Please help me.", "I was born to suffer."
First-person supporter voice: flipping the perspective: "I want chickens to not suffer anymore!", "I want to save chicken lives!"
Matching message prominent: leading with the multiplier effect: "Your Euro makes the difference now!", "Your donation + 100€ on top for the chickens"
Urgency + social proof combination: progress bar showing "Only a few days left!" with "Already 625+ supporters joined!"
Graphic suffering imagery: very direct visuals of collapsed, dying chickens
Scale shots: wide factory images showing thousands of chickens
Low-barrier "just 1€" messaging: in the extended phase: "Do you have 1€ left for me?"
The same image was often tested with different headlines, and the same headline with different visuals. The goal was to give the algorithm and audiences enough variety to find what resonated — especially critical when pixel tracking was unreliable.
soo what actually worked for ASF?
“Only a few days left!
These animals don’t have time to wait.
Donate now and save lives.
718 heroes have already joined.
Only 2 people are missing to reach 720.”
This creative does several things at once. It creates urgency (“only a few days left”), shows clear social proof (“718 heroes already joined”), even though the cost per donor was a bit higher compared to other creatives (80 EUR) it got 27 donors - which is the most out of all creatives. In donor volume, this one was the winner.
“1-Euro Wonder
1 € from you + 100 € from our generous major donors= 101 € for the chickens
Donate by 07.01 and 100 € will be added. Extension of the donation campaign!”
This was the clear winner of the campaign in terms of acquisition cost (17 EUR per regular donor) with 22 donors got. We had a very low entry point (“1 € from you”) paired with a crystal-clear matching offer (“+100 € from major donors”).
It is important to add context, though: the average monthly gift acquired through this creative was lower than the campaign average with the 1 EUR being specifically highlighted.
“Help millions of suffering animals: helden-fuer-huehner.de
Now extended until 7 January:
100 euros extra on your monthly donation!
You can help me and millions of other chickens!”
Matching, urgency and very shocking scenes. It's quite clear why this one got 23 donors with 35 EUR per donor.
Was 59 creatives too many?
Honestly? Probably yes.
Here's the math. To properly test whether a creative works, you need to let it spend roughly 2× your target cost per donor. For ASF with a 100 EUR target, that means ~200 EUR per ad set before you can make a clear judgment.
With 59 creatives spread across multiple ad sets, you'd need a massive budget to give each one a fair chance. In practice, many creatives got killed early or never got enough spend to show their true potential. Some of those "zero conversion" creatives might have worked with more budget, we'll never know.
The learning phase myth doesn't help here either. You don't need Meta to complete its "50 conversions per ad set" learning phase for ads to work. That would require unrealistic budgets for most NGOs. What you need is enough spend to see signal: and 2× your target cost per donor is usually enough to tell if something has potential or not.
My recommendation for most campaigns:
→ Minimum: 10 distinct creative concepts → Maximum: 30 creative concepts → Sweet spot for most budgets: 15-20 creatives
This gives you enough variety to find winners, but not so many that your budget gets spread too thin to learn anything.
The 59-creative approach made some sense for ASF given their larger budget but for most organizations, it's overkill. Start with 10-15 strong concepts, test them properly, then iterate based on what you learn.
okaaay back to the step-by-step. We have the numbers we will be tracking, we have the content ready - now we need... a communication plan!
Above you see part of the ASF year-end communication timeline. It shows, in a very practical way, how the campaign is meant to move forward across social media (organic and paid) and mailing. Thanks to this, you’re not just “posting and advertising”, but you have a sense of rhythm: when the campaign starts, when it gains strength, and when it should feel more urgent.
You can clearly see the moments where it makes sense to push harder, add urgency, or connect multiple channels at once to increase the overall effect. In practical sense: if your ads are not working well in the beginning you can still know, you will have a communication window where you can add urgency to your creatives and lower the price per regular donor.
The plan doesn’t need to be perfect, its main job is to give you direction, so you’re not making every decision on the fly.
okay so you numbers done, content done, communication timeline done... now let's start and set up the ads? Well before that, you need to know, HOW you will be able to tell, if they are successful.
Here's something that doesn't show up in the final results, but made those results possible to measure in the first place.
Both OBRAZ and ASF had their tracking infrastructure ready before launching a single ad. This sounds obvious, but it's where many campaigns fail before they even start.
The setup included:
UTM parameters on every single link. Every ad variant had a unique UTM campaign tag that would follow the user all the way to the donation form. Without this, we'd have no way of knowing which creative actually brought which donor.
CRM configured to capture and report on UTMs. The donation system needed to store those UTM parameters. When someone donated, we needed to see not just "donation from Facebook" but "donation from facebook/cpc/post_8".
A reporting sheet updated daily. Both campaigns maintained a simple spreadsheet pulling CRM data by UTM source. Every morning, the team could see: which creatives brought donations yesterday, what's the running cost per donor for each variant, what should we scale up or pause today.
If you're new to this: check a Meta Ads Guide where you'll find more info on this.
Below you can see the logic in how the Excel Sheet can look like so you can clearly see what works:
phew.. right.. numbers → content → comms plan → reporting setup → well, actually now we can finally set up the ads
Finally! Let's talk about actual Meta Ads Manager stuff.
Campaign structure
Both organizations kept it simple. One campaign with multiple ad sets, each ad set targeting a different audience.
Campaign: Year-end 2025 (Conversion objective)
→ Ad Set 1: Engagement (people who engaged with FB/IG page)
→ Ad Set 2: SupporterList (custom audience from email list)
→ Ad Set 3: DonorsList (custom audience from past donors)
→ Ad Set 4: Advantage+ (letting Meta decide)
→ Ad Set 5: Website visitors last 180 days
⚠️ you can see below that now all the creatives were within one campaign/ad set. Especially when you are testing more creatives, you should aim at a maximum of 8 creatives in one ad set.
👏 engagement target audience surprised me - it proved the best for Obránci zvířat.
Okay so everything is set up. Ads are running. Now what?
disclaimer: long-read below. but worth it - spoiler: i had struggles.
Here's what actually happened during both campaigns — the struggles, the pivots, and the moments where it all came together.
OBRAZ: the slow start and the urgency
First 2 weeks, cost per donor hovered around 40 EUR which is GREAT result, but we wanted to be really ambitious and this was our border price. Sometimes we were slightly below, sometimes above. There was no comfortable margin.
The creative with a eye close-up was doing most of the work. It brought consistent results, but at 49 EUR per donor at that time, over-all numbers stayed in that uncomfortable "maybe this will work, maybe it won't" zone.
Then came the final week.
We launched the urgency creatives: "Only a few days left. 621 people already joined. We need 700."
The effect was immediate.
Cost per donor dropped from ~40 EUR to under 20 EUR. Conversion rates jumped. The same audiences that had been responding moderately suddenly converted at much higher rates.
The urgency phase was roughly 30% of total budget but brought disproportionately better results. If we had known this would happen, we might have allocated even more budget to the final days.
The lesson? If your early results are just okay (not great, not terrible) don't panic. The urgency phase can dramatically change the numbers. Both OBRAZ and ASF saw their best results in the final days when deadline pressure kicked in.
It's possible that the weeks of emotional content beforehand helped prime the audience. People had seen the cause, they knew what it was about, and the urgency just gave them the final push. But we can't say that for certain. What we can say is: budget some patience for the early phase, prepare your urgency content in advance, and don't kill the campaign before you've tested what deadline pressure can do.
ASF: when Meta can't see your results
ASF's campaign started with a different kind of problem.
The ads were running. Money was being spent. But Meta Ads Manager showed almost nothing. A few conversions here and there. Cost per conversion looked astronomical: 200, 300, sometimes 500 EUR.
If you only looked at Meta's dashboard, you'd think the campaign was a disaster.
But donations were coming in. The CRM showed new regular donors every day. The UTM tags confirmed they came from the ads for a much lower price.
So what was happening?
The pixel was broken. Not technically broken, it was installed correctly, firing on the right pages. But German users reject cookie consent at very high rates. No consent = no tracking = Meta can't see the conversion.
Only about 10% of actual donations were being recorded.
This created a real problem. Not just for reporting, for optimization. Meta's algorithm learns from conversions. If it can't see conversions, it can't optimize. The ads were essentially running blind.
The pivot: Conversion → Traffic
After about a week of this, I made a decision: switch some campaigns from Conversion objective to Traffic (Landing Page Views).
Why?
Conversion objective optimizes for... conversions. But if the pixel can't see conversions, Meta has nothing to optimize for. The algorithm is guessing.
Traffic objective optimizes for landing page views. This doesn't require the pixel to fire on conversion, just on page load. And that worked more reliably.
The trade-off: → Traffic campaigns reached more people for less money (lower CPM) → But they weren't "optimizing" for donors, just for clicks → So in theory, quality might be lower
In practice? With broken conversion tracking, Traffic campaigns performed comparably. Sometimes better. The lower CPM meant more people saw the ads, which compensated for less precise targeting.
Living without real-time data
The uncomfortable truth about ASF's campaign? I couldn't see what was working in real-time.
With OBRAZ, you could check Meta Ads Manager and get a rough sense of which ads were converting. The data wasn't perfect, but it was directional.
With ASF? Meta showed almost nothing useful. The dashboard was essentially fiction.
So every morning became a ritual:
Open the reporting Excel Sheet
Update it with Meta Ads spends
Calculate cost per donor for each creative
Compare to what Meta said (laugh at the difference)
Decide what to scale, what to pause
This was the only way to know what was actually working.
It meant decisions were always 24 hours behind. If a creative started performing well on Tuesday, I wouldn't know until Wednesday morning. If something was burning money with no results, same delay.
You have to be comfortable with that uncertainty. And you have to be ready to make dynamic decisions based on incomplete information.
Some days the CRM showed 5 new donors from one creative. Great, scale it. Next day, zero from the same creative. Was it a fluke? Audience exhaustion? Random variation? Hard to know. You make a judgment call and move on.
The insight: you need to be ready for dynamic decisions
Both campaigns taught the same lesson, in different ways.
OBRAZ showed that performance can change dramatically based on timing and messaging. The campaign that looked great but still were on the edge of the target price for three weeks became highly profitable in the final days. If they had panicked and cut budget early, they would have missed the best results.
ASF showed that you can't always trust the platform. When your tracking breaks, you need backup systems and the willingness to make decisions without perfect data.
In both cases, the teams that succeeded were the ones who: → Had tracking infrastructure in place before launch (UTMs, CRM reporting) → Checked real results daily, not just Meta's dashboard → Were willing to pivot strategy mid-campaign → Didn't panic when early results looked uncertain
Meta Ads isn't "set and forget." It's an ongoing conversation between your data, your instincts, and your willingness to adapt.
So, was it worth it?
If you take one thing from this deep dive, let it be this:
there is no single “perfect setup” for Meta Ads fundraising.
What worked here wasn’t magic, hacks, or secret targeting tricks. It was clarity about goals, patience with early uncertainty, and the discipline to let real data guide decisions.
Both campaigns succeeded for different reasons. OBRAZ showed how timing and urgency can unlock performance that wasn’t that visible at the start. ASF showed how campaigns can still work even when platforms fail to show the truth if you build your own way of seeing results.
Let's look at the numbers one more time.
OBRAZ spent 3,450 EUR and got 124 regular donors. At an average monthly gift of ~8 EUR, that's roughly 10,000 EUR in the first year alone. ROI: 3x.
ASF spent 14,946 EUR and got 209 regular donors. First-year income: ~20,000 EUR. ROI: 1.35x in year one. These donors will keep giving in year two, three, and beyond.
Both campaigns hit their targets. Both will be profitable. Both proved that Meta Ads can work for regular donor acquisition, even with a broken tracking, even with uncertain early results, even with 60% of creatives bringing zero conversions.
The key wasn't having perfect conditions. It was having: → Clear KPIs before starting → Multiple creative angles to test → Tracking infrastructure that didn't depend on Meta → Patience to wait for the urgency phase → Willingness to adapt.
If you're considering running Meta Ads for regular donor acquisition: yes, it's hard. Yes, it's uncertain. But with the right setup and the right mindset, it works.
Good luck.
Please write me at matej@growth-impact.eu with anything. I'll be glad to hear from you.
Author of this deep dive is Matěj Fišer, digital fundraiser at Greenpeace Czech Republic and consultant at Growth and Impact Group.