> ## Documentation Index
> Fetch the complete documentation index at: https://docs.theoptimizer.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Main Use Cases

> The most common bulk campaign launch scenarios the Facebook Mass Campaign Uploader is built to handle.

export const ArcadeVideoButton = ({id, title = "Watch interactive demo", label = "Watch Video"}) => {
  const [open, setOpen] = useState(false);
  return <div style={{
    display: 'inline-block'
  }}>
      <button type="button" onClick={() => setOpen(true)} style={{
    display: 'inline-flex',
    alignItems: 'center',
    gap: '8px',
    backgroundColor: '#3e47ec',
    color: '#ffffff',
    border: 'none',
    padding: '10px 18px',
    borderRadius: '8px',
    fontSize: '15px',
    fontWeight: '600',
    cursor: 'pointer'
  }}>
        <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="white">
          <polygon points="5,3 19,12 5,21" />
        </svg>
        {label}
      </button>

      {open && <div onClick={() => setOpen(false)} style={{
    position: 'fixed',
    top: 0,
    left: 0,
    width: '100%',
    height: '100%',
    backgroundColor: 'rgba(0, 0, 0, 0.85)',
    zIndex: 9999999,
    display: 'flex',
    alignItems: 'center',
    justifyContent: 'center'
  }}>
          <div onClick={e => e.stopPropagation()} style={{
    width: '90%',
    maxWidth: '1100px',
    aspectRatio: '16 / 9',
    borderRadius: '12px',
    overflow: 'hidden',
    position: 'relative'
  }}>
            <iframe src={`https://demo.arcade.software/${id}?embed&embed_mobile=tab&embed_desktop=inline&show_copy_link=true`} title={title} frameBorder="0" loading="lazy" allowFullScreen allow="clipboard-write" style={{
    width: '100%',
    height: '100%',
    border: 'none',
    colorScheme: 'light'
  }} />
          </div>

          <button type="button" onClick={() => setOpen(false)} style={{
    position: 'fixed',
    top: '20px',
    right: '24px',
    background: 'rgba(255,255,255,0.15)',
    border: 'none',
    color: '#ffffff',
    fontSize: '24px',
    lineHeight: 1,
    width: '40px',
    height: '40px',
    borderRadius: '50%',
    cursor: 'pointer',
    display: 'flex',
    alignItems: 'center',
    justifyContent: 'center'
  }}>
            ✕
          </button>
        </div>}
    </div>;
};

export const ArcadePopoutModal = ({id, title = "Interactive demo"}) => {
  const [isPopout, setIsPopout] = useState(false);
  const iframeRef = useRef(null);
  useEffect(() => {
    function onArcadeIframeMessage(e) {
      if (e.origin !== 'https://demo.arcade.software' || !e.isTrusted) return;
      if (!iframeRef.current || !iframeRef.current.contentWindow) return;
      if (e.data.event === 'arcade-init') {
        iframeRef.current.contentWindow.postMessage({
          event: 'register-popout-handler'
        }, '*');
      }
      if (e.data.event === 'arcade-popout-open') {
        setIsPopout(true);
      }
      if (e.data.event === 'arcade-popout-close') {
        setIsPopout(false);
      }
    }
    window.addEventListener('message', onArcadeIframeMessage);
    return () => window.removeEventListener('message', onArcadeIframeMessage);
  }, []);
  return <div style={{
    position: 'relative',
    paddingBottom: 'calc(54.4737% + 41px)',
    height: 0,
    width: '100%'
  }}>
      <iframe ref={iframeRef} src={`https://demo.arcade.software/${id}?embed&embed_mobile=tab&embed_desktop=modal&show_copy_link=true`} title={title} frameBorder="0" loading="lazy" allowFullScreen allow="clipboard-write" style={{
    position: isPopout ? 'fixed' : 'absolute',
    top: 0,
    left: 0,
    width: '100%',
    height: '100%',
    zIndex: isPopout ? 9999999 : 'auto',
    colorScheme: 'light'
  }} />
    </div>;
};

The Facebook Mass Campaign Uploader is designed for teams who launch campaigns at scale — dozens or hundreds at a time. Here are the scenarios it is built to handle. Each one below has a short video walkthrough; the scenarios without a video yet are listed at the end.

### 50 Creatives → 50 Campaigns (1-1-1 Campaign Structure)

**What it does?** Uploads your creatives and generates a separate campaign and ad set for each one — one ad per campaign — so every creative is fully isolated and Facebook cannot bias delivery toward a single ad.

**When to use it?** When you want a clean, fair creative test with budget isolation. Each creative gets its own budget and its own learning phase, so the winner earns it instead of delivery bias picking it.

<div style={{ position: 'relative', width: '100%', paddingBottom: '56.25%', height: 0 }}>
  <iframe style={{ position: 'absolute', top: 0, left: 0, width: '100%', height: '100%' }} src="https://www.youtube.com/embed/y1RRZEoTHM8" title="Each Creative in Its Own Campaign — Facebook Campaign Creator" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen />
</div>

### 50 Creatives → 50 Ad Sets (1-N-1 Campaign Structure)

**What it does?** Generates a separate ad set for each uploaded creative while sharing a single campaign-level budget. One input controls the ads per ad set — set it to 1 for one ad per ad set (the 1-N-1 structure), or higher to group several ads per ad set.

**When to use it?** When you want per-creative separation for cleaner reads but prefer to manage one shared campaign budget instead of dozens.

<div style={{ position: 'relative', width: '100%', paddingBottom: '56.25%', height: 0 }}>
  <iframe style={{ position: 'absolute', top: 0, left: 0, width: '100%', height: '100%' }} src="https://www.youtube.com/embed/49BS6yKfcRk" title="Each Creative in Its Own Ad Set Under One Campaign — Facebook Campaign Creator" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen />
</div>

### Add new creatives as new ad sets into an existing campaign

**What it does?** Feeds a running campaign a fresh batch of creatives and turns each one into its own ad set (or groups several creatives per ad set with a single option) inside the campaign you already have live — no new campaign required.

**When to use it?** When your testing lives in one running campaign and you just want to keep adding challengers. The first launch builds the structure in a few minutes; save it as a template and every future batch becomes upload-and-publish in under a minute, because the template already knows how many ad sets to create and where to publish them.

<div style={{ position: 'relative', width: '100%', paddingBottom: '56.25%', height: 0 }}>
  <iframe style={{ position: 'absolute', top: 0, left: 0, width: '100%', height: '100%' }} src="https://www.youtube.com/embed/u8fqzlSSjAE" title="Upload New Creatives as New Ad Sets Into an Existing Campaign — Facebook Campaign Creator" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen />
</div>

### Launch one offer across many markets, localized (match by group name)

**What it does?** Runs the same offer in every state, country, or region — each with its own copy, landing page URL, and page — from one reusable template. Create one group per market on the audience, creative, and destination sections, then turn on match by group name so each market only pairs with its own copy and its own URL, with no crossed markets.

**When to use it?** When localization is your bottleneck and you relaunch the same markets often. On the next launch you upload new creatives once and click **Apply To All Groups** to populate every market at once.

<div style={{ position: 'relative', width: '100%', paddingBottom: '56.25%', height: 0 }}>
  <iframe style={{ position: 'absolute', top: 0, left: 0, width: '100%', height: '100%' }} src="https://www.youtube.com/embed/Ng6L3T5eZ6w" title="Launch One Offer in Every Market, Localized — Facebook Campaign Creator" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen />
</div>

### Upload localized ad sets — one per state or market — into an existing campaign

**What it does?** The advanced, multi-market version of adding ad sets to a live campaign. Each state (or country/region) gets its own ad set with its own copy, its own landing page URL, and its own per-placement image crops, matched by group-name pattern so markets never cross.

**When to use it?** When you are scaling a localized offer market by market and want everything wired correctly on every batch — auto-matched placement crops, Advantage+ Creative Enhancement off, and dynamic naming, all saved in a template. Every future batch (new images, same markets) becomes upload-and-publish in about a minute.

<div style={{ position: 'relative', width: '100%', paddingBottom: '56.25%', height: 0 }}>
  <iframe style={{ position: 'absolute', top: 0, left: 0, width: '100%', height: '100%' }} src="https://www.youtube.com/embed/xob5mjg_eiE" title="Upload Localized Ad Sets Per State Into an Existing Campaign — Facebook Campaign Creator" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen />
</div>

### Auto-match image crops to placements by filename

**What it does?** You prepare a square, vertical, and landscape version of each creative and include the aspect ratio in the filename (`1x1`, `9x16`, `1.91x1`); the uploader then assigns each crop to its matching placement automatically across every ad.

**When to use it?** When you build a proper creative for every placement but do not want to edit placements ad by ad in Meta. Even when launching hundreds of ads, every crop is placed in a single step.

<div style={{ position: 'relative', width: '100%', paddingBottom: '56.25%', height: 0 }}>
  <iframe style={{ position: 'absolute', top: 0, left: 0, width: '100%', height: '100%' }} src="https://www.youtube.com/embed/F-_uT-V7A24" title="Auto-Match Image Crops to Placements by Filename — Facebook Campaign Creator" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen />
</div>

### Turn Off Creative Enhancement for all creatives in bulk

**What it does?** Disables Facebook's Advantage+ Creative Enhancement across every ad in a campaign in one action, instead of turning it off manually ad by ad — and keeps it off for future launches when saved in a template.

**When to use it?** When you do not want Meta cropping, filtering, or restyling your creatives, and you want clean creative tests where the win is your ad, not Meta's version of it.

<div style={{ position: 'relative', width: '100%', paddingBottom: '56.25%', height: 0 }}>
  <iframe style={{ position: 'absolute', top: 0, left: 0, width: '100%', height: '100%' }} src="https://www.youtube.com/embed/Hr9q3U35w2g" title="Turn Off Creative Enhancement for All Creatives in Bulk" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen />
</div>

### Launch the same campaign structure across multiple ad accounts at once

**What it does?** Builds your campaign once, replicates it into as many ad accounts as you want, and publishes to all of them in a single launch. Adjust the page or pixel per account where they differ. One campaign with 30 ad sets across three accounts publishes as 3 campaigns, 90 ad sets, and 90 ads at once.

**When to use it?** When you diversify across accounts to spread risk, take advantage of separate learning phases per account, or reduce Facebook's initial randomness. Save it as a template and every future multi-account launch becomes upload-and-publish in minutes.

<div style={{ position: 'relative', width: '100%', paddingBottom: '56.25%', height: 0 }}>
  <iframe style={{ position: 'absolute', top: 0, left: 0, width: '100%', height: '100%' }} src="https://www.youtube.com/embed/FJM7bs2egXw" title="Launch the Same Campaign Into Multiple Ad Accounts at Once — Facebook Campaign Creator" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen />
</div>

***

## More scenarios (video walkthroughs coming soon)

### Test the same creatives across multiple audiences and budgets

**What it does?** Generates every combination from a single base ad set — for example, three audiences × three budgets = nine ad set variations — automatically.

**When to use it?** When you want to find the right audience and budget mix for a creative set without building each permutation by hand.

### Group creatives into batches

**What it does?** Puts several creatives per ad set (for example, five per ad set) instead of one.

**When to use it?** When you want grouped rotation testing under shared ad sets rather than full per-creative isolation.

### Launch a full campaign structure from a saved template

**What it does?** Swaps fresh creatives into a saved structure and publishes in minutes instead of rebuilding from scratch every time.

**When to use it?** When you relaunch a proven structure regularly — same setup, new creatives or new accounts.

### Attach automation rules at launch time

**What it does?** Campaigns go live with stop-loss, budget scaling, and other automation rules already active from the first impression.

**When to use it?** When you want protection and scaling logic running immediately, not set up hours after launch.

***

## Is the Mass Campaign Uploader right for you?

The Mass Campaign Uploader is the right tool when:

* You are launching **more than 5–10 campaigns** at once and doing it manually in Ads Manager would take hours
* You want **budget isolation per creative** — one campaign per creative so Facebook's algorithm cannot favour one creative over others
* You need to **test many variables simultaneously** — multiple audiences, budgets, placements, or creative sets — and want all permutations generated automatically
* You are **reusing a proven structure** — same campaign setup, new creatives or new accounts
* You want **automation rules active from the first impression**, not set up hours after launch

For one-off campaigns with a single ad set and a few ads, Facebook Ads Manager is equally fast. The Uploader's value scales with volume and complexity.
