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

# Data sync

> How AdLoft pulls campaigns, ads, and performance metrics from Meta.

AdLoft syncs your Meta data so Overview, Insights, Winners Hub, and the campaign builder all work from up-to-date numbers. Syncs run as a durable background job — you can leave the page and they keep going.

## What gets synced

**Structure**

* Ad accounts (name, currency, status, timezone)
* Campaigns (objective, status)
* Ad sets (targeting, optimization goal, audience labels)
* Ads (status, headline, primary text, CTA, landing page, media)
* Creative assets

**Daily performance metrics** at the account, campaign, ad set, and ad level — including spend, revenue, impressions, reach, clicks, conversions, and ROAS. Account-level data is also pulled with a **country breakdown** for geographic reporting.

## How a sync runs

A full sync moves through several stages:

<Steps>
  <Step title="Inventory">
    Refresh ad accounts and load the latest campaign structure.
  </Step>

  <Step title="Recent metrics">
    Refresh the last 3 days at every level.
  </Step>

  <Step title="Reconciliation">
    Re-pull the last 30 days to catch late conversions and corrections.
  </Step>

  <Step title="Historical backfill">
    Backfill history (up to \~37 months) in chunks. This runs asynchronously and can take a while for large accounts.
  </Step>

  <Step title="Finalizing">
    Mark history complete and close out the run.
  </Step>
</Steps>

While a sync is active, AdLoft shows a live progress card with the stage, percent complete, per-account progress, and counts of imported rows. The card updates automatically.

<Tip>
  You can leave the page — the sync continues in the background and your data updates when it finishes.
</Tip>

## Run a sync manually

From **Workspace → Accounts**, click **Sync Meta data** or **Run full Meta sync**. The dashboard's channel-sync card also has a **Refresh all** / **Sync now** button.

Linking a new ad account also triggers a sync automatically.

## Sync cadence by plan

Manual syncs are rate-limited by your plan so they don't overlap:

| Plan  | Minimum gap between syncs |
| ----- | ------------------------- |
| Hobby | Every 6 hours             |
| Pro   | Every 3 hours             |
| Ultra | Every hour                |

If you try to sync again too soon, AdLoft tells you when the next sync is available. Your **first** sync is always allowed, and syncs triggered by linking an account aren't rate-limited.

<Info>
  Only **one sync per organization** can run at a time. If a sync is already running, AdLoft shows its live progress instead of starting a new one.
</Info>

## Sync errors

If something goes wrong, the sync card shows which accounts failed and why. Common causes:

* **Token expired** — reconnect Meta. See [Meta connection issues](/troubleshooting/meta-connection).
* **Permissions revoked** — reconnect and grant all permissions.
* **Transient Meta errors** — AdLoft retries automatically; failed accounts don't block the others.

A failing account is recorded per level and the run continues to the next account.
