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

# Connect Meta Ads

> Give Goose access to your Meta ad account so it can report on performance and analyze your creatives

Connecting your Meta (Facebook/Instagram) ad account lets Goose pull a daily performance report, review the ads you're actually running, and learn what works for your brand — so the creatives it makes for you keep getting sharper.

You connect by pasting in a **System User access token** from your Meta Business account. It sounds technical, but it's a handful of clicks in Meta Business Settings. This page walks you through it.

<Note>
  There are two levels of access. **Read‑only** is all you need for reporting and creative analysis, and it's the safest — Goose can *look* at your account but can never spend money or change anything. **Read/write** additionally lets Goose take actions (like pausing an ad) later on. Start with read‑only.
</Note>

## Before you start

You'll need:

* A **Meta Business** (Business Manager) that owns — or has partner access to — your ad account.
* A **Meta App** in that business. If you don't have one: go to [developers.facebook.com](https://developers.facebook.com) → **My Apps** → **Create App** → choose **Business**, then add it to your business under **Business settings → Accounts → Apps**.
* **Admin** access to the business (only a business admin can create a system user and generate a token).

## Connect (read‑only)

<Steps>
  <Step title="Open System Users in Business Settings">
    Go to [business.facebook.com/settings](https://business.facebook.com/settings) → **Users** → **System users**.
  </Step>

  <Step title="Add a system user">
    Click **Add**, give it a name like `Gooseworks Ads`, set the role to **Employee**, and create it.
  </Step>

  <Step title="Give it access to your app">
    Select the new system user → **Assign assets** → **Apps** → pick your Meta app → turn on **Manage app** (full control) → **Save changes**.
  </Step>

  <Step title="Give it access to your ad account">
    Still on the system user → **Assign assets** → **Ad accounts** → pick your ad account → turn on **View performance** → **Save changes**.

    <Warning>
      This is the step people skip — and it's the one that breaks things. If you generate a token *without* assigning the ad account here, the token looks valid but can't actually read your data, and the connection fails with "no ad accounts found." Don't skip it.
    </Warning>
  </Step>

  <Step title="Generate the token">
    Click **Generate new token** → choose your app → set **Token expiration** to **Never** → check the **`ads_read`** permission → **Generate token**.
  </Step>

  <Step title="Copy it and paste it into Goose">
    Copy the token (Meta only shows it once). In Goose, open **Settings → Connect Meta**, paste the token, and pick your ad account if prompted. Done — Goose can now report on your account.
  </Step>
</Steps>

## Want Goose to take actions too? (read/write)

Read‑only covers all reporting and creative analysis. Only set this up if you want Goose to be able to *act* on your account (for example, pause an ad) — and note it can then affect a live, money‑spending account, so we always ask you to confirm each action.

It's the **same steps as above**, with three changes:

<AccordionGroup>
  <Accordion title="1. Set the system user role to Admin">
    In step 2, choose **Admin** instead of Employee.
  </Accordion>

  <Accordion title="2. Grant Manage campaigns on the ad account">
    In step 4, turn on **Manage campaigns** (instead of, or in addition to, View performance).
  </Accordion>

  <Accordion title="3. Add the ads_management permission">
    In step 5, check **both** `ads_read` **and** `ads_management` before generating the token.
  </Accordion>
</AccordionGroup>

## What Goose can see

With a read‑only token, Goose can read:

* **Delivery metrics** — spend, impressions, reach, frequency, clicks, CTR, CPC, CPM. These work for every account, no extra setup.
* **Your ad structure** — campaigns, ad sets, and the creatives that are running.
* **Your creative images** (and, where available, videos) so it can review what's actually in your ads.

<Note>
  **Conversions, cost‑per‑lead, cost‑per‑purchase, and ROAS** only show up if your account has the **Meta Pixel or Conversions API** set up with conversion tracking. Without it, Goose will tell you tracking isn't configured rather than guess — it never makes up numbers.
</Note>

## Your access is safe

* A read‑only token can **only read** — it can't spend, launch, pause, or edit anything.
* The token is **encrypted** at rest and only used to talk to Meta on your behalf.
* You can **revoke** it anytime from **Business Settings → System users → Generate new token** (regenerating invalidates the old one), or disconnect it in Goose.

## Troubleshooting

<AccordionGroup>
  <Accordion title="It says my token is valid but finds no ad accounts">
    The ad‑account assignment (step 4) was almost certainly skipped or saved without a permission. Go back to your system user → **Assign assets → Ad accounts**, make sure your account is listed with **View performance** turned on, then generate a fresh token and paste it again.
  </Accordion>

  <Accordion title="Meta won't let me generate a token">
    Only a **business admin** can generate a system‑user token, and the system user needs your **app** assigned first (step 3). If you're not an admin, ask whoever owns the Business Manager to run these steps or make you an admin.
  </Accordion>

  <Accordion title="I lost the token">
    Tokens are shown only once. Just generate a new one (**Generate new token**) — this replaces the old token — and paste the new one into Goose.
  </Accordion>

  <Accordion title="My conversion numbers are empty">
    That's expected if your account doesn't have the Meta Pixel / Conversions API tracking conversions. Delivery metrics (spend, clicks, CTR, etc.) still work; conversion metrics (CPA, ROAS) need tracking set up on your side.
  </Accordion>
</AccordionGroup>

## Next steps

<Columns cols={2}>
  <Card title="Brands & brand kit" icon="palette" href="/ad-remixer/brands">
    A sharp brand kit makes sharper, on‑brand ads.
  </Card>

  <Card title="Autopilot" icon="robot" href="/ad-remixer/autopilot">
    Get a fresh batch of on‑brand ads generated on a schedule.
  </Card>
</Columns>
