Meta Ads: B2C Acquisition via Facebook and Instagram
Meta Ads: B2C Acquisition via Facebook and Instagram
Why Meta Ads?
Meta (Facebook + Instagram) has approximately 3.7 billion monthly active users. The Meta Ads platform is the most powerful B2C tool for:
- Targeting highly specific audiences (demographics, interests, behaviors)
- Generating leads at scale
- Rapidly testing offers and messaging
- Reaching audiences at every stage of the funnel
graph TD
A[Awareness<br/>Reach & Impressions] --> B[Consideration<br/>Traffic & Engagement]
B --> C[Conversion<br/>Leads & Sales]
C --> D[Retention<br/>Retargeting]
Meta Ads account structure
Campaign hierarchy
Ad Account
└── Campaign (objective)
└── Ad Set (audience + budget)
└── Ad (creative + copy)
| Level | You define |
|---|---|
| Campaign | The objective (leads, sales, traffic, awareness) |
| Ad Set | The audience, budget, schedule, placements |
| Ad | The visual, copy, CTA, landing page |
Campaign objectives
For prospect acquisition
| Objective | Usage | Primary KPI |
|---|---|---|
| Leads | Built-in lead forms (Lead Forms) | CPL (Cost per lead) |
| Traffic | Send users to a landing page | CPC (Cost per click) |
| Conversions | Actions on your site (purchase, sign-up) | CPA (Cost per action) |
| Engagement | Interactions on your posts | CPE (Cost per engagement) |
To get started with B2C acquisition, the Leads objective with built-in Meta lead forms is the simplest and often the most cost-effective.
Audience targeting
1. Cold audiences (prospecting)
Interest-based targeting
Example: selling online yoga classes
Interests:
- Yoga
- Meditation
- Wellness
- Pilates
- Personal development
Demographics:
- Women, ages 25-45
- United States
Behaviors:
- Engaged online shoppers
Lookalike targeting (similar audiences)
Lookalike audiences are among the best-performing on Meta:
- Upload a list of your existing customers (emails)
- Meta finds similar profiles in its database
- Choose the similarity percentage (1% = very similar, 10% = broader)
Tip: start with a 1% Lookalike of your best customers (those who purchased multiple times or with the highest order value).
2. Warm audiences (retargeting)
| Audience | Description | Temperature |
|---|---|---|
| Website visitors (7d) | Recently visited your site | Hot |
| Website visitors (30d) | Visited within the past month | Warm |
| Instagram engagement (90d) | Interacted with your profile | Warm |
| Video viewers (75%) | Watched 75%+ of a video | Hot |
| Lead form opened | Opened but did not complete the form | Hot |
3. Exclusions
Always exclude:
- Existing customers (unless for cross-sell/upsell)
- Already converted leads
- Your company's employees
Creating high-performing ads
Formats that convert
| Format | Best for | Tip |
|---|---|---|
| Static image | Simple offer, promotion | Text on image < 20% of surface area |
| Short video (< 15s) | Demo, testimonial | Hook in the first 3 seconds |
| Carousel | Multiple products/benefits | 3 to 5 slides max |
| Collection | E-commerce | Automatic product catalog |
Structure of a converting ad
HOOK (stop the scroll)
↓
PROBLEM (identify the pain point)
↓
SOLUTION (your offer)
↓
PROOF (testimonial, numbers)
↓
CTA (clear call to action)
Ad copy example
Are you tired of [problem]?
[Customer name] had the same issue.
In [time period], they managed to [concrete result].
Our [product/service] lets you:
- [Benefit 1]
- [Benefit 2]
- [Benefit 3]
[CTA: Free sign-up / Free trial / Download the guide]
Limited-time offer: [urgency]
Budget and bidding
What budget to start with?
| Phase | Daily budget | Duration | Goal |
|---|---|---|---|
| Testing | $10-20 / day | 7 days | Test 3-5 audiences and creatives |
| Optimization | $20-50 / day | 14 days | Identify winners |
| Scaling | $50-200+ / day | Ongoing | Increase volume |
Optimization rules
- Don't touch a campaign for 3-4 days after launch (learning phase)
- Increase budget by 20% maximum at each step
- Duplicate winning ad sets rather than modifying the budget
- Cut an ad set if CPL exceeds 2x your target after 1,000 impressions
Lead Forms
Optimal configuration
A good Meta Lead Form includes:
- Header image: consistent with the ad
- Introduction: 1-2 sentences recapping the offer
- Questions:
- First name (pre-filled)
- Email (pre-filled)
- Phone number
- 1 qualifying question max (e.g., budget, industry)
- Privacy policy: mandatory link (GDPR)
- Thank you page: CTA to your site or a WhatsApp link
Tip: use the "Higher Intent" form type for more qualified leads. Meta will add a confirmation step that filters out low-quality leads.
Retrieving leads automatically
Don't leave leads sitting in Meta! Connect them immediately:
| Integration | Tool | Usage |
|---|---|---|
| Zapier | Automation | Meta → CRM, Email, Slack |
| Make | Automation | Alternative to Zapier |
| Conversions API | Meta CAPI | Server-side tracking |
| Native CRM | HubSpot, Salesforce | Direct integration |
The Meta Pixel and Conversions API
Installing the Pixel
The Meta Pixel is a JavaScript snippet that tracks visitor actions on your website:
<!-- Place in the <head> of your site -->
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', 'YOUR_PIXEL_ID');
fbq('track', 'PageView');
</script>
Standard events to configure
| Event | When to trigger |
|---|---|
PageView |
Every page view |
Lead |
Form submission |
CompleteRegistration |
Registration completed |
Purchase |
Purchase confirmed |
AddToCart |
Added to cart |
ViewContent |
Product page viewed |
Conversions API (CAPI)
The Pixel alone is increasingly unreliable (iOS 14+, ad blockers). The Conversions API sends events server-side:
from facebook_business.adobjects.serverside.event import Event
from facebook_business.adobjects.serverside.event_request import EventRequest
from facebook_business.adobjects.serverside.user_data import UserData
from facebook_business.adobjects.serverside.custom_data import CustomData
from facebook_business.api import FacebookAdsApi
ACCESS_TOKEN = "your_token"
PIXEL_ID = "your_pixel_id"
FacebookAdsApi.init(access_token=ACCESS_TOKEN)
user_data = UserData(
email="customer@example.com", # Automatically hashed
phone="+15551234567"
)
custom_data = CustomData(
value=49.99,
currency="USD"
)
event = Event(
event_name="Purchase",
event_time=int(time.time()),
user_data=user_data,
custom_data=custom_data
)
request = EventRequest(
events=[event],
pixel_id=PIXEL_ID
)
response = request.execute()
A/B Testing
What to test first?
- Creative (image/video) → biggest impact on performance
- Hook (first sentence/image) → determines whether people stop scrolling
- Audience → same ad, different audiences
- Offer → same audience, different offers
- CTA → final optimization
Methodology
- Test one variable at a time
- Minimum budget of $50 per variant
- Wait for 500+ impressions before drawing conclusions
- The winner has a CPL that is 20%+ lower than the loser