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

# Meta Ad Campaigns (via ZuckerBot)

> Learn how to connect ZuckerBot to Notis as a custom MCP server so Notis can create, launch, and optimize Meta ad campaigns with AI-generated creatives, audience tiers, and intelligence-driven strategy.

Use [ZuckerBot's](https://zuckerbot.ai) API and MCP server to let Notis create, launch, and optimize Meta ad campaigns — complete with AI-generated ad copy, images, audience tiers, and intelligence-driven strategy.

## What this setup does

In this setup, **Notis handles the conversation**: you describe what you want to advertise, your goals, and your budget. **ZuckerBot handles the ad infrastructure**: it scrapes your website, generates ad creatives with AI, builds audience tiers, creates campaigns on Meta, and manages the full lifecycle from draft to activation.

<Tip>
  That split is important: Notis is your command layer, while ZuckerBot is your Meta Ads execution engine. You talk to Notis; ZuckerBot builds and launches the campaigns.
</Tip>

## Prerequisites

* A Notis workspace with access to custom MCP connections

* A [ZuckerBot](https://zuckerbot.ai) account (free tier included)

* A ZuckerBot API key from the developer dashboard

* A connected Meta Ads / Facebook Business account inside ZuckerBot

## What ZuckerBot can do

ZuckerBot covers the **full ad campaign lifecycle** through 10 API endpoints:

* **Preview campaigns** — Give it a URL, it scrapes the site and generates ad copy + images with AI

* **Create campaign drafts** — Intelligence mode builds audience tiers, creative angles, budget allocation, and projected CPL

* **Enrich business context** — Crawl your website and cache structured planning data

* **Upload business context** — Feed brand guidelines, competitor data, or CRM insights

* **Approve strategy** — Lock in audience tiers and creative angles before production

* **Request creative** — Hand off to a studio or generate assets

* **Upload creative** — Attach finished assets; ZuckerBot creates paused ads on Meta

* **Activate campaigns** — Go live on only the tiers that are ready

* **Monitor performance** — Fetch live campaign data

* **A/B test** — Compare creatives and audiences

## Step 1: Get your ZuckerBot API key

1. Sign up at [zuckerbot.ai](http://zuckerbot.ai).

2. Go to the **developer dashboard** and create an API key.

3. Keys starting with `zb_live_` hit real endpoints. Keys starting with `zb_test_` are sandbox (safe for testing).

<Warning>
  **Keep your key secret.** Never expose it in client-side code. Rotate immediately if compromised.
</Warning>

## Step 2: Add ZuckerBot as a custom MCP in Notis

1. Open the [Notis Portal](https://app.notis.ai) and go to **Settings → Integrations**.

2. Click **Add MCP**.

3. **Name:** Enter `ZuckerBot` (or any name you'll recognize).

4. **Description:** Give Notis context on when to use this MCP. For example:

*"Use ZuckerBot to create, launch, and optimize Meta (Facebook/Instagram) ad campaigns. It can generate ad previews from any URL, build intelligence-driven campaign strategies with audience tiers and creative angles, upload creatives, activate campaigns, and monitor performance. Campaigns are created paused by default."*

1. **Server URL:** Paste the MCP endpoint from ZuckerBot's docs (check [zuckerbot.ai/docs](http://zuckerbot.ai/docs) for the latest URL).

2. **Authentication:** Select **Headers**, then add the following header:

* **Key:** `Authorization`

* **Value:** `Bearer zb_live_YOUR_API_KEY` (replace with your actual key from Step 1)

1. *(Optional)* Disable tools you don't need in the **Available Tools** section.

2. Click **Save**.

Once saved, ZuckerBot's tools are available to Notis across all your channels — WhatsApp, Telegram, iMessage, Slack, email, and Voice Mode.

## Step 3: Verify the connection

Test with a simple prompt:

> *"Generate an ad preview for *[*https://my-website.com*](https://my-website.com)*"*

ZuckerBot should scrape the site and return AI-generated ad copy and images within seconds.

## Example workflow: from URL to live campaign

1. **Preview** — *"Generate ad previews for *[*joes-pizza-austin.com*](http://joes-pizza-austin.com)*"*

ZuckerBot scrapes the site, infers the business type, and returns ad copy + images.

1. **Create draft** — *"Create a traffic campaign for Joe's Pizza with a \$20/day budget targeting Austin, TX"*

ZuckerBot builds an intelligence strategy with audience tiers (broad prospecting, lookalikes, retargeting), creative angles, and projected CPL.

1. **Review strategy** — *"Show me the audience tiers and creative angles for that campaign"*

Notis presents the strategy for your review.

1. **Approve** — *"Approve the Broad ADV+ tier and the Proof Over Promise creative angle"*

ZuckerBot locks in the approved tiers and angles.

1. **Upload creatives** — *"Upload this image as the creative for the Broad ADV+ tier"*

ZuckerBot creates paused ads on Meta with the uploaded asset.

1. **Activate** — *"Activate the Broad ADV+ tier"*

The campaign goes live on Facebook and Instagram.

<Tip>
  All campaigns are created in **PAUSED** status by default. Nothing goes live until you explicitly activate.
</Tip>

## Example prompts

* "Generate ad previews for [my-website.com](http://my-website.com) with 3 variations."

* "Create a leads campaign for my business with a \$30/day budget targeting the US."

* "Show me the strategy, audience tiers, and projected CPL for that campaign."

* "Approve the broad prospecting tier and the social proof creative angle."

* "Upload this image as the ad creative and attach it to the approved tier."

* "Activate only the tiers that have creatives ready."

* "What's the performance of my active campaigns this week?"

## Intelligence mode

ZuckerBot's intelligence mode is its standout feature. When you create a campaign, it:

* Resolves your business from the URL

* Assembles account context (historical data, CRM, web context, uploaded docs)

* Builds **audience tiers** with budget allocation and projected CPL per tier

* Generates **creative angles** with hooks, messaging, CTAs, and format recommendations

* Returns **warnings** and **next steps**

You can feed it additional context (brand guidelines, competitor analysis, review data) to sharpen the strategy.

## ZuckerBot vs. Pipeboard — quick comparison

| Feature                     | ZuckerBot                          | Pipeboard                       |
| --------------------------- | ---------------------------------- | ------------------------------- |
| **Focus**                   | Full campaign creation from URL    | Campaign management + analytics |
| **AI-generated creatives**  | ✅ From any URL                     | ❌                               |
| **Intelligence strategy**   | ✅ Audience tiers + creative angles | ❌                               |
| **Campaign analytics**      | ✅ Basic                            | ✅ Advanced (30+ tools)          |
| **Audience research**       | ✅ Built into strategy              | ✅ Standalone tools              |
| **Sandbox mode**            | ✅ `zb_test_` keys                  | ❌                               |
| **Default campaign status** | Paused                             | Paused                          |

**Tip:** You can connect both ZuckerBot and Pipeboard to Notis for complementary capabilities — use ZuckerBot for campaign creation and Pipeboard for deeper analytics.

## Important limitations

* **Third-party service:** ZuckerBot is not an official Meta product. Your ad account data flows through ZuckerBot's infrastructure.

* **Live ad spend:** When you activate a campaign, real money is spent on Meta. Always review before activating.

* **API key scoping:** `zb_live_` keys hit real endpoints. Use `zb_test_` keys for safe experimentation.

* **No undo on activation:** Once a campaign is live, pausing it requires a separate action.

## Troubleshooting

* **Authentication fails:** Confirm your ZuckerBot API key is valid and starts with `zb_live_` (or `zb_test_` for sandbox).

* **No preview generated:** Verify the URL you provided is accessible and has enough content for ZuckerBot to scrape.
