Meta Marketing/Ads: campaigns, ads, audiences, insights & leads
3 fields
List the ad accounts the token can access (/me/adaccounts).
2 fields
Read an ad account, including spend / funding / limits.
Update ad account settings (name, spend cap, ...).
List users assigned to an ad account (with their tasks/roles).
4 fields
Assign a user to an ad account with a set of tasks.
Remove a user's assignment from an ad account.
Get human-readable targeting summary lines for a targeting spec.
Create a publisher block list under an ad account.
5 fields
Create an ad campaign (ODAX objective).
7 fields
Update a campaign (fields incl. status, budget, name).
1 field
Create an ad set (targeting + budget + optimization).
8 fields
Update an ad set.
Create an ad (links an ad set to a creative; enters review).
6 fields
Update an ad.
Generate a rendered preview for an ad.
Create an ad creative in the account library.
Update a creative (limited mutable fields: name, status, adlabels).
Upload an image to the ad account (by URL). Returns a hash for creatives.
Upload a video to the ad account (by hosted URL).
Read performance insights for any ad object (account/campaign/adset/ad).
9 fields
Kick off an async insights report; returns a report_run_id to poll.
Fetch the results page of a completed async insights report.
Read any Graph object by ID with a field set.
Make an arbitrary Graph/Marketing API request (escape hatch).
Create a custom audience in an ad account.
Update a custom audience.
Add users to a custom audience (pre-hashed data).
Remove users from a custom audience (pre-hashed data).
Create a lookalike audience from an origin audience.
Create a saved audience from a targeting spec.
Update a saved audience.
Share a custom audience with other ad accounts.
Search Meta's targeting taxonomy (interests, geo, categories).
Validate targeting ids/names/specs against an ad account.
Browse the targeting category tree for an ad account.
Get targeting suggestions from a seed targeting list.
Estimate reach for a targeting spec.
Estimate daily outcomes for a targeting spec + optimization goal.
Send server-side conversion events to a pixel/dataset via the Conversions API.
Send offline conversion events to a dataset via the Conversions API.
Create a new ads pixel on an ad account.
Update an existing ads pixel.
Get event statistics for a pixel.
Share a pixel with another ad account.
List businesses the user has access to.
List pages owned by a business.
List ad accounts owned by a business.
List ad accounts a business has client access to.
List system users of a business.
Create a system user under a business.
Install an app to a system user (prerequisite for minting its token).
Generate an access token for a system user (install the app first).
List business users of a business.
List users assigned to a business asset.
Assign a user to a business asset with tasks.
List agencies that have access to a business.
Remove an agency's access to a business.
List client businesses managed by a business.
List businesses owned by a business.
Create a child business owned by a business.
Create a new ad account under a business.
List pending user invitations for a business.
List pending client ad account requests for a business.
List extended credit lines available to a business.
List product catalogs owned by a business.
Create a product catalog under a business.
Update a product catalog.
List products in a catalog.
Create a product in a catalog.
Batch create/update/delete catalog items.
List product sets in a catalog.
Create a product set in a catalog.
List product feeds for a catalog.
Create a product feed on a catalog.
Update a product feed.
List uploads for a product feed.
Trigger an upload for a product feed.
List errors for a product feed upload.
Read setup/quality diagnostics for a product catalog.
Read event stats (matched/unmatched content) for a catalog.
List pixels/datasets linked to a catalog as external event sources.
Link pixels/datasets to a catalog as external event sources.
Create a product audience (dynamic retargeting) from a product set.
Batch upsert/delete localized catalog items (per-locale overrides).
List lead gen forms on a Page.
Create a lead gen form on a Page.
Archive a lead gen form (no hard delete exists).
Subscribe the app to a Page's webhook fields (e.g. leadgen) so the on_leadgen trigger receives events. POST /{page_id}/subscribed_apps requires pages_manage_metadata + the Page's own access token.
List leads for a lead gen form.
List leads generated by a specific ad.
Create a test lead for a lead gen form.
List test leads for a lead gen form.
Create a custom conversion on an ad account.
Update a custom conversion.
Get stats for a custom conversion.
Create an automated ad rule in the account's rules library.
Update an automated ad rule.
Get the execution history of an automated ad rule.
List A/B tests / ad studies under a business.
Create an A/B test / ad study on a business.
Update an A/B test / ad study.
List the cells (test/control groups) of an ad study.
List the objectives of an ad study.
Picks up each Meta lead ad submission within minutes, reads the form to learn what the answers mean, dedupes it in HubSpot, and pings Slack with the campaign that produced it. Lead ads are cheap to fill in and easy to waste, because the lead sits in Ads Manager until somebody remembers to export it. This agent collects each one as it arrives, reads the form so it knows what every answer was actually asking, checks HubSpot so a repeat submitter does not become a second contact, and drops a line in Slack naming the campaign that paid for the lead. Typos get repaired, answers never do. ## What people use it for - **Call while the ad is fresh** - The Slack line lands a minute or two after the tap, with the number and the answers already in it. Lead ads are won on the first call, not on the first export. - **Repeat submitters stay one record** - The same person often fills two forms across two campaigns. The second one is added as a note on the contact that already exists, so the CRM shows one lead with two touches instead of a duplicate. - **Know which campaign paid for it** - The campaign and ad are named in the ping and written onto the note, so cost per qualified lead becomes something you read off the CRM rather than model in a spreadsheet. - **Typos fixed, answers untouched** - An address missing a letter is repaired so the record is usable, while a vague budget or a half typed company name stays exactly as vague as the person left it. ## Before you fork **What access does it need on the Meta side?** A Meta credential with leads access on the page and the ad account, the same permission any CRM integration asks for, plus HubSpot and one Slack channel. Then you write the qualification criteria against the questions your form asks. If you run several forms it reads each one at run time, so launching a new form needs no new setup. **Will it change what my leads wrote?** It repairs typing and nothing beyond that. A missing letter in a mail domain, an odd capital in a name, a number with spaces in it: those get cleaned so the record is usable. An unclear answer stays unclear in the note, including the ones that make a lead look worse, because a sales call built on a tidied answer falls apart in the first minute. **How quickly does a lead reach the team?** The run starts when Meta delivers the lead, so the Slack line usually appears within a minute or two of the person tapping submit, with the phone number and the campaign already attached. That is the entire point. A lead ad answered inside five minutes and one answered at close of business are two completely different businesses.