Most wedding photographers start the same way: boost the gallery that did well on the feed. It collects two hundred likes, forty of them from other photographers, and not one message from somebody getting married next September.
Facebook ads work for a wedding photographer when the campaign asks for an enquiry on your own site, the audience is drawn around the places you will actually travel to, and every ad is one package angle you could take a booking for tomorrow. Likes are not a step towards that. They are what you pay for instead of it.
This guide is that account, run from a chat window. With the assistant connected to the ad account, the reading is one message and your time goes on the decisions.
Why is a wedding booking not a normal Facebook purchase?
Meta's machinery was built for things people buy repeatedly, at a steady rate, soon after they see the ad. A wedding is the opposite on all three counts, and that changes how the account is built.
- The decision takes months. Couples book anywhere from eighteen months to six weeks out. The click and the signed contract can be two seasons apart, so a report read three days in says almost nothing.
- Nobody buys twice. Every customer is a new customer. There is no repeat-purchase audience to sell to again, and a lookalike built from eleven past bookings is built on almost nothing.
- More than one person decides. The person who clicks is rarely deciding alone, and whoever is paying may never see the ad at all.
- The audience is small by definition. One region, one age band, one year of someone's life. Show ads to it every day and the same people keep seeing them, which is the problem the frequency number exists to warn you about.
So: ask for an enquiry rather than a sale, judge it over weeks rather than days, and expect a small, patient, creative-led account rather than a machine you scale by raising the budget.
How should a wedding photographer structure Facebook ads?
Fewer moving parts than most guides suggest. The structure has to be simple because the data is thin.
- One campaign, asking for an enquiry on your own site. The form on your site with a lead event behind it is the only enquiry you can follow all the way to a signed contract. Meta's in-app Instant Forms fill faster and hand you a contact the rest of your tools never see; the campaigns LoomaScale builds are the website-conversion kind, with a website lead event, and it does not create in-app forms.
- One ad set, not five. Delivery only settles once an ad set collects conversions, and a local photographer will never feed five of them. If you must split, split by travel scope — home region and destination — and no further.
- Location and age, then stop. Draw the radius around the venues you actually shoot rather than a city name. Interest stacks like engaged or wedding planning narrow an audience that is already small, and they age badly: the couple who booked a venue last month may never have touched any of those interests.
- One ad per package angle. Full day with a second shooter, elopement, micro-wedding, one signature venue. Each ad is a question about which promise gets the message. The same photograph in five wordings is not a test.
- Not the Boost button. Boosting optimises for the reaction, and reactions are the cheapest thing on the platform to buy.
Which audiences and placements waste a photographer's budget?
Meta has no search terms report, so waste here never looks like a bad keyword. It looks like money going to a surface, an age band or an ad that was never going to produce an enquiry. Here is the shape of it on a small local account over 30 days. The figures are illustrative, not a customer's results.
| Where the money went | Spent | Leads |
|---|---|---|
| Audience Network placement | $88 | 0 |
| Age 18–24 | $61 | 1 |
| Ad: behind-the-scenes reel | $74 | 0 |
| Enquiries outside the travel radius | $53 | 2 |
Four categories cover most of it:
- Placements you never chose. Automatic placements spread spend across everything Meta owns and rents. Some of that is fine; the part worth checking every month is whether a surface is taking a real share of the budget and returning nothing.
- Age bands collecting inspiration. The youngest band saves a lot and enquires rarely. Look at the breakdown before you decide — on some accounts it is the cheapest lead there is, which is exactly why you check rather than assume.
- Geography you do not serve. Destination enquiries are flattering and expensive. If you will not fly for it, do not pay for it.
- Tired creative. This is the closest thing Meta has to a search term that stopped converting: frequency climbing, cost per result doubling, and nothing else in the account changed. It is the most common reason a campaign that worked in spring stops working in autumn.
The names of those surfaces and metrics are the platform's own, and they are what the assistant reads: the 14 Meta tools cover campaigns, ad sets, ads, insights, placement and demographic breakdowns, pacing and budgets. There is no negative-keyword call because Meta has nothing for it to do.
Review the last 30 days from the chat
With account access the whole read is one message. Fill in the brackets with your own services and travel scope before you send it.
Review the last 30 days of my Meta Ads account for my wedding photography business. I shoot [full-day weddings and elopements] in [region] and I travel to [nowhere else]. For each campaign, ad set and ad, show spend, impressions, frequency, link clicks, cost per result and the recorded website leads. Break the spend down by placement and by age band. Flag any ad whose frequency is above 2.5 or whose cost per lead is more than double the account average. Tell me which ads are tired and which never worked, and say which evidence separates the two. Do not change anything.
Three clauses do the work. Naming where you will not travel turns a geography report into a decision — without it, an enquiry from four hundred miles away looks like demand. Asking for tired and never-worked as two lists forces the distinction that changes what you do: a tired ad gets replaced with a new angle, an ad that never worked means the promise was wrong. And do not change anything keeps the message a read; nothing is applied to the account until you say so, and anything it builds later is created paused and capped. That is one prompt for one job; the 37-prompt ChatGPT library is written against Google Ads, but the six parts it pulls apart — role, window, comparison, constraints, output shape, approval clause — are what make the two prompts above work here. Thirty days is the right window because a couple decides over months; a personal trainer reads the same kind of account weekly, because an audience fifteen minutes wide sees the same ad again within days.
What comes back should read as a decision list, not a data dump.
| Ad | Spent | Frequency | Leads | Verdict |
|---|---|---|---|---|
| Elopement film still | $96 | 1.4 | 5 | Keep, and build the next angle from it |
| Full-day gallery carousel | $110 | 3.2 | 4 | Tired — same audience, fourth month |
| Behind-the-scenes reel | $74 | 1.1 | 0 | Never worked — wrong promise, not fatigue |
Spend against the dates you can still sell
This is the part no ads platform can work out on its own. A photographer sells a fixed number of Saturdays, and the account has no idea which ones are gone. Say it out loud in the same conversation and the review stops being generic.
For context: I have [9] Saturdays open in [2027] and none in [June]. [May and September] are the months I still need to fill. Given the last 30 days, propose how to move the daily budget between my ad sets and which ads to pause, so the spend goes to the dates I can still sell. Show the expected trade-off for each change and wait for my approval.
The assistant can move a budget, pause an ad set and build a new campaign, but each of those is a proposal you approve. New campaigns are created paused and nothing can spend past the daily cap you set, which is the difference between an operator and an autopilot — the same reason the account work is safe to run from a chat at all. If you are weighing that against tools that cover six ad platforms, the comparison is here; this is what two platforms covered deeply buys you on one of them.
Enquiries are not bookings
The account records a lead. It does not know that the lead was a couple whose date you were already booked for, or that one of the five signed a contract three months later for double your average package.
That gap is yours to close, and closing it is mostly a matter of saying so:
- Tell the assistant which enquiries turned into bookings and what each one was worth, and it can rank the ads by weddings booked instead of forms filled.
- Say which enquiries were the wrong fit — the budget conversations, the dates you do not shoot — so the cheapest lead stops looking like the best one.
- Keep the numbers honest out loud. Four bookings in a season is a real business and a terrible sample. Treat a ranking built on it as a hint about the next test, not proof.
First, make the enquiry countable
None of the above means anything if the account cannot see an outcome, and this is where most photographer accounts are broken rather than badly managed.
- Put the pixel on the site and fire one lead event when the enquiry form is submitted. Counting page views as conversions teaches delivery to buy browsing.
- Send the same event from your server as well as the browser, with one shared event id so Meta counts it once instead of twice. That deduplication is what our open-source ad-events package exists for.
- Give attribution its window before you judge anything. A click today and a form filled next week are the same enquiry, and reading day-three numbers is how good ads get killed.
- If enquiries arrive by direct message or through a venue's referral instead, say so in the review. The account will never see those, and an assistant reading only the account will undercount exactly the channel that is working.
Until that exists, every number above is a click count wearing a better name.
Make it a weekly check
Creative fatigue arrives on its own schedule, which is the argument for a fixed cadence rather than a look when something feels wrong. In ChatGPT you can save the review as a scheduled Task and it runs without you; Claude has no scheduler, so make it a habit and connect it the same way — the prompts above work unchanged in either. Both setup guides show the Google Ads path on screen; the steps are the same, and you pick Meta Ads on the same connections screen.
The weekly review is the general version of this loop, written against a Google account but the same six questions. The cleaning-business walkthrough is the same idea on the other platform, where the waste really is a list of searches. The 30-minute account audit is the quarterly version of the same sweep; two of its seven checkpoints — tracking and wasted spend — are the two that survive the move to Meta. And the documentation covers what the assistant will and will not do to an account without asking.
