# Meta (Facebook and Instagram) integration

URL: https://traqio.app/docs/integrations/meta
Last updated: 2026-10-14

Connect your Meta ad accounts to read spend and get ROAS per campaign, ad set and ad, and forward conversions to the Conversions API with deduplication.

Traqio works with Meta (Facebook, Instagram, Audience Network) in two directions. It **reads spend** from your ad accounts through the Marketing API, which makes ROAS per campaign, ad set and ad possible; and it can **send conversions** to Meta through the Conversions API for app events, so Meta's bidding optimises on the installs and purchases Traqio measured.

## Read spend

### Connect your Meta account

In the console, open your product → Integrations → Ad networks → Meta, and choose **Connect my Meta account**. Meta asks you to approve Traqio for `ads_read` — read only.

### Choose the ad accounts

Pick the ad accounts Traqio should read. Only the accounts your Meta login can read are listed. With several apps, say which one each account buys installs for; an account shared by several apps is split campaign by campaign, from the installs each campaign drove.

### Let spend sync

Spend is pulled every day, per campaign, ad set and ad, in each ad account's own currency and timezone — and the last days are pulled again, so the restatements Meta makes to recent spend land. **Sync last 7 days** pulls now.

> **Link your campaign ids** ROAS joins spend and revenue on the network's own ids. Put the Meta campaign id (and the ad set and ad ids, when you have them) on the tracking link the ad uses — see Tracking links.

The connection's state is always visible — expired access, a missing permission, an account not selected, a failing sync — and a spend line that stops being refreshed is drawn dashed in charts, with the date it went stale.

## Send conversions

Forwarding posts each conversion to the Conversions API endpoint of your app's Meta **dataset**, with `action_source: app`. It needs two things from your Meta Business Manager: the dataset id of the app, and a System User token allowed to send to that dataset. Paste both in the console — your app → Integrations → Ad networks → Meta → **Send conversions to Meta**. They belong to that product only: a workspace with several products sets one dataset per product. The token is encrypted before it is stored and never shown again; leave the field empty later to keep it while changing the dataset id. Owners and admins can set it, and each change is written to the account history.

| Forwarded | As |
| --- | --- |
| An attributed install | MobileAppInstall |
| Events in Traqio's vocabulary | Meta's standard names — purchase → fb_mobile_purchase… (full table) |
| Production purchases from RevenueCat | fb_mobile_purchase |
| Any other event name | as sent — a custom event Meta cannot optimise on |

- **Never forwarded:** refunds, sandbox purchases, AdMob ad revenue, test events — and anything about a device whose user said no to sharing ([consent](https://traqio.app/docs/concepts/privacy#consent)).
- **Identifiers are hashed** before they leave Traqio; there is no advertising id to send.
- **Deduplicated:** every event carries a stable `event_id`. If your app also runs the Facebook SDK, pass the same id there — [how](https://traqio.app/docs/concepts/deduplication#meta).

## What to expect

- Meta's Ads Manager will keep reporting its own install numbers. Traqio's are counted once across networks, on evidence; expect them to be lower, and use them for ROAS.
- For iOS campaigns, Meta reads its own SKAdNetwork postbacks; Traqio receives a copy of the winning ones through your app's attribution endpoint ([set it](https://traqio.app/docs/concepts/ios-attribution#endpoint)).

## Frequently asked questions

**What access does Traqio ask for on Meta?**
ads_read only. Traqio can read your ad accounts' spend and cannot create, edit or pause a campaign. You can revoke the access at any time from Meta's Business integrations settings, or with Disconnect in the console.

**Is Traqio a Meta Mobile Measurement Partner?**
Not yet, so Traqio does not appear in the measurement-partner list inside Ads Manager and does not receive Meta's own click and view signal for Meta inventory. It attributes installs from its tracking links and SKAdNetwork postbacks, reads Meta spend through the Marketing API, and sends conversions back through the Conversions API.

**Why does Meta report more installs than Traqio?**
Meta is a self-attributing network: it credits itself with installs by its own rules, windows and modelling, including installs it saw from views. Traqio credits an install only on evidence it can show — its click id in the Play Install Referrer, a SKAdNetwork postback — and once, across every network. The two numbers answer different questions; Traqio shows its own as the reconciled one.
