FB Ads CCS

CEMETERY CLEANING SERVICES

Facebook Ads CCS

The complete, step-by-step guide to setting up, running and testing the CCS Facebook and Instagram campaign. Written for someone who has never run an ad. Work through it in order and tick every box.

PART 1

Before you start

What is being built, the words you will see, and the decisions only the owner can make.

1How to use this guide

Who: Everyone · Time: 10 minutes

This guide takes CCS from no Facebook advertising at all to a running, measured campaign. It is written for someone who has never opened Meta Ads Manager. Nothing is assumed.

Work through it in order. Every section ends with a checklist. Do not start a section until the checklist before it is fully ticked, because each section depends on the one before.

In plain words: What "Meta" means here

Meta is the company that owns Facebook and Instagram. One Meta ad can show on both apps. You buy it in a tool called Ads Manager. To reach it, type business.facebook.com into the address bar of your web browser and log in with your own personal Facebook account. When this guide says "Facebook ads" it means ads bought there, wherever they end up showing.

Who does what

RoleWhat they do

Owner

The CCS owner. Makes the decisions in section 4, approves money, videos and wording.

Ads operator

The person who works inside Meta Ads Manager: builds the campaign, reads results, runs the tests. Can be the owner.

Developer

The person who changes the CCS website. Today that is Claude, the AI assistant in Claude Code. Every step marked Developer in this guide shows the exact sentence to paste to Claude and what you get back.

Video maker

Films and edits the videos. Can be a hired creator, a friend with a good phone, or the owner.

Lead caller

Answers every new signup by phone or email, the same day. Can be the owner.

In plain words: How to ask the developer for something

Open Claude Code on the CCS computer and paste the sentence this guide gives you, word for word. Claude does the work and replies with what changed. You never need to touch code. If a reply does not match what the guide says you should get back, paste the reply back and say "that is not what the guide expected".

Each section names its role at the top. If one person does every job, that is fine. The labels still tell you what kind of work it is.

How the checklists work

  • On the website version, tap a box to tick it. Your ticks are saved in your own browser on that device only. Other people do not see them.
  • In the Google Doc, type an x in the box, or use Docs' own checklist: select the lines first, then Format, then Bullets and numbering, then Checklist.
  • A box marked Owner decides cannot be ticked by anyone else.

Checklist

2What we are building, in one picture

Who: Everyone · Time: 10 minutes

The whole campaign is one path that a stranger walks. Every later section exists to make one step of this path work, or to measure it.

StepWhat happensWhere it lives

1. She sees the ad

A woman 45 or older is scrolling Facebook or Instagram. The ad can appear in three places: the Feed (the main page you scroll down), Reels (full-screen short videos) and Stories (full-screen posts that disappear after a day). A 15 to 20 second video plays: a dirty headstone, then the same stone clean. She taps Sign up.

Meta Ads Manager

2. The landing page

Her phone opens the CCS welcome page. It tells the story, states the offer, and holds a short form. The page is hidden from Google on purpose, so that every visitor came from an ad. That keeps the count of signups per ad honest.

https://ccs2.akroadside.com/welcome/

3. The form

She types her first name, last name and email. Those three are required. Her loved one's name, the cemetery, the plot and the date of passing are optional.

The landing page

4. The record

The form sends her details to the CCS server (the computer that runs the CCS website). The server saves them in the CCS intake database first: a list stored on the server, one row per signup, like a spreadsheet only the developer can open. Then it emails info@CemeteryCleaningServices.com and sends her a short "you're on the list" email.

CCS intake database

5. The signal

A thank-you message appears on her screen. At that moment a small piece of code called the Pixel tells Meta "a signup just happened, and it came from this ad".

Meta Events Manager (a screen inside Meta that shows each message the Pixel sends)

6. The learning

Meta studies the people who signed up and shows the ad to more people like them. The more signups it hears about, the better it gets at finding the next one.

Meta Ads Manager

7. The follow-up

A person from CCS calls or emails her the same day, confirms her cemetery is one of the 60, and books her first visit.

The lead tracker: a shared Google Sheet with one row per signup (section 20)

In plain words: What a "lead" is

A lead is one person who filled in the form. She has not paid anything. She has said "I'm interested, contact me." Turning a lead into a paying customer is the lead caller's job (section 20). The ads' job is to produce leads at a price that makes sense.

The offer every ad must match

  • Two free months. Two visits and two sets of photographs. No card and no charge.
  • Opening December 1, 2026. Anyone who signs up before then joins a waiting list. Her first visit comes after opening.
  • 10% off the enrollment service and every month after, for seniors and military. It applies if either the person paying or the person buried is a senior or served in the military.
  • 60 cemeteries across King County north of Covington and southern Snohomish County. That includes cemeteries in and around Seattle, Bellevue, Kirkland, Bothell, Redmond, Kent and Everett. The full list of 60, with a map, is in the Service Areas section of the CCS home page (ccs2.akroadside.com). Keep it open when you call leads.
  • After the free months: a $150 enrollment service, then Essential at $40, Remembrance at $50 or Complete at $60 a month.

Why the ad and the page must say the same thing

If an ad promises something the page does not say, she taps, feels misled, and leaves. You paid for that tap and got nothing. If the offer or the opening date ever changes, the ads change the same day.

Checklist

3The words you will see

Who: Everyone · Time: 15 minutes

Meta uses a lot of jargon. These are the terms this guide uses, in the order you meet them. Come back here whenever a word is unclear. The full glossary at the end has more.

WordWhat it means in plain English

Campaign, ad set, ad

Three nested boxes. The campaign holds the goal ("get signups"). Inside it, each ad set holds a budget and an audience ("$13 a day, women 45+ in King County"). Inside each ad set, each ad is one video with its words. One campaign, two ad sets, three ads each is our setup. ($13 a day is the test budget the owner approves in section 4.)

Objective

What you tell Meta you want. We pick Leads, which means "find people who will fill in my form".

Pixel

A few lines of code on the CCS website that report back to Meta when someone visits or signs up. Section 6 explains it fully.

Event

One thing the Pixel reports. PageView means "someone opened a page". Lead means "someone finished the form". Lead is the one we care about. These are Meta's exact names, and you will see them written this way on screen.

Events Manager

The part of Meta where you see what the Pixel is reporting. Think of it as the Pixel's control panel.

Optimize for

What Meta tries to get more of. If you optimize for Lead, Meta hunts for people likely to sign up. If you optimize for link clicks, it hunts for people likely to tap, who are often not the same people. You pick this in the ad set settings. We always pick Lead.

Learning phase

The first days of an ad set, while Meta works out who responds. Results bounce around. Big edits restart it. Section 16 covers it.

Impression

One time the ad appeared on one screen.

CPM

Cost per 1,000 impressions. What you pay to be seen 1,000 times. It measures how expensive the audience is, not how good the ad is. Example: a $20 CPM means $20 buys 1,000 showings. A normal range is $10 to $35.

CTR

Click-through rate. Out of every 100 people who saw the ad, how many tapped it. 1% means 1 in 100. Around 1% is healthy for us. Below 0.8%, the words or the button are weak.

Cost per lead (CPL)

Money spent divided by leads. Spend $260 and get 8 leads, and the cost per lead is $32.50. This is the number that decides everything. Our target is $60 or less per lead, and section 24 explains why.

Frequency

How many times, on average, each person has seen the ad. Above 3, people start to tire of it and results drop.

Creative

The ad itself as people see it: the video, the words above it, the headline and the button.

UGC

User-generated content. A video that looks like a regular person filmed it on a phone, not a polished commercial. Our scripts are written in this style.

A/B test

Running two versions that differ in exactly one way, with the same money and the same kind of audience, to learn which one works better. Section 18 covers it.

Retargeting

Showing ads again to people who already watched a video or visited the page but did not sign up.

Checklist

4Decisions only the owner can make

Who: Owner · Time: One sitting

Seven questions block the work. Nobody else can answer them, and guessing wrong costs money or creates legal risk. Answer them first and write the answers in the "Decision" column of the decision log at the end of this section.

1. Where does the customer live?

The grave is always inside the CCS service area. The woman paying may not be. There are two very different customers:

AwayLocal

Who she is

A daughter, wife or granddaughter who moved away. The grave is in the Seattle area, and she lives in Phoenix, Texas or London.

She lives near the grave but is too busy, too tired, or physically unable to clean it herself.

Why she buys

She cannot get there. Photos are the only way she can see the grave.

Convenience and peace of mind. She could do it, but does not want to.

Where Meta shows the ad

The whole United States, minus King and Snohomish counties

King and Snohomish counties only

Which page story fits

The landing page as written today. It opens with "You moved. Or the job did, or the family did, and now there is a headstone a few hours away."

The page would need a local opening line

Recommendation: do not guess. Run both as two ad sets (two audiences, each with its own $13 a day, inside one campaign) with equal money for three weeks, and let the cost per lead decide (sections 16 and 18). The rest of this guide assumes you do that.

2. Who appears in the videos?

The scripts are written as a customer telling her own story: "So I hired somebody. They sent me pictures." CCS opens December 1, so there are no customers of this service yet who could say those words truthfully.

Why this is a legal question, not a style question

Since October 2024 the US Federal Trade Commission (FTC) has a rule against fake reviews and testimonials. A testimonial is any statement presented as a real customer's real experience. If a paid actor says "they cleaned my dad's stone" and viewers would think she is a real customer, that can count as a fake testimonial. The FTC can fine a business for each one, and the fines run to tens of thousands of dollars per violation. Each ad that runs can count as a separate violation. This guide is not legal advice. If in doubt, ask a lawyer before the first video runs.

OptionWhat it meansRisk

A. Real customers

People CCS has actually served (past restoration customers, or launch customers after December 1) tell their real story, and sign a release (a short signed form saying CCS may use their words and face in ads).

Lowest. Only possible once those customers exist and agree.

B. Actor, labelled

A hired woman reads the scripts, and the video shows "Dramatization. Actor portrayal." on screen for its whole length.

Lower, not zero. The label must be readable and on screen the whole time.

C. Rewritten as her own view

A creator speaks as herself about her own family and why the service makes sense, without claiming CCS cleaned her family's stone. "My dad's buried six hours from me. This is the kind of thing I'd use."

Low, if she is paid and the ad says so. The simplest way: start the ad's text with "#ad". If she posts it from her own account instead, Meta has a "Paid partnership" setting that adds the label for you.

Recommendation: option C for launch, then switch to option A as real December customers agree to film. Every before-and-after photo in every video must be real CCS work, whichever option you choose.

3. The privacy policy

The CCS site has no privacy policy. The footer (the strip of small links at the very bottom of every page) has a Privacy link, but it goes nowhere. Meta's terms require a privacy policy for any site with a Pixel, and without one Meta can refuse the ads, so this blocks launch. Section 8 has the steps. The owner's decision is simply to approve the text.

4. The budget

The recommended first test costs about $26 a day for 21 days, about $550 in total: two ad sets at $13 a day each. Section 18 explains why less than that teaches you almost nothing, and what doubling it buys.

5. Capacity

How many first visits can the crew do in December? If the ads produce 80 signups and the crew can do 30, fifty people wait and some leave angry. Pick a number. When the waiting list reaches it, pause the ads. Pausing is safe: in Ads Manager, click the blue switch next to the campaign so it turns grey. Nothing is lost, and flipping it back restarts the ads (section 24).

6. Who calls the leads, and how fast

Name one person. Leads go cold within hours. A lead called in the first hour is far more likely to become a customer than one called the next day (section 20).

7. Launch date

Ad prices in late November are some of the highest of the year, because every store is buying ads for Black Friday (November 27, 2026). Two sensible choices:

  • Launch about November 2. The three-week test finishes around November 22. Its last few days overlap the start of holiday prices, but both ad sets pay the same higher prices, so the comparison stays fair. The waiting list fills ahead of the December 1 opening.
  • Launch December 1, the day CCS opens. The ads can then say "now open", but the first two weeks run during expensive December traffic.

Decision log

QuestionRecommendationDecisionDate

Where she lives

Test both: Away and Local

Who is in the videos

Option C now, option A later

Privacy policy text

Approve the draft in section 8

Test budget

$13 a day per ad set, 21 days

December capacity

A number of first visits

Lead caller

One named person

Launch date

About November 2

Checklist

PART 2

Accounts and tracking

The accounts, the Pixel, the privacy policy, and how to know the numbers are true.

5Accounts and access

Who: Owner, then ads operator · Time: 1 to 2 hours, once

Do this once, in this order. The most common disaster with Meta ads is not a bad ad. It is being locked out of your own account, and Meta support can take weeks to restore access. Most of these steps exist to prevent that.

In plain words: What a Business portfolio is

Your personal Facebook profile is you. A Business portfolio (Meta used to call it Business Manager) is a separate container for the business. It holds the CCS Facebook Page, the ad account, the Pixel, and the list of people allowed to touch them. If an employee leaves, you remove them from the portfolio and the business keeps everything.

  1. Your own Facebook profileTurn on two-factor authentication. This means that logging in needs your password plus a code from your phone, so a stolen password alone is not enough. On facebook.com, click your profile picture at the top right, then Settings and privacy, then Settings, then Accounts Center, then Password and security, then Two-factor authentication. Choose text message if unsure (Meta texts you a code each time). The other choice, an authenticator app, is a free phone app such as Google Authenticator that shows a new 6-digit code every 30 seconds. Meta blocks ad access for admins without two-factor.
  2. business.facebook.comClick Create account (the button may say Create a business portfolio). Enter the business name (Cemetery Cleaning Services), your name, and a business email you will keep for years.
  3. Settings, then PeopleIn business.facebook.com, click the gear icon (Settings) at the bottom left, then People. Click Add and invite a second person with full control, which means they can do everything you can, including adding and removing people. If one person is locked out, the other can still reach everything and add them back.
  4. Settings, then Accounts, then PagesAdd the CCS Facebook Page, or create one here. Fill in the logo, a cover photo, the phone number (206) 312-0001, the website (https://ccs2.akroadside.com until CCS moves to its own address) and the service area.
  5. Settings, then Accounts, then Ad accountsClick Add, then Create a new ad account. Time zone: Pacific Time (Los Angeles). Currency: USD. Neither can be changed later. If either is wrong you must make a new account.
  6. Same screenClick the new ad account, then Assign people. Tick your name and the second admin's, choose Full control, and click Save.
  7. Settings, then Billing and paymentsAdd a payment card. Then set an account spending limit, a hard cap on total spend, a little above the test budget. $700 is about right for the $550 test. It is a seatbelt against a typo like $130 a day instead of $13. When the limit is reached, every ad stops at once, so on day 21 raise it before you raise any budget: add about $30 for each extra day you plan to run.
  8. Settings, then Accounts, then Instagram accountsOptional. You need the CCS Instagram username and password. Linking the account lets the ads show under the CCS name on Instagram. Without it, they still run on Instagram under the Facebook Page's name.

Make the Page look real

Many people tap the Page name before they trust an ad. An empty Page looks like a scam. Before launch, post five or six real photos of CCS work, with a sentence each, over a week or so. Add the service area and the hours.

Expect a low spending cap at first

Brand-new ad accounts often have a daily spending cap that rises after a few paid bills. You can see it under Settings, then Billing and payments. $26 a day fits under it. If an ad set will not spend, this may be why.

Checklist

6The Pixel, explained from zero

Who: Everyone should read this · Time: 15 minutes

This is the most important idea in the guide. If you understand this section, most of the other rules make sense.

In plain words: What the Pixel is

The Pixel is a few lines of code that sit on every page of the CCS website. It does nothing the visitor can see. When something happens on the page, it sends Meta a short message. "Someone opened the welcome page." "Someone just finished the signup form, and she came from this ad." Each message is called an event. In Events Manager, Meta now calls the Pixel a dataset, so when a screen says dataset, it means the Pixel. The Pixel ID and the dataset ID are the same number.

Why it matters so much

Meta does not show an ad to everyone in the audience. There are millions of women 45+ in the US, and a $13 budget reaches a few thousand of them a day. Meta picks which few thousand. It picks based on what you told it you want, and on what it has learned from the people who already did that thing.

Meta can only learn what a signup looks like if someone tells it every time a signup happens. The Pixel is the only thing that tells it. The landing page form is on the CCS website, not inside Facebook, so without the Pixel Meta never finds out who signed up.

Pixel working, optimizing for LeadNo Pixel, so Meta can only optimize for clicks

What you ask Meta for

"Find people who will fill in the form"

"Find people who will tap the ad"

Who Meta goes looking for

People like the ones who already signed up

People who tap ads a lot. Many tap by accident, out of curiosity, or because they tap everything

Example: $260 spent

Perhaps 800 visits to the page, and 8 signups

Perhaps 1,500 visits to the page, and 2 signups

Cost per lead

About $32

About $130

What Meta reports

Leads, so you can judge the ads on what matters

Clicks, so the ads look busy while the business gets almost nothing

The example numbers are illustrations, not promises. The pattern is real. More clicks and fewer signups is exactly what optimizing for clicks tends to produce.

The rule this explains

Do not launch until Events Manager shows a test Lead event. A test Lead is a pretend signup you send yourself, with the name TEST, so that Meta sees one Lead before any money is spent. In Ads Manager, the Lead option stays greyed out until Meta has received at least one Lead from the Pixel. If you launch anyway, the only choices left are clicks or page views. Meta then spends the whole budget finding tappers, and the test teaches you nothing about signups. Section 7 shows how to send a test Lead.

What the CCS site already reports

PageEventWhen it is sent

Home page

PageView

Every time it opens

Landing page (/welcome)

PageView

Every time it opens

Landing page (/welcome)

Lead

When the form succeeds and the thank-you message appears

Enrollment thank-you (/welcome-2)

PageView and Lead

When it opens. Someone can also sign up straight from the CCS home page, without the ad page. This is the thank-you page they see, and it also tells Meta "Lead". Section 9 explains why that matters.

Status today: built, but switched off

The developer has already put the Pixel code on every CCS page, and the Lead event on both thank-yous. You do not need to touch the website yourself. It is switched off because it needs one thing from Meta: the Pixel ID. Until the ID is added, the site sends Meta nothing at all. Section 7 gets the ID and switches it on.

Checklist

7Switching the Pixel on and proving it works

Who: Ads operator and developer · Time: 1 hour

Create the Pixel and get its ID

  1. business.facebook.com, then Events ManagerTo get there, click the menu icon (three lines, top left), then All tools, then Events Manager. Click Connect data sources (or the green plus), then Web (meaning a website, as opposed to a phone app). Name it CCS website. Click Create.
  2. The "install" screen that followsDo not paste any code. The site already has it. Close this screen.
  3. Events Manager, CCS website, SettingsClick CCS website in the list on the left, then the Settings tab across the top. Copy the dataset ID, a number about 15 or 16 digits long.
  4. DeveloperPaste to Claude: "Set the CCS Pixel ID to [the number] and redeploy the CCS site." Redeploy means publish the updated website so the change is live on the internet. You get back: a message saying the site is live with the Pixel on. If the number has a typo in it, the site refuses to publish and Claude tells you, so a wrong ID cannot go live.
  5. Events Manager, Settings, Automatic advanced matchingTurn it on, and tick email, first name and last name. This lets Meta connect a signup to the right Facebook account more often, which makes its learning and its counts more accurate.
  6. Settings, Track events automatically without codeTurn it off. Otherwise Meta invents events from button taps. They clutter the reports, and they also show up as choices when you build the ad set, where one could be picked by mistake. Lead is the only event that should count as a result.
  7. Settings, Traffic permissionsChoose Allow only and add ccs2.akroadside.com (the address of the CCS website, typed with nothing before or after it). This stops other websites from sending fake events into the CCS Pixel. Add the main CCS domain later if the page moves there.

For reference, this is what Claude does when you ask. Owner and ads operator: you do not run this.

# Developer: in D:\Pycharm\Amicus1\.env add one line
FB_PIXEL_ID=<the dataset ID, digits only>

# then rebuild and deploy the CCS site (deploy runs the build first)
bash ccs2_site/deploy.sh

Prove it works before spending a dollar

  1. On a computer, open the Chrome browser. An extension is a small free add-on to the browser. Go to chromewebstore.google.com, search Meta Pixel Helper, and click Add to Chrome. Its icon appears under the jigsaw-piece icon at the top right of Chrome. Click the pin next to it so it stays visible.
  2. Open the landing page. Click the Pixel Helper icon. It should show the CCS Pixel ID and one PageView with a green tick. If it shows nothing, the ID is not set or the site was not redeployed. Paste to Claude: "Pixel Helper shows nothing on the CCS welcome page."
  3. In Events Manager, click CCS website, then the Test events tab. Type the landing page address and click Open website. This opens the page in a way that shows its events live.
  4. Fill in the form with the first name TEST, last name TEST, and an email inbox you can check. Submit it.
  5. Within a minute, the Test events screen should list Lead. That is the moment the Lead option unlocks in Ads Manager. It can take up to an hour to show there.
  6. Check that inbox for the "you're on the list" email, and check info@ for the signup notice. That proves the server side works too.
  7. Paste to Claude: "Delete the TEST signups from the CCS intake database." You get back how many rows were deleted. It should be 1. This stops the test counting as a real lead.
# Developer: delete the test signup
bash ccs2_site/d1q.sh "DELETE FROM intake WHERE first_name='TEST' AND last_name='TEST'"

If PageView appears but Lead never does

The form most likely failed or was never submitted. Check that the thank-you message actually appeared. An ad blocker (a browser add-on that hides ads) also blocks the Pixel. To turn add-ons off, type chrome://extensions in the address bar and flip every switch off except Meta Pixel Helper. Then try again.

Checklist

8The privacy policy and domain verification

Who: Owner, developer, ads operator · Time: 2 hours

This blocks launch

The CCS site has no privacy policy, and the footer link goes nowhere. Meta's Business Tools Terms (the rules you agree to when you create the Pixel) require any site running the Pixel to tell visitors that it shares visit data with Meta. Meta can reject ads or restrict the account if it is missing. Washington's My Health My Data Act, a state law about health-related information, also matters: the form asks for a date of passing, which could count. A clear notice protects CCS.

What the privacy page must say

  • Who CCS is and how to contact it: email and phone.
  • What the form collects: her name and email, and optionally her loved one's name, cemetery, plot and date of passing.
  • Why: to contact her about the service and schedule visits.
  • That the site uses the Meta Pixel, which shares page visits and signups with Meta to measure and improve advertising. Name it plainly.
  • That CCS does not sell her information.
  • How to ask CCS to delete her information: an email address that someone reads.
  • The date it was last updated.
  1. DeveloperPaste to Claude: "Draft the CCS privacy page from the privacy section of the Facebook Ads CCS guide." You get back the text to read.
  2. Owner decidesRead the draft. Reply to Claude with any changes, or "Approved, publish it at /privacy and link it from every footer and under the landing page form."
  3. DeveloperYou get back a message that ccs2.akroadside.com/privacy is live. Open it on your phone, and tap the Privacy link at the bottom of the home page to check it arrives there.

Domain verification

In plain words: What it is and why

Domain verification proves to Meta that CCS controls the website its ads link to. Without it, someone else could run an ad that links to CCS with a fake headline and picture. It also keeps the ad account in good standing. It takes about 15 minutes.

  1. Settings (the gear icon), then Brand safety and suitability, then DomainsClick Add and type akroadside.com. The CCS site lives on akroadside.com for now, so that is the address to verify.
  2. Choose a methodPick Meta-tag verification. Meta shows one line of code. Copy it.
  3. DeveloperPaste to Claude: "Add this Meta domain verification tag to the home page of akroadside.com itself (not only ccs2.akroadside.com) and redeploy: [the line]." Meta checks the top address, akroadside.com. You get back a message that it is live.
  4. Back in DomainsClick Verify. It should turn green. If not, wait 10 minutes and try again.

Checklist

9Two scoreboards: knowing the numbers are true

Who: Ads operator and developer · Time: 5 minutes a week

Every signup is counted in two separate places. You need both: Meta's number is the one Meta learns from, and ours is the true one. Comparing them once a week is how you know whether Meta is seeing what really happens.

ScoreboardWhere to see itHow it countsHow reliable

Meta's count

Ads Manager, the Results column

Counts each Lead event the Pixel sends from her phone's browser

Misses some. Ad blockers, iPhone privacy settings (iPhones let people block apps from tracking them) and closing the page too fast can all stop the Pixel

Our count

The CCS intake database

Every form submission is saved on the CCS server before anything else happens

The truth. Nothing on her phone can stop the server saving it

So Meta's number is normally a little lower than ours. A small gap is normal. A big gap is a problem, for two reasons.

  • The ads look worse than they are. Meta reports 6 leads at $43 each when the truth is 10 leads at $26 each. You might switch off an ad that is actually working.
  • Meta learns from fewer examples. Every missed Lead is a signup Meta never studies, so it gets slower at finding the next one.

How to do the check

  1. Pick the same date range in both places, for example last Monday to Sunday. Expect a small mismatch at the edges of each week: Meta dates a lead by the day of the tap on the ad, and our database dates it by the day of the signup, which can be a few days later.
  2. In Ads Manager, read the total in the Results column for the campaign. Write it down as Meta's count.
  3. Paste to Claude: "How many fb-welcome signups were there from [Monday's date] to [Sunday's date], Pacific time?" You get back one number. That is our count. (The form tags each signup with where it came from. Signups from the ad page get the tag fb-welcome.)
  4. Work out the gap: our count minus Meta's count, divided by our count, times 100 for a percent. Example: 40 minus 34 is 6, and 6 divided by 40 is 0.15, which is 15%.
  5. Write both numbers in the weekly report (section 23).
# Developer: signups from the Facebook landing page in a date range
bash ccs2_site/d1q.sh "SELECT COUNT(*) FROM intake WHERE source='fb-welcome' AND submitted_at >= '2026-11-02' AND submitted_at < '2026-11-09'"
Our countMeta's countGapWhat it means

40

37

3 ÷ 40 = 7.5%

Normal. Nothing to do.

40

34

6 ÷ 40 = 15%

The edge. Write it down. If next Monday is also 15% or more, build the Conversions API (section 10).

40

28

12 ÷ 40 = 30%

Meta is missing nearly a third of signups. If the week had 20 or more leads, build the Conversions API now (section 10).

40

46

Meta higher

Two possible causes. Harmless: someone saw the ad, then signed up on the CCS home page instead, which Meta counts but our fb-welcome number does not. A bug: the Lead event is sent twice for one signup. Paste to Claude: "Meta shows more leads than our database. Check whether the Lead event fires twice, or whether these are home-page signups." You get back the cause and, if it is a bug, a fix.

Small numbers jump around

In the first weeks, with 5 to 10 leads, one missed event is already a 10 to 20% gap. Do not act on a single week. The rule, used everywhere in this guide: build the Conversions API if the gap is above 15% two Mondays in a row, or above 25% in any week with 20 or more leads.

Checklist

10Conversions API: the backup messenger

Who: Developer · Time: About a day of developer work

In plain words: What it is

The Pixel sends its message from her phone, so things on her phone can stop it. The Conversions API sends the same "a signup happened" message from the CCS server instead. Nothing on her phone can block that. Running both means Meta hears about nearly every signup.

When to build it: not before launch. Launch on the Pixel alone. Build it when the weekly count check (section 9) shows a gap above 15% two Mondays in a row, or above 25% in a week with 20 or more leads, or before spending more than the first test budget, whichever comes first. To ask for it, paste to Claude: "Build the Meta Conversions API for the CCS signup form, as described in the Facebook Ads CCS guide." You get back a message that it is live. Then Events Manager should show Browser and Server, as in the last row below.

ItemDetail

Why it fits CCS

The CCS server already handles every signup. It can tell Meta at the same moment it saves the lead.

What Meta needs

An access token: a long password that lets the CCS server talk to Meta. The ads operator makes it (Events Manager, CCS website, Settings, Conversions API, Generate access token) and gives it to Claude privately, never by email. Each message also carries the event name Lead, the time, the page address, and her email and name hashed (turned into scrambled code that Meta can match but nobody can read).

Avoiding double counts

The page and the server send the same event ID for the same signup. When Meta receives two messages with one ID, it keeps one. This is called deduplication.

How to check it worked

Events Manager, Overview, Lead should say Browser and Server, show a deduplication figure, and show an Event Match Quality score out of 10 (how well Meta can match each signup to a Facebook account). Good looks like this: deduplication above 90%, and Match Quality 6 or more. If Match Quality is under 6, tell Claude.

Checklist

PART 3

The videos and the words

What to film, how to film it, how to edit it, and what to write next to it. This decides most of the result.

11Why the video matters more than anything else

Who: Everyone · Time: 5 minutes

In 2026, Meta does most of the targeting by itself. You tell it "women 45+", and it decides which women 45+ see the ad. What it uses to decide is who stops scrolling and who keeps watching. So the first three seconds of the video do much of the targeting.

A woman who has a parent buried in the Seattle area sees a mossy, unreadable headstone, then the same stone clean and bright. She stops. Someone with no grave to care for scrolls past. Meta notices the difference and finds more people like the first woman.

In plain words: What "hook" means

The hook is the first one to three seconds: the image and the words that make someone stop scrolling. Most people decide in that time. If the hook fails, nothing after it matters. The hook rate is the share of people who watched at least 3 seconds. Aim for 1 in 4 or better. Ads Manager does not show hook rate directly. You work it out from two numbers it does show (section 23).

Checklist

12Which scripts to film first, and the edits they need

Who: Owner and video maker · Time: 1 hour

The scripts are in the Google Doc "CCS scripts v1", in the CCS shared Drive folder (search Google Drive for its name): 9 in a short, choppy style and 16 in a relaxed, conversational style. That is too many to film at once. Start with six, chosen to give each audience three strong stories and to keep away from claims that might not be true.

The first six

ScriptStyleForWhy this oneEdits before filming

01 When you can't be there

Conversational

Away

The landing page's own story: lives six hours away, feels guilty, gets photos.

Under option C, change "they sent me the before and after" to "they send you the before and after".

11 Reciprocity

Conversational

Away

Strong emotion, and "I was so far away" fits the Away customer.

None for the story. If you chose option C, change any line where she says CCS cleaned her family's stone. Options A and B need no change.

08 Overseas

Conversational

Away

The far-away story at its most extreme.

Required: "buried back in Ohio" must become "buried back in Seattle". CCS only cares for graves in its 60 cemeteries.

03 One less thing

Conversational

Local

The busy local daughter with kids, a parent and a job.

None.

05 Aging

Conversational

Local

She used to clean the stone herself and cannot anymore.

None. "The kids are all out of state" is about her children, not her.

13 Fear of damage

Conversational

Both

A practical reason to hire a pro: bleach ruins stone.

Ask the crew lead what cleaner they use. If it is D/2 biological cleaner or plain water, the line "the right stuff" is true. If unsure, cut the line.

Hold these for later

  • 04 Mother's Day (both styles): film it about six weeks before, in late March, and run it from about April 20 to May 10, 2027. Running it in November looks odd.
  • Memorial Day, Father's Day, Veterans Day and the anniversary scripts: the same idea. Seasonal scripts run in the two or three weeks before the date.
  • The choppy versions: use them in the second test (section 18), filmed with the same woman, to learn whether short and broken-up beats relaxed and conversational.

Claims every script must not make

"No chemicals". Choppy script 02 says it. Only keep it if the crew truly uses no chemicals. "Done in an hour" or "done in a day". Only keep timings the crew can reliably meet. Graves outside the service area. Any script that places the grave somewhere else (Ohio, Texas, anywhere outside King and southern Snohomish counties) must be changed. A viewer who acts on a false claim is a complaint, a refund, or an FTC problem (a complaint to the regulator that can lead to a fine).

The scripts sell a one-time cleaning. The offer is ongoing care.

Most scripts describe a single cleaning. The landing page sells two free months of visits with photographs, then a monthly plan. Fix this in the edit, not the script: every video ends on the end card in section 14, which states the real offer.

Checklist

13Filming: the shot list

Who: Video maker · Time: Half a day for nine videos: six for launch, three spares

Film nine scripts at the first shoot: the six above for launch, and three spares from the list so that fresh videos are ready (section 25). Each video is built from four kinds of shot. Film all four for every script. The editor needs choices.

ShotWhat it showsLengthHow

1. The before-and-after

A real CCS stone: dirty, then clean. Ideally the same angle, light and framing in both.

2 to 3 seconds

Use real CCS job photos or film a real job. A side-by-side split, or a quick swipe from dirty to clean. Any phone editing app can do this. Ask the video maker for it by these words.

2. The talking head

The woman reading the script to the camera, as if to a friend.

The whole script, several takes

Phone held vertically at eye level, about an arm's length away. Face lit from a window in front of her.

3. Hands at work

Close-ups of the crew cleaning: a soft brush, water, a hand wiping the lettering, a flower being set down.

5 to 10 short clips

Film at a real job, with the family's permission and no readable name unless they agree.

4. The phone moment

Her hands holding a phone that shows the after photo.

2 to 3 seconds

Use a real CCS photo on the screen. This is the "they sent me pictures" moment.

Camera and sound settings

  • Film on a recent phone held vertically, at 1080p or 4K, 30 frames per second. On an iPhone: Settings, Camera, Record Video, choose 4K at 30 fps. On Android the same choice is in the camera app's own settings. Wipe the lens first.
  • Lock the focus and exposure on her face (tap and hold on most phones), so the picture does not pulse.
  • Sound matters more than picture. Use a small clip-on microphone that plugs into the phone (about $20 to $40). Film in a quiet room with soft furnishings, not a kitchen with hard walls.
  • Leave about a hand's width of empty space above her head, and more below her chin. Section 14 explains why: the app covers the top and bottom of the screen.
  • Film each script three to five times. Natural slips are fine. Reading off a card is not. She should know the lines well enough to say them like a person talking.
  • Keep her clothing plain. No logos, no stripes, no busy patterns.

Permissions and releases

Get a signed release from everyone who appears in a video. It should say they agree to CCS using their image and voice in ads, on any platform, for a stated period, for example 3 years. Longer is better for CCS. Get written permission from the family before filming any grave where a name or a face could be identified. Keep the releases in one Drive folder.

Checklist

14Editing: one recipe for every video

Who: Video maker · Time: 1 to 2 hours per video

Every video follows the same recipe. Keeping the recipe fixed is what makes the tests in section 18 fair: when only the story changes, a difference in results is about the story.

TimeWhat is on screenOn-screen text

0 to 3 seconds

The before-and-after of a real stone

Headstone care in the Seattle area

3 to 15 seconds

Her talking head, cut with hands at work and the phone moment

Captions of every spoken word

Last 3 seconds

The end card: the CCS name on a plain background

Two months free. Opening December 1.
60 cemeteries in King County and southern Snohomish County.

In plain words: Why the first words say "Seattle area"

The Away ad set shows to women all over the country. Most have no family grave in Seattle. If they find out only on the landing page, CCS has paid for their visit. Saying "Seattle area" in the first three seconds lets the wrong people scroll past for free, and makes the right ones stop.

Technical settings

ItemSettingWhy

Main version

9:16 vertical, 1080 × 1920 pixels

Fills a phone screen in Reels and Stories, where most of the views happen

Feed version

4:5, 1080 × 1350, cropped from the same edit

Takes up the most space allowed in the Facebook and Instagram feeds

Length

15 to 20 seconds including the end card

Long enough for the story, short enough that most people see the offer

Captions

Burned into the picture (part of the video itself, not a separate subtitle file), large, white with a dark outline or box, two lines at most

Most people watch feed videos with the sound off. Captions added only in Meta can fail to show

Music

None, or soft and quiet, from a licence-free library such as the free music inside CapCut or the Meta Sound Collection

A cheerful track over a grave feels wrong. Popular songs are not licensed for ads and get muted or rejected

Export

MP4, H.264, 30 frames per second

Export means saving the finished video as a file. Pick these in the editing app's export or save screen. They are the standard video format, and Meta accepts them everywhere without re-processing

Safe zones

In plain words: What a safe zone is

On Reels and Stories, the app draws its own things on top of the video: the CCS name and profile picture near the top, and the ad text, the Sign up button and the like and share icons at the bottom and right. Anything you put there gets covered. The safe zone is the part of the screen that stays clear.

  • Keep all text and her face out of the top 14% of the frame (about the top 270 pixels of a 1920 pixel tall video).
  • Keep them out of the bottom 35% (about the bottom 670 pixels).
  • Keep them a little away from the right edge, where the icons sit.
  • When you build the ad (section 16), the preview on the right shows where the app's buttons sit. Check every video there before publishing. Nothing people need to read should be under them.

Name every file the same way

File names become ad names (without the size and without .mp4), and ad names are how you read results. A consistent name lets anyone see at a glance which script, style and size an ad is.

CCS_<script number>_<short name>_<style>_<size>_v<version>.mp4

CCS_01_CantBeThere_Conv_916_v1.mp4
CCS_01_CantBeThere_Conv_45_v1.mp4
CCS_08_Overseas_Conv_916_v2.mp4

Checklist

15The words next to the video

Who: Ads operator, approved by owner · Time: 30 minutes

Each ad has three text fields. Meta lets you enter up to five versions of each (in the ad, under Primary text, click Add text option for each extra version), and it tries combinations. Give it three good ones.

FieldWhere it showsLength that showsJob

Primary text

Above the video

About 125 characters, roughly 20 words. After that, Meta hides the rest behind a "See more" link

State the offer

Headline

Below the video, in bold, next to the button

About 40 characters

One line that makes the button make sense

Call to action

The button

Chosen from a list

Pick Sign up. It matches the form

Ready-to-use lines, taken from the landing page

The ad and the page should sound like one voice, so tapping feels like turning a page rather than arriving somewhere new. All of these lines come from the welcome page or match it.

FieldOption 1Option 2Option 3

Primary text

Your first two months are on us. Two visits, two sets of photographs, no card, no charge.

Someone kneels down, cleans the stone by hand, sets a flower, and sends you the photos. Seattle-area cemeteries. Opening December 1.

Headstone care in 60 cemeteries across King County and southern Snohomish County. Two months free when we open December 1.

Headline

We'll stand there for you.

Two months free. No card.

Seattle-area headstone care

Meta's "personal attributes" rule

Meta rejects ad text that says or suggests it knows something personal about the person reading it: her age, a death in her family, her health, her money troubles. Rejected: "Are you over 50?" "Lost your mother?" "Your father's grave needs cleaning." Allowed: text about the service ("Headstone care in the Seattle area"), or a speaker talking about herself ("Mom's stone is in Seattle. I'm in Phoenix."). The audience settings choose who sees the ad. The words never have to.

Checklist

PART 4

Building the campaign and testing it

Every click in Ads Manager, the audiences, and how to run an A/B test that actually teaches you something.

16Building the campaign, click by click

Who: Ads operator · Time: 1 to 2 hours

Before you start, make the exclusion audience in section 17 ("Make the exclusion audience before launch"). This section uses it. Then open Ads Manager: go to adsmanager.facebook.com, or in business.facebook.com click the menu icon (three lines, top left), then Ads Manager. Click the green + Create button. Meta's defaults are tuned for large advertisers with big budgets. Several of them are wrong for a small test, so every setting below says what to choose and why.

In plain words: The learning phase

For the first days of a new ad set, Meta is experimenting: it shows the ad to different kinds of people to see who responds. Results bounce around during this time, and that is normal. Meta says it needs about 50 results a week to finish learning. At $13 a day an ad set will not reach that, so Ads Manager will say Learning limited. That is expected and fine for a test. What matters is this: any big edit, such as a new audience, a new ad, or a budget change of more than about 20%, restarts the learning. That is why the 30-day plan says not to touch things, and why new videos are only added between tests.

Campaign level: the goal

  1. Choose a campaign objectiveLeads.
  2. Choose a setupPick Manual leads campaign, not Advantage+ leads campaign. The automatic one ignores the age and gender limits this guide relies on. If you do not see this choice, Meta has renamed it: pick the option that lets you set age and gender yourself.
  3. Campaign nameCCS_FB_Leads_Welcome_2026-11. A name you can sort and search later.
  4. Special ad categoriesLeave empty. These are for housing, jobs, credit and politics. CCS is none of them. Ticking one by mistake removes age and gender targeting.
  5. Advantage+ campaign budgetOff. When it is on, Meta moves money between the ad sets as it likes, and one usually gets almost everything. For a fair test, each ad set needs its own fixed budget.
  6. A/B testOff. Section 18 explains when to use it.

Ad set level: who, where and how much

Build the first ad set (Away) fully, then Duplicate it to make the second (Local) and change only the location. To duplicate, hover over the ad set name in the list on the left, click the three dots, then Duplicate, and choose Original campaign. That guarantees every other setting is the same.

  1. Ad set nameCCS_Away_W45+ and later CCS_Local_W45+.
  2. Conversion locationWhere the signup happens. Choose Website. The form is on the CCS site.
  3. Performance goalMaximize number of conversions. A conversion is the action you chose, here a Lead.
  4. Dataset and conversion eventDataset CCS website. Event Lead. If Lead is greyed out, Meta has not received a test Lead yet. Go back to section 7.
  5. Cost per result goalLeave it empty. Setting a target this early usually stops the ad from spending at all.
  6. Daily budget$13.
  7. ScheduleStart: the launch date. End: none. You will stop it by hand after the test.
  8. Audience: locationSection 17 says exactly what to enter for each ad set.
  9. Audience: switch to original optionsClick Switch to original audience options, a small blue link under the audience box. If Meta asks you to confirm, click Switch. Then set Age 45 to 65+ and Gender: Women. With the newer Advantage+ audience, age and gender are only suggestions and Meta will show the ad outside them. The original options make them hard limits.
  10. Audience: excludeUnder Custom audiences, Exclude the audience "CCS leads 180 days". If it is not in the list, stop: make it first (section 17), then come back. Excluding it stops paying to show ads to people who already signed up.
  11. Audience: Advantage detailed targetingOff, if it appears. Leave detailed targeting (the box for interests like "gardening") empty. The video finds the right people.
  12. PlacementsA placement is a place where the ad can show. Under Placements, choose Manual placements, then untick boxes. Keep Facebook Feed, Facebook Reels, Facebook Stories, Instagram Feed, Instagram Reels and Instagram Stories. Untick everything else, especially Audience Network (ads inside other apps and games) and Messenger. Those produce many accidental taps from people who never read the ad.
  13. Attribution settingLeave Meta's default, which counts a lead up to 7 days after a tap, or 1 day after a view (she saw the ad without tapping it, then signed up within a day). Never change it during a test, or the numbers before and after stop being comparable.

Ad level: one ad per video

  1. Ad nameThe file name without the size and without .mp4, because one ad carries both sizes. For example CCS_01_CantBeThere_Conv_v1.
  2. IdentityThe CCS Facebook Page, and the CCS Instagram account if it is linked.
  3. Ad setupCreate ad, then Single image or video.
  4. MediaUpload the 9:16 file. Then, under Media, hover over the Feeds group, click the pencil, then Replace, and choose the 4:5 file. One ad, two sizes, each shown where it fits.
  5. Primary text and headlinePaste the three versions of each from section 15.
  6. Call to actionSign up.
  7. Website URLhttps://ccs2.akroadside.com/welcome/
  8. URL parametersPaste the line below. It adds a label to the link with the campaign and ad name, so a signup can later be matched to the ad that sent her. The CCS form does not save this label yet. Paste to Claude: "Make the CCS welcome form save the utm labels from the link with each signup." You get back a message that it is live.
  9. TrackingUnder Website events, tick CCS website.
  10. Advantage+ creative enhancementsThese are Meta's automatic changes to your ad. The section is in the ad, below the media, with a row of switches. Open the list. Turn off: music, visual touch-ups, image animation, "relevant comments", and anything else that adds or changes things. Leave on only text improvements, if you want them. Meta otherwise may add an upbeat soundtrack to a video about a grave.
  11. PreviewClick through every placement in the preview on the right. Check that nothing important is hidden by the app's buttons.
  12. RepeatMake the other two ads in the ad set the same way: Duplicate the ad and swap the video and name.
  13. PublishClick Publish. Ads go to Meta's review, which usually takes minutes to 24 hours. If an ad shows Rejected, see section 26.
utm_source=facebook&utm_medium=paid_social&utm_campaign={{campaign.name}}&utm_content={{ad.name}}

Checklist

17Audiences

Who: Ads operator · Time: 30 minutes

In plain words: What an audience is

An audience is the set of people an ad set is allowed to reach. You define it by location, age and gender. You can also include or exclude custom audiences: lists Meta builds for you, such as "everyone who signed up on the CCS site".

Ad setLocation to enterWhoWhy

Away

Include: United States. Exclude: King County, WA and Snohomish County, WA

Women 45+

The far-away daughter. The "Seattle area" opening line filters out women with no grave there.

Local

Include: King County, WA and Snohomish County, WA. Then exclude, by name, the towns outside the CCS area: Auburn, Federal Way, Enumclaw, Black Diamond, Arlington, Stanwood, Marysville, Granite Falls, Darrington

Women 45+

The busy or tired local daughter. CCS covers King County north of Covington and southern Snohomish County only, so the far south and north are cut out.

Excluded from both

Any

Custom audience: people who sent a Lead in the last 180 days

Do not pay to reach people who already signed up.

Retargeting (audiences made day 14, ads start day 28)

Same as the winning ad set

Visited the landing page in the last 30 days without signing up, or watched half of a CCS video

People who already looked once are often the cheapest leads.

For location, type the county name in the location box, choose it from the list, and use the Include / Exclude menu next to it. For Away, add United States first, then add the two counties and set each to Exclude.

Make the exclusion audience before launch

  1. Menu, All tools, AudiencesIn business.facebook.com, click the menu icon (three lines, top left), then All tools, then Audiences. Click Create audience, then Custom audience, then Website.
  2. SourceCCS website.
  3. EventsChoose Lead. Retention: 180 days (how long a person stays on the list after signing up).
  4. NameCCS leads 180 days. Click Create. It fills up by itself as people sign up.

Make the retargeting audiences on day 14, so they fill up. Start ads to them on day 28

  • Website visitors: Custom audience, Website, CCS website, people who visited the landing page address in the last 30 days. Name it "CCS LP visitors 30 days".
  • Video viewers: Custom audience, Video, choose "People who viewed at least 50%" of the CCS videos, last 30 days. Name it "CCS video 50% 30 days".
  • Each audience shows its size next to its name. Wait until it reads 1,000 or more before using it. A smaller audience mostly will not spend. That is why retargeting waits until the main ads have run for a few weeks.

Checklist

18A/B testing, done properly

Who: Ads operator, decisions by owner · Time: Planned once, run for 12 weeks

In plain words: What an A/B test is

You make two versions, A and B, that differ in exactly one way. You give them the same money, the same time and the same kind of audience. Then you see which gets cheaper leads. Because only one thing was different, you know that one thing caused the difference.

Why only one change at a time

Suppose B has a different video and a different headline, and B wins. Was it the video or the headline? You cannot tell, so you learned nothing you can reuse. Change one thing, learn one thing, keep it, then test the next thing.

Why small numbers lie

Flip a fair coin 10 times and you will often get 7 heads. That does not make the coin unfair. Leads work the same way. If ad A gets 6 leads and ad B gets 4, that can easily be luck. With small numbers, only a big difference means anything.

At $13 a day per side for 21 days, each side spends about $275. At a typical $30 to $60 per lead, that is roughly 5 to 9 leads per side. That is often not enough to decide, because the winner needs 10 leads of its own (see the decision rules). Plan from the start for a fourth week, or for $20 a day per side. Twice the leads on one side is the kind of difference this test can see. A small difference it cannot.

Budget per side per daySpend per side in 21 daysLeads per side at $40 eachWhat the test can tell you

$7

About $150

About 4

Almost nothing. Too few to tell luck from a real difference

$13 (recommended)

About $275

About 7

Big differences: one side roughly twice as good

$25

About $525

About 13

Medium differences, and faster decisions

Two ways to run a test in Meta

MethodHow it worksUse it for

Separate ad sets with fixed budgets

Two ad sets, each with its own budget, audiences that cannot overlap. Each side gets its money no matter what.

Test 1, Away versus Local. The two locations cannot overlap, so this is already a fair split.

Meta's A/B test tool

Above the campaign list in Ads Manager, click A/B test (or find Experiments in the menu). Pick the existing ad set as A, let Meta copy it as B, and change the one thing. Meta splits the audience randomly so nobody sees both versions, splits the budget evenly, and reports a winner with a "chance this result would repeat" percentage.

Tests 2 to 5, where both versions target the same people. Without it, both versions compete for the same people and the comparison is muddied.

Several ads in one ad set

Not a real test. Meta quickly favours one ad and gives it most of the money, often before the others have had a fair chance.

Finding a likely winner cheaply. Treat the result as a hint, then confirm it with a real test.

The test plan, in order

TestWeeksABHeld the sameWhat you learn

1. Geography

Days 1 to 21, or 28 if not decided

Away

Local

Same three videos and texts in both

Who the customer is. This decides the landing page and every later test.

2. Story

Days 28 to 48

Best Away or Local video

A different script, same woman, same style

Audience, style, end card, text

Which kind of story makes her sign up

3. Style

Weeks 8 to 9

Winning script, conversational

Same script, choppy

Everything else

Whether short and broken-up beats relaxed

4. Hook

Weeks 10 to 11

Winning video as it is

Same video, a different first 3 seconds

Everything after second 3

What makes people stop scrolling

5. Offer wording

Weeks 12 to 13

"Two months free"

"Photos of every visit"

Video and audience

Which promise to lead with

Later

Month 4+

Landing page

Meta instant form (a form inside Facebook itself, so she never leaves the app. Easier to fill in, but people sign up more carelessly)

Video and audience

Whether easier signup is worth lower-quality leads

Decision rules

Write the rule down before the test starts, so nobody can pick a winner afterwards because they liked it.

After the test has run its full timeDecision

One side has at least 10 leads of its own and a cost per lead at least 30% lower. Example: A at $28 per lead and B at $40 is 30% lower

It wins. Keep it. Switch the other off.

Meta's A/B tool says 80% or more chance the result would repeat

It wins.

Neither side has 10 leads of its own

Not decided. Run one more week, or raise both budgets by the same amount.

Both sides within 30% of each other

A tie. Keep the cheaper or simpler one, and move to the next test. The difference is too small to matter at this budget.

One side has spent three times the target cost per lead with no lead at all

Stop it early. It is not going to recover. This is the one edit allowed during a test. Write it in the test log.

In plain words: What "target cost per lead" means

The most you are willing to pay for one lead. Section 24 works it out from what a customer is worth: about $160 per lead is break-even in year one, so start with a target of $60, which leaves room for profit. "Three times the target" is then $180 spent with zero leads. A whole ad set at $13 a day reaches $180 on day 14, and a single ad, which shares that money with two others, later still.

Mistakes that ruin a test

  • Changing anything in the middle, including adding a new video. Every edit restarts learning and mixes "before" with "after". The only exception is the stop rule above.
  • Stopping after two good days. Early results swing wildly. Run the full time.
  • Different budgets on the two sides.
  • Testing two things at once.
  • Comparing a test that ran over Thanksgiving or Black Friday week with one that did not. Ad prices that week are higher for everyone.
  • Not writing the result down. A month later nobody remembers which won or why.

The test log

Copy this table into a Google Sheet called CCS Facebook test log, one row per test.

ColumnExample

Test number and name

1. Geography

What changed (the one thing)

Location: Away vs Local

Decision rule written beforehand

10+ leads and 30% cheaper wins

Start and end dates

2026-11-02 to 2026-11-22

A: spend, leads, cost per lead

$273, 11, $24.82

B: spend, leads, cost per lead

$273, 5, $54.60

Winner and why

A: 11 leads (10 or more) and 55% cheaper

What we do next

Keep Away. Test 2 runs in Away only

Checklist

PART 5

Running it

Launch day, answering leads, the first 30 days, reading the numbers, and what to do when something goes wrong.

19Launch day

Who: Ads operator · Time: An hour in the morning, 15 minutes at night

  1. Morning: in Ads Manager, click the Ads tab. The Delivery column should say Active for every ad, not "In review" or "Rejected".
  2. If an ad was rejected, read the reason (click the ad, then the warning). Section 26 has the usual causes.
  3. Open the landing page from the ad on your own phone. To find your own ad, click the ad in Ads Manager, then the preview's Share button, copy the link and open it on your phone. Tap Sign up. Confirm the page loads quickly and the form works, but do not submit it.
  4. Tell the lead caller the ads are live.
  5. Evening: check that money is being spent on both ad sets. Do not judge results on day one.

Checklist

20Answering every lead

Who: Lead caller · Time: 5 to 10 minutes per lead

Ads produce leads. Only people produce customers. A lead that waits a day has often forgotten why she signed up. Make contact the same day, within an hour when you can.

Where leads arrive

  • An email to info@CemeteryCleaningServices.com for every signup, with everything she typed.
  • She receives an automatic "you're on the list" email at the same moment. It comes from intake@amicusanalytics.com.
  • Every signup is also saved in the CCS intake database. To get a copy, paste to Claude: "Export the CCS intake database to a spreadsheet." You get back a file you can open in Google Sheets.

Check the sender address

The autoreply comes from an amicusanalytics.com address, not a CCS one. Some people will not recognise it, and some inboxes will file it as spam. Before launch, ask the developer to send it from a CemeteryCleaningServices.com address (Claude will need someone with access to the CCS email account to approve it), or at least make sure the email clearly says Cemetery Cleaning Services.

The follow-up, step by step

  1. Within the hour, email her, using her first name. The ad form does not ask for a phone number. If she gives one in her reply, call her.
  2. Thank her, and confirm what she signed up for: two free months, starting after December 1.
  3. Ask which cemetery her loved one is in, if she did not say. Check it against the list of 60 on the CCS home page.
  4. If it is: note the loved one's name, the cemetery and the plot if she knows it. Tell her when the first visit will be and that photos will follow.
  5. If it is not one of the 60: thank her warmly, say CCS does not reach that cemetery yet, and ask if she would like to hear if that changes.
  6. Ask whether she or her loved one is a senior or served in the military, for the 10% discount.
  7. Write the result in the lead tracker the same day.

The lead tracker

A Google Sheet called CCS lead tracker, one row per lead. Without it, nobody can say which ads produce customers rather than just signups.

ColumnWhat goes in it

Date signed up

From the info@ email

Name and email

From the info@ email

Loved one, cemetery, plot

From the email or the call

In the 60?

Yes or no

Contacted

Date and time, and phone or email

Status

Waiting list, first visit booked, paying customer, not interested, out of area, no reply

Plan chosen

Essential, Remembrance or Complete, when she starts paying

Ad

The ad name, from the utm label the form saves (section 16, URL parameters). Ask Claude for it with the export

The waiting list before December 1

Signups before opening are a waiting list, and people forget. Send every waiting-list lead a short email in the last week of November: "We open Tuesday, December 1. Your first visit is booked for..." Then follow up anyone who does not reply.

Checklist

21Comments and messages

Who: Ads operator or owner · Time: 10 minutes a day

People comment on ads, and everyone who sees the ad later sees the comments. A grave-care ad will attract kind comments, questions, and some unkind ones. An unanswered question or an ugly comment sitting under the ad lowers results.

  1. Meta Business Suite, InboxIn business.facebook.com, click the menu icon, then Inbox. Or use the free Meta Business Suite phone app. This one screen shows comments on the ads and messages to the Page, from both Facebook and Instagram. Check it once a day.
  2. A questionReply within the day, briefly and warmly. Point to the page: "Yes, we care for graves in 60 cemeteries in King and southern Snohomish County. You can sign up here for two free months."
  3. Unkind but not abusive ("this is creepy")Leave it, or reply once, gently: "We understand it's not for everyone. For families who live far away, the photos mean a lot." Never argue.
  4. Spam, scams, abuseHide it. A hidden comment stays visible to its writer and their friends, so they do not repost it angrily, but nobody else sees it. Delete only clear scams and abuse.
  5. Moderation settingsIn business.facebook.com: Settings, then Page settings, then Moderation. add a short list of blocked words (profanity, "scam", common spam phrases). Matching comments are hidden automatically.

Checklist

22The first 30 days

Who: Ads operator · Time: 10 minutes a day, 30 minutes on review days

The hardest part of running ads is leaving them alone. Results in the first week jump around, and every edit restarts Meta's learning. This calendar says when to look, and when to act.

WhenDoDo not

Day 1

Launch day checks (section 19).

Change anything because the first hours look odd.

Days 2 to 6

Check spend daily. Answer every lead the same day. Check comments.

Judge results. Edit budgets, audiences or ads.

Day 7

First review. Fill in the weekly report. Each ad set has spent only about $91, so nothing can have hit the $180 stop rule yet. Do nothing else.

Switch off a whole ad set after one week.

Day 14

Second review. Weekly count check. Make the retargeting audiences (section 17) so they fill up. If an ad set has spent $180 with no lead at all, the stop rule applies (section 18).

Add a third ad set, add a video, or start a new test.

Day 21

Test 1 ends. Apply the decision rules (section 18). If it is decided, write the result in the test log and switch off the losing ad set. If not, run both to day 28 and decide then. Raise the account spending limit (section 5) before raising any budget.

Pick the winner by feel.

Day 22

Move the losing ad set's budget to the winner in steps of about 20%: from $13 to $15.50 now, $18.50 three days later, then $22, then $26.

Double the winner's budget in one go. A jump of more than about 20% restarts learning.

Day 28

Start test 2 in the winning geography (days 28 to 48). Add the new videos for it now, between tests. Start a small retargeting ad set at $5 a day.

Day 30

Monthly review: cost per lead against what a lead is worth (section 24), using the real share of leads that became customers.

Trust the example numbers over real ones.

Checklist

23Reading the numbers

Who: Ads operator · Time: 15 minutes a week

Set up the columns once

  1. Ads Manager, the Columns buttonAbove the list of ads, click the button labelled Columns: Performance. Choose Customize columns.
  2. Tick theseResults, Cost per result, Amount spent, Impressions, CPM, Link clicks, CTR (link click-through rate), Landing page views, 3-second video plays, ThruPlays, Frequency.
  3. SaveTick Save as preset and name it CCS weekly. Choose it every time.

What each number tells you, and what to do

NumberWhat it meansRough healthy rangeIf it is bad

Cost per result

Cost per lead. The number that matters most

Under $60 (section 24)

Work through the rows below to find which step is weak

Hook rate

3-second video plays divided by impressions. How many stopped scrolling

25% or more

The first 3 seconds are weak. Test a new hook (section 18, test 4)

Hold rate

ThruPlays divided by 3-second plays. Of those who stopped, how many kept watching

25% or more

The middle loses people. Make a shorter edit with a faster start to the story, for the next test, not the current one

CTR (link)

Of every 100 who saw the ad, how many tapped through

0.8% or more

The offer or button does not pull. Test the text (test 5)

Page signup rate

Leads divided by landing page views. Work it out by hand. Example: 3 leads from 40 landing page views is 7.5%. (A landing page view is a tap where the page fully opened. Link clicks also count taps that gave up before it loaded.)

10% or more

The page loses them. Check it loads fast on a phone, and that it matches the ad

CPM

Cost to be seen 1,000 times

$10 to $35, higher in late November and December

Mostly outside your control. If CPM is above $50 on Local, the audience may be too small. Tell the owner, and do not change anything mid-test

Frequency

Average times each person saw the ad

Under 3

People are tired of it. Add a new video

The ranges are rough guides from 2026 industry reports, not targets Meta promises. Your own first month becomes the real benchmark.

Breakdowns that answer specific questions

  • The Breakdown button sits next to the Columns button. Click it, then By delivery, then choose one item.
  • Breakdown, By delivery, Age and Gender: confirm the ads only reached women 45+. Anything else means the ad set was left on Advantage+ audience instead of the original options.
  • Breakdown, By delivery, Placement: shows whether Reels, Stories or Feed produces the leads.
  • Breakdown, By delivery, Region on the Away ad set: shows which states respond. Do not narrow to them until the test is over.

The weekly report

Every Monday, send the owner five lines:

  1. Spend this week and in total.
  2. Leads this week, from Meta and from our own count (section 9), and the gap as a percent.
  3. Cost per lead for each ad set and for the best and worst ad.
  4. Leads contacted, booked and paying, from the lead tracker.
  5. One thing that changed, and one thing planned for next week.

Checklist

24What a lead is worth, and when to scale or stop

Who: Owner · Time: 30 minutes a month

Every decision about money comes back to one comparison: what a lead costs against what a lead is worth.

NumberExampleWhere it comes from

Enrollment service

$150

One-time: locate, inspect, deep clean

Monthly plan

$50

Remembrance, the middle plan

Paid months in year one

10

The first two months are free

First-year value of a customer

$650

$150 + 10 × $50

Share of leads that become paying customers

1 in 4

An example. Replace it with the real share from the lead tracker

Value of one lead

About $160

$650 ÷ 4

So a lead that costs $160 breaks even in the first year. Months after the first year are extra. The 10% senior and military discount lowers each figure by a tenth. Once 30 or more leads have been followed up, replace "1 in 4" with the real share: in the lead tracker, count the leads with status "paying customer" and divide by all leads.

If cost per lead isThen

Under $60

Scale. Raise the budget about 20% every 3 or 4 days while it stays under $60.

$60 to $110

Hold. Keep the budget, keep testing new videos and hooks.

$110 to $160

Fix. Profitable only on paper. Run the next test, and look at the page signup rate.

Over $160 for two weeks

Stop and rethink. Pause, and review the video, the audience and the page.

Capacity beats cost

Whatever the numbers say, pause the ads when the waiting list reaches the December capacity number from section 4. A cheap lead who waits two months for a first visit becomes an unhappy one.

Checklist

25Keeping the videos fresh

Who: Ads operator and video maker · Time: One new video every 2 to 3 weeks

In plain words: What "ad fatigue" is

After seeing the same ad three or four times, people stop noticing it. Results slowly get worse even though nothing changed. You see it as frequency climbing above 3, and cost per lead creeping up week after week.

  • Film more scripts than you need at the first shoot (nine for six launch videos), so new videos are ready.
  • Add a new video to the winning ad set every two to three weeks, on the day one test ends and the next begins. Adding an ad restarts learning, so never add one in the middle of a test.
  • Switch off the weakest ad when you add the new one, so each ad set keeps three.
  • Plan the seasonal scripts: Mother's Day (May 10, 2027), Memorial Day (May 31, 2027), Father's Day (June 20, 2027). Film each one about six weeks ahead.

Checklist

26When something goes wrong

Who: Ads operator · Time: As needed

What you seeLikely causeWhat to do

Pixel Helper shows nothing on the page

The Pixel ID is not set, or the site was not redeployed after setting it

Developer: set the ID and redeploy (section 7)

PageView appears, but Lead never does

The form failed, or an ad blocker is on

Submit a TEST signup in a clean Chrome window and check the thank-you message appears

Lead is greyed out when building the ad set

Meta has not received a Lead yet

Send a TEST signup, wait a few minutes, refresh

Ad rejected

Usually personal-attribute wording (section 15), or the landing page failed to load for the reviewer

Rewrite the line, or check the page. Then request a review: in business.facebook.com, menu, Account Quality, find the ad and click Request review

Ad account restricted

New account, a failed payment, or an admin without two-factor

Account Quality, then Request review. Confirm two-factor for every admin

Ad set will not spend

New-account spending cap, a cost-per-result goal set, or an audience too small

Remove any cost goal. Check the account spending limit. Check the audience size: in the ad set, the right side shows Estimated audience size, and under 100,000 is small

Spending, but no leads after 3 days

The page or form fails on phones, or the ad and the page tell different stories

Tap your own ad on a phone and sign up with first name TEST, then ask Claude to delete it. Compare what the ad promises with what the page says

Meta shows more leads than our count

People who saw the ad signed up on the home page instead (harmless), or the Lead event fires twice (a bug)

Ask Claude to check which (section 9)

Our count is much higher than Meta's

Browser events are being blocked

Build the Conversions API (section 10)

CPM climbing week after week

The same people are seeing the ads too often

Check Frequency. Above 3 confirms it. Add a new video at the start of the next test. For Local, the audience is small, so freshness matters more

Leads but nobody becomes a customer

Slow follow-up, out-of-area graves, or the ad attracting the wrong people

Check the lead tracker: contact times and "out of area" counts

27Things that are easy to forget

Who: Owner · Time: 15 minutes

  • Staff and family must mark test signups. Anyone testing the form must use first name TEST, and the developer deletes those rows. Otherwise they count as real leads.
  • The Meta Ad Library is public. Anyone, including competitors, can see every CCS ad at facebook.com/ads/library (search Cemetery Cleaning Services to see what the public sees). Write nothing you would not want a competitor to read.
  • Phone calls from the ad. The Page lists (206) 312-0001. Some people will call instead of filling in the form. Whoever answers should know about the offer and should write callers in the lead tracker with "Ad: phone".
  • Opening-day wording. On December 1, change any "opening December 1" line to "now open". December 1 falls in the middle of test 2. Change it anyway, in both A and B on the same day, and note the date in the test log.
  • Spending limit. When you raise budgets, raise the account spending limit too, or the ads stop suddenly when it is reached.
  • Card expiry. If the card fails, the ads stop and the account can be restricted. Add a backup card.
  • Who owns the videos. If a creator films them, get it in writing that CCS can use them in ads for as long as it likes.
  • Grief. Some viewers will have lost someone very recently. Keep the tone gentle and never pushy. No countdown timers, no "last chance".
  • Photos of other families' graves. Only with their permission, and no readable names unless they agree.
  • Holiday prices. Ad prices rise from about November 20 to early December. Do not compare results from that week with a normal week.
  • Service area wording. CCS covers King County north of Covington and southern Snohomish County, not all of both counties. Say it that way on end cards and in replies, and keep the Local ad set's town exclusions (section 17).
  • Review the landing page with each new test. If the Local ad set wins, the page needs a local opening line. Ask the developer.
  • Instagram profile. If the Instagram account is linked, give it a profile picture, a bio and a few posts too. People tap through to check.

Checklist

PART 6

Reference

The whole job on one list, every term, and the sources.

28The master checklist

Who: Everyone · Time: Use it all the way through

Every box in this guide, in order, in one place. Tick here or in the sections. On the website the two stay in sync.

1. How to use this guide

Section 1

2. What we are building, in one picture

Section 2

3. The words you will see

Section 3

4. Decisions only the owner can make

Section 4

5. Accounts and access

Section 5

6. The Pixel, explained from zero

Section 6

7. Switching the Pixel on and proving it works

Section 7

8. The privacy policy and domain verification

Section 8

9. Two scoreboards: knowing the numbers are true

Section 9

10. Conversions API: the backup messenger

Section 10

11. Why the video matters more than anything else

Section 11

12. Which scripts to film first, and the edits they need

Section 12

13. Filming: the shot list

Section 13

14. Editing: one recipe for every video

Section 14

15. The words next to the video

Section 15

16. Building the campaign, click by click

Section 16

17. Audiences

Section 17

18. A/B testing, done properly

Section 18

19. Launch day

Section 19

20. Answering every lead

Section 20

21. Comments and messages

Section 21

22. The first 30 days

Section 22

23. Reading the numbers

Section 23

24. What a lead is worth, and when to scale or stop

Section 24

25. Keeping the videos fresh

Section 25

27. Things that are easy to forget

Section 27

29Glossary

Who: Everyone · Time: Reference

TermMeaning

A/B test

Two versions that differ in one way, given the same money and audience, to see which works better.

Ad, ad set, campaign

The three levels in Ads Manager. Campaign: the goal. Ad set: budget, audience, placements. Ad: the video and words.

Advantage+

Meta's name for its automatic features. Several are switched off in this guide because they override choices a test depends on.

Attribution

The rule Meta uses to decide which ad gets credit for a lead: by default, a tap in the last 7 days or a view in the last day.

Audience Network

Ads shown inside other apps and games. Switched off here because it produces accidental taps.

Business portfolio

The container for the business's Page, ad account, Pixel and people. Formerly Business Manager.

Conversion

The action you want. Here, a Lead.

Conversions API

A way for the CCS server to tell Meta about signups directly, as a backup to the Pixel.

CPM

Cost per 1,000 impressions.

CTR

Click-through rate: taps divided by impressions.

Custom audience

A list Meta builds from your own data, such as people who signed up on the site.

Dataset

Meta's current name for the Pixel in Events Manager.

Deduplication

Meta keeping one copy when the Pixel and the Conversions API report the same signup.

Domain verification

Proving to Meta that CCS controls the website.

Event

One thing the Pixel reports, such as PageView or Lead.

Event Match Quality

A score out of 10 for how well Meta can match signups to Facebook accounts.

Frequency

Average number of times each person has seen the ad.

FTC

The US Federal Trade Commission, which enforces the rules on testimonials and advertising claims.

Hook, hook rate

The first three seconds, and the share of people who watched at least that long.

Impression

One showing of the ad on one screen.

Landing page

The web page the ad sends people to. Here, the CCS welcome page.

Lead

One person who filled in the form.

Learning phase, learning limited

Meta's experimenting period for a new ad set, and the label shown when the budget is too small to finish it. Expected at our budget.

Lookalike audience

People Meta judges similar to a list you give it. Useful once CCS has a few hundred customers.

Personal attributes

Meta's rule against ad text that implies it knows something personal about the reader.

Pixel

The code on the CCS site that reports visits and signups to Meta.

Placement

Where an ad appears: Facebook Feed, Reels, Stories, Instagram Feed and so on.

Retargeting

Ads shown to people who already visited or watched.

Safe zone

The part of a Reels or Stories video not covered by the app's buttons and text.

ThruPlay

A video watched to the end, or for at least 15 seconds.

UGC

User-generated content: video in the style of a real person filming on a phone.

URL parameters (UTM)

Labels added to the link so a signup can be matched to the ad that sent her.

30Sources

Who: Reference

  • Meta Business Help Center: About the Meta Pixel; Set up the Meta Pixel; Test your events; About Conversions API; About deduplication; About Event Match Quality.
  • Meta Business Help Center: Verify your domain; About Advantage+ audience; About the learning phase; About A/B testing; About placements; About ad fatigue.
  • Meta Advertising Standards: Personal attributes. Meta Business Tools Terms.
  • US Federal Trade Commission: Trade Regulation Rule on the Use of Consumer Reviews and Testimonials (effective October 21, 2024). FTC Guides Concerning Endorsements and Testimonials.
  • CCS website build notes (ccs2_site/README.md): the Pixel placeholder, the Lead events, the intake form and database.
  • CCS scripts v1 (Google Doc): the 25 UGC scripts.
  • Benchmark ranges: 2026 industry reports compiled in the CCS Paid Media Field Guide (paidmedia.akroadside.com).
  • Menus in Meta are renamed often. If a path in this guide has moved, Meta's help center search will find the new one.

Ticks are saved in this browser on this device only. The same guide is in the Google Doc "Facebook Ads CCS".