Connect Meta with a token (System User)
Import spend and ROI from Facebook/Instagram without waiting for Meta app approval.
Updated on June 3, 2026
RoyLead can automatically import spend, clicks and impressions from your Facebook/Instagram ad accounts to compute ROI and ROAS alongside your leads. On top of the classic "Log in with Facebook" (OAuth), you can connect an account by pasting a token you generate yourself in your Business Manager: it works right away, with no need to wait for Meta app approval.
๐ In short: you need two things from Meta โ a System User token (with the
ads_readpermission) and your ad account ID โ to paste into RoyLead at Advertising โ Connect account โ "Facebook ยท with token". The steps below walk you through getting them.
๐ก Time needed: ~10 minutes. You must be an admin of the Business Manager that owns the ad account.
๐ The token is like a password. RoyLead stores it encrypted and never shows it again after saving. Don't share it in chats, screenshots or email.
Open Business Settings
Go to Meta Business Manager and sign in with an admin account.
โน๏ธ If you manage multiple businesses, check the selector at the top left and pick the right one โ the business that owns the ad account.
Create a system user
A System User is a "technical user" of the business, designed specifically for integrations.
- In the left menu, go to Users โ System users.
- Click Add.
- Give it a recognizable name, e.g.
RoyLead Sync. - Role: Employee โ read access is enough, you don't need Admin. Click Create system user.

Assign the ad account
The token only works on assets you explicitly assign to this user.
- With the system user selected, click Assign assets.
- Under Ad accounts, select the account you want to connect.
- In the permissions, turn on only the "View performance" toggle (under Partial access): it's the read access that
ads_readneeds. Leave "Manage campaigns" and "Full control" off. - Click Assign assets.

โ ๏ธ If you skip this step, connecting the account will fail with a permissions error: the token would be valid but wouldn't "see" any account.
Prepare the app
The token is generated through an app in the business, and the system user needs a role on that app. If you already have an app linked to the system user, skip to Step 5.
Create the app (if you don't have one)
You don't need Meta app review: the app is just the technical "container" for the token, and any business app with the Marketing API works.
- Go to Business Settings โ Accounts โ Apps โ Add โ "Create a new app ID".

- App name: e.g.
RoyLead Sync(the contact email is already yours).

- Use cases: keep "Create and manage ads with the Marketing API" selected (the first option, checked by default).

- Business: link the app to your business portfolio so it belongs to the right business.
- Review the Overview and click Create app. The Marketing API is already included thanks to the chosen use case.

Link the app to the system user
Creating the app isn't enough: the system user needs a role on the app, otherwise the token's "Assign permissions" step stays empty.
- Go to Accounts โ Apps and select your app.
- Click Assign people.

- Select the system user
roylead, turn on the "Develop app" toggle and click Assign.

Generate the token
- On the system user, click Generate new token.
- Select your app from the list (the one you prepared in Step 4).
- Among the permissions, check
ads_read. - Token expiration: you can set it to Never for a permanent connection.
- Click Generate token and copy it right away.




โ ๏ธ If the "Assign permissions" step shows "No permissions available", the app isn't linked to the system user: complete Step 4 and retry.
๐ Meta shows the token only once. If you lose it, no problem: generate another and re-paste it into RoyLead.
Find the ad account ID
- In Business Settings, go to Accounts โ Ad accounts.
- Select the account: the ID is the number shown (e.g.
123456789012345).
RoyLead accepts both the bare number and the act_123456789012345 format.
Paste everything into RoyLead
- Open the Advertising section in RoyLead.
- Click Connect account and choose Facebook ยท with token.
- Paste the token and the account ID, then confirm.

RoyLead immediately validates the token with Meta, fetches the account's name and currency automatically (you don't pick it), and saves the connection.
Verify
- The account appears in the list with a Connected status.
- Automatic sync runs every few hours; you can also trigger it with the Sync button.
- After the first sync, spend and ROI show up in Analytics alongside your leads.
Token and app: how they coexist
The manual token and "Log in with Facebook" (OAuth) are two ways to get the same thing: permission to read the account's data. You can use the token now and switch to OAuth whenever you want, without losing historical data.
โน๏ธ One caveat: the token is tied to the Meta app used to generate it. If that app gets suspended by Meta, both the token and OAuth stop. The token protects you from issues with the login flow, not from an app suspension.
If the token expires or stops working
If you generate a token with an expiration and it lapses, or you revoke it from Business Manager, RoyLead flags the account with an error status.
To fix it: on the account card, โฏ โ Edit credentials, paste the new token and save. No need to redo the whole connection.
Troubleshooting
| What you see | Cause | Fix |
|---|---|---|
Invalid token or account ID | Wrong token or wrong account ID | Recheck Step 5 and Step 6 |
Permissions error (#200) | Missing ads_read or account not assigned | Step 3 and Step 5 |
| "No permissions available" | The app isn't linked to the system user | Step 4: link the app to the system user |
| "Account already connected" | The account is already on the team | It's already there โ no need to reconnect |
| Error status after a few days | Token expired or revoked | Edit credentials and re-paste the token |
| Wrong currency | โ | Currency comes from Meta automatically and can't be changed |
๐ก Generate the token with a Never expiration to avoid interruptions: it's the most convenient choice for continuous sync.
Best practices
- ๐ Use a dedicated system user for RoyLead: revoking its token only blocks this integration.
- ๐ Assign the system user only the ad accounts you actually want to sync.
- ๐จ Treat the token like a password: if you think it leaked, regenerate it in Business Manager and re-paste it.
Ready to put this into practice?
Create your RoyLead account and start in minutes.