@apteva/integrations 0.2.3 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/apps/activecampaign.json +209 -0
- package/src/apps/activecollab.json +417 -0
- package/src/apps/airtable.json +235 -0
- package/src/apps/alpaca-trading.json +1554 -0
- package/src/apps/amadeus.json +225 -0
- package/src/apps/anthropic-api.json +96 -0
- package/src/apps/apify.json +203 -0
- package/src/apps/apollo.json +748 -0
- package/src/apps/apple-podcasts.json +116 -0
- package/src/apps/archive-api.json +104 -0
- package/src/apps/archive.json +151 -0
- package/src/apps/arduino-cloud.json +301 -0
- package/src/apps/arest.json +492 -0
- package/src/apps/asana.json +184 -0
- package/src/apps/ashby.json +176 -0
- package/src/apps/assemblyai.json +163 -0
- package/src/apps/attio.json +243 -0
- package/src/apps/aws-cloudfront.json +132 -0
- package/src/apps/aws-dynamodb.json +295 -0
- package/src/apps/aws-ec2.json +184 -0
- package/src/apps/aws-lambda.json +361 -0
- package/src/apps/aws-route53.json +110 -0
- package/src/apps/aws-s3.json +303 -0
- package/src/apps/aws-ses.json +556 -0
- package/src/apps/aws-sns.json +217 -0
- package/src/apps/aws-sqs.json +234 -0
- package/src/apps/axiom.json +123 -0
- package/src/apps/beehiiv.json +252 -0
- package/src/apps/binance-trading.json +555 -0
- package/src/apps/bitly.json +175 -0
- package/src/apps/bloobirds.json +246 -0
- package/src/apps/bluesky.json +201 -0
- package/src/apps/blynk.json +316 -0
- package/src/apps/booking-com.json +144 -0
- package/src/apps/box.json +289 -0
- package/src/apps/brevo.json +1423 -0
- package/src/apps/browse-ai.json +148 -0
- package/src/apps/bunny-cdn.json +330 -0
- package/src/apps/bunny-stream.json +387 -0
- package/src/apps/cal-com.json +240 -0
- package/src/apps/calendly.json +578 -0
- package/src/apps/calflow-calendar.json +706 -0
- package/src/apps/callrail.json +190 -0
- package/src/apps/canva.json +197 -0
- package/src/apps/cartesia.json +201 -0
- package/src/apps/castbase.json +753 -0
- package/src/apps/chargebee.json +226 -0
- package/src/apps/cleanster.json +359 -0
- package/src/apps/clicksend.json +278 -0
- package/src/apps/clickup.json +266 -0
- package/src/apps/clipkit.json +517 -0
- package/src/apps/close.json +359 -0
- package/src/apps/cloudflare.json +329 -0
- package/src/apps/cloudinary.json +164 -0
- package/src/apps/coda.json +288 -0
- package/src/apps/cohere.json +158 -0
- package/src/apps/coinbase.json +268 -0
- package/src/apps/composio.json +146 -0
- package/src/apps/confluence.json +270 -0
- package/src/apps/consensus.json +879 -0
- package/src/apps/contabo.json +733 -0
- package/src/apps/convertkit.json +211 -0
- package/src/apps/core-image.json +426 -0
- package/src/apps/core-video.json +1246 -0
- package/src/apps/craftcloud.json +298 -0
- package/src/apps/datadog.json +401 -0
- package/src/apps/dataforseo.json +1273 -0
- package/src/apps/deepseek.json +150 -0
- package/src/apps/dialpad.json +229 -0
- package/src/apps/discord.json +239 -0
- package/src/apps/dnsimple.json +405 -0
- package/src/apps/docusign.json +214 -0
- package/src/apps/docx.json +282 -0
- package/src/apps/dropbox.json +185 -0
- package/src/apps/duffel.json +231 -0
- package/src/apps/dux-soup.json +694 -0
- package/src/apps/dynadot.json +250 -0
- package/src/apps/elevenlabs.json +327 -0
- package/src/apps/eventbrite-events.json +598 -0
- package/src/apps/facebook-ads.json +1399 -0
- package/src/apps/facebook-api.json +282 -0
- package/src/apps/fal-ai.json +400 -0
- package/src/apps/fathom.json +86 -0
- package/src/apps/figma.json +162 -0
- package/src/apps/filestack.json +159 -0
- package/src/apps/firebase.json +271 -0
- package/src/apps/firecrawl.json +278 -0
- package/src/apps/folk.json +564 -0
- package/src/apps/forecast-app.json +377 -0
- package/src/apps/freshdesk.json +283 -0
- package/src/apps/gemini.json +528 -0
- package/src/apps/ghost.json +439 -0
- package/src/apps/gigs-marketplace.json +1442 -0
- package/src/apps/github.json +1479 -47
- package/src/apps/gitlab.json +448 -0
- package/src/apps/gmail.json +839 -28
- package/src/apps/gohighlevel.json +596 -0
- package/src/apps/google-ads.json +270 -0
- package/src/apps/google-calendar.json +996 -36
- package/src/apps/google-docs.json +278 -0
- package/src/apps/google-drive.json +360 -0
- package/src/apps/google-maps.json +473 -0
- package/src/apps/google-sheets.json +330 -0
- package/src/apps/gooten.json +411 -0
- package/src/apps/gravity-forms.json +385 -0
- package/src/apps/gusto.json +171 -0
- package/src/apps/hackernews.json +221 -0
- package/src/apps/harmonic.json +86 -0
- package/src/apps/helpscout.json +664 -0
- package/src/apps/hetzner.json +658 -0
- package/src/apps/heygen.json +184 -0
- package/src/apps/heyreach.json +388 -0
- package/src/apps/hospitable.json +340 -0
- package/src/apps/hostinger.json +374 -0
- package/src/apps/hubspot.json +682 -0
- package/src/apps/huggingface.json +97 -0
- package/src/apps/hunter.json +504 -0
- package/src/apps/ig-trading.json +849 -0
- package/src/apps/imaterialise.json +349 -0
- package/src/apps/instagram-api.json +538 -0
- package/src/apps/intercom.json +648 -0
- package/src/apps/jira.json +226 -0
- package/src/apps/klaviyo.json +199 -0
- package/src/apps/kling-ai.json +206 -0
- package/src/apps/kraken.json +870 -0
- package/src/apps/late.json +1056 -0
- package/src/apps/leadpages.json +243 -0
- package/src/apps/learning-platform.json +2244 -0
- package/src/apps/linear.json +184 -57
- package/src/apps/linkedin.json +179 -0
- package/src/apps/listen-notes.json +136 -0
- package/src/apps/lnk-bio.json +125 -0
- package/src/apps/loom.json +188 -0
- package/src/apps/luma.json +280 -0
- package/src/apps/mailchimp.json +238 -0
- package/src/apps/mailgun.json +310 -0
- package/src/apps/manychat.json +312 -0
- package/src/apps/marin-software.json +843 -0
- package/src/apps/media-downloader.json +157 -0
- package/src/apps/meetup-events.json +361 -0
- package/src/apps/meshy.json +248 -0
- package/src/apps/microsoft-teams.json +162 -0
- package/src/apps/monday.json +213 -0
- package/src/apps/mongodb-atlas.json +467 -0
- package/src/apps/namecheap.json +252 -0
- package/src/apps/nexar.json +289 -0
- package/src/apps/notion.json +530 -50
- package/src/apps/omnikit-analytics.json +374 -0
- package/src/apps/omnikit-api-gateway.json +660 -0
- package/src/apps/omnikit-billing.json +1781 -0
- package/src/apps/omnikit-cms.json +899 -0
- package/src/apps/omnikit-functions.json +329 -0
- package/src/apps/omnikit-intelligence.json +650 -0
- package/src/apps/omnikit-management.json +214 -0
- package/src/apps/omnikit-media.json +646 -0
- package/src/apps/omnikit-messaging.json +1826 -0
- package/src/apps/omnikit-redirects.json +209 -0
- package/src/apps/omnikit-webhooks.json +269 -0
- package/src/apps/omnikit-workflows.json +323 -0
- package/src/apps/openai-api.json +462 -0
- package/src/apps/openmeteo-weather.json +75 -0
- package/src/apps/optinmonster.json +244 -0
- package/src/apps/paidkit.json +1218 -0
- package/src/apps/paypal.json +254 -0
- package/src/apps/pdf.json +366 -0
- package/src/apps/pipedrive.json +255 -0
- package/src/apps/polymarket.json +653 -0
- package/src/apps/porkbun.json +417 -0
- package/src/apps/portfolio.json +501 -0
- package/src/apps/postmark.json +257 -0
- package/src/apps/printful.json +273 -0
- package/src/apps/printify.json +295 -0
- package/src/apps/producthunt.json +346 -0
- package/src/apps/pushover-notifications.json +113 -0
- package/src/apps/qonto.json +366 -0
- package/src/apps/quickbooks.json +234 -0
- package/src/apps/replicate.json +106 -0
- package/src/apps/rss.json +281 -0
- package/src/apps/salesflow.json +538 -0
- package/src/apps/salesforce-crm.json +216 -0
- package/src/apps/sap.json +256 -0
- package/src/apps/scaleway.json +911 -0
- package/src/apps/sculpteo.json +234 -0
- package/src/apps/sendgrid-email.json +233 -0
- package/src/apps/sendgrid.json +160 -35
- package/src/apps/shapeways.json +188 -0
- package/src/apps/shopify.json +1217 -0
- package/src/apps/skai.json +779 -0
- package/src/apps/slack.json +228 -38
- package/src/apps/slant3d.json +231 -0
- package/src/apps/slides.json +760 -0
- package/src/apps/smartly.json +504 -0
- package/src/apps/snov.json +467 -0
- package/src/apps/socialcast.json +553 -63
- package/src/apps/square.json +274 -0
- package/src/apps/storage-management.json +788 -0
- package/src/apps/storylane.json +180 -0
- package/src/apps/strapi.json +338 -0
- package/src/apps/stripe-payments.json +847 -0
- package/src/apps/stripe.json +472 -35
- package/src/apps/supabase.json +169 -0
- package/src/apps/supademo.json +115 -0
- package/src/apps/taskflow.json +714 -0
- package/src/apps/teamwork.json +457 -0
- package/src/apps/telegram.json +444 -0
- package/src/apps/thinger.json +458 -0
- package/src/apps/ticktick.json +169 -0
- package/src/apps/tiktok-api.json +406 -0
- package/src/apps/todoist.json +151 -0
- package/src/apps/together.json +123 -0
- package/src/apps/torrent.json +267 -0
- package/src/apps/trading.json +1012 -0
- package/src/apps/trading212.json +383 -0
- package/src/apps/trello.json +205 -0
- package/src/apps/tripo.json +157 -0
- package/src/apps/twilio.json +1008 -0
- package/src/apps/twitter-ads.json +875 -0
- package/src/apps/twitter-api.json +1151 -0
- package/src/apps/twitterapiio.json +548 -0
- package/src/apps/typeform.json +210 -0
- package/src/apps/vidforge.json +1020 -0
- package/src/apps/vonage.json +394 -0
- package/src/apps/vultr.json +225 -0
- package/src/apps/webflow.json +223 -0
- package/src/apps/wise.json +273 -0
- package/src/apps/wistia.json +283 -0
- package/src/apps/woocommerce.json +288 -0
- package/src/apps/wordpress.json +1675 -0
- package/src/apps/xero.json +257 -0
- package/src/apps/youtube-api.json +861 -0
- package/src/apps/zendesk.json +295 -0
- package/src/apps/zite.json +173 -0
- package/src/apps/zoho-crm.json +386 -0
- package/src/apps/zoo.json +193 -0
- package/src/apps/zoom.json +334 -0
|
@@ -0,0 +1,1399 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "facebook-ads",
|
|
3
|
+
"name": "Facebook Ads",
|
|
4
|
+
"description": "Facebook Ads Manager — campaign management, ad creation, audience targeting, creatives, lead forms, pixel tracking, and performance analytics via Meta Graph API",
|
|
5
|
+
"logo": "https://www.google.com/s2/favicons?domain=www.facebook.com&sz=128",
|
|
6
|
+
"categories": [
|
|
7
|
+
"facebook-ads",
|
|
8
|
+
"advertising",
|
|
9
|
+
"campaigns",
|
|
10
|
+
"marketing",
|
|
11
|
+
"meta-ads"
|
|
12
|
+
],
|
|
13
|
+
"base_url": "",
|
|
14
|
+
"auth": {
|
|
15
|
+
"types": [
|
|
16
|
+
"bearer"
|
|
17
|
+
],
|
|
18
|
+
"headers": {
|
|
19
|
+
"Authorization": "Bearer {{token}}"
|
|
20
|
+
},
|
|
21
|
+
"credential_fields": [
|
|
22
|
+
{
|
|
23
|
+
"name": "token",
|
|
24
|
+
"label": "API Key"
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
},
|
|
28
|
+
"tools": [
|
|
29
|
+
{
|
|
30
|
+
"name": "account_list",
|
|
31
|
+
"description": "List Facebook ad accounts. By default lists the current user's ad accounts (userId='me'). Pass a business ID as userId and set endpoint='owned_ad_accounts' to list business accounts.",
|
|
32
|
+
"method": "GET",
|
|
33
|
+
"path": "/account-list",
|
|
34
|
+
"input_schema": {
|
|
35
|
+
"type": "object",
|
|
36
|
+
"properties": {
|
|
37
|
+
"userId": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"default": "me",
|
|
40
|
+
"description": "User ID or Business ID. Defaults to 'me' (current user)."
|
|
41
|
+
},
|
|
42
|
+
"endpoint": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"default": "adaccounts",
|
|
45
|
+
"description": "Endpoint: 'adaccounts' for user accounts, 'owned_ad_accounts' for business accounts"
|
|
46
|
+
},
|
|
47
|
+
"fields": {
|
|
48
|
+
"type": "string",
|
|
49
|
+
"default": "id,name,account_id,account_status,currency,timezone_name,business,default_dsa_beneficiary,default_dsa_payor",
|
|
50
|
+
"description": "Comma-separated fields to return. Includes default_dsa_beneficiary and default_dsa_payor (EU/DSA compliance defaults for the account)."
|
|
51
|
+
},
|
|
52
|
+
"limit": {
|
|
53
|
+
"type": "integer",
|
|
54
|
+
"default": 25,
|
|
55
|
+
"description": "Max results (max 100)"
|
|
56
|
+
},
|
|
57
|
+
"after": {
|
|
58
|
+
"type": "string",
|
|
59
|
+
"description": "Pagination cursor"
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"name": "campaign_create",
|
|
66
|
+
"description": "Create a Facebook campaign. special_ad_categories is REQUIRED (pass empty array [] if none). OBJECTIVES: OUTCOME_SALES (website purchases/conversions), OUTCOME_LEADS (lead generation forms), OUTCOME_TRAFFIC (website visits), OUTCOME_ENGAGEMENT (page likes, post engagement, event responses — use this for PAGE LIKES campaigns), OUTCOME_AWARENESS (reach/brand awareness), OUTCOME_APP_PROMOTION (app installs). PAGE LIKES CAMPAIGN: Use objective=OUTCOME_ENGAGEMENT, then on the ad set use optimization_goal=PAGE_LIKES with promoted_object={\"page_id\":\"YOUR_PAGE_ID\"}. BUDGET: Setting daily_budget or lifetime_budget here enables Campaign Budget Optimization (CBO) — the campaign controls budget for ALL ad sets. If using CBO, ad sets must NOT set their own budget. bid_strategy options: LOWEST_COST_WITHOUT_CAP (recommended default, auto-bidding), COST_CAP (target cost per result), BID_CAP (max bid cap — ad sets MUST then set bid_amount). Examples: Page likes: {\"name\":\"Page Likes\",\"objective\":\"OUTCOME_ENGAGEMENT\",\"special_ad_categories\":[],\"daily_budget\":\"1000\",\"status\":\"PAUSED\"}. Sales with CBO: {\"name\":\"Sales\",\"objective\":\"OUTCOME_SALES\",\"special_ad_categories\":[],\"daily_budget\":\"1000\",\"bid_strategy\":\"LOWEST_COST_WITHOUT_CAP\",\"status\":\"PAUSED\"}. Traffic without CBO: {\"name\":\"Traffic\",\"objective\":\"OUTCOME_TRAFFIC\",\"special_ad_categories\":[],\"status\":\"PAUSED\"}",
|
|
67
|
+
"method": "POST",
|
|
68
|
+
"path": "/campaign-create",
|
|
69
|
+
"input_schema": {
|
|
70
|
+
"type": "object",
|
|
71
|
+
"properties": {
|
|
72
|
+
"adAccountId": {
|
|
73
|
+
"type": "string",
|
|
74
|
+
"description": "Ad Account ID (format: act_123456789)"
|
|
75
|
+
},
|
|
76
|
+
"name": {
|
|
77
|
+
"type": "string",
|
|
78
|
+
"description": "Campaign name"
|
|
79
|
+
},
|
|
80
|
+
"objective": {
|
|
81
|
+
"type": "string",
|
|
82
|
+
"description": "Campaign objective. Use OUTCOME_* objectives.",
|
|
83
|
+
"enum": [
|
|
84
|
+
"OUTCOME_SALES",
|
|
85
|
+
"OUTCOME_LEADS",
|
|
86
|
+
"OUTCOME_TRAFFIC",
|
|
87
|
+
"OUTCOME_ENGAGEMENT",
|
|
88
|
+
"OUTCOME_AWARENESS",
|
|
89
|
+
"OUTCOME_APP_PROMOTION"
|
|
90
|
+
]
|
|
91
|
+
},
|
|
92
|
+
"status": {
|
|
93
|
+
"type": "string",
|
|
94
|
+
"enum": [
|
|
95
|
+
"ACTIVE",
|
|
96
|
+
"PAUSED"
|
|
97
|
+
],
|
|
98
|
+
"default": "PAUSED",
|
|
99
|
+
"description": "Campaign status"
|
|
100
|
+
},
|
|
101
|
+
"special_ad_categories": {
|
|
102
|
+
"type": "array",
|
|
103
|
+
"items": {
|
|
104
|
+
"type": "string",
|
|
105
|
+
"enum": [
|
|
106
|
+
"CREDIT",
|
|
107
|
+
"EMPLOYMENT",
|
|
108
|
+
"HOUSING"
|
|
109
|
+
]
|
|
110
|
+
},
|
|
111
|
+
"default": [],
|
|
112
|
+
"description": "Special ad categories (pass empty array [] if none)"
|
|
113
|
+
},
|
|
114
|
+
"daily_budget": {
|
|
115
|
+
"type": "string",
|
|
116
|
+
"description": "Daily budget in cents as string (e.g., '1000' = $10.00)"
|
|
117
|
+
},
|
|
118
|
+
"lifetime_budget": {
|
|
119
|
+
"type": "string",
|
|
120
|
+
"description": "Lifetime budget in cents (requires start_time and end_time)"
|
|
121
|
+
},
|
|
122
|
+
"bid_strategy": {
|
|
123
|
+
"type": "string",
|
|
124
|
+
"enum": [
|
|
125
|
+
"LOWEST_COST_WITHOUT_CAP",
|
|
126
|
+
"COST_CAP",
|
|
127
|
+
"BID_CAP"
|
|
128
|
+
],
|
|
129
|
+
"description": "Bid strategy. LOWEST_COST_WITHOUT_CAP=auto-bid (recommended for most cases). BID_CAP=manual bid cap (ad sets MUST set bid_amount). COST_CAP=target cost per result. NOTE: when reading campaigns, API returns 'LOWEST_COST_WITH_BID_CAP' for BID_CAP."
|
|
130
|
+
},
|
|
131
|
+
"start_time": {
|
|
132
|
+
"type": "string",
|
|
133
|
+
"description": "Start time (ISO format, required for lifetime budget)"
|
|
134
|
+
},
|
|
135
|
+
"end_time": {
|
|
136
|
+
"type": "string",
|
|
137
|
+
"description": "End time (ISO format, required for lifetime budget)"
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
"required": [
|
|
141
|
+
"adAccountId",
|
|
142
|
+
"name",
|
|
143
|
+
"objective",
|
|
144
|
+
"special_ad_categories"
|
|
145
|
+
]
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"name": "campaign_list",
|
|
150
|
+
"description": "List all campaigns in an ad account.",
|
|
151
|
+
"method": "GET",
|
|
152
|
+
"path": "/campaign-list",
|
|
153
|
+
"input_schema": {
|
|
154
|
+
"type": "object",
|
|
155
|
+
"properties": {
|
|
156
|
+
"adAccountId": {
|
|
157
|
+
"type": "string",
|
|
158
|
+
"description": "Ad Account ID (format: act_123456789)"
|
|
159
|
+
},
|
|
160
|
+
"fields": {
|
|
161
|
+
"type": "string",
|
|
162
|
+
"default": "id,name,objective,status,bid_strategy,daily_budget,lifetime_budget,budget_remaining,special_ad_categories,start_time,stop_time,created_time,updated_time",
|
|
163
|
+
"description": "Comma-separated fields"
|
|
164
|
+
},
|
|
165
|
+
"limit": {
|
|
166
|
+
"type": "integer",
|
|
167
|
+
"default": 25,
|
|
168
|
+
"description": "Max results (max 100)"
|
|
169
|
+
},
|
|
170
|
+
"after": {
|
|
171
|
+
"type": "string",
|
|
172
|
+
"description": "Pagination cursor"
|
|
173
|
+
},
|
|
174
|
+
"filtering": {
|
|
175
|
+
"type": "string",
|
|
176
|
+
"description": "JSON stringified filter array, e.g. [{\"field\":\"effective_status\",\"operator\":\"IN\",\"value\":[\"ACTIVE\"]}]"
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
"required": [
|
|
180
|
+
"adAccountId"
|
|
181
|
+
]
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"name": "campaign_update",
|
|
186
|
+
"description": "Update campaign settings. Returns {success:true}. WARNING: Changing bid_strategy affects all ad sets — if switching to BID_CAP, all ad sets must have bid_amount set. If switching to LOWEST_COST_WITHOUT_CAP, ad sets should NOT have bid_amount. To activate, ALL components must be valid: campaign + ad set + ad + creative. NOTE: The API returns bid_strategy as LOWEST_COST_WITH_BID_CAP when reading, but for writing use BID_CAP.",
|
|
187
|
+
"method": "POST",
|
|
188
|
+
"path": "/campaign-update",
|
|
189
|
+
"input_schema": {
|
|
190
|
+
"type": "object",
|
|
191
|
+
"properties": {
|
|
192
|
+
"campaignId": {
|
|
193
|
+
"type": "string",
|
|
194
|
+
"description": "Campaign ID to update"
|
|
195
|
+
},
|
|
196
|
+
"name": {
|
|
197
|
+
"type": "string",
|
|
198
|
+
"description": "New campaign name"
|
|
199
|
+
},
|
|
200
|
+
"status": {
|
|
201
|
+
"type": "string",
|
|
202
|
+
"enum": [
|
|
203
|
+
"ACTIVE",
|
|
204
|
+
"PAUSED"
|
|
205
|
+
],
|
|
206
|
+
"description": "Campaign status"
|
|
207
|
+
},
|
|
208
|
+
"daily_budget": {
|
|
209
|
+
"type": "string",
|
|
210
|
+
"description": "Daily budget in cents"
|
|
211
|
+
},
|
|
212
|
+
"lifetime_budget": {
|
|
213
|
+
"type": "string",
|
|
214
|
+
"description": "Lifetime budget in cents"
|
|
215
|
+
},
|
|
216
|
+
"spend_cap": {
|
|
217
|
+
"type": "string",
|
|
218
|
+
"description": "Spend cap in cents"
|
|
219
|
+
},
|
|
220
|
+
"bid_strategy": {
|
|
221
|
+
"type": "string",
|
|
222
|
+
"enum": [
|
|
223
|
+
"LOWEST_COST_WITHOUT_CAP",
|
|
224
|
+
"COST_CAP",
|
|
225
|
+
"BID_CAP"
|
|
226
|
+
],
|
|
227
|
+
"description": "Bid strategy"
|
|
228
|
+
},
|
|
229
|
+
"start_time": {
|
|
230
|
+
"type": "string",
|
|
231
|
+
"description": "Start time (ISO)"
|
|
232
|
+
},
|
|
233
|
+
"stop_time": {
|
|
234
|
+
"type": "string",
|
|
235
|
+
"description": "Stop time (ISO)"
|
|
236
|
+
}
|
|
237
|
+
},
|
|
238
|
+
"required": [
|
|
239
|
+
"campaignId"
|
|
240
|
+
]
|
|
241
|
+
}
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
"name": "campaign_delete",
|
|
245
|
+
"description": "Delete a Facebook advertising campaign.",
|
|
246
|
+
"method": "DELETE",
|
|
247
|
+
"path": "/campaign-delete",
|
|
248
|
+
"input_schema": {
|
|
249
|
+
"type": "object",
|
|
250
|
+
"properties": {
|
|
251
|
+
"campaignId": {
|
|
252
|
+
"type": "string",
|
|
253
|
+
"description": "Campaign ID to delete"
|
|
254
|
+
}
|
|
255
|
+
},
|
|
256
|
+
"required": [
|
|
257
|
+
"campaignId"
|
|
258
|
+
]
|
|
259
|
+
}
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
"name": "adset_create",
|
|
263
|
+
"description": "Create a Facebook ad set. PREREQUISITE: ALWAYS call facebook-ads-campaign-list first to check the parent campaign's objective, bid_strategy, and daily_budget/lifetime_budget. OBJECTIVE → AD SET CONFIGURATION (use these exact combinations): (1) OUTCOME_SALES → optimization_goal=OFFSITE_CONVERSIONS, promoted_object={\"pixel_id\":\"YOUR_PIXEL_ID\",\"custom_event_type\":\"PURCHASE\"}, destination_type=WEBSITE. (2) OUTCOME_LEADS → optimization_goal=LEAD_GENERATION, promoted_object={\"page_id\":\"YOUR_PAGE_ID\"}, destination_type=WEBSITE. (3) OUTCOME_TRAFFIC → optimization_goal=LINK_CLICKS, no promoted_object needed, destination_type=WEBSITE. (4) OUTCOME_ENGAGEMENT + PAGE LIKES → optimization_goal=PAGE_LIKES, promoted_object={\"page_id\":\"YOUR_PAGE_ID\"}, billing_event=IMPRESSIONS, destination_type=ON_PAGE. (5) OUTCOME_ENGAGEMENT + POST ENGAGEMENT → optimization_goal=POST_ENGAGEMENT, promoted_object={\"page_id\":\"YOUR_PAGE_ID\"}, billing_event=IMPRESSIONS. (6) OUTCOME_AWARENESS → optimization_goal=REACH, billing_event=IMPRESSIONS. BUDGET RULES: (1) If campaign has daily_budget or lifetime_budget (CBO mode) → do NOT set daily_budget or lifetime_budget on adset. (2) If campaign bid_strategy is LOWEST_COST_WITH_BID_CAP or BID_CAP → you MUST set bid_amount in cents. (3) If campaign bid_strategy is LOWEST_COST_WITHOUT_CAP → do NOT set bid_amount or bid_strategy. (4) If campaign has NO budget (no CBO) → you MUST set daily_budget or lifetime_budget AND bid_strategy. EU/DSA COMPLIANCE: If targeting EU, Taiwan, Singapore, or Australia, you MUST set dsa_beneficiary and dsa_payor — ads will be rejected without these. targeting format: {\"geo_locations\":{\"countries\":[\"US\"]},\"targeting_automation\":{\"advantage_audience\":0}}.",
|
|
264
|
+
"method": "POST",
|
|
265
|
+
"path": "/adset-create",
|
|
266
|
+
"input_schema": {
|
|
267
|
+
"type": "object",
|
|
268
|
+
"properties": {
|
|
269
|
+
"adAccountId": {
|
|
270
|
+
"type": "string",
|
|
271
|
+
"description": "Ad Account ID (format: act_123456789)"
|
|
272
|
+
},
|
|
273
|
+
"campaign_id": {
|
|
274
|
+
"type": "string",
|
|
275
|
+
"description": "Campaign ID this ad set belongs to"
|
|
276
|
+
},
|
|
277
|
+
"name": {
|
|
278
|
+
"type": "string",
|
|
279
|
+
"description": "Ad set name"
|
|
280
|
+
},
|
|
281
|
+
"daily_budget": {
|
|
282
|
+
"type": "string",
|
|
283
|
+
"description": "Daily budget in CENTS as a string. '1000' = $10.00, '5000' = $50.00. ONLY set this if the parent campaign does NOT use Campaign Budget Optimization (CBO). If the campaign already has a daily_budget or lifetime_budget, do NOT set this — the campaign controls the budget. Use lifetime_budget instead if you need a fixed total spend with start/end dates."
|
|
284
|
+
},
|
|
285
|
+
"optimization_goal": {
|
|
286
|
+
"type": "string",
|
|
287
|
+
"default": "LINK_CLICKS",
|
|
288
|
+
"enum": [
|
|
289
|
+
"OFFSITE_CONVERSIONS",
|
|
290
|
+
"LINK_CLICKS",
|
|
291
|
+
"LANDING_PAGE_VIEWS",
|
|
292
|
+
"LEAD_GENERATION",
|
|
293
|
+
"REACH",
|
|
294
|
+
"IMPRESSIONS",
|
|
295
|
+
"THRUPLAY",
|
|
296
|
+
"APP_INSTALLS",
|
|
297
|
+
"PAGE_LIKES",
|
|
298
|
+
"POST_ENGAGEMENT",
|
|
299
|
+
"VALUE"
|
|
300
|
+
],
|
|
301
|
+
"description": "What to optimize for. Must match campaign objective: OUTCOME_SALES→OFFSITE_CONVERSIONS, OUTCOME_LEADS→LEAD_GENERATION, OUTCOME_TRAFFIC→LINK_CLICKS, OUTCOME_ENGAGEMENT→PAGE_LIKES or POST_ENGAGEMENT (both require promoted_object with page_id), OUTCOME_AWARENESS→REACH."
|
|
302
|
+
},
|
|
303
|
+
"billing_event": {
|
|
304
|
+
"type": "string",
|
|
305
|
+
"default": "IMPRESSIONS",
|
|
306
|
+
"enum": [
|
|
307
|
+
"IMPRESSIONS",
|
|
308
|
+
"LINK_CLICKS",
|
|
309
|
+
"THRUPLAY"
|
|
310
|
+
],
|
|
311
|
+
"description": "How you are charged. Almost always use IMPRESSIONS."
|
|
312
|
+
},
|
|
313
|
+
"targeting": {
|
|
314
|
+
"type": "object",
|
|
315
|
+
"description": "REQUIRED. Targeting specification object. MUST include targeting_automation.advantage_audience (0=manual targeting, 1=Advantage+ auto-expand). With advantage_audience:1, age_max cannot be below 65. Minimum: {\"geo_locations\":{\"countries\":[\"US\"]},\"targeting_automation\":{\"advantage_audience\":0}}. Full example: {\"geo_locations\":{\"countries\":[\"US\",\"CA\"]},\"age_min\":25,\"age_max\":55,\"targeting_automation\":{\"advantage_audience\":0},\"publisher_platforms\":[\"facebook\",\"instagram\"],\"facebook_positions\":[\"feed\"],\"instagram_positions\":[\"stream\",\"story\"]}. Genders: 1=male, 2=female. For interests use flexible_spec: [{\"interests\":[{\"id\":\"6003139266461\",\"name\":\"Fitness\"}]}]"
|
|
316
|
+
},
|
|
317
|
+
"promoted_object": {
|
|
318
|
+
"type": "object",
|
|
319
|
+
"description": "REQUIRED for OFFSITE_CONVERSIONS, LEAD_GENERATION, PAGE_LIKES, and POST_ENGAGEMENT goals. For sales (OFFSITE_CONVERSIONS): {\"pixel_id\":\"YOUR_PIXEL_ID\",\"custom_event_type\":\"PURCHASE\"}. For leads (LEAD_GENERATION): {\"page_id\":\"YOUR_PAGE_ID\"}. For page likes (PAGE_LIKES): {\"page_id\":\"YOUR_PAGE_ID\"}. For post engagement (POST_ENGAGEMENT): {\"page_id\":\"YOUR_PAGE_ID\"}."
|
|
320
|
+
},
|
|
321
|
+
"status": {
|
|
322
|
+
"type": "string",
|
|
323
|
+
"enum": [
|
|
324
|
+
"ACTIVE",
|
|
325
|
+
"PAUSED"
|
|
326
|
+
],
|
|
327
|
+
"default": "PAUSED",
|
|
328
|
+
"description": "Ad set status. Use PAUSED to review before activating."
|
|
329
|
+
},
|
|
330
|
+
"bid_strategy": {
|
|
331
|
+
"type": "string",
|
|
332
|
+
"enum": [
|
|
333
|
+
"LOWEST_COST_WITHOUT_CAP",
|
|
334
|
+
"LOWEST_COST_WITH_BID_CAP",
|
|
335
|
+
"COST_CAP"
|
|
336
|
+
],
|
|
337
|
+
"description": "Bid strategy. Required when campaign does NOT use campaign budget optimization (CBO)."
|
|
338
|
+
},
|
|
339
|
+
"bid_amount": {
|
|
340
|
+
"type": "string",
|
|
341
|
+
"description": "Bid cap in cents (required for LOWEST_COST_WITH_BID_CAP)"
|
|
342
|
+
},
|
|
343
|
+
"lifetime_budget": {
|
|
344
|
+
"type": "string",
|
|
345
|
+
"description": "Lifetime budget in cents. Use instead of daily_budget. Requires start_time and end_time."
|
|
346
|
+
},
|
|
347
|
+
"start_time": {
|
|
348
|
+
"type": "string",
|
|
349
|
+
"description": "ISO 8601 start time (required for lifetime_budget)"
|
|
350
|
+
},
|
|
351
|
+
"end_time": {
|
|
352
|
+
"type": "string",
|
|
353
|
+
"description": "ISO 8601 end time (required for lifetime_budget)"
|
|
354
|
+
},
|
|
355
|
+
"attribution_spec": {
|
|
356
|
+
"type": "array",
|
|
357
|
+
"description": "Attribution windows. Example: [{\"event_type\":\"CLICK_THROUGH\",\"window_days\":7},{\"event_type\":\"VIEW_THROUGH\",\"window_days\":1}]"
|
|
358
|
+
},
|
|
359
|
+
"destination_type": {
|
|
360
|
+
"type": "string",
|
|
361
|
+
"enum": [
|
|
362
|
+
"WEBSITE",
|
|
363
|
+
"APP",
|
|
364
|
+
"MESSENGER",
|
|
365
|
+
"WHATSAPP",
|
|
366
|
+
"INSTAGRAM_DIRECT",
|
|
367
|
+
"PHONE_CALL",
|
|
368
|
+
"ON_PAGE"
|
|
369
|
+
],
|
|
370
|
+
"description": "Where people go when they click. WEBSITE for sales/leads/traffic. ON_PAGE for PAGE_LIKES campaigns (REQUIRED). Do NOT set for POST_ENGAGEMENT or AWARENESS."
|
|
371
|
+
},
|
|
372
|
+
"dsa_beneficiary": {
|
|
373
|
+
"type": "string",
|
|
374
|
+
"description": "REQUIRED for EU/Taiwan/Singapore/Australia targeting. The name of the entity that benefits from the ad (e.g. your business name or client name). Without this, ads targeting regulated regions will be rejected."
|
|
375
|
+
},
|
|
376
|
+
"dsa_payor": {
|
|
377
|
+
"type": "string",
|
|
378
|
+
"description": "REQUIRED for EU/Taiwan/Singapore/Australia targeting. The name of the entity paying for the ad. Often the same as dsa_beneficiary for direct advertisers, or the agency name if running ads on behalf of a client."
|
|
379
|
+
}
|
|
380
|
+
},
|
|
381
|
+
"required": [
|
|
382
|
+
"adAccountId",
|
|
383
|
+
"campaign_id",
|
|
384
|
+
"name",
|
|
385
|
+
"optimization_goal",
|
|
386
|
+
"billing_event",
|
|
387
|
+
"targeting"
|
|
388
|
+
]
|
|
389
|
+
}
|
|
390
|
+
},
|
|
391
|
+
{
|
|
392
|
+
"name": "adset_list",
|
|
393
|
+
"description": "List ad sets. Pass an ad account ID or campaign ID as objectId.",
|
|
394
|
+
"method": "GET",
|
|
395
|
+
"path": "/adset-list",
|
|
396
|
+
"input_schema": {
|
|
397
|
+
"type": "object",
|
|
398
|
+
"properties": {
|
|
399
|
+
"objectId": {
|
|
400
|
+
"type": "string",
|
|
401
|
+
"description": "Ad Account ID (act_xxx) or Campaign ID to list ad sets for"
|
|
402
|
+
},
|
|
403
|
+
"fields": {
|
|
404
|
+
"type": "string",
|
|
405
|
+
"default": "id,name,campaign_id,status,daily_budget,lifetime_budget,bid_strategy,bid_amount,optimization_goal,billing_event,targeting,promoted_object,start_time,end_time,budget_remaining,created_time,dsa_beneficiary,dsa_payor",
|
|
406
|
+
"description": "Comma-separated fields"
|
|
407
|
+
},
|
|
408
|
+
"limit": {
|
|
409
|
+
"type": "integer",
|
|
410
|
+
"default": 25,
|
|
411
|
+
"description": "Max results"
|
|
412
|
+
},
|
|
413
|
+
"after": {
|
|
414
|
+
"type": "string",
|
|
415
|
+
"description": "Pagination cursor"
|
|
416
|
+
},
|
|
417
|
+
"filtering": {
|
|
418
|
+
"type": "string",
|
|
419
|
+
"description": "JSON stringified filter array"
|
|
420
|
+
}
|
|
421
|
+
},
|
|
422
|
+
"required": [
|
|
423
|
+
"objectId"
|
|
424
|
+
]
|
|
425
|
+
}
|
|
426
|
+
},
|
|
427
|
+
{
|
|
428
|
+
"name": "adset_update",
|
|
429
|
+
"description": "Update ad set settings. Returns {success:true}. To activate, parent campaign must be ACTIVE and ad set must have valid ads.",
|
|
430
|
+
"method": "POST",
|
|
431
|
+
"path": "/adset-update",
|
|
432
|
+
"input_schema": {
|
|
433
|
+
"type": "object",
|
|
434
|
+
"properties": {
|
|
435
|
+
"adSetId": {
|
|
436
|
+
"type": "string",
|
|
437
|
+
"description": "Ad Set ID to update"
|
|
438
|
+
},
|
|
439
|
+
"name": {
|
|
440
|
+
"type": "string",
|
|
441
|
+
"description": "New name"
|
|
442
|
+
},
|
|
443
|
+
"status": {
|
|
444
|
+
"type": "string",
|
|
445
|
+
"enum": [
|
|
446
|
+
"ACTIVE",
|
|
447
|
+
"PAUSED"
|
|
448
|
+
],
|
|
449
|
+
"description": "Status"
|
|
450
|
+
},
|
|
451
|
+
"targeting": {
|
|
452
|
+
"type": "object",
|
|
453
|
+
"description": "Updated targeting spec"
|
|
454
|
+
},
|
|
455
|
+
"daily_budget": {
|
|
456
|
+
"type": "string",
|
|
457
|
+
"description": "Daily budget in cents"
|
|
458
|
+
},
|
|
459
|
+
"lifetime_budget": {
|
|
460
|
+
"type": "string",
|
|
461
|
+
"description": "Lifetime budget in cents"
|
|
462
|
+
},
|
|
463
|
+
"bid_amount": {
|
|
464
|
+
"type": "string",
|
|
465
|
+
"description": "Bid amount in cents"
|
|
466
|
+
},
|
|
467
|
+
"optimization_goal": {
|
|
468
|
+
"type": "string",
|
|
469
|
+
"enum": [
|
|
470
|
+
"OFFSITE_CONVERSIONS",
|
|
471
|
+
"LINK_CLICKS",
|
|
472
|
+
"LANDING_PAGE_VIEWS",
|
|
473
|
+
"LEAD_GENERATION",
|
|
474
|
+
"REACH",
|
|
475
|
+
"IMPRESSIONS",
|
|
476
|
+
"THRUPLAY"
|
|
477
|
+
],
|
|
478
|
+
"description": "Optimization goal"
|
|
479
|
+
},
|
|
480
|
+
"promoted_object": {
|
|
481
|
+
"type": "object",
|
|
482
|
+
"description": "Promoted object config"
|
|
483
|
+
},
|
|
484
|
+
"start_time": {
|
|
485
|
+
"type": "string",
|
|
486
|
+
"description": "Start time (ISO)"
|
|
487
|
+
},
|
|
488
|
+
"end_time": {
|
|
489
|
+
"type": "string",
|
|
490
|
+
"description": "End time (ISO)"
|
|
491
|
+
},
|
|
492
|
+
"dsa_beneficiary": {
|
|
493
|
+
"type": "string",
|
|
494
|
+
"description": "Entity benefiting from the ad (required for EU/Taiwan/Singapore/Australia targeting)"
|
|
495
|
+
},
|
|
496
|
+
"dsa_payor": {
|
|
497
|
+
"type": "string",
|
|
498
|
+
"description": "Entity paying for the ad (required for EU/Taiwan/Singapore/Australia targeting)"
|
|
499
|
+
}
|
|
500
|
+
},
|
|
501
|
+
"required": [
|
|
502
|
+
"adSetId"
|
|
503
|
+
]
|
|
504
|
+
}
|
|
505
|
+
},
|
|
506
|
+
{
|
|
507
|
+
"name": "adset_delete",
|
|
508
|
+
"description": "Delete an ad set.",
|
|
509
|
+
"method": "DELETE",
|
|
510
|
+
"path": "/adset-delete",
|
|
511
|
+
"input_schema": {
|
|
512
|
+
"type": "object",
|
|
513
|
+
"properties": {
|
|
514
|
+
"adSetId": {
|
|
515
|
+
"type": "string",
|
|
516
|
+
"description": "Ad Set ID to delete"
|
|
517
|
+
}
|
|
518
|
+
},
|
|
519
|
+
"required": [
|
|
520
|
+
"adSetId"
|
|
521
|
+
]
|
|
522
|
+
}
|
|
523
|
+
},
|
|
524
|
+
{
|
|
525
|
+
"name": "ad_create",
|
|
526
|
+
"description": "Create an ad linking an ad set to a creative. Steps: 1) Create campaign, 2) Create ad set (with promoted_object if needed), 3) Create creative, 4) Create ad. The creative param MUST be an object: {\"creative_id\":\"YOUR_ID\"}. IMPORTANT: For OUTCOME_SALES campaigns, the ad set MUST have a promoted_object with pixel_id and custom_event_type, otherwise ad creation fails with 'Tracking pixel required'. For OUTCOME_LEADS, the ad set needs promoted_object with page_id. If you get 'Tracking pixel required', go back and update the ad set to include the correct promoted_object. Example: {\"name\":\"My Ad\",\"adset_id\":\"123456\",\"creative\":{\"creative_id\":\"789012\"},\"status\":\"PAUSED\"}",
|
|
527
|
+
"method": "POST",
|
|
528
|
+
"path": "/ad-create",
|
|
529
|
+
"input_schema": {
|
|
530
|
+
"type": "object",
|
|
531
|
+
"properties": {
|
|
532
|
+
"adAccountId": {
|
|
533
|
+
"type": "string",
|
|
534
|
+
"description": "Ad Account ID (format: act_123456789)"
|
|
535
|
+
},
|
|
536
|
+
"name": {
|
|
537
|
+
"type": "string",
|
|
538
|
+
"description": "Ad name"
|
|
539
|
+
},
|
|
540
|
+
"adset_id": {
|
|
541
|
+
"type": "string",
|
|
542
|
+
"description": "Ad Set ID this ad belongs to"
|
|
543
|
+
},
|
|
544
|
+
"creative": {
|
|
545
|
+
"type": "object",
|
|
546
|
+
"description": "MUST be {\"creative_id\": \"YOUR_CREATIVE_ID\"}. Get the creative_id from creative-create response."
|
|
547
|
+
},
|
|
548
|
+
"status": {
|
|
549
|
+
"type": "string",
|
|
550
|
+
"enum": [
|
|
551
|
+
"ACTIVE",
|
|
552
|
+
"PAUSED"
|
|
553
|
+
],
|
|
554
|
+
"default": "PAUSED",
|
|
555
|
+
"description": "Ad status. Use PAUSED to review before activating."
|
|
556
|
+
},
|
|
557
|
+
"tracking_specs": {
|
|
558
|
+
"type": "array",
|
|
559
|
+
"description": "Tracking specs array. Example: [{\"action.type\":[\"offsite_conversion\"],\"fb_pixel\":[\"PIXEL_ID\"]}]"
|
|
560
|
+
},
|
|
561
|
+
"url_tags": {
|
|
562
|
+
"type": "string",
|
|
563
|
+
"description": "UTM tags appended to URLs. Example: utm_source=facebook&utm_medium=cpc&utm_campaign=my_campaign"
|
|
564
|
+
}
|
|
565
|
+
},
|
|
566
|
+
"required": [
|
|
567
|
+
"adAccountId",
|
|
568
|
+
"name",
|
|
569
|
+
"adset_id",
|
|
570
|
+
"creative"
|
|
571
|
+
]
|
|
572
|
+
}
|
|
573
|
+
},
|
|
574
|
+
{
|
|
575
|
+
"name": "ad_list",
|
|
576
|
+
"description": "List ads. Pass an ad account ID or ad set ID as objectId.",
|
|
577
|
+
"method": "GET",
|
|
578
|
+
"path": "/ad-list",
|
|
579
|
+
"input_schema": {
|
|
580
|
+
"type": "object",
|
|
581
|
+
"properties": {
|
|
582
|
+
"objectId": {
|
|
583
|
+
"type": "string",
|
|
584
|
+
"description": "Ad Account ID (act_xxx) or Ad Set ID"
|
|
585
|
+
},
|
|
586
|
+
"fields": {
|
|
587
|
+
"type": "string",
|
|
588
|
+
"default": "id,name,adset_id,campaign_id,status,effective_status,creative{id,name,thumbnail_url,object_story_spec},tracking_specs,created_time",
|
|
589
|
+
"description": "Comma-separated fields"
|
|
590
|
+
},
|
|
591
|
+
"limit": {
|
|
592
|
+
"type": "integer",
|
|
593
|
+
"default": 25,
|
|
594
|
+
"description": "Max results"
|
|
595
|
+
},
|
|
596
|
+
"after": {
|
|
597
|
+
"type": "string",
|
|
598
|
+
"description": "Pagination cursor"
|
|
599
|
+
},
|
|
600
|
+
"filtering": {
|
|
601
|
+
"type": "string",
|
|
602
|
+
"description": "JSON stringified filter array"
|
|
603
|
+
}
|
|
604
|
+
},
|
|
605
|
+
"required": [
|
|
606
|
+
"objectId"
|
|
607
|
+
]
|
|
608
|
+
}
|
|
609
|
+
},
|
|
610
|
+
{
|
|
611
|
+
"name": "ad_update",
|
|
612
|
+
"description": "Update ad settings. Returns {success:true}. To activate, parent campaign AND ad set must both be ACTIVE.",
|
|
613
|
+
"method": "POST",
|
|
614
|
+
"path": "/ad-update",
|
|
615
|
+
"input_schema": {
|
|
616
|
+
"type": "object",
|
|
617
|
+
"properties": {
|
|
618
|
+
"adId": {
|
|
619
|
+
"type": "string",
|
|
620
|
+
"description": "Ad ID to update"
|
|
621
|
+
},
|
|
622
|
+
"name": {
|
|
623
|
+
"type": "string",
|
|
624
|
+
"description": "New ad name"
|
|
625
|
+
},
|
|
626
|
+
"status": {
|
|
627
|
+
"type": "string",
|
|
628
|
+
"enum": [
|
|
629
|
+
"ACTIVE",
|
|
630
|
+
"PAUSED"
|
|
631
|
+
],
|
|
632
|
+
"description": "Ad status"
|
|
633
|
+
}
|
|
634
|
+
},
|
|
635
|
+
"required": [
|
|
636
|
+
"adId"
|
|
637
|
+
]
|
|
638
|
+
}
|
|
639
|
+
},
|
|
640
|
+
{
|
|
641
|
+
"name": "ad_delete",
|
|
642
|
+
"description": "Delete an ad.",
|
|
643
|
+
"method": "DELETE",
|
|
644
|
+
"path": "/ad-delete",
|
|
645
|
+
"input_schema": {
|
|
646
|
+
"type": "object",
|
|
647
|
+
"properties": {
|
|
648
|
+
"adId": {
|
|
649
|
+
"type": "string",
|
|
650
|
+
"description": "Ad ID to delete"
|
|
651
|
+
}
|
|
652
|
+
},
|
|
653
|
+
"required": [
|
|
654
|
+
"adId"
|
|
655
|
+
]
|
|
656
|
+
}
|
|
657
|
+
},
|
|
658
|
+
{
|
|
659
|
+
"name": "creative_create",
|
|
660
|
+
"description": "Create an ad creative with image, video, or link. IMPORTANT: object_story_spec MUST contain page_id at the top level. For IMAGE ads: {\"page_id\":\"PAGE_ID\",\"link_data\":{\"name\":\"Headline\",\"message\":\"Body text above image\",\"link\":\"https://yoursite.com\",\"picture\":\"https://image-url.jpg\",\"call_to_action\":{\"type\":\"LEARN_MORE\",\"value\":{\"link\":\"https://yoursite.com\"}}}}. For VIDEO ads: {\"page_id\":\"PAGE_ID\",\"video_data\":{\"video_id\":\"VIDEO_ID\",\"title\":\"Headline\",\"message\":\"Body text\",\"link_description\":\"Description\",\"call_to_action\":{\"type\":\"SHOP_NOW\",\"value\":{\"link\":\"https://yoursite.com\"}}}}. call_to_action types: LEARN_MORE, SHOP_NOW, SIGN_UP, BOOK_TRAVEL, CONTACT_US, DOWNLOAD, GET_OFFER, GET_QUOTE, SUBSCRIBE, WATCH_MORE.",
|
|
661
|
+
"method": "POST",
|
|
662
|
+
"path": "/creative-create",
|
|
663
|
+
"input_schema": {
|
|
664
|
+
"type": "object",
|
|
665
|
+
"properties": {
|
|
666
|
+
"adAccountId": {
|
|
667
|
+
"type": "string",
|
|
668
|
+
"description": "Ad Account ID (format: act_123456789)"
|
|
669
|
+
},
|
|
670
|
+
"name": {
|
|
671
|
+
"type": "string",
|
|
672
|
+
"description": "Creative name (internal reference)"
|
|
673
|
+
},
|
|
674
|
+
"object_story_spec": {
|
|
675
|
+
"type": "object",
|
|
676
|
+
"description": "REQUIRED. Must include page_id + either link_data (image/link) or video_data (video). Image example: {\"page_id\":\"YOUR_PAGE_ID\",\"link_data\":{\"name\":\"Headline text\",\"message\":\"Primary text shown above\",\"link\":\"https://yoursite.com\",\"picture\":\"https://image-url.jpg\",\"call_to_action\":{\"type\":\"LEARN_MORE\",\"value\":{\"link\":\"https://yoursite.com\"}}}}. Video example: {\"page_id\":\"YOUR_PAGE_ID\",\"video_data\":{\"video_id\":\"VIDEO_ID\",\"title\":\"Headline\",\"message\":\"Primary text\",\"call_to_action\":{\"type\":\"SHOP_NOW\",\"value\":{\"link\":\"https://yoursite.com\"}}}}"
|
|
677
|
+
},
|
|
678
|
+
"degrees_of_freedom_spec": {
|
|
679
|
+
"type": "object",
|
|
680
|
+
"description": "Optional. Enable Advantage+ creative: {\"creative_features_spec\":{\"standard_enhancements\":{\"enroll_status\":\"OPT_IN\"}}}"
|
|
681
|
+
},
|
|
682
|
+
"url_tags": {
|
|
683
|
+
"type": "string",
|
|
684
|
+
"description": "UTM tags for tracking. Example: utm_source=facebook&utm_medium=cpc"
|
|
685
|
+
}
|
|
686
|
+
},
|
|
687
|
+
"required": [
|
|
688
|
+
"adAccountId",
|
|
689
|
+
"name",
|
|
690
|
+
"object_story_spec"
|
|
691
|
+
]
|
|
692
|
+
}
|
|
693
|
+
},
|
|
694
|
+
{
|
|
695
|
+
"name": "creative_create_carousel",
|
|
696
|
+
"description": "Create a carousel ad creative with 2-10 cards. Pass the full object_story_spec with link_data containing child_attachments array.",
|
|
697
|
+
"method": "POST",
|
|
698
|
+
"path": "/creative-create-carousel",
|
|
699
|
+
"input_schema": {
|
|
700
|
+
"type": "object",
|
|
701
|
+
"properties": {
|
|
702
|
+
"adAccountId": {
|
|
703
|
+
"type": "string",
|
|
704
|
+
"description": "Ad Account ID (format: act_123456789)"
|
|
705
|
+
},
|
|
706
|
+
"name": {
|
|
707
|
+
"type": "string",
|
|
708
|
+
"description": "Creative name"
|
|
709
|
+
},
|
|
710
|
+
"object_story_spec": {
|
|
711
|
+
"type": "object",
|
|
712
|
+
"description": "Carousel spec: {\"page_id\":\"PAGE_ID\",\"link_data\":{\"message\":\"Text\",\"link\":\"https://...\",\"child_attachments\":[{\"name\":\"Card Title\",\"description\":\"Desc\",\"link\":\"https://...\",\"picture\":\"https://...\",\"call_to_action\":{\"type\":\"LEARN_MORE\"}}],\"multi_share_optimized\":true,\"multi_share_end_card\":true}}"
|
|
713
|
+
}
|
|
714
|
+
},
|
|
715
|
+
"required": [
|
|
716
|
+
"adAccountId",
|
|
717
|
+
"name",
|
|
718
|
+
"object_story_spec"
|
|
719
|
+
]
|
|
720
|
+
}
|
|
721
|
+
},
|
|
722
|
+
{
|
|
723
|
+
"name": "creative_list",
|
|
724
|
+
"description": "List ad creatives in an ad account.",
|
|
725
|
+
"method": "GET",
|
|
726
|
+
"path": "/creative-list",
|
|
727
|
+
"input_schema": {
|
|
728
|
+
"type": "object",
|
|
729
|
+
"properties": {
|
|
730
|
+
"adAccountId": {
|
|
731
|
+
"type": "string",
|
|
732
|
+
"description": "Ad Account ID (format: act_123456789)"
|
|
733
|
+
},
|
|
734
|
+
"fields": {
|
|
735
|
+
"type": "string",
|
|
736
|
+
"default": "id,name,status,object_story_spec,thumbnail_url,url_tags,created_time",
|
|
737
|
+
"description": "Comma-separated fields"
|
|
738
|
+
},
|
|
739
|
+
"limit": {
|
|
740
|
+
"type": "integer",
|
|
741
|
+
"default": 25,
|
|
742
|
+
"description": "Max results (max 100)"
|
|
743
|
+
},
|
|
744
|
+
"after": {
|
|
745
|
+
"type": "string",
|
|
746
|
+
"description": "Pagination cursor"
|
|
747
|
+
}
|
|
748
|
+
},
|
|
749
|
+
"required": [
|
|
750
|
+
"adAccountId"
|
|
751
|
+
]
|
|
752
|
+
}
|
|
753
|
+
},
|
|
754
|
+
{
|
|
755
|
+
"name": "creative_get",
|
|
756
|
+
"description": "Get details of a specific ad creative.",
|
|
757
|
+
"method": "GET",
|
|
758
|
+
"path": "/creative-get",
|
|
759
|
+
"input_schema": {
|
|
760
|
+
"type": "object",
|
|
761
|
+
"properties": {
|
|
762
|
+
"creativeId": {
|
|
763
|
+
"type": "string",
|
|
764
|
+
"description": "Creative ID"
|
|
765
|
+
},
|
|
766
|
+
"fields": {
|
|
767
|
+
"type": "string",
|
|
768
|
+
"default": "id,name,object_story_spec,thumbnail_url,status,body,title,link_url,image_url",
|
|
769
|
+
"description": "Comma-separated fields"
|
|
770
|
+
}
|
|
771
|
+
},
|
|
772
|
+
"required": [
|
|
773
|
+
"creativeId"
|
|
774
|
+
]
|
|
775
|
+
}
|
|
776
|
+
},
|
|
777
|
+
{
|
|
778
|
+
"name": "creative_upload_image",
|
|
779
|
+
"description": "Upload an image to your ad account. Returns an image_hash for use in creatives. Note: creative-create also accepts image URLs directly (Facebook downloads them), so this is only needed if you want to reuse the same image hash across multiple creatives.",
|
|
780
|
+
"method": "POST",
|
|
781
|
+
"path": "/creative-upload-image",
|
|
782
|
+
"input_schema": {
|
|
783
|
+
"type": "object",
|
|
784
|
+
"properties": {
|
|
785
|
+
"adAccountId": {
|
|
786
|
+
"type": "string",
|
|
787
|
+
"description": "Ad Account ID (format: act_123456789)"
|
|
788
|
+
},
|
|
789
|
+
"url": {
|
|
790
|
+
"type": "string",
|
|
791
|
+
"description": "Image URL to upload"
|
|
792
|
+
},
|
|
793
|
+
"bytes": {
|
|
794
|
+
"type": "string",
|
|
795
|
+
"description": "Base64 encoded image data (alternative to url)"
|
|
796
|
+
},
|
|
797
|
+
"name": {
|
|
798
|
+
"type": "string",
|
|
799
|
+
"default": "image.jpg",
|
|
800
|
+
"description": "Image filename"
|
|
801
|
+
}
|
|
802
|
+
},
|
|
803
|
+
"required": [
|
|
804
|
+
"adAccountId"
|
|
805
|
+
]
|
|
806
|
+
}
|
|
807
|
+
},
|
|
808
|
+
{
|
|
809
|
+
"name": "creative_upload_video",
|
|
810
|
+
"description": "Upload a video for use in ad creatives. Provide file_url for URL-based upload.",
|
|
811
|
+
"method": "POST",
|
|
812
|
+
"path": "/creative-upload-video",
|
|
813
|
+
"input_schema": {
|
|
814
|
+
"type": "object",
|
|
815
|
+
"properties": {
|
|
816
|
+
"adAccountId": {
|
|
817
|
+
"type": "string",
|
|
818
|
+
"description": "Ad Account ID (format: act_123456789)"
|
|
819
|
+
},
|
|
820
|
+
"file_url": {
|
|
821
|
+
"type": "string",
|
|
822
|
+
"description": "Video URL to upload"
|
|
823
|
+
},
|
|
824
|
+
"title": {
|
|
825
|
+
"type": "string",
|
|
826
|
+
"description": "Video title"
|
|
827
|
+
},
|
|
828
|
+
"description": {
|
|
829
|
+
"type": "string",
|
|
830
|
+
"description": "Video description"
|
|
831
|
+
},
|
|
832
|
+
"thumb": {
|
|
833
|
+
"type": "string",
|
|
834
|
+
"description": "Custom thumbnail URL"
|
|
835
|
+
},
|
|
836
|
+
"unpublished_content_type": {
|
|
837
|
+
"type": "string",
|
|
838
|
+
"default": "DRAFT",
|
|
839
|
+
"description": "Content type"
|
|
840
|
+
}
|
|
841
|
+
},
|
|
842
|
+
"required": [
|
|
843
|
+
"adAccountId",
|
|
844
|
+
"title"
|
|
845
|
+
]
|
|
846
|
+
}
|
|
847
|
+
},
|
|
848
|
+
{
|
|
849
|
+
"name": "video_status",
|
|
850
|
+
"description": "Check the processing status of an uploaded video.",
|
|
851
|
+
"method": "GET",
|
|
852
|
+
"path": "/video-status",
|
|
853
|
+
"input_schema": {
|
|
854
|
+
"type": "object",
|
|
855
|
+
"properties": {
|
|
856
|
+
"videoId": {
|
|
857
|
+
"type": "string",
|
|
858
|
+
"description": "Video ID"
|
|
859
|
+
},
|
|
860
|
+
"fields": {
|
|
861
|
+
"type": "string",
|
|
862
|
+
"default": "id,title,status,length,source,thumbnails,created_time",
|
|
863
|
+
"description": "Comma-separated fields"
|
|
864
|
+
}
|
|
865
|
+
},
|
|
866
|
+
"required": [
|
|
867
|
+
"videoId"
|
|
868
|
+
]
|
|
869
|
+
}
|
|
870
|
+
},
|
|
871
|
+
{
|
|
872
|
+
"name": "audience_list",
|
|
873
|
+
"description": "List custom audiences in an ad account.",
|
|
874
|
+
"method": "GET",
|
|
875
|
+
"path": "/audience-list",
|
|
876
|
+
"input_schema": {
|
|
877
|
+
"type": "object",
|
|
878
|
+
"properties": {
|
|
879
|
+
"adAccountId": {
|
|
880
|
+
"type": "string",
|
|
881
|
+
"description": "Ad Account ID (format: act_123456789)"
|
|
882
|
+
},
|
|
883
|
+
"fields": {
|
|
884
|
+
"type": "string",
|
|
885
|
+
"default": "id,name,subtype,approximate_count,delivery_status,description",
|
|
886
|
+
"description": "Comma-separated fields"
|
|
887
|
+
},
|
|
888
|
+
"limit": {
|
|
889
|
+
"type": "integer",
|
|
890
|
+
"default": 25,
|
|
891
|
+
"description": "Max results"
|
|
892
|
+
},
|
|
893
|
+
"after": {
|
|
894
|
+
"type": "string",
|
|
895
|
+
"description": "Pagination cursor"
|
|
896
|
+
}
|
|
897
|
+
},
|
|
898
|
+
"required": [
|
|
899
|
+
"adAccountId"
|
|
900
|
+
]
|
|
901
|
+
}
|
|
902
|
+
},
|
|
903
|
+
{
|
|
904
|
+
"name": "audience_create_custom",
|
|
905
|
+
"description": "Create a custom audience for ad targeting.",
|
|
906
|
+
"method": "POST",
|
|
907
|
+
"path": "/audience-create-custom",
|
|
908
|
+
"input_schema": {
|
|
909
|
+
"type": "object",
|
|
910
|
+
"properties": {
|
|
911
|
+
"adAccountId": {
|
|
912
|
+
"type": "string",
|
|
913
|
+
"description": "Ad Account ID (format: act_123456789)"
|
|
914
|
+
},
|
|
915
|
+
"name": {
|
|
916
|
+
"type": "string",
|
|
917
|
+
"description": "Audience name"
|
|
918
|
+
},
|
|
919
|
+
"subtype": {
|
|
920
|
+
"type": "string",
|
|
921
|
+
"enum": [
|
|
922
|
+
"CUSTOM",
|
|
923
|
+
"WEBSITE",
|
|
924
|
+
"APP",
|
|
925
|
+
"OFFLINE_CONVERSION",
|
|
926
|
+
"ENGAGEMENT",
|
|
927
|
+
"LOOKALIKE",
|
|
928
|
+
"VIDEO",
|
|
929
|
+
"DATA_SET"
|
|
930
|
+
],
|
|
931
|
+
"description": "Audience subtype"
|
|
932
|
+
},
|
|
933
|
+
"description": {
|
|
934
|
+
"type": "string",
|
|
935
|
+
"description": "Audience description"
|
|
936
|
+
},
|
|
937
|
+
"customer_file_source": {
|
|
938
|
+
"type": "string",
|
|
939
|
+
"enum": [
|
|
940
|
+
"USER_PROVIDED_ONLY",
|
|
941
|
+
"PARTNER_PROVIDED_ONLY",
|
|
942
|
+
"BOTH_USER_AND_PARTNER_PROVIDED"
|
|
943
|
+
],
|
|
944
|
+
"description": "Customer file source"
|
|
945
|
+
},
|
|
946
|
+
"rule": {
|
|
947
|
+
"type": "object",
|
|
948
|
+
"description": "Audience rule (required for WEBSITE and APP types)"
|
|
949
|
+
},
|
|
950
|
+
"pixel_id": {
|
|
951
|
+
"type": "string",
|
|
952
|
+
"description": "Pixel ID (required for WEBSITE type)"
|
|
953
|
+
},
|
|
954
|
+
"retention_days": {
|
|
955
|
+
"type": "integer",
|
|
956
|
+
"default": 30,
|
|
957
|
+
"description": "Retention days"
|
|
958
|
+
},
|
|
959
|
+
"prefill": {
|
|
960
|
+
"type": "boolean",
|
|
961
|
+
"default": true,
|
|
962
|
+
"description": "Prefill with existing data"
|
|
963
|
+
}
|
|
964
|
+
},
|
|
965
|
+
"required": [
|
|
966
|
+
"adAccountId",
|
|
967
|
+
"name",
|
|
968
|
+
"subtype"
|
|
969
|
+
]
|
|
970
|
+
}
|
|
971
|
+
},
|
|
972
|
+
{
|
|
973
|
+
"name": "audience_create_lookalike",
|
|
974
|
+
"description": "Create a lookalike audience from a source custom audience.",
|
|
975
|
+
"method": "POST",
|
|
976
|
+
"path": "/audience-create-lookalike",
|
|
977
|
+
"input_schema": {
|
|
978
|
+
"type": "object",
|
|
979
|
+
"properties": {
|
|
980
|
+
"adAccountId": {
|
|
981
|
+
"type": "string",
|
|
982
|
+
"description": "Ad Account ID (format: act_123456789)"
|
|
983
|
+
},
|
|
984
|
+
"name": {
|
|
985
|
+
"type": "string",
|
|
986
|
+
"description": "Lookalike audience name"
|
|
987
|
+
},
|
|
988
|
+
"subtype": {
|
|
989
|
+
"type": "string",
|
|
990
|
+
"default": "LOOKALIKE",
|
|
991
|
+
"description": "Must be LOOKALIKE"
|
|
992
|
+
},
|
|
993
|
+
"origin_audience_id": {
|
|
994
|
+
"type": "string",
|
|
995
|
+
"description": "Source custom audience ID"
|
|
996
|
+
},
|
|
997
|
+
"lookalike_spec": {
|
|
998
|
+
"type": "object",
|
|
999
|
+
"description": "Lookalike config. Example: {\"type\":\"similarity\",\"country\":\"US\",\"ratio\":0.01}. Ratio 0.01-0.20 (1%-20%)."
|
|
1000
|
+
},
|
|
1001
|
+
"description": {
|
|
1002
|
+
"type": "string",
|
|
1003
|
+
"description": "Audience description"
|
|
1004
|
+
}
|
|
1005
|
+
},
|
|
1006
|
+
"required": [
|
|
1007
|
+
"adAccountId",
|
|
1008
|
+
"name",
|
|
1009
|
+
"origin_audience_id",
|
|
1010
|
+
"lookalike_spec"
|
|
1011
|
+
]
|
|
1012
|
+
}
|
|
1013
|
+
},
|
|
1014
|
+
{
|
|
1015
|
+
"name": "insights_get",
|
|
1016
|
+
"description": "Retrieve performance metrics for campaigns, ad sets, ads, or the whole account. Pass any object ID (account, campaign, adset, ad).",
|
|
1017
|
+
"method": "GET",
|
|
1018
|
+
"path": "/insights-get",
|
|
1019
|
+
"input_schema": {
|
|
1020
|
+
"type": "object",
|
|
1021
|
+
"properties": {
|
|
1022
|
+
"objectId": {
|
|
1023
|
+
"type": "string",
|
|
1024
|
+
"description": "Campaign, Ad Set, Ad, or Account ID (act_xxx)"
|
|
1025
|
+
},
|
|
1026
|
+
"level": {
|
|
1027
|
+
"type": "string",
|
|
1028
|
+
"enum": [
|
|
1029
|
+
"account",
|
|
1030
|
+
"campaign",
|
|
1031
|
+
"adset",
|
|
1032
|
+
"ad"
|
|
1033
|
+
],
|
|
1034
|
+
"default": "campaign",
|
|
1035
|
+
"description": "Aggregation level"
|
|
1036
|
+
},
|
|
1037
|
+
"fields": {
|
|
1038
|
+
"type": "string",
|
|
1039
|
+
"default": "impressions,clicks,spend,reach,cpm,cpc,ctr",
|
|
1040
|
+
"description": "Comma-separated metrics"
|
|
1041
|
+
},
|
|
1042
|
+
"time_range": {
|
|
1043
|
+
"type": "string",
|
|
1044
|
+
"description": "JSON time range: {\"since\":\"2024-01-01\",\"until\":\"2024-01-31\"}"
|
|
1045
|
+
},
|
|
1046
|
+
"date_preset": {
|
|
1047
|
+
"type": "string",
|
|
1048
|
+
"description": "Date preset: last_7d, last_30d, this_month, last_month, etc."
|
|
1049
|
+
},
|
|
1050
|
+
"time_increment": {
|
|
1051
|
+
"type": "string",
|
|
1052
|
+
"enum": [
|
|
1053
|
+
"all_days",
|
|
1054
|
+
"1",
|
|
1055
|
+
"7",
|
|
1056
|
+
"monthly"
|
|
1057
|
+
],
|
|
1058
|
+
"default": "all_days",
|
|
1059
|
+
"description": "Time increment (1=daily, 7=weekly)"
|
|
1060
|
+
},
|
|
1061
|
+
"breakdowns": {
|
|
1062
|
+
"type": "string",
|
|
1063
|
+
"description": "Comma-separated breakdowns: age, gender, country, placement, etc."
|
|
1064
|
+
},
|
|
1065
|
+
"action_breakdowns": {
|
|
1066
|
+
"type": "string",
|
|
1067
|
+
"description": "Comma-separated action breakdowns"
|
|
1068
|
+
},
|
|
1069
|
+
"filtering": {
|
|
1070
|
+
"type": "string",
|
|
1071
|
+
"description": "JSON filter array"
|
|
1072
|
+
},
|
|
1073
|
+
"sort": {
|
|
1074
|
+
"type": "string",
|
|
1075
|
+
"description": "Sort field and direction, e.g. spend_descending"
|
|
1076
|
+
},
|
|
1077
|
+
"limit": {
|
|
1078
|
+
"type": "integer",
|
|
1079
|
+
"default": 100,
|
|
1080
|
+
"description": "Max results"
|
|
1081
|
+
}
|
|
1082
|
+
},
|
|
1083
|
+
"required": [
|
|
1084
|
+
"objectId"
|
|
1085
|
+
]
|
|
1086
|
+
}
|
|
1087
|
+
},
|
|
1088
|
+
{
|
|
1089
|
+
"name": "insights_export_report",
|
|
1090
|
+
"description": "Create an async insights report. Returns a report_run_id — poll it with GET /{report_run_id} to check status, then GET /{report_run_id}/insights for results.",
|
|
1091
|
+
"method": "POST",
|
|
1092
|
+
"path": "/insights-export-report",
|
|
1093
|
+
"input_schema": {
|
|
1094
|
+
"type": "object",
|
|
1095
|
+
"properties": {
|
|
1096
|
+
"adAccountId": {
|
|
1097
|
+
"type": "string",
|
|
1098
|
+
"description": "Ad Account ID"
|
|
1099
|
+
},
|
|
1100
|
+
"level": {
|
|
1101
|
+
"type": "string",
|
|
1102
|
+
"enum": [
|
|
1103
|
+
"account",
|
|
1104
|
+
"campaign",
|
|
1105
|
+
"adset",
|
|
1106
|
+
"ad"
|
|
1107
|
+
],
|
|
1108
|
+
"description": "Aggregation level"
|
|
1109
|
+
},
|
|
1110
|
+
"fields": {
|
|
1111
|
+
"type": "array",
|
|
1112
|
+
"items": {
|
|
1113
|
+
"type": "string"
|
|
1114
|
+
},
|
|
1115
|
+
"description": "Metrics to include"
|
|
1116
|
+
},
|
|
1117
|
+
"time_range": {
|
|
1118
|
+
"type": "object",
|
|
1119
|
+
"description": "{\"since\":\"YYYY-MM-DD\",\"until\":\"YYYY-MM-DD\"}"
|
|
1120
|
+
},
|
|
1121
|
+
"breakdowns": {
|
|
1122
|
+
"type": "array",
|
|
1123
|
+
"items": {
|
|
1124
|
+
"type": "string"
|
|
1125
|
+
},
|
|
1126
|
+
"description": "Breakdowns"
|
|
1127
|
+
},
|
|
1128
|
+
"filtering": {
|
|
1129
|
+
"type": "array",
|
|
1130
|
+
"description": "Filters"
|
|
1131
|
+
}
|
|
1132
|
+
},
|
|
1133
|
+
"required": [
|
|
1134
|
+
"adAccountId"
|
|
1135
|
+
]
|
|
1136
|
+
}
|
|
1137
|
+
},
|
|
1138
|
+
{
|
|
1139
|
+
"name": "pixel_create",
|
|
1140
|
+
"description": "Create a Facebook pixel for conversion tracking.",
|
|
1141
|
+
"method": "POST",
|
|
1142
|
+
"path": "/pixel-create",
|
|
1143
|
+
"input_schema": {
|
|
1144
|
+
"type": "object",
|
|
1145
|
+
"properties": {
|
|
1146
|
+
"adAccountId": {
|
|
1147
|
+
"type": "string",
|
|
1148
|
+
"description": "Ad Account ID (format: act_123456789)"
|
|
1149
|
+
},
|
|
1150
|
+
"name": {
|
|
1151
|
+
"type": "string",
|
|
1152
|
+
"description": "Pixel name"
|
|
1153
|
+
}
|
|
1154
|
+
},
|
|
1155
|
+
"required": [
|
|
1156
|
+
"adAccountId",
|
|
1157
|
+
"name"
|
|
1158
|
+
]
|
|
1159
|
+
}
|
|
1160
|
+
},
|
|
1161
|
+
{
|
|
1162
|
+
"name": "pixel_send_event",
|
|
1163
|
+
"description": "Send conversion events via the Conversions API. Each event needs: event_name, event_time (unix), action_source, and optional user_data/custom_data.",
|
|
1164
|
+
"method": "POST",
|
|
1165
|
+
"path": "/pixel-send-event",
|
|
1166
|
+
"input_schema": {
|
|
1167
|
+
"type": "object",
|
|
1168
|
+
"properties": {
|
|
1169
|
+
"pixelId": {
|
|
1170
|
+
"type": "string",
|
|
1171
|
+
"description": "Facebook Pixel ID"
|
|
1172
|
+
},
|
|
1173
|
+
"data": {
|
|
1174
|
+
"type": "array",
|
|
1175
|
+
"description": "Array of events: [{\"event_name\":\"Purchase\",\"event_time\":1234567890,\"action_source\":\"website\",\"user_data\":{\"em\":\"hashed_email\"},\"custom_data\":{\"value\":\"100.00\",\"currency\":\"USD\"}}]",
|
|
1176
|
+
"items": {
|
|
1177
|
+
"type": "object"
|
|
1178
|
+
}
|
|
1179
|
+
},
|
|
1180
|
+
"test_event_code": {
|
|
1181
|
+
"type": "string",
|
|
1182
|
+
"description": "Test event code for debugging"
|
|
1183
|
+
}
|
|
1184
|
+
},
|
|
1185
|
+
"required": [
|
|
1186
|
+
"pixelId",
|
|
1187
|
+
"data"
|
|
1188
|
+
]
|
|
1189
|
+
}
|
|
1190
|
+
},
|
|
1191
|
+
{
|
|
1192
|
+
"name": "leadform_create",
|
|
1193
|
+
"description": "Create a lead generation form on a Facebook Page. Requires page-level access token. Questions can be predefined (EMAIL, PHONE, FULL_NAME) or custom objects.",
|
|
1194
|
+
"method": "POST",
|
|
1195
|
+
"path": "/leadform-create",
|
|
1196
|
+
"input_schema": {
|
|
1197
|
+
"type": "object",
|
|
1198
|
+
"properties": {
|
|
1199
|
+
"pageId": {
|
|
1200
|
+
"type": "string",
|
|
1201
|
+
"description": "Facebook Page ID"
|
|
1202
|
+
},
|
|
1203
|
+
"name": {
|
|
1204
|
+
"type": "string",
|
|
1205
|
+
"description": "Form name"
|
|
1206
|
+
},
|
|
1207
|
+
"questions": {
|
|
1208
|
+
"type": "array",
|
|
1209
|
+
"description": "Array of question objects: [{\"type\":\"FULL_NAME\"},{\"type\":\"EMAIL\"},{\"type\":\"PHONE\"}] or [{\"type\":\"CUSTOM\",\"key\":\"fav_color\",\"label\":\"Favorite color?\"}]"
|
|
1210
|
+
},
|
|
1211
|
+
"privacy_policy": {
|
|
1212
|
+
"type": "object",
|
|
1213
|
+
"description": "{\"url\":\"https://example.com/privacy\",\"link_text\":\"Privacy Policy\"}"
|
|
1214
|
+
},
|
|
1215
|
+
"follow_up_action_url": {
|
|
1216
|
+
"type": "string",
|
|
1217
|
+
"description": "URL after form submission"
|
|
1218
|
+
},
|
|
1219
|
+
"thank_you_page": {
|
|
1220
|
+
"type": "object",
|
|
1221
|
+
"description": "{\"title\":\"Thank You\",\"body\":\"We'll be in touch\",\"button_text\":\"Visit Website\",\"button_type\":\"VIEW_WEBSITE\",\"website_url\":\"https://...\"}"
|
|
1222
|
+
},
|
|
1223
|
+
"context_card": {
|
|
1224
|
+
"type": "object",
|
|
1225
|
+
"description": "Intro screen: {\"title\":\"...\",\"style\":\"PARAGRAPH_STYLE\",\"content\":[\"line1\",\"line2\"]}"
|
|
1226
|
+
},
|
|
1227
|
+
"block_display_for_non_targeted_viewer": {
|
|
1228
|
+
"type": "boolean",
|
|
1229
|
+
"default": false,
|
|
1230
|
+
"description": "Only show to ad-targeted users"
|
|
1231
|
+
},
|
|
1232
|
+
"is_optimized_for_quality": {
|
|
1233
|
+
"type": "boolean",
|
|
1234
|
+
"default": false,
|
|
1235
|
+
"description": "Higher intent leads (adds review step)"
|
|
1236
|
+
},
|
|
1237
|
+
"locale": {
|
|
1238
|
+
"type": "string",
|
|
1239
|
+
"default": "en_US",
|
|
1240
|
+
"description": "Form locale"
|
|
1241
|
+
}
|
|
1242
|
+
},
|
|
1243
|
+
"required": [
|
|
1244
|
+
"pageId",
|
|
1245
|
+
"name",
|
|
1246
|
+
"questions",
|
|
1247
|
+
"privacy_policy"
|
|
1248
|
+
]
|
|
1249
|
+
}
|
|
1250
|
+
},
|
|
1251
|
+
{
|
|
1252
|
+
"name": "leadform_list",
|
|
1253
|
+
"description": "List lead generation forms for a Facebook Page. Requires page-level access token.",
|
|
1254
|
+
"method": "GET",
|
|
1255
|
+
"path": "/leadform-list",
|
|
1256
|
+
"input_schema": {
|
|
1257
|
+
"type": "object",
|
|
1258
|
+
"properties": {
|
|
1259
|
+
"pageId": {
|
|
1260
|
+
"type": "string",
|
|
1261
|
+
"description": "Facebook Page ID"
|
|
1262
|
+
},
|
|
1263
|
+
"fields": {
|
|
1264
|
+
"type": "string",
|
|
1265
|
+
"default": "id,name,status,leads_count,created_time,questions",
|
|
1266
|
+
"description": "Comma-separated fields"
|
|
1267
|
+
},
|
|
1268
|
+
"limit": {
|
|
1269
|
+
"type": "integer",
|
|
1270
|
+
"default": 25,
|
|
1271
|
+
"description": "Max results"
|
|
1272
|
+
},
|
|
1273
|
+
"after": {
|
|
1274
|
+
"type": "string",
|
|
1275
|
+
"description": "Pagination cursor"
|
|
1276
|
+
}
|
|
1277
|
+
},
|
|
1278
|
+
"required": [
|
|
1279
|
+
"pageId"
|
|
1280
|
+
]
|
|
1281
|
+
}
|
|
1282
|
+
},
|
|
1283
|
+
{
|
|
1284
|
+
"name": "leadform_get",
|
|
1285
|
+
"description": "Get details of a specific lead form.",
|
|
1286
|
+
"method": "GET",
|
|
1287
|
+
"path": "/leadform-get",
|
|
1288
|
+
"input_schema": {
|
|
1289
|
+
"type": "object",
|
|
1290
|
+
"properties": {
|
|
1291
|
+
"formId": {
|
|
1292
|
+
"type": "string",
|
|
1293
|
+
"description": "Lead form ID"
|
|
1294
|
+
},
|
|
1295
|
+
"fields": {
|
|
1296
|
+
"type": "string",
|
|
1297
|
+
"default": "id,name,status,leads_count,questions,privacy_policy_url,created_time",
|
|
1298
|
+
"description": "Comma-separated fields"
|
|
1299
|
+
}
|
|
1300
|
+
},
|
|
1301
|
+
"required": [
|
|
1302
|
+
"formId"
|
|
1303
|
+
]
|
|
1304
|
+
}
|
|
1305
|
+
},
|
|
1306
|
+
{
|
|
1307
|
+
"name": "leadform_update",
|
|
1308
|
+
"description": "Update lead form settings.",
|
|
1309
|
+
"method": "POST",
|
|
1310
|
+
"path": "/leadform-update",
|
|
1311
|
+
"input_schema": {
|
|
1312
|
+
"type": "object",
|
|
1313
|
+
"properties": {
|
|
1314
|
+
"formId": {
|
|
1315
|
+
"type": "string",
|
|
1316
|
+
"description": "Lead form ID"
|
|
1317
|
+
},
|
|
1318
|
+
"name": {
|
|
1319
|
+
"type": "string",
|
|
1320
|
+
"description": "New form name"
|
|
1321
|
+
},
|
|
1322
|
+
"status": {
|
|
1323
|
+
"type": "string",
|
|
1324
|
+
"enum": [
|
|
1325
|
+
"ACTIVE",
|
|
1326
|
+
"ARCHIVED"
|
|
1327
|
+
],
|
|
1328
|
+
"description": "Form status"
|
|
1329
|
+
},
|
|
1330
|
+
"follow_up_action_url": {
|
|
1331
|
+
"type": "string",
|
|
1332
|
+
"description": "Post-submission redirect URL"
|
|
1333
|
+
},
|
|
1334
|
+
"thank_you_page": {
|
|
1335
|
+
"type": "object",
|
|
1336
|
+
"description": "Updated thank you page config"
|
|
1337
|
+
},
|
|
1338
|
+
"context_card": {
|
|
1339
|
+
"type": "object",
|
|
1340
|
+
"description": "Updated context card config"
|
|
1341
|
+
}
|
|
1342
|
+
},
|
|
1343
|
+
"required": [
|
|
1344
|
+
"formId"
|
|
1345
|
+
]
|
|
1346
|
+
}
|
|
1347
|
+
},
|
|
1348
|
+
{
|
|
1349
|
+
"name": "leadform_delete",
|
|
1350
|
+
"description": "Archive a lead form (Facebook archives rather than permanently deletes).",
|
|
1351
|
+
"method": "DELETE",
|
|
1352
|
+
"path": "/leadform-delete",
|
|
1353
|
+
"input_schema": {
|
|
1354
|
+
"type": "object",
|
|
1355
|
+
"properties": {
|
|
1356
|
+
"formId": {
|
|
1357
|
+
"type": "string",
|
|
1358
|
+
"description": "Lead form ID to delete"
|
|
1359
|
+
}
|
|
1360
|
+
},
|
|
1361
|
+
"required": [
|
|
1362
|
+
"formId"
|
|
1363
|
+
]
|
|
1364
|
+
}
|
|
1365
|
+
},
|
|
1366
|
+
{
|
|
1367
|
+
"name": "leads_get",
|
|
1368
|
+
"description": "Retrieve submitted leads from a lead form or ad. Requires page-level access token for form leads.",
|
|
1369
|
+
"method": "GET",
|
|
1370
|
+
"path": "/leads-get",
|
|
1371
|
+
"input_schema": {
|
|
1372
|
+
"type": "object",
|
|
1373
|
+
"properties": {
|
|
1374
|
+
"objectId": {
|
|
1375
|
+
"type": "string",
|
|
1376
|
+
"description": "Lead form ID or Ad ID"
|
|
1377
|
+
},
|
|
1378
|
+
"fields": {
|
|
1379
|
+
"type": "string",
|
|
1380
|
+
"default": "id,created_time,field_data,ad_id,form_id",
|
|
1381
|
+
"description": "Comma-separated fields"
|
|
1382
|
+
},
|
|
1383
|
+
"limit": {
|
|
1384
|
+
"type": "integer",
|
|
1385
|
+
"default": 50,
|
|
1386
|
+
"description": "Max results (max 500)"
|
|
1387
|
+
},
|
|
1388
|
+
"after": {
|
|
1389
|
+
"type": "string",
|
|
1390
|
+
"description": "Pagination cursor"
|
|
1391
|
+
}
|
|
1392
|
+
},
|
|
1393
|
+
"required": [
|
|
1394
|
+
"objectId"
|
|
1395
|
+
]
|
|
1396
|
+
}
|
|
1397
|
+
}
|
|
1398
|
+
]
|
|
1399
|
+
}
|