Ad spend, campaign performance and ROAS — read-only.
Why founders connect Meta Ads
Ad spend is the easiest metric to overspend on without noticing. Fold puts your daily Meta spend, clicks, and purchase conversions next to your actual revenue from Stripe or Shopify — so you can see your return on ad spend in context rather than switching between Ads Manager and your payment dashboard.
How your data flows
This is the exact sequence every time Fold runs its daily sync. Nothing runs outside this pipeline.
OAuth 2.0 token
You authorise Fold once via Meta Ads's own OAuth page. Fold receives a scoped, time-limited token — your login credentials are never seen or stored.
4 HTTP GET calls per sync
Fold makes 4 read-only requests to Meta Ads's API — the exact endpoints are documented in the section below. No write requests are ever made.
Personal data stripped before storage
The raw API response is processed in memory. Only aggregate numbers (totals, counts, rates) are extracted. Any field containing personal information — names, emails, IDs — is discarded and never written to disk.
AES-256 at rest · row-level isolation
The filtered snapshot is written to your isolated tenant in our database, encrypted at rest. Row-level security ensures no other Fold user can read your data — not even via a misconfigured query.
Overview · Analytics · AI Digest
The stored aggregate numbers surface across your Fold dashboard — the Overview tile, Analytics tab charts, and the AI-generated daily digest. No raw data from the API is ever returned to the frontend.
Step 1 — How you connect
Here is precisely what happens when you connect Meta Ads to Fold, step by step.
Step 2 — Permissions we request
We request the minimum permissions needed. No more.
Step 3 — API calls Fold makes
These are the exact API endpoints Fold calls during each sync, and why.
GET /act_{ad_account_id}/insights
Fetch total spend, impressions, clicks and reach for the period.
GET /act_{ad_account_id}/campaigns?fields=insights
Campaign-level breakdown of spend and performance.
GET /act_{ad_account_id}/adsets?fields=insights
Ad-set level CPC and CTR for optimization insights.
GET /act_{ad_account_id}/adaccounts
List ad accounts linked to the Meta Business account.
API impact: Fold makes 4 Marketing API requests per sync. Meta's API has a rate limit based on an 'app score' — our requests are minimal and will not approach any limits.
What we store
Every field we persist — with a real example and the reason it exists. Nothing more is stored.
| Field | Example value | Why we store it |
|---|---|---|
| Total ad spend (period) | $1,240 this month | Ad spend KPI tile on Overview. |
| Total impressions | 284,000 impressions | Reach metric. |
| Total clicks | 4,320 clicks | Traffic driven by paid social. |
| Click-through rate (CTR) | 1.52% | Campaign efficiency metric. |
| Cost per click (CPC) | $0.29 | Ad cost efficiency metric. |
| ROAS (if conversion tracking enabled) | 3.2× | Return on ad spend for AI context. |
| Spend by campaign | Retargeting: $480 / Prospecting: $760 | Campaign breakdown chart. |
What a daily sync actually stores
This is a real-looking example of the row Fold writes to your account after a single sync. Every field, every value — nothing hidden.
{
"date": "2025-04-23",
"spend": "1240.00",
"impressions": "284000",
"clicks": "4320",
"reach": "192000",
"conversions": "38",
}
No customer names. No emails. No transaction IDs. Just numbers.
What we never store
These fields are explicitly excluded. Even if the Meta Ads API returns them, Fold ignores and discards them before any storage step.
What Fold never does
These aren't just policies — they're technically impossible given the permissions we request. Meta Ads's own API enforces them.
Privacy note — Meta Ads specific
Fold only reads aggregated campaign-level metrics — the same numbers visible in your Meta Ads Manager. We have no access to the audience data, pixel data, or personal information of anyone who saw or clicked your ads.
Data retention
Synced ad metrics are retained while your Fold account is active. Disconnecting Meta or closing your account purges all Meta-sourced data within 24 hours.
Refresh frequency
Automatic sync every 24 hours. Manual refresh available from Settings.
How to revoke access
You can disconnect Meta Ads from Fold at any time — from either side. Both options immediately stop all data access.
From Fold
Settings → Meta Ads → Disconnect. All synced Meta data is deleted immediately.
From Meta Ads directly
Facebook → Settings & Privacy → Settings → Apps and Websites → Fold Analytics → Remove.
Open Meta Ads settingsSecurity standards
AES-256 encryption at rest
Your OAuth access token is encrypted with AES-256 before being written to our database. It is never stored in plaintext.
TLS 1.3 in transit
All API calls from Fold to Meta Ads use TLS 1.3. Your credentials cannot be intercepted in transit.
Read-only enforcement
Meta Ads's own API enforces the read-only permissions server-side. Even if Fold's code had a bug, the platform would reject any write request.
Row-level security
Your synced data is isolated in our database with row-level security. No other Fold user can query your data.
FAQ
No. We read aggregated performance metrics only (totals, averages). We have no access to audience membership lists, pixel event logs, or any individual user data.
No. We only request read permissions (ads_read, read_insights). Meta's API will reject any write operation from our token.
No. The scopes we request are strictly limited to ad account insights. We have no access to your personal profile, news feed, pages, or Instagram account.
During the connect flow, you select which ad account(s) to share with Fold. You can update this selection from Settings at any time.
Other live integrations
Ready to connect Meta Ads?
7 days full access. Connect Meta Ads and every other live integration. Cancel anytime. Your data deleted on request, immediately.