In plain EnglishHow the campaign works
- Meta shows our ads to dog owners near a Dog Academy trainer.We don't pick interests. We only limit it to the ZIP codes your trainers cover and let Meta find the right people.
- Each ad names one problem.Pulling, jumping, biting, potty, barking and more. The owner who has that problem stops scrolling, because it's their dog.
- They tap Book Now and fill in your booking quiz on dogacademy.org.Every ad ends on the same offer: "Get your custom training plan today."
- Your team calls them and sells Trained for Life,then sends a pay link on dogacademy.org.
- When they pay, the website tells Meta "this person bought".Meta then looks for more people like the buyers and moves money toward the ads that bring them. That last step is the tracking still to be installed (below).
What we're optimizing forSales, not form fills
Meta is set to Sales → Website → Purchase. Many people fill in a form and never buy. If we told Meta to get form fills, it would find more form fillers. Told to get purchases, it learns what a buyer looks like.
The honest catch: Meta only learns from a sale that happens on the website within 7 days of someone clicking the ad. Sales closed later still count for you, but they don't teach Meta. With about 2 to 3 sales a week, Meta will show "learning limited". That's expected at this budget and is not a problem to fix.
So in the first weeks we judge ads on booked calls. They show up long before sales do. Sales decide what we scale.
The structureOne campaign, four ad sets
Campaign: Dog Academy · Sales · $250/day, Meta splits it between ad sets
- Ad set 1 · Everyday manners · 4 statics
- Ad set 2 · Behaviour & anxiety · 3 statics
- Ad set 3 · Puppy & house · 3 statics
- Ad set 4 · Video · 8 videos, at least $75/day
Why grouped by pain: it's the setup you asked for (one ad set per problem, 3 to 5 ads each), with similar problems put together. $250 a day can't feed ten separate ad sets, so we use four.
Why video has its own ad set with a minimum: statics are cheaper to show, so if both shared one pot Meta would spend almost everything on statics and the videos would never get a fair read.
Every static runs in both sizes: the 4:5 version in the Facebook and Instagram feeds, the 9:16 version in Stories and Reels. The videos are 9:16 today, and we'll cut 4:5 Feed versions before launch at no extra cost. Placements are Facebook and Instagram only. Meta's automatic "enhancements" (AI-edited images, music, text) are turned off.
What goes inAll 18 launch ads
The bench: 25 more statics from round 3 (5 per top pain) wait in reserve. When an ad stops pulling its weight, a bench ad on the same pain replaces it.
See them. Wave 1 (D1–D8) stays out because it still says "free evaluation".
Week by weekHow we judge it
| When | What happens |
| Days 1–3 | Hands off. New ads look bad or spend nothing for the first day or two, which is normal. Changing them restarts Meta's learning. |
| Week 1 | First read on clicks and booked calls for each ad. |
| Weeks 2–3 | An ad that has spent about $150 without one booked call gets swapped for a bench ad on the same pain. An ad Meta barely spent on counts as "not read yet", not a loser. |
| Weeks 3–6 | Sales start showing. An ad that spends about $1,150 (3× the target cost per sale) with no sale is turned off. |
| After 10 sales | An ad becomes a "winner" after about 10 sales at or under target. Only then do we raise the budget, 15–20% at a time, at least 3 days apart. |
Numbers we're aiming at (provisional until Matt confirms margins): about $21 per lead, $60 per booked call and $384 per sale. Break-even is about $484 per sale. At roughly $35 a lead, $10,000 brings about 285 leads and 16 sales at your 5.5% close rate. The test is about finding the ads that beat that.
No separate retargeting campaign yet. The site doesn't get enough visitors to fill one, and every ad already carries the offer.
What we need to press goThe checklist
- Dog AcademyGive Brett admin access blockerAdmin on Dog Academy's Meta Business account, the ad account, the Facebook Page, Instagram and the pixel. We can't see any of them yet.
- DeveloperInstall purchase tracking (CAPI) blockerAbout one developer day. (1) A pay link on dogacademy.org that reps send after the call. (2) The thank-you page tells Meta "Purchase", with the buyer's email and phone. (3) Dog Academy's server sends the same sale straight to Meta (that's CAPI), so it still counts when a browser blocks tracking. (4) One real test purchase checked in Meta's Test Events. Then about 48 hours for Meta to check the matching. Full instructions: developer page · Matt's version.
- Dog AcademyWhich payment system the pay link usesStripe, Square, the CRM's billing or other. The developer needs it for step 1.
- Dog AcademyList of ZIP codes your trainers coverSo we never pay to reach people you can't serve.
- Dog AcademyWeekly lead list with the ad nameEvery ad link carries a tag with its name (utm_source=facebook plus the ad name). A weekly export of leads, booked calls and sales with that tag lets us judge each ad.
- Dog AcademyConfirm the trainer lines in the videosEach video describes what the trainer does (soft knocks and rewards on the bed, treats tossed closer, a potty schedule, and so on). Confirm your trainers really work this way, and whether the first call is a "concierge call" or a "virtual meet & greet".
- Dog AcademyReal margin numbersTrainer cost per plan, refunds, and how long a lead usually takes to buy. These set the final target cost per sale.
- Us4:5 Feed cuts of the 8 videosSame footage laid out for the feed. No new animation and no credits.
- UsRe-check the Trustpilot figureD9 and D11 quote 4.4 stars from 1,583 reviews (checked Sept 25). We update it if it has changed.
- UsBuild the campaign paused, read every setting back, then switch it onNames, UTMs, placements, enhancements off, the video minimum and the Halloween end date of Oct 31.
- BrettSay goApprove this structure and the $250/day for 40 days.