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:

  1. Upload a list of your existing customers (emails)
  2. Meta finds similar profiles in its database
  3. 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:

  1. Header image: consistent with the ad
  2. Introduction: 1-2 sentences recapping the offer
  3. Questions:
    • First name (pre-filled)
    • Email (pre-filled)
    • Phone number
    • 1 qualifying question max (e.g., budget, industry)
  4. Privacy policy: mandatory link (GDPR)
  5. 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?

  1. Creative (image/video) → biggest impact on performance
  2. Hook (first sentence/image) → determines whether people stop scrolling
  3. Audience → same ad, different audiences
  4. Offer → same audience, different offers
  5. 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