Managing ads requires a signed-in Appeeky account on the Indie plan or higher and a connected Meta ad account. Ad Library search works with any API key.
How it works
- Everything starts paused. Campaigns, ad sets, ads and drafts are created with
status: PAUSEDunless you passACTIVE, so nothing spends money until you turn it on. - Default ad account. Every endpoint accepts
adAccountId(with or without theact_prefix). Leave it out and Appeeky uses your default ad account, or the first one you selected. - Budgets are in minor units.
dailyBudgetMinor: 5000means 50.00 in your ad account’s currency. The one exception is boosting a post, which takes whole currency units.
Connect Meta Ads
In the dashboard: Settings → Data sources → Ads, then Connect Meta Ads. Sign in with Meta, then pick the ad accounts Appeeky should use.Pick ad accounts
adAccountIds must contain at least one id. preferredDefaultId is optional.
Connection types
Your account is connected either with a direct Meta login or through a partner connection.GET /v1/connect/meta-ads/credentials/status returns provider: "direct" for a direct login. Most features work with both; a few depend on the connection type:
A feature that your connection type doesn’t support returns HTTP
501.
Campaigns, ad sets and ads
List endpoints paginate with
?after=. Create and list endpoints also work under /v1/connect/meta-ads/ad-accounts/:adAccountId/... when you want to name the ad account in the path.
Create a campaign
Create an ad set
name, campaignId and targeting are required. dailyBudgetMinor must be greater than zero unless you also send the first ad’s copy (existingCreativeId, or headline + body + imageUrl/linkUrl). Optional: destinationType, promotedObject, startTime, endTime, bidStrategy, bidAmountMinor, pageId, instagramUserId.
Create an ad
name and adSetId are required. Pass creativeId to reuse a creative, or headline, body, imageUrl, linkUrl and callToAction to create the ad from copy.
One-call campaign
POST /v1/connect/meta-ads/standalone creates a campaign, ad set and ad together. Only name is required.
Update and pause
status, dailyBudgetMinor and lifetimeBudgetMinor. Ads accept status only. status is ACTIVE or PAUSED.
App-install ads
POST /v1/connect/meta-ads/app-install-drafts builds a complete app-install ad in one call: an app promotion campaign, an ad set, an install creative and the ad. The draft is paused by default.
Your app must be registered with Meta and advertisable from the ad account. With a direct login,
GET /v1/connect/meta-ads/advertisable-applications lists the apps you can promote.
Creatives and images
Available with a direct Meta login.
A creative needs
name, linkUrl, message and headline. format is link (default, needs pageId) or app_install (can use instagramUserId instead of a Page). Optional: description, callToActionType (default LEARN_MORE), imageHash or pictureUrl, urlTags.
Audiences, targeting and lead forms
Available with a partner connection.
Audiences.
name and type are required. Types: customer_list, website (needs pixelId), lookalike (sourceAudienceId, country, ratio such as 0.01 for 1%) and meta_engagement (engagementSource of page, instagram or video, plus sourceId and retentionDays). For a customer list, send users as an array of { "email": "...", "phone": "..." }.
Instant forms. Send name, privacyPolicyUrl and optional questions such as [{ "type": "EMAIL" }, { "type": "FULL_NAME" }]. Then create a one-call campaign with goal: "lead_generation" and the form’s id as leadGenFormId.
Boost a post
POST /v1/connect/meta-ads/boost promotes an existing Facebook or Instagram post as an ad.
postId is required. goal defaults to traffic; budget.amount is in whole currency units (40 = 40.00) and budget.type defaults to daily.
Insights
GET /v1/connect/meta-ads/insights returns spend, impressions, reach, clicks, CTR, CPC, CPM, actions and cost per action.
Meta Ad Library
Look up public ads that any advertiser runs on Facebook, Instagram, Messenger, Audience Network and Threads. No Meta connection needed.
Each ad includes the library id, Page name, creative text, snapshot and preview URLs, delivery dates and platforms.
App ad intelligence.
GET /v1/apps/:id/ad-intelligence takes an App Store id or Google Play package (?platform=apple or google) and finds the advertiser’s Page for you. Use ?adCountries= to choose where ads ran. The response adds a summary: total and active ads, Pages, platform counts, first and latest seen dates and sample ad texts. Pass pageIds if you already know the Page.
Launch Tests
To test demand for an app idea, create a paused Meta campaign for a Launch Test (Launch Tests in the dashboard) withPOST /v1/validation-experiments/:id/meta-ad-draft. It builds the campaign, ad set, link creative and ad, and points the ad to the hosted Launch Test page unless you pass landingUrl. pageId and dailyBudgetMinor are required.
MCP tools
Credits
Requests made from the Appeeky dashboard don’t use API credits. Ad spend is billed by Meta to your ad account.
Common errors
Related
- TikTok Ads — campaigns and performance on TikTok
- Apple Search Ads — App Store search campaigns
- Ad signals — send app conversions back to Meta

