Persistent Meta Ads Access

Use a Meta Business Manager system user token for campaign-management scripts. Do not use Graph API Explorer tokens for recurring work; those are temporary user tokens and will keep expiring.

Recommended Setup

  1. Open Meta Business Settings for the business that owns ad account act_237498386928767.
  2. Create or select a Business app that is installed on that business.
  3. Go to Users > System Users.
  4. Create a dedicated system user for automation, for example: George Sites Ads Automation.
  5. Assign assets to that system user:
  6. Generate a token for the system user from the Business app.
  7. Select only the permissions needed:
  8. Store the generated token in a secret, not in the repo:
export META_SYSTEM_USER_TOKEN="EAAB..."

For local compatibility, the scripts also accept META_ACCESS_TOKEN, META_TOKEN, and /tmp/gsuk_george_meta_token, but META_SYSTEM_USER_TOKEN is the preferred long-term name.

Token Separation

Keep these separate:

The CAPI token can keep powering server-side conversion events. It is not the credential to use for Ads Manager automation.

Local Verification

From the repository root:

cd "/Users/georgelane/Dropbox/Projects/Georges-Sites-UK"
export META_SYSTEM_USER_TOKEN="EAAB..."
python3 ad-creative/facebook-june-2026/verify_paused.py
python3 ad-creative/facebook-june-2026/upload_embarrassment_replacements.py --check
python3 ad-creative/facebook-june-2026/upload_unseen_replacements.py --check

These checks should confirm access without activating anything.

Operational Notes

Official References