Practical guide
Meta Ads account access permissions: fix an empty connection
Consent to an application and access to a particular ad account are separate checks. An application can receive a valid grant while the person who signed in has no access to the ad account you expected. Start with the identity and the asset relationship before repeating the login flow.
By Adlane · Updated
Consent and asset access are two different checks
When you sign in and approve an application, Meta records which permissions the application may use on your behalf, such as reading advertising data. That grant says nothing about which ad accounts you can see. Access to an ad account is decided separately, by the roles assigned to your identity in the business that owns the account.
So a connection can be entirely healthy and still show no ads data: the application is allowed to read, but the person it reads as has nothing to read. Repeating the login flow does not change the second fact. Finding the right identity and asset role does.
Confirm the identity and the ad account ID you expect
Write down which Meta identity completed the consent. People often hold a personal profile and one or more business-portfolio roles, and the account you want may sit under a different one. Then write down the ad account ID you expect to read; the numeric ID is less ambiguous than the display name.
Open the account directly in Meta’s business tools under the same identity. If you cannot see it there, no application signed in as that identity will see it either. If you can, note the role you hold on it; a limited role may permit some reads and not others.
Review the advertising permission and the person’s asset role
Use the table to separate the common symptoms. Each has a different fix, and only one of them is “reconnect”.
| Symptom | Likely gap | What to check |
|---|---|---|
| Login succeeds, no ad accounts listed | Identity has no role on any ad account | Business settings: people and their assigned ad accounts |
| Accounts listed, expected one missing | Wrong identity or no role on that account | Ad account ID and the identity’s assignment to it |
| Account visible, reads refused | Advertising-read permission declined or revoked | The application’s granted permissions on the identity |
| Account visible, reads succeed, zero rows | Account genuinely has no campaigns or none in the period | Dates and campaign list in Meta’s own tools |
| Worked before, stopped recently | Access changed or grant expired | Recent role changes with the business administrator; reconnect if needed |
Illustrative example: page access without ad account access
Illustrative example: a fictional marketing manager administers the business’s Facebook page and signs in to connect it. The consent succeeds and the application lists no ad accounts. The campaigns are run from an ad account owned by the agency’s business portfolio, on which the manager has never been assigned a role.
Page access does not establish advertising-report access. The fix is for the agency’s business administrator to assign the manager a role on the ad account, after which a reconnect lets the application see it. No amount of repeating the original login would have helped.
Retry one small read and keep the sanitised error
After any change, retry a small request first: list the ad accounts the identity can see, or read a single day of one campaign. A small request is quick to repeat and produces a clear error if something is still wrong. Keep the provider’s error message with sensitive values removed, since the wording usually distinguishes a denied request from a successful one that found nothing.
Distinguish those two cases deliberately. An empty result over a period with no delivery is correct behaviour. A refusal is a permissions problem. Never include access tokens, application secrets or full callback URLs in a screenshot, support ticket or shared prompt; the sanitised error text is enough.
Reconnect Meta in Adlane and verify one account
In Adlane, connect Meta with the identity that holds a role on the ad account, then select that account from the list. Ask a bounded question such as “List the campaigns in this account that had any spend in the last complete week, using the account’s attribution setting.” If the list is empty, check the dates against Meta’s own tools before assuming a permissions fault; if it is refused, work through the table above.
Adlane reads only what your Meta permissions and asset roles allow, and shows provider errors with credentials removed. Any change you later make is prepared as a proposal you review and approve, and new campaigns start paused. Adlane is independent and not affiliated with Meta.