Local Leap Media

Skeleton Campaign Setup

Build the empty campaign shell for a new client — correct targeting, correct settings, correct lead form — then hand it to the media buyer to fill in creatives and copy.

Owner: Hanif. New process as of 2026-07-27.

NOTE

Why this exists. Setup mistakes were being caught late — wrong location (targeting "St. Louis City" when the client services "St. Louis County"), automated settings left on, lead forms missing a question. These are small errors with large effects, and they need local market knowledge to catch. Splitting setup from optimization puts each job with the person best placed to do it.

Where this fits

Step Who What
1 Griffin Names the Facebook page, posts the client info + domain in the Discord channel
2 Hanif Edits the page (Facebook Page Setup SOP)
3 Hanif This page — skeleton campaign + lead form + GHL connection
4 Tasneem / Abdelhamed Fill in creatives, copy, real budgets (Media Buyer Launch Playbook)

Before you start

You need three things in hand:

  1. The Facebook page, named by Griffin and edited by you.
  2. The client's service area — from the Discord channel. Radius, city list, zip list, or county list.
  3. The client's scheduling link — from Griffin's announcement in the channel. Format is always [clientname].directestimatepro.com/schedule-appointment.

If the service area is unclear, tag Griffin. Do not guess on geography.


Step 1 — Run the location prompts first

Start these before you touch Ads Manager. They take a few minutes each and you can let them run while you work.

Run them in this order (full instructions in New Launch Targeting Sequence, prompt text in Targeting Audit Workflow):

Prompt When What you get
Prompt B — Messy Location → Radius Only if the client gave a zip list, city list, or county list A clean city + radius
Prompt A — Zip Exclusion Research Always Tier 1 / 2 / 3 zip codes to exclude
Prompt C — Location Qualifier Always The lead form's Question 1 text

Which AI to use: ChatGPT (paid) is the default. Claude is better at checking its own work, but the usage limits make it a poor fit for a task you run on every launch. Do not use Gemini for these — output quality is not reliable enough for targeting.

Tell the tool if your ad account is set to kilometers instead of miles. It applies the same way, but it has to know.

Reading the zip exclusion output

Prompt A returns three tiers. How many you apply depends on the market's population:

Market population Apply
Over 1M Tier 1 + Tier 2. Consider Tier 3.
750K – 1M Tier 1. Add the worst of Tier 2.
Under 750K Tier 1 only.
Under 500K Do not exclude. The audience is already small.

The point of the exclusion is to remove roughly the bottom 10–20% of a market. In a smaller market, applying all three tiers shrinks the audience too far and the campaign starves.

WARNING

If Prompt A returns no zip codes at all, stop and check. In a lower-income metro (Cleveland is the usual example) the income thresholds can filter everything out, and in a higher-income metro (Phoenix) nothing may fall below them. An empty result is sometimes correct — but re-run it before you accept it.


Step 2 — Create the campaign

Open Ads Manager → Create → objective Leads.

Name it:

[COMPANY ACRONYM]_Skeleton

Example: HAP_Skeleton

Set the daily budget to the lowest amount Facebook will accept:

1

This is a placeholder. The media buyer sets the real budget when they take over. You only need enough to let the campaign publish.

Nothing else at campaign level matters for the skeleton.


Step 3 — Set up the ad set

Conversion location

Facebook defaults this to Website and Instant forms. Change it to:

Instant forms

Then select the client's Facebook page, select the instant form, and accept the terms. If the page is brand new you will get an extra terms screen — that is normal, accept it.

Location targeting

  1. Drop the pin on the primary city from Step 1 and set the radius.
  2. Turn OFF "Include people interested in this location."

WARNING

"Include people interested in this location" is ON by default and it is the single worst setting in the interface. Left on, someone living in New York who has shown interest in Tucson will see a Tucson HVAC ad. Turn it off on every ad set, every time.

  1. Draw the exclusion ring next — before you add any zip codes.

An exclusion ring is a second radius you exclude, used to carve out a neighbouring metro or a territory boundary. Example: a Tucson radius will still pick up Phoenix traffic at the edge unless you exclude a ring around Phoenix.

WARNING

Order matters here. Once you add roughly 20+ zip codes, Facebook hides the map and tells you there are too many locations to display. You cannot draw a ring you cannot see. Build every ring first, then paste the zips.

Where the boundary is a whole state, exclude the state rather than drawing rings around it — one exclusion instead of 25.

  1. Paste the zip exclusions from Step 1, using the tier rules above.

Remaining ad set settings

Setting Value
Minimum age 30 (drop to 25 only if the audience is under 500K — note it in the ad set name)
Maximum age 65+
Gender All
Detailed targeting Off — broad

Name the audience:

[CompanyName]_[City]_1.0

Step 4 — Set up the ad

This is a placeholder ad. It exists so the campaign can publish. The media buyer replaces the creative.

  1. Turn off Multi-advertiser ads.
  2. Upload any placeholder image — Facebook will not let you publish an empty ad.

WARNING

Facebook adds ads you did not ask for. After you upload one image it will silently create two or three ad variations. Check the ad list before you continue and delete everything except the one you uploaded. Publishing without checking means running ads nobody approved.

  1. Turn off every Advantage+ creative enhancement. Go through the list and switch them all off. - Translations especially — there is no situation where we want Facebook auto-translating our ad copy. - Advantage+ creative must be fully off. The "essential" enhancements (brightness adjustment and similar) are low-risk, but the default is off.
  2. Add the ad copy template if you already have it. The ad uploader software works from a template, so filling the text in now saves a step later.
  3. Set the call-to-action button:
Get Quote
  1. Attach the lead form. Build it per Lead Form Standard Questions — that page has every paste-ready value.

Step 5 — Publish, then pause immediately

Publish the campaign. As soon as it publishes, pause it.

Why both steps: - Publish — a campaign left in draft is only visible to the person who created it. The media buyers cannot see your work until it is published. - Pause — a published campaign spends money. Pause it the moment it goes live.

Do not leave it running while you go do something else. Publish and pause in the same sitting.


Step 6 — Connect it to GoHighLevel

Follow Connect Facebook Page to GoHighLevel. This is part of the same job — do not hand it off half-finished.


Step 7 — Hand off

Post in the client's Discord channel:

Skeleton campaign is published and paused. Lead form is built and mapped in GHL. Ready for creatives and copy.

Hard rules

DANGER

Never use AI browser automation in Facebook Ads Manager. Do not use Claude's browser control, Comet, or any other tool that drives the browser for you. Facebook reads it as bot activity and restricts or permanently bans the account. This has already happened twice to an account in our orbit. Using it to organise Google Drive folders is fine — Ads Manager is the hard line.

DANGER

Never log into Ads Manager from a country you do not normally work from. A sudden country change on the login is a restriction trigger, even with no automation involved. If you are travelling, say so in Discord before you log in.


Quick reference — every setting to change

Facebook's defaults are wrong for us in six places. This is the whole list:

Where Default Change to
Ad set — conversion location Website and Instant forms Instant forms
Ad set — interested in this location ON OFF
Ad — Multi-advertiser ads ON OFF
Ad — Advantage+ creative ON OFF (translations especially)
Ad — auto-generated ad variations Added silently Delete them
Ad — call to action Learn More / Visit Website Get Quote