- Brand
- Metadata
- Category
- Marketing
- Primary Subcategory
- Ad Campaign Analytics & Reporting
Integration details
Description
Connect your Metadata account to create editable, on-brand ad concepts, look up audience targeting criteria and estimate reach, inspect campaign setup, and analyze advertising performance and pipeline attribution. Work with campaign workflows for Facebook, Instagram, LinkedIn, Reddit, Google Ads, and Microsoft Advertising, subject to your connected accounts, permissions, and the available tools. Review proposed changes before authorizing campaign launches or changes to live budgets. An existing Metadata account with MCP access is required.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Ad Campaign Analytics & Reporting
- Secondary Subcategories
- None listed
- Brand
- Metadata
- Access
- Account required
- First tracked
- 2026-09-19
- Tool count
- 173
- Market
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Your score is coming
ChatGPT now suggests Plugins on its own when they match a user's request.Your Plugin Discovery Score measures how often yours appears, and it will show here as soon as it’s ready.
What discovery looks like

Get alerts for Metadata
Get updates when Metadata’s Discoverability Score or category rank changes.
Competing in ChatGPT Ad Campaign Analytics & Reporting
View Category173 tools agents can invoke
Add audiences, ads, offers, or targeting and edit supported settings of a Precision Optimization campaign. Returns the updated configuration and per-operation results or errors. Campaign structure and current platform state constrain which edits are permitted. LinkedIn ads can be added as named Metadata platform ad groups (ads.groups) when the user asks for them. CRITICAL: PARTIAL EDITS ONLY. Only campaignId is required. Supply other fields only for the user's requested changes, never by copying the whole campaign read result. A budget-group-only move uses campaign_data={"campaignId": 12345, "budgetGroup": "Destination"}. Omit name, startDate, endDate and channel blocks unless the user also requested those edits. Campaign-level startDate/endDate writes apply to every channel, including switched-off channels, so replaying a campaign's aggregate dates can overwrite distinct channel dates. On a draft, sending one date keeps the other as saved; when the saved one cannot stay (a start date already passed, an end before the new start, channels saved with different dates) nothing changes and errors says which date to ask the user for. For a budget-only move, read the campaign before and after and verify each channel's startDate/endDate and enabled state are unchanged, alongside the new budget group. The handler returns budget_move_verification for a completed move without date or channel edits. verified=true confirms every channel's identity, dates and switch state and the destination group. verified=false also populates errors: stop further moves and report the changed fields or incomplete readback, even when success=true because the budget group already changed. No schedule rollback is attempted. Do not report dates preserved without that readback; report any mismatch explicitly.
add_and_edit_campaign_elements
Add or edit channel containers and campaign-level settings of a Channel First campaign. Returns the updated configuration and per-operation results or errors. Search-channel containers can combine keyword groups, audiences, ads, and offers subject to platform validation. CRITICAL: PARTIAL EDITS ONLY. Only campaignId is required. Supply other fields only for the user's requested changes, never by copying the whole campaign read result. A budget-group-only move uses campaign_data={"campaignId": 12345, "budgetGroup": "Destination"}. Omit name, startDate, endDate and channel blocks unless the user also requested those edits. Campaign-level startDate/endDate writes apply to every channel, including switched-off channels, so replaying a campaign's aggregate dates can overwrite distinct channel dates. On a draft, sending one date keeps the other as saved; when the saved one cannot stay (a start date already passed, an end before the new start, channels saved with different dates) nothing changes and errors says which date to ask the user for. For a budget-only move, read the campaign before and after and verify each channel's startDate/endDate and enabled state are unchanged, alongside the new budget group. The handler returns budget_move_verification for a completed move without date or channel edits. verified=true confirms every channel's identity, dates and switch state and the destination group. verified=false also populates errors: stop further moves and report the changed fields or incomplete readback, even when success=true because the budget group already changed. No schedule rollback is attempted. Do not report dates preserved without that readback; report any mismatch explicitly.
add_and_edit_native_campaign_elements
Attach existing library extensions (sitelinks, callouts, etc.) to a native-structure Google Ads / Microsoft Ads campaign, so they actually serve when the campaign launches.
add_extensions_to_native_campaign
Add keywords to one or more existing Google Ads negative keyword lists.
add_keywords_to_negative_lists
Attach existing Google Ads negative keyword lists to campaigns that are ALREADY LAUNCHED — a live edit that syncs through to Google. CRITICAL: LIVE EDIT vs DRAFT EDIT — THE DISTINCTION THAT PICKS THIS TOOL: A campaign is a DRAFT until it is launched; every status after that (Launched, Launching, Editing, Finished, Error, Failed) is LIVE. Editing a live campaign is a different code path on the platform, not just a different status — the change has to be published to the running Google campaign, not only written to the wizard. • LIVE campaign (already launched) → THIS tool. It calls the platform's bulk live-edit endpoint, which publishes an update per running ad group so Google actually starts excluding the keywords. • DRAFT campaign (never launched) → the campaign-builder tools (`create_campaign` / `create_native_structure_campaign` / `add_and_edit_campaign_elements` / `add_and_edit_native_campaign_elements`, via their `negative_keyword_lists` field). Those write wizard state that gets pushed at launch. Pass a draft campaign here and it is SKIPPED with a reason rather than written — the draft path has different, destructive semantics, so this tool refuses to take it. If you are unsure which a campaign is, just call this tool: the per-campaign report tells you the status and which path applies. WORKS ON BOTH CAMPAIGN STRUCTURES. Negative keyword lists attach at the CHANNEL level, not to an ad group / container, so Precision Optimization (1×1×1) and Channel-First / Native (N×N×N) campaigns are handled identically. You do NOT need to know the structure, and you must NOT reach for `add_and_edit_native_campaign_elements` to do this on a live campaign — that tool rebuilds containers, which the platform forbids once experiments are launched. BULK BY DESIGN: pass every campaign the user named in ONE call. The platform endpoint takes a campaign list, and this tool groups them so campaigns needing the same final set share a single request. ADDS, DOES NOT REPLACE (default): the platform applies exactly the set of lists it is handed, so `mode="add"` first reads what each campaign already has and submits the union — attaching one list never silently detaches the others. Use `mode="replace"` ONLY when the user explicitly wants the campaign's negative lists to become exactly the ones named; the response's `detached` field reports what that removed. FINDING LISTS: pass `listNames` (what the user says) and/or `listIds` (from `list_negative_keywords_list`). Names must match an existing list EXACTLY (case-insensitive) — a name that matches nothing is reported in `warnings` and skipped, never swapped for a similar list. To attach a list that does not exist yet, create it first with `create_negative_keywords_list`. COMMON USE CASES: 1. Add one list to a running campaign: add_negative_keyword_lists_to_live_campaigns(campaignIds=[159490], listNames=["Competitor Brands"]) 2. Same lists across several live campaigns, one call: add_negative_keyword_lists_to_live_campaigns(campaignIds=[159490, 159502], listNames=["Job Seekers", "Free Content"]) 3. Make a campaign's negatives exactly one list (removes any others): add_negative_keyword_lists_to_live_campaigns(campaignIds=[159490], listIds=[43256533], mode="replace") RESPONSE FORMAT: Per campaign: status, `edit_path` ("live" / "draft"), `attached_before`, `newly_attached`, `already_attached`, `detached`, `attached_after`, and an `action` of submitted / no_change / skipped / failed. Top level carries `submitted_campaign_ids`, `warnings`, `errors`, and `delivery_note`. WARNING: ASYNC — REPORT IT HONESTLY: the platform accepts this in the background and answers with no body. `action: "submitted"` means ACCEPTED, not applied. It also drops campaigns server-side WITHOUT an error when they are locked by another pending change or when a launched campaign is not currently active/paused (e.g. completed). Tell the user the change was submitted and that it lands on Google shortly — do not claim it is live, and if they need certainty, re-check the campaign a little later. CHANNEL SCOPE: GOOGLE_ADS only — the platform endpoint is hardcoded to the Google Ads channel. It does NOT work for Microsoft Ads (Bing) even though Microsoft has the same negative-list concept; if the user asks for Microsoft, say this is not supported yet rather than calling with channel=GOOGLE_ADS.
add_negative_keyword_lists_to_live_campaigns
Archive (soft-delete) one or more ads on the Metadata platform.
archive_ad
Archive a custom audience by ID. Returns the platform operation result or an error. Archived audiences are no longer available for new targeting.
archive_audience
Archive one or more campaigns, with a result per campaign.
archive_campaigns
Check whether a draft campaign is ready to launch, per channel. Reads the campaign's real configuration from the platform and reports, for each ENABLED channel, whether it has the ads, audience, offer, budget AND a live channel connection it needs to go live - plus a specific list of blockers for anything missing. Enabled Facebook/Instagram video creatives need a saved Meta video_id in their creative; a later library upload does not repair a creative saved without one.
check_campaign_launch_readiness
Clear the account’s default marketing-automation destination list for future campaign-channel creation. Existing channels retain their captured values. Returns status CLEARED with listId, provider, and name set to null, or an error.
clear_default_ma_list
Create an OAuth authorization URL for the selected CRM. Returns a redirect URL for the account owner to complete the provider authorization flow. Returning the URL does not establish a connection. External callers must supply acknowledge_data_access=true for the requested credential grant; otherwise the server refuses the call.
connect_crm
Create an OAuth authorization URL for the selected advertising channel. Returns url and state for the account owner to complete the provider authorization flow; for LinkedIn it also returns next_step, because the user may still need to choose the ad account and campaign group after signing in. Returning the URL does not establish a connection; check it afterwards with get_integrations_status. External callers must supply acknowledge_data_access=true for the requested credential grant; otherwise the server refuses the call.
connect_channel
Create a dynamic Insights Retargeting audience from a saved Insights (Spotlight) segment: the companies matching the segment inside a lookback window, refreshed automatically as the journey data changes. TWO VARIANTS (audience_type): - "contacts" (default): Insights Retargeting Contacts, platform type WEBSITE_RETARGETING. Contacts at the matching accounts, matched through the Metadata contact graph; usable on LinkedIn, Facebook, Instagram, X and Reddit. - "accounts": Insights Retargeting Accounts, platform type WEBSITE_ACCOUNT_RETARGETING. The matching COMPANIES pushed to LinkedIn as a matched company audience; LinkedIn only. The shape for account-level INCLUSION or EXCLUSION on LinkedIn, e.g. suppressing accounts that already received 200+ impressions from a sequenced program. WHEN: behaviour- or CRM-state-based retargeting and suppression ("retarget accounts that visited pricing", "exclude accounts we already saturated", "high engagement score not in the CRM"). NOT for firmographic / technographic / intent asks (use those audience tools), and NOT for LinkedIn ad-engagement retargeting (create_linkedin_engagement_retargeting_audience works off LinkedIn's own engagement signals; this one works off the Spotlight journey: website visits, impressions, clicks, scores, CRM state). WORKFLOW (each step is checked and a failure is refused with the reason): 1. list_segments, then get_segment_criteria(segment_id, lookback_window): the segment must exist, be READY, and match at least one account in the window. A segment matching 0 accounts is refused (widen the window, or create_segment with looser criteria). 2. lookback_window in days (1 to 365): the window the segment's metrics are evaluated over ("in the last 90 days" = 90). 3. Call this tool with a descriptive name. The audience appears in the library as "Insights Retargeting Contacts (Dynamic)" or "Insights Retargeting Accounts (Dynamic)". RETURNS: {success, id, audience_id, audience_name, status, audience_type, platform_audience_type, segment_id, segment_name, lookback_window, accounts_in_window, channels, expectedNumberOfCompanies, expectedNumberOfContacts, criteria}. Member matching is asynchronous: -1 or 0 right after creation means "not matched yet"; check again later with get_deep_audience_details. USED AS AN EXCLUSION: Ann attaches it through add_and_edit_campaign_elements (`exclude_audiences`) on the campaign that must not reach those accounts.
create_audience_from_segment
Create Bombora buyer intent audiences on the Metadata platform. Creates B2B audiences based on buyer intent topics, company firmographics, contact attributes, and geographic targeting. IMPORTANT PREREQUISITE: Before using this tool, call get_intent_topics first to verify that Bombora topics are available. If get_intent_topics returns NO topics (empty list), Bombora is NOT available for this account — do NOT suggest or use this tool. Instead, recommend creating a firmographic audience (create_firmographic_audience) as the preferred alternative. Firmographic audiences are the default and most commonly used audience type. WHEN TO USE: - ONLY after get_intent_topics confirms that Bombora topics are available - Create targeted B2B audiences based on buyer intent signals using Bombora data - Target companies by industry, size, and employee count - Target contacts by seniority level and job function - Target specific buyer intent topics (e.g., Pardot, Salesforce) - Set geographic targeting and contact limits per company BUYER INTENT TOPICS: Use the get_intent_topics tool to retrieve available intent topics before creating the audience. Intent topics represent buyer interest areas such as: - CRM solutions (e.g., Pardot, Salesforce) - Marketing automation platforms - Analytics and BI tools - And many others based on available topics TARGETING OPTIONS: - Intent Topics: Use topic values from get_intent_topics (required for Bombora audience) - Industries: Use industry IDs. Examples: 1=Defense & Space, 4=Computer Software, 6=Internet, 7=Semiconductors, 8=Telecommunications, 11=Management Consulting, 12=Biotechnology, 41=Banking, 42=Insurance, 43=Financial Services, 80=Marketing & Advertising, 96=Information Technology & Services - Employees: "FROM_1_TO_10", "FROM_10_TO_50", "FROM_50_TO_200", "FROM_200_TO_500", "FROM_500_TO_1000", "FROM_1000_TO_5000", "FROM_5000_TO_10000", "OVER_10000" - Job Function / Seniority / Job Title / Location: identical shape to the Firmographic + G2 tools (PRD-29704 — the old Bombora-specific names `function_ids` / `seniority_ids` / `countries` / `cities` were renamed to the canonical contact-criteria fields below so Max can transfer the same criteria across audience types). CONTACTS CRITERIA: Use the following parameters to filter and target specific contacts within accounts: GEOGRAPHIC TARGETING: - location_country_ids: Array of country IDs (e.g., [29] for Brazil, [229] for United States) - location_state_ids: Array of state IDs (e.g., [5] for California, [32] for New York) JOB TITLES: - job_title_includes: Array of free text strings to include (e.g., ["Software Engineer", "Manager"]) - job_title_excludes: Array of free text strings to exclude (e.g., ["Senior", "Lead"]) JOB FUNCTIONS: Valid job function IDs and their labels: - 1: Marketing, 2: Sales, 3: Customer Service, 4: Finance, 5: Human Resources, 6: Public Relations - 7: Media, 8: Design, 9: Engineering, 10: Operations, 11: Legal, 12: Education - 13: Health, 14: Real Estate, 15: Accounting, 16: Administrative, 17: Business Development - 18: Community and Social Services, 19: Consulting, 20: Entrepreneurship, 21: Information Technology - 22: Military and Protective Services, 23: Product Management, 24: Program and Project Management - 25: Purchasing, 26: Quality Assurance, 27: Research, 28: Trades - job_function_include_ids: Array of job function IDs to include (e.g., [9] for Engineering) - job_function_exclude_ids: Array of job function IDs to exclude SENIORITY LEVELS: Valid seniority IDs and their labels: - 2: Manager, 3: Director, 4: VP, 5: CXO, 6: Unpaid, 7: Training - 8: Senior, 9: Owner, 10: Entry, 11: Partner - seniority_include_ids: Array of seniority level IDs to include (e.g., [10, 7] for Entry and Training) - seniority_exclude_ids: Array of seniority level IDs to exclude CONTACT LIMITS: - contacts_per_company_limit: Maximum number of contacts to target per company (optional). Example: 20 USAGE NOTES: - All ID fields (countries, states, job functions, seniorities) use numeric IDs from the platform - Job titles are free text strings, not IDs - Use include parameters to specify which criteria to target - Use exclude parameters to filter out contacts matching specific criteria - Combine multiple criteria for precise targeting (e.g., Senior Engineers in California) - Criteria are combined with AND logic, so all conditions must be met CONTACTS CRITERIA PARAMETERS(Usually after other initial audience parameters to be described next): - location_country_ids: Array of country IDs (optional) - location_state_ids: Array of state IDs (optional) - job_title_includes: Array of job title keywords to include (optional) - job_title_excludes: Array of job title keywords to exclude (optional) - job_function_include_ids: Array of job function IDs (optional) - job_function_exclude_ids: Array of job function IDs (optional) - seniority_include_ids: Array of seniority level IDs (optional) - seniority_exclude_ids: Array of seniority level IDs (optional) - contacts_per_company_limit: Maximum contacts per company (optional) Returns audience details with ID, size estimation, and creation status.
create_bombora_audience
Create a **CSV Upload - LinkedIn Native** audience (platform `customAudienceType=NATIVE_TARGETING_CSV`).
create_csv_upload_linkedin_native_audience
Create a draft campaign using Channel First Structure (NxNxN), also called Native Structure. Audiences, ads, and offers are grouped within channel-specific containers. Returns the draft campaign and channel configuration or validation errors. This tool does not launch it.
create_native_structure_campaign
Create a draft campaign using Precision Optimization (1x1x1), with a separate experiment for each configured audience, ad, and offer combination. Supports LinkedIn, Facebook, Instagram, Google Ads, Reddit, and Microsoft Ads. Ads are attached individually through ads.list; ads.groups creates named Metadata platform ad groups only when the user asks for them, each with at least two distinct compatible ads (the same ad type on LinkedIn) and a name of at most 50 characters. Returns the draft campaign and channel configuration or validation errors. This tool does not launch it.
create_campaign
Create a Facebook native criteria audience using Facebook-supported targeting criteria. Build audiences based on Facebook native industries, geographic location, job titles, interests, and age range.
create_facebook_native_criteria_audience
Create B2B company firmographic audiences for targeted advertising campaigns. Build audiences based on company attributes (industry, size, revenue) and contact-level criteria. ESTIMATE-ONLY MODE: Pass estimate_only=true to preview audience size (companies + contacts) WITHOUT creating the audience. In this mode the tool returns expectedNumberOfCompanies, expectedNumberOfContacts, and cappedContactCount. Default is false (audience is created). PREFERRED AUDIENCE TYPE: This is the DEFAULT and most commonly used audience type on the Metadata platform. When the user asks to create an audience without specifying a type, prefer this tool. Only suggest Bombora audiences if get_intent_topics returns available topics. Only suggest G2 audiences if G2 is confirmed as connected via get_integrations_status and the user specifically requests G2 targeting. ALSO KNOWN AS: company audience, target companies, B2B audience, business targeting, account-based audience, ABM list, company targeting KEYWORDS: company, companies, audience, target, targeting, B2B, business, firmographic, industry, size, employees, revenue, ABM, account-based, LinkedIn, Facebook WHEN TO USE: - Default choice when the user wants to create a B2B audience - Create targeted B2B audiences for LinkedIn, Facebook campaigns - Target companies by industry, size, revenue - Target contacts by seniority level and job function - Set geographic targeting and contact limits per company TARGETING OPTIONS: - Industries: Use industry IDs. Examples: 1=Defense & Space, 4=Computer Software, 6=Internet, 7=Semiconductors, 8=Telecommunications, 11=Management Consulting, 12=Biotechnology, 41=Banking, 42=Insurance, 43=Financial Services, 80=Marketing & Advertising, 96=Information Technology & Services, more values in detail in the input schema - Employees: "0 - 9", "10 - 49", "50 - 199", "200 - 499", "500 - 999", "1,000 - 4,999", "5,000 - 9,999", "10,000+" - Revenue: "$1M - $10M", "$10M - $50M", "$50M - $100M", "$100M - $200M", "$500M - $1B", "$1B+" CONTACTS CRITERIA: Use the following parameters to filter and target specific contacts within accounts: GEOGRAPHIC TARGETING: - location_country_ids: Array of country IDs (e.g., [29] for Brazil, [229] for United States) - location_state_ids: Array of state IDs (e.g., [5] for California, [32] for New York) JOB TITLES: - job_title_includes: Array of free text strings to include (e.g., ["Software Engineer", "Manager"]) - job_title_excludes: Array of free text strings to exclude (e.g., ["Senior", "Lead"]) JOB FUNCTIONS: Valid job function IDs and their labels: - 1: Marketing, 2: Sales, 3: Customer Service, 4: Finance, 5: Human Resources, 6: Public Relations - 7: Media, 8: Design, 9: Engineering, 10: Operations, 11: Legal, 12: Education - 13: Health, 14: Real Estate, 15: Accounting, 16: Administrative, 17: Business Development - 18: Community and Social Services, 19: Consulting, 20: Entrepreneurship, 21: Information Technology - 22: Military and Protective Services, 23: Product Management, 24: Program and Project Management - 25: Purchasing, 26: Quality Assurance, 27: Research, 28: Trades - job_function_include_ids: Array of job function IDs to include (e.g., [9] for Engineering) - job_function_exclude_ids: Array of job function IDs to exclude SENIORITY LEVELS: Valid seniority IDs and their labels: - 2: Manager, 3: Director, 4: VP, 5: CXO, 6: Unpaid, 7: Training - 8: Senior, 9: Owner, 10: Entry, 11: Partner - seniority_include_ids: Array of seniority level IDs to include (e.g., [10, 7] for Entry and Training) - seniority_exclude_ids: Array of seniority level IDs to exclude CONTACT LIMITS: - contacts_per_company_limit: Maximum number of contacts to target per company (optional). Example: 20 USAGE NOTES: - All ID fields (countries, states, job functions, seniorities) use numeric IDs from the platform - Job titles are free text strings, not IDs - Use include parameters to specify which criteria to target - Use exclude parameters to filter out contacts matching specific criteria - Combine multiple criteria for precise targeting (e.g., Senior Engineers in California) - Criteria are combined with AND logic, so all conditions must be met CONTACTS CRITERIA PARAMETERS(Usually after other initial audience parameters to be described next): - location_country_ids: Array of country IDs (optional) - location_state_ids: Array of state IDs (optional) - job_title_includes: Array of job title keywords to include (optional) - job_title_excludes: Array of job title keywords to exclude (optional) - job_function_include_ids: Array of job function IDs (optional) - job_function_exclude_ids: Array of job function IDs (optional) - seniority_include_ids: Array of seniority level IDs (optional) - seniority_exclude_ids: Array of seniority level IDs (optional) - contacts_per_company_limit: Maximum contacts per company (optional) PARAMETERS: - name: Audience name (required) - **IMPORTANT: Name MUST NOT exceed 50 characters. This is a mandatory requirement.** - industries: Array of industry IDs (optional) - employees: Array of employee count ranges (optional) - revenue: Array of revenue ranges (optional) RETURNS: Audience details with ID, size estimation, and creation status. COMMON USE CASES: - Target software companies with 50-500 employees - Find companies in specific industries with revenue ranges - Build audiences with contact-level filtering (seniority, job function, location) - Combine firmographic and contact criteria for precise B2B targeting IMPORTANT NOTES: - **CRITICAL: Audience name MUST NOT exceed 50 characters - this is mandatory and will cause creation to fail if exceeded** - name is the only required parameter - All other parameters are optional for flexible audience creation - Contact criteria fields work the same as in G2 metadata dynamic audiences - Audience size depends on firmographic filters and applied contacts criteria
create_firmographic_audience
Create a **G2 Intent (Dynamic)** audience (platform `customAudienceType=DYNAMIC_G2_CONTACT`). AUDIENCE TYPE (mirrors the UI's "Audience Type" dropdown): • UI label: "G2 Intent (Dynamic)" • Platform enum: DYNAMIC_G2_CONTACT • Refreshes daily as G2 intent signals update; uses generic contact criteria (not LinkedIn-native). PREREQUISITE: • G2 integration MUST be connected. If not, do NOT call this tool — recommend `create_firmographic_audience`. WHEN TO USE (exact user phrasing this tool should match): • "G2 Intent (Dynamic)" (without "LinkedIn Native") • "G2 intent dynamic audience" • "Dynamic G2 audience" • The user wants G2 intent that refreshes daily on Facebook/LinkedIn/other channels (not specifically LinkedIn-native). WHEN NOT TO USE: • If the user said "LinkedIn Native" → use `create_g2_intent_linkedin_native_dynamic_audience`. • If the user said "Static" → use `create_g2_intent_static_audience`. BUYING STAGES — REQUIRED BY THE PLATFORM: Same as the LinkedIn Native variant: ASK the user if missing. DO NOT default. CONTACTS CRITERIA: Use the following parameters to filter and target specific contacts within accounts: GEOGRAPHIC TARGETING: - location_country_ids: Array of country IDs (e.g., [29] for Brazil, [229] for United States) - location_state_ids: Array of state IDs (e.g., [5] for California, [32] for New York) JOB TITLES: - job_title_includes: Array of free text strings to include (e.g., ["Software Engineer", "Manager"]) - job_title_excludes: Array of free text strings to exclude (e.g., ["Senior", "Lead"]) JOB FUNCTIONS: Valid job function IDs and their labels: - 1: Marketing, 2: Sales, 3: Customer Service, 4: Finance, 5: Human Resources, 6: Public Relations - 7: Media, 8: Design, 9: Engineering, 10: Operations, 11: Legal, 12: Education - 13: Health, 14: Real Estate, 15: Accounting, 16: Administrative, 17: Business Development - 18: Community and Social Services, 19: Consulting, 20: Entrepreneurship, 21: Information Technology - 22: Military and Protective Services, 23: Product Management, 24: Program and Project Management - 25: Purchasing, 26: Quality Assurance, 27: Research, 28: Trades - job_function_include_ids: Array of job function IDs to include (e.g., [9] for Engineering) - job_function_exclude_ids: Array of job function IDs to exclude SENIORITY LEVELS: Valid seniority IDs and their labels: - 2: Manager, 3: Director, 4: VP, 5: CXO, 6: Unpaid, 7: Training - 8: Senior, 9: Owner, 10: Entry, 11: Partner - seniority_include_ids: Array of seniority level IDs to include (e.g., [10, 7] for Entry and Training) - seniority_exclude_ids: Array of seniority level IDs to exclude CONTACT LIMITS: - contacts_per_company_limit: Maximum number of contacts to target per company (optional). Example: 20 USAGE NOTES: - All ID fields (countries, states, job functions, seniorities) use numeric IDs from the platform - Job titles are free text strings, not IDs - Use include parameters to specify which criteria to target - Use exclude parameters to filter out contacts matching specific criteria - Combine multiple criteria for precise targeting (e.g., Senior Engineers in California) - Criteria are combined with AND logic, so all conditions must be met CONTACTS CRITERIA PARAMETERS(Usually after other initial audience parameters to be described next): - location_country_ids: Array of country IDs (optional) - location_state_ids: Array of state IDs (optional) - job_title_includes: Array of job title keywords to include (optional) - job_title_excludes: Array of job title keywords to exclude (optional) - job_function_include_ids: Array of job function IDs (optional) - job_function_exclude_ids: Array of job function IDs (optional) - seniority_include_ids: Array of seniority level IDs (optional) - seniority_exclude_ids: Array of seniority level IDs (optional) - contacts_per_company_limit: Maximum contacts per company (optional) PARAMETERS: • name (required, ≤ 50 chars) • intent_days (required, 1-365) • buying_stages (REQUIRED by platform — ask if missing) • Contact criteria as in CONTACTS CRITERIA above. RETURNS: id, audience_id, audience_name, audience_type (DYNAMIC_G2_CONTACT), status, buying_stages, intent_days, counts.
create_g2_intent_dynamic_audience
Create a **G2 Intent (Static)** audience (platform `customAudienceType=G2_ABM_CONTACT`). AUDIENCE TYPE (mirrors the UI's "Audience Type" dropdown): • UI label: "G2 Intent (Static)" • Platform enum: G2_ABM_CONTACT • SNAPSHOT at creation time — does NOT refresh daily. PREREQUISITE: • G2 integration MUST be connected. WHEN TO USE (exact user phrasing this tool should match): • "G2 Intent (Static)" • "Static G2 audience" • The user explicitly wants the static / snapshot variant rather than the daily-refreshing dynamic one. WHEN NOT TO USE: • If the user said "Dynamic" → use `create_g2_intent_dynamic_audience` or `create_g2_intent_linkedin_native_dynamic_audience`. BUYING STAGES — REQUIRED BY THE PLATFORM: ASK the user if missing. DO NOT default. CONTACTS CRITERIA: Use the following parameters to filter and target specific contacts within accounts: GEOGRAPHIC TARGETING: - location_country_ids: Array of country IDs (e.g., [29] for Brazil, [229] for United States) - location_state_ids: Array of state IDs (e.g., [5] for California, [32] for New York) JOB TITLES: - job_title_includes: Array of free text strings to include (e.g., ["Software Engineer", "Manager"]) - job_title_excludes: Array of free text strings to exclude (e.g., ["Senior", "Lead"]) JOB FUNCTIONS: Valid job function IDs and their labels: - 1: Marketing, 2: Sales, 3: Customer Service, 4: Finance, 5: Human Resources, 6: Public Relations - 7: Media, 8: Design, 9: Engineering, 10: Operations, 11: Legal, 12: Education - 13: Health, 14: Real Estate, 15: Accounting, 16: Administrative, 17: Business Development - 18: Community and Social Services, 19: Consulting, 20: Entrepreneurship, 21: Information Technology - 22: Military and Protective Services, 23: Product Management, 24: Program and Project Management - 25: Purchasing, 26: Quality Assurance, 27: Research, 28: Trades - job_function_include_ids: Array of job function IDs to include (e.g., [9] for Engineering) - job_function_exclude_ids: Array of job function IDs to exclude SENIORITY LEVELS: Valid seniority IDs and their labels: - 2: Manager, 3: Director, 4: VP, 5: CXO, 6: Unpaid, 7: Training - 8: Senior, 9: Owner, 10: Entry, 11: Partner - seniority_include_ids: Array of seniority level IDs to include (e.g., [10, 7] for Entry and Training) - seniority_exclude_ids: Array of seniority level IDs to exclude CONTACT LIMITS: - contacts_per_company_limit: Maximum number of contacts to target per company (optional). Example: 20 USAGE NOTES: - All ID fields (countries, states, job functions, seniorities) use numeric IDs from the platform - Job titles are free text strings, not IDs - Use include parameters to specify which criteria to target - Use exclude parameters to filter out contacts matching specific criteria - Combine multiple criteria for precise targeting (e.g., Senior Engineers in California) - Criteria are combined with AND logic, so all conditions must be met CONTACTS CRITERIA PARAMETERS(Usually after other initial audience parameters to be described next): - location_country_ids: Array of country IDs (optional) - location_state_ids: Array of state IDs (optional) - job_title_includes: Array of job title keywords to include (optional) - job_title_excludes: Array of job title keywords to exclude (optional) - job_function_include_ids: Array of job function IDs (optional) - job_function_exclude_ids: Array of job function IDs (optional) - seniority_include_ids: Array of seniority level IDs (optional) - seniority_exclude_ids: Array of seniority level IDs (optional) - contacts_per_company_limit: Maximum contacts per company (optional) PARAMETERS: • name (required, ≤ 50 chars) • intent_days (required, 1-365) • buying_stages (REQUIRED — ask if missing) • Contact criteria as in CONTACTS CRITERIA above. RETURNS: id, audience_id, audience_name, audience_type (G2_ABM_CONTACT), status, buying_stages, intent_days, counts.
create_g2_intent_static_audience
Create a **G2 Intent - LinkedIn Native (Dynamic)** audience (platform `customAudienceType=DYNAMIC_G2`).
create_g2_intent_linkedin_native_dynamic_audience
Create a business logo extension in the account’s Google Ads asset library using the supplied fields. Returns the extension result and available identifier, or a validation/platform error. Attaching the extension to a campaign is a separate operation.
create_google_business_logo_extension
Create a callout extension in the account’s Google Ads asset library using the supplied fields. Returns the extension result and available identifier, or a validation/platform error. Attaching the extension to a campaign is a separate operation.
create_google_callout_extension
Create a image extension in the account’s Google Ads asset library using the supplied fields. Returns the extension result and available identifier, or a validation/platform error. Attaching the extension to a campaign is a separate operation.
create_google_image_extension
Create a lead form extension in the account’s Google Ads asset library using the supplied fields. Returns the extension result and available identifier, or a validation/platform error. Attaching the extension to a campaign is a separate operation.
create_google_lead_form_extension
Create a price extension in the account’s Google Ads asset library using the supplied fields. Returns the extension result and available identifier, or a validation/platform error. Attaching the extension to a campaign is a separate operation.
create_google_price_extension
Create a promotion extension in the account’s Google Ads asset library using the supplied fields. Returns the extension result and available identifier, or a validation/platform error. Attaching the extension to a campaign is a separate operation.
create_google_promotion_extension
Create a sitelink extension in the account’s Google Ads asset library using the supplied fields. Returns the extension result and available identifier, or a validation/platform error. Attaching the extension to a campaign is a separate operation.
create_google_sitelink_extension
Create a structured snippet extension in the account’s Google Ads asset library using the supplied fields. Returns the extension result and available identifier, or a validation/platform error. Attaching the extension to a campaign is a separate operation.
create_google_structured_snippet_extension
Create one or more positive keywords in the Metadata platform library.
create_keywords
Create a **LinkedIn Engagement Retargeting** audience: people who already engaged with the advertiser's LinkedIn ads, company page, or website.
create_linkedin_engagement_retargeting_audience
Create a LinkedIn native criteria audience using LinkedIn-supported targeting criteria. Build audiences based on job titles, skills, company names, employee count ranges, revenue ranges, and geographic location.
create_linkedin_native_criteria_audience
Create a Marketing-Automation-contacts custom audience (platform customAudienceType MA_CONTACTS_STATIC or MA_CONTACTS_DYNAMIC) from a provider library list.
create_marketing_automation_contacts_audience
Create a business logo extension in the account’s Microsoft Ads asset library using the supplied fields. Returns the extension result and available identifier, or a validation/platform error. Attaching the extension to a campaign is a separate operation.
create_microsoft_business_logo_extension
Create a callout extension in the account’s Microsoft Ads asset library using the supplied fields. Returns the extension result and available identifier, or a validation/platform error. Attaching the extension to a campaign is a separate operation.
create_microsoft_callout_extension
Create a image extension in the account’s Microsoft Ads asset library using the supplied fields. Returns the extension result and available identifier, or a validation/platform error. Attaching the extension to a campaign is a separate operation.
create_microsoft_image_extension
Create a price extension in the account’s Microsoft Ads asset library using the supplied fields. Returns the extension result and available identifier, or a validation/platform error. Attaching the extension to a campaign is a separate operation.
create_microsoft_price_extension
Create a promotion extension in the account’s Microsoft Ads asset library using the supplied fields. Returns the extension result and available identifier, or a validation/platform error. Attaching the extension to a campaign is a separate operation.
create_microsoft_promotion_extension
Create a sitelink extension in the account’s Microsoft Ads asset library using the supplied fields. Returns the extension result and available identifier, or a validation/platform error. Attaching the extension to a campaign is a separate operation.
create_microsoft_sitelink_extension
Create a structured snippet extension in the account’s Microsoft Ads asset library using the supplied fields. Returns the extension result and available identifier, or a validation/platform error. Attaching the extension to a campaign is a separate operation.
create_microsoft_structured_snippet_extension
Create a new negative keywords list in the Metadata platform with Google Ads integration.
create_negative_keywords_list
Create a Reddit target group with location, communities, interests, or keyword criteria and optional audience references. Returns the group or validation/platform errors. The first include block contains location criteria with isModifiable=false.
create_reddit_target_group
Create a new retargeting audience on the Metadata platform from native channel audiences.
create_retargeting_audience
Create a Salesforce-contacts custom audience (platform customAudienceType SFDC_CONTACTS_STATIC or SFDC_CONTACTS_DYNAMIC) from a Salesforce mixed-criteria.
create_salesforce_contacts_audience
Create a saved Insights segment from typed criteria over account-journey records. Returns the segment ID, name, status, and available account count. Invalid fields, operators, or values return validation errors; criteria groups support up to three nested group levels.
create_segment
Create a LinkedIn target group with a name, include rules, and optional exclusions. Criteria and audience references are validated against the account and channel. Returns the group or validation/platform errors.
create_target_group
Creates B2B audiences based on technology stack, software usage, and firmographic attributes. ESTIMATE-ONLY MODE: Pass estimate_only=true to preview audience size (companies + contacts) WITHOUT creating the audience. In this mode the tool returns expectedNumberOfCompanies, expectedNumberOfContacts, and cappedContactCount. Default is false (audience is created). WHEN TO USE: - Target companies using specific technologies or software - Create audiences based on technology adoption patterns - Target by technology categories (CRM, Marketing Automation, Analytics, etc.) - Combine technology targeting with firmographic filters - Build tech-savvy audience segments for B2B campaigns - User wants to target companies and contacts that are familiar/using some specific software like hubspot, g2, etc. TECHNOLOGY CATEGORIES: - CRM: Salesforce, HubSpot, Microsoft Dynamics, Zoho, Pipedrive - Marketing Automation: Marketo, Pardot, Eloqua, HubSpot, Mailchimp - Analytics: Google Analytics, Adobe Analytics, Mixpanel, Amplitude - E-commerce: Shopify, Magento, WooCommerce, BigCommerce - Content Management: WordPress, Drupal, Joomla, Adobe Experience Manager - Collaboration: Slack, Microsoft Teams, Zoom, Asana, Monday.com - Cloud Infrastructure: AWS, Azure, Google Cloud, Oracle Cloud - Database: MySQL, PostgreSQL, MongoDB, Oracle, SQL Server - And many more technology categories available FIRMOGRAPHIC FILTERS (OPTIONAL): - Industries: Use industry IDs (1-148, same as firmographic audiences) - Employees: "LESS_THAN_10", "FROM_10_TO_50", "FROM_50_TO_200", "FROM_200_TO_500", "FROM_500_TO_1000", "FROM_1000_TO_5000", "FROM_5000_TO_10000", "OVER_10000" - Revenue: "LESS_THAN_1M", "FROM_1M_TO_10M", "FROM_10M_TO_50M", "FROM_50M_TO_100M", "FROM_100M_TO_200M", "FROM_200M_TO_500M", "FROM_500M_TO_1000M", "OVER_1000M" CONTACTS CRITERIA: Use the following parameters to filter and target specific contacts within accounts: GEOGRAPHIC TARGETING: - location_country_ids: Array of country IDs (e.g., [29] for Brazil, [229] for United States) - location_state_ids: Array of state IDs (e.g., [5] for California, [32] for New York) JOB TITLES: - job_title_includes: Array of free text strings to include (e.g., ["Software Engineer", "Manager"]) - job_title_excludes: Array of free text strings to exclude (e.g., ["Senior", "Lead"]) JOB FUNCTIONS: Valid job function IDs and their labels: - 1: Marketing, 2: Sales, 3: Customer Service, 4: Finance, 5: Human Resources, 6: Public Relations - 7: Media, 8: Design, 9: Engineering, 10: Operations, 11: Legal, 12: Education - 13: Health, 14: Real Estate, 15: Accounting, 16: Administrative, 17: Business Development - 18: Community and Social Services, 19: Consulting, 20: Entrepreneurship, 21: Information Technology - 22: Military and Protective Services, 23: Product Management, 24: Program and Project Management - 25: Purchasing, 26: Quality Assurance, 27: Research, 28: Trades - job_function_include_ids: Array of job function IDs to include (e.g., [9] for Engineering) - job_function_exclude_ids: Array of job function IDs to exclude SENIORITY LEVELS: Valid seniority IDs and their labels: - 2: Manager, 3: Director, 4: VP, 5: CXO, 6: Unpaid, 7: Training - 8: Senior, 9: Owner, 10: Entry, 11: Partner - seniority_include_ids: Array of seniority level IDs to include (e.g., [10, 7] for Entry and Training) - seniority_exclude_ids: Array of seniority level IDs to exclude CONTACT LIMITS: - contacts_per_company_limit: Maximum number of contacts to target per company (optional). Example: 20 USAGE NOTES: - All ID fields (countries, states, job functions, seniorities) use numeric IDs from the platform - Job titles are free text strings, not IDs - Use include parameters to specify which criteria to target - Use exclude parameters to filter out contacts matching specific criteria - Combine multiple criteria for precise targeting (e.g., Senior Engineers in California) - Criteria are combined with AND logic, so all conditions must be met CONTACTS CRITERIA PARAMETERS(Usually after other initial audience parameters to be described next): - location_country_ids: Array of country IDs (optional) - location_state_ids: Array of state IDs (optional) - job_title_includes: Array of job title keywords to include (optional) - job_title_excludes: Array of job title keywords to exclude (optional) - job_function_include_ids: Array of job function IDs (optional) - job_function_exclude_ids: Array of job function IDs (optional) - seniority_include_ids: Array of seniority level IDs (optional) - seniority_exclude_ids: Array of seniority level IDs (optional) - contacts_per_company_limit: Maximum contacts per company (optional) PARAMETERS: - name: Audience name (required) - **IMPORTANT: Name MUST NOT exceed 50 characters. This is a mandatory requirement.** - technologies: Array of technology names (required) - industries: Array of industry IDs (optional) - employees: Array of employee count ranges (optional) - revenue: Array of revenue ranges (optional) RETURNS: Audience details with ID, size estimation, and creation status, plus `technologies_requested`, `technologies_targeted` (the indexed names actually sent) and `technology_resolution`. COMMON USE CASES: - Target companies using Salesforce and HubSpot - Find AWS users in the software industry - Build audiences of companies using specific MarTech stacks - Combine technology and firmographic targeting for precise B2B campaigns IMPORTANT NOTES: - **CRITICAL: Audience name MUST NOT exceed 50 characters - this is mandatory and will cause creation to fail if exceeded** - name and technologies are required parameters - All other parameters are optional for flexible audience creation - Technology names are resolved against the platform's indexed product catalog: an exact name is used as given; otherwise the closest indexed match is used and reported back in `technology_resolution` (requested, used, exact_match, alternatives) plus a plain-words `technology_note`. A name with no catalog match fails the call with an error; nothing is dropped silently. - When the call fails as too small and the error names a substituted technology, retry with one of the listed alternatives or a broader technology name. Do NOT loosen industries, seniority, employee bands or countries first: the substituted product is the cause. - Contact criteria fields work the same as in other audience types - Audience size depends on technology filters and applied criteria
create_technographic_audience
Create or update a budget group with its channel, metric, allocation, and budget settings. This can affect advertising spend and requires confirm_budget_impact=true for the supplied settings; otherwise returns requires_confirmation and proposed_changes without writing. An id selects an existing group for update. Data containing only id and monthlyCap changes the monthly cap alone: it preserves the group's saved optimization, dates, funnels and campaigns and returns budget_update_verification; report success only when verified is true, and stop without retrying when it is false. New groups default autoApplyBudget to false; explicit autoApplyBudget=true allows the platform to apply the configured budget automatically. On create, omitting autoPauseConfigurationId uses the account's default auto pause rule set; on update, omitting it keeps the current one, and a different rule set must be one listed by get_budget_group. Returns the group or a validation/platform error.
create_budget_group
Create or update a Google Ads text ad. An id selects an existing ad for update. Headlines are limited to 30 characters and descriptions to 90; repeated copy is rejected. Returns the ad definition or a validation/platform error.
create_update_google_ads_ad
Metadata ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve Metadata's ChatGPT Plugin discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are Metadata alternatives on ChatGPT?
As of 2026-11-02, Metadata competes with Ad Account Health Check, Ad Reporting by PaidSync.ai, Ad Superpowers, Adalysis, AdBeacon, AdKit - Ads Manager, Adlane, AdLiftr and 72 more in ChatGPT Ad Campaign Analytics & Reporting, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.