Connect a client's Meta ad account
A one-time, ~5-minute setup per client. Only ads_read + ads_management are needed — no App Review required for your own/clients' accounts.
Create a Meta app
Go to developers.facebook.com → My Apps → Create App → type “Business”. Name it anything (e.g. your agency name).
Add the Marketing API
In the app, add the use cases “Create & manage ads” and “Measure ad performance” (the Ads and monetization category).
Generate a System User token
Go to business.facebook.com/settings → Users → System Users → add one → Generate New Token. Pick your app and check ads_read + ads_management. System-user tokens don’t expire — the right choice for a dashboard.
Assign the ad account
Under Business Settings → Accounts → Ad accounts, assign the client’s ad account to that system user so the token can see it.
Find the ad account ID
In Ads Manager (adsmanager.facebook.com), the account selector shows act_XXXXXXXXXX. That’s the ad account ID.
Paste both into Market Master
When adding the client, paste the token + ad account ID. We validate them live before saving, and store the token encrypted.
Want auto-publishing too?
To let Market Master publish scheduled reels/images straight to the client's Instagram, the token needs more than the ad scopes. When generating it, also check instagram_basic, instagram_content_publish, pages_show_list and business_management — and the client's Instagram must be a Business account linked to a Facebook Page the token's user manages. Then in the client's workspace open Settings → Connections → Verify publishing: it checks the scopes, finds the linked IG account and lists exactly what's missing if something's off. Without publish scopes everything else still works — scheduled posts just use the manual “mark as posted” flow.
Ad tokens can spend money. Market Master creates every campaign PAUSED; going live is always an explicit, separate action.