LoomaScale
Run Meta & Google ads
- Category
- Marketing
- Primary Subcategory
- Ad Campaign Analytics & Reporting
Integration details
Description
LoomaScale helps users inspect connected Google and Meta ad accounts, review campaign performance and pacing, research keywords and search terms, create paused campaigns, and manage campaign delivery and budgets. Activating a campaign starts real ad spend; every create, activation, and budget change is validated against a user-configured daily spend cap.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Ad Campaign Analytics & Reporting
- Secondary Subcategories
- None listed
- Brand
- LoomaScale
- Access
- Account required
- First tracked
- 2026-09-14
- Tool count
- 53
- Geography
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
ChatGPT Plugin Discovery Score
ChatGPT Plugin discovery is coming soon
ChatGPT can surface a Plugin when it matches a user's request.Your Plugin Discovery Score measures how often yours appears.
No spam. Unsubscribe any time.
What discovery looks like

Competing in ChatGPT Ad Campaign Analytics & Reporting
View Category53 tools agents can invoke
Activate a PAUSED Google Ads campaign so it starts spending. Only works on campaigns created by LoomaScale, and re-checks the budget against your daily cap first. For Meta campaigns, use meta_activate_campaign.
Add keywords to an existing Google Ads ad group, each with its own match type and optional CPC bid. Set negative=true to exclude a search term instead of targeting it. Google cannot move a keyword between ad groups: remove it with google_remove_keywords and add it here instead, which resets its quality score and history. Up to 50 keywords per call.
Check whether a Google Ads account is able to spend at all: its account status, whether a billing setup is approved and which payments account and profile it points at, and whether an account budget is pending, cancelled or exhausted. Use this when campaigns look enabled and ads look approved but nothing serves. The Google Ads API exposes no card balance, no billing hold and none of the payment-failure banners the Google Ads UI shows, so an empty blocker list means only that nothing billing-shaped is visible to the API — the result says where to look next. For today's spend and delivery use google_check_pacing; for per-campaign eligibility use google_list_campaigns.
Check today's spend and delivery health for a Google Ads account: pacing against daily budgets and enabled campaigns with zero delivery. If you also run Meta ads, that server exposes meta_check_pacing.
Create an ad group inside an existing Google Ads Search campaign, optionally with keywords and a default CPC bid. The ad group is created PAUSED and without ads, so it cannot spend until an ad exists and google_set_status enables it. Use this to split a bloated ad group into tighter themes; Google cannot move keywords, so the ones that belong here are re-created with google_add_keywords and dropped from the old ad group with google_remove_keywords, losing their history.
Create a Google Ads Search campaign with a responsive search ad and keywords. The campaign is created PAUSED — nothing spends until you run google_activate_campaign. Headlines are limited to 30 characters each (3-15 of them) and descriptions to 90 characters each (2-4). Pass locations to scope it geographically — without them the campaign targets every location on earth, which is Google's default; use google_find_locations to turn place names into ids. Pass languages the same way, or the ads show to people browsing Google in any language. If you also run Meta ads, that server exposes meta_create_campaign.
Create a Google Ads Performance Max campaign complete enough to serve: a budget, the campaign, one asset group with headlines, descriptions and images, optional YouTube videos and search themes. The campaign is created PAUSED — nothing spends until you run google_activate_campaign. Performance Max needs more copy than a Search ad: 3-15 headlines of 30 characters, 1-5 long headlines of 90, 2-5 descriptions of 90 with at least one under 60, a business name, and images in three required slots — Google will not run an asset group without them. It bids to maximize conversions; pass target_roas to bid on conversion value instead. Pass locations to scope it geographically — without them the campaign targets every location on earth, which is Google's default; use google_find_locations to turn place names into ids. For a Search campaign use google_create_campaign, and to change this campaign afterwards use google_update_asset_group_assets, google_update_asset_group_media, google_update_brand_assets and google_update_search_themes.
Add sitelinks — the extra links under a Search ad — and attach them to the whole account, to one campaign or to one ad group. Each sitelink needs link text of at most 25 characters and an https landing page, and may carry two description lines of at most 35 characters each — Google shows both lines or neither, so pass both or neither. Google serves at most 20 sitelinks per level, and this call is refused if the new ones would not fit. Calling it twice creates two sets: unlike ad copy, Google does not recognise a sitelink it already holds, and an asset can never be deleted. Read what is already there with google_list_sitelinks first.
Look up Google Ads locations by name and get the geo target constant id of each, with its canonical name and target type (Country, Region, City). Use this before changing location targeting with google_update_campaign_targeting, or before creating a campaign with google_create_campaign, whenever you have a place name rather than an id. Pass country_code when a name is ambiguous.
Get Google Ads performance broken down by audience: impressions, clicks, cost, CTR, conversions and conversion value per audience criterion attached to an ad group (remarketing lists, interest categories, audience segments), ordered by spend. Note that Google returns the audience as a resource name, which is not always readable. For breakdowns by device, day of week, hour or network use google_get_insights with its segments argument; for locations use google_get_geo_insights.
Get Google Ads performance broken down by location: impressions, clicks, cost, CTR, conversions and conversion value per geographic area, ordered by spend, with the location named rather than left as an id. Use this to find regions that spend without converting. For breakdowns by device, day of week, hour or network use google_get_insights with its segments argument; for audiences use google_get_audience_insights.
Get Google Ads performance metrics — impressions, clicks, cost, CTR, average CPC, conversions, and conversion value — for the whole account, per campaign, per ad group, or per keyword, over a preset or custom date range. Split rows by device, day of week, hour, or network with `segments`, and add search impression share and the share lost to budget or rank with `include_impression_share` — that is how to tell whether a campaign has room to spend more. The ad_group and keyword levels, and any segmented query, are capped at the highest-impression rows. For the keyword list and why keywords do or do not serve, use google_list_keywords; for the queries users actually typed, use google_list_search_terms; for performance by location use google_get_geo_insights and by audience google_get_audience_insights. If you also run Meta ads, that server exposes meta_get_insights.
Research new Google Ads keywords: average monthly search volume, competition level, and low/high top-of-page bid estimates for terms seeded from keyword phrases, a landing page url, or both. Use this to find terms worth adding and to check whether an existing keyword has any search volume at all. Returns the first page of results only. For keywords already in the account use google_list_keywords; for queries that already triggered ads use google_list_search_terms.
List the Google Ads accounts you can manage, including accounts reached through a manager (MCC) account. Manager accounts hold no campaigns themselves. If you also run Meta ads, that server exposes meta_list_ad_accounts.
List individual ads in a Google Ads account with their status, policy approval verdict, landing pages (the final URLs a click goes to) and, for responsive search ads, their headlines, descriptions and display paths. Use this to answer where an ad sends people and what it says. Optionally filtered by campaign or ad group. For campaigns and ad groups, use google_list_campaigns. If you also run Meta ads, that server exposes meta_list_ads.
Audit Performance Max campaigns by asset group — the level PMax actually spends at. Returns each asset group's status, ad strength, why it is or is not serving, and its impressions, clicks, cost, conversions and conversion value for the range, ordered by spend. Set include_assets to also list the assets in each group with the slot they fill and whether they are serving, and include_search_themes to list the search themes and audience signals the campaign has been told to chase. For campaign-level numbers use google_get_insights, and for the list of campaigns and their channel types use google_list_campaigns.
List campaigns in a Google Ads account, including each campaign's status, channel type, daily budget in the account's own currency (reported in the currency field), bidding strategy, the Max CPC limit of Maximize clicks campaigns, the target CPA or target ROAS an automated strategy bids to, the dates the campaign runs between, the locations and languages each campaign targets, and Google's own eligibility verdict per campaign (primaryStatus) with the reasons it is not serving. Optionally includes ad groups. For individual ads, use google_list_ads. If you also run Meta ads, that server exposes meta_list_campaigns.
Audit how a Google Ads account counts conversions: every conversion action with its category, type, status, whether it is primary (so it feeds bidding and the conversions column), its counting type, attribution model, value settings and lookback windows, plus how many conversions each one actually recorded over the date range. Use this to find duplicated actions, actions marked primary that should not be, missing conversion values, and primary actions that have stopped firing. Also returns the account's conversion goals — the (category, origin) groups bidding optimizes towards — and, when campaign_id is given, that campaign's own goals and whether it uses campaign-specific goal settings; change those with google_update_campaign_conversion_goals. For the performance numbers those conversions roll up into, use google_get_insights.
List the keywords of a Google Ads account, campaign, or ad group with their match type, status, serving status, eligibility reasons, quality score, and effective CPC bid. Use this to explain why a campaign gets no impressions: a keyword can be enabled and still never serve. Negative keywords are included and flagged. For per-keyword performance numbers use google_get_insights with level=keyword; for the queries users actually typed use google_list_search_terms; for new keyword suggestions use google_keyword_ideas.
List the actual search queries that triggered Google Ads ads, with impressions, clicks, cost, CTR, conversions, the keyword each query matched, and whether the query is already added as a keyword or excluded as a negative. Ordered by impressions and capped. Use this to find wasted spend and missing keywords. For the keyword list itself use google_list_keywords; for suggestions not yet in the account use google_keyword_ideas. Meta has no search term equivalent.
List the sitelinks of a Google Ads account — the extra links shown under a Search ad — with their link text, the two description lines, the page each one sends people to, and whether they are attached to the whole account, to one campaign or to one ad group. Use this to find campaigns running without sitelinks, sitelinks pointing at dead or generic pages, and sitelinks that just repeat the ad's own headlines. Set include_metrics to also get each sitelink's clicks, impressions, cost and conversions for the range; the clicks are split into clicks on the sitelink itself and clicks elsewhere in the ad while it was showing, because Google reports the two together and only the first belongs to the sitelink. For the ads themselves use google_list_ads, and for Performance Max asset groups use google_list_asset_groups.
Permanently remove a Google Ads campaign. Removal cannot be undone: Google keeps no way back through the API, and the campaign and its history leave the account's default views. Pause with google_set_status when the campaign may come back — a paused campaign costs nothing and keeps its history. Two safeguards apply: the campaign must already be PAUSED, and confirm_campaign_name must match its exact name. Find ids and names with google_list_campaigns.
Permanently remove keywords from a Google Ads ad group. Removal cannot be undone: re-adding the same text later creates a fresh criterion with no quality score or history, so pause with google_update_keyword when the keyword may come back. Ids that are already gone are reported as skipped instead of failing the call. Find criterion ids with google_list_keywords. Up to 50 per call.
Stop sitelinks serving on the whole account, on one campaign or on one ad group. This removes the link, not the sitelink: the asset stays in the account and can be linked again, and unlinking it from one campaign leaves the other campaigns using it alone. An asset id that is not linked at the level given is reported as skipped rather than failing the call. Get asset ids and their levels from google_list_sitelinks. To rewrite a sitelink instead of removing it, use google_update_sitelink — that keeps its performance history.
Pause or resume a Google Ads object: an individual ad, an ad group, or a whole campaign. Pausing stops its spend; resuming re-checks the governing campaign budget against your cap first. Use google_list_campaigns or google_list_ads to find ids. For Meta objects, use meta_set_status.
Raise the account-level spending limit of an invoiced Google Ads account, the total cap above every campaign budget. Use when google_check_billing reports the account budget is exhausted and nothing is serving. Cannot exceed your configured total account-budget cap and never sets an unlimited budget. Accounts that pay by card have no account budget, so this does not apply to them. For a campaign's daily budget, use google_update_budget.
Rewrite the copy of an existing responsive search ad: its headlines, descriptions, landing page and display paths. The ad keeps its id and performance history, and Google puts it back into policy review after the edit. Each list you pass REPLACES the whole list — send every headline you want the ad to have, not just the new ones — and a field you omit is left untouched. Read the current copy first with google_list_ads. Only responsive search ads can be edited this way; for other ad types create a new ad.
Rename a Google Ads ad group and/or set its default max CPC bid, which applies to every keyword in it that has no bid of its own. A bid only affects delivery when the campaign uses Manual CPC; the result says so when it does not. To pause or resume the ad group use google_set_status, and to change its keywords use google_add_keywords, google_update_keyword, or google_remove_keywords.
Replace the images, logos, YouTube video or call-to-action of a Performance Max asset group. Images are given as public https URLs, which this server downloads and uploads to Google; videos are given as YouTube video ids, not URLs. Each list REPLACES the whole slot — send every image you want the slot to have — and a slot you omit is left untouched. An image whose bytes Google already holds keeps its existing asset and its performance history, so passing the same URLs again changes nothing; note that the match is on exact bytes, so a re-encoded copy of the same picture counts as a new image. Google's shapes are enforced before anything is uploaded: marketing images 1.91:1, square 1:1, portrait 4:5, logos 1:1, landscape logos 4:1. For headlines and descriptions use google_update_asset_group_assets.
Change the business name and logos of a Google Ads campaign. On a Performance Max campaign with brand guidelines enabled — Google's default for campaigns created recently — these three assets live on the campaign rather than on each asset group, which is why google_update_asset_group_assets and google_update_asset_group_media refuse them and send you here. Logos are given as public https URLs, which this server downloads and uploads to Google: square logos must be 1:1 and at least 128x128, landscape logos 4:1 and at least 512x128. Each list REPLACES the whole slot and a slot you omit is left untouched. Brand guidelines make a business name and at least one logo mandatory, so neither can be emptied.
Change the daily budget of a Google Ads campaign. Cannot exceed your configured daily spend cap, and refuses budgets shared across several campaigns. For Meta budgets, use meta_update_budget.
Change the bidding settings of a Google Ads campaign: set or clear the Max CPC limit of a Maximize clicks campaign, and/or switch the campaign between Maximize clicks and Manual CPC. Use this when a campaign gets few or no impressions because its Max CPC limit is below the market bid, or before setting manual bids with google_update_ad_group or google_update_keyword, which Google only honours under Manual CPC. Also switches a campaign to Maximize conversions, optionally with a target CPA — the strategy that optimizes towards the campaign's conversion goals, which google_update_campaign_conversion_goals selects. Refuses campaigns governed by a portfolio bidding strategy. For daily budgets use google_update_budget.
Choose which conversion goals a Google Ads campaign optimizes for, which is what the Google Ads UI calls campaign-specific goal settings. Goals are groups of conversion actions by category and origin — pass the categories the campaign should bid towards (for example SIGNUP) and every other goal is switched off for that campaign alone. Use this before switching a campaign to MAXIMIZE_CONVERSIONS with google_update_campaign_bidding, or when a campaign optimizes for the wrong events. Read the current goals and the categories available with google_list_conversion_actions. Pass use_account_goals to hand the campaign back to the account-level goals.
Change where and in which languages a Google Ads campaign may show: add targeted locations, add excluded locations, add languages, remove existing location or language criteria, and set whether location targeting applies to people present in an area or also to people interested in it. Location entries may be geo target constant ids or place names — use google_find_locations when you only have a name; language entries may be language constant ids, ISO codes (en, uk) or names (English). Read the current targeting with google_list_campaigns and include_targeting. This tool only adds what you name and removes what you name, with one exception: excluding a location the campaign currently targets replaces that criterion, and targeting one it currently excludes does the same, because Google cannot flip a criterion in place. It never replaces the whole list. A campaign with no targeted locations reaches every location on earth, and one with no languages shows to every language.
Change how a Google Ads conversion action counts and values conversions: its counting type (ONE_PER_CLICK counts one conversion per click, MANY_PER_CLICK counts every occurrence), its category, whether it is primary and therefore feeds Smart Bidding and the conversions column, its default value and currency, and its click-through and view-through lookback windows. Use it to fix what google_list_conversion_actions reports — a purchase action counting every occurrence, a lead action inflating the number, a flat default value on an action that should send real order values. Read the action first with google_list_conversion_actions. Only the settings you pass change; the rest are left alone. Note that Google Ads only imports an action whose type starts with GOOGLE_ANALYTICS_4_, UNIVERSAL_ANALYTICS_, FIREBASE_ or THIRD_PARTY_APP_ANALYTICS_, and refuses to change its counting type or its lookback windows through the API — those live in the system that produces the conversion, so for a Google Analytics key event the counting method is set in Analytics. A UNIVERSAL_ANALYTICS_ import and an action owned by a different account (cross-account conversion tracking) cannot be edited here at all. This changes counting from now on and does not restate past conversions, and Smart Bidding takes a week or two to settle afterwards. To choose which conversions a single campaign optimizes for, use google_update_campaign_conversion_goals instead. Deleting a conversion action is not offered here because it cannot be undone.
Pause or resume a single Google Ads keyword and/or change its max CPC bid. Pausing a keyword stops it serving without deleting its history — prefer it to google_remove_keywords when the keyword may come back. A bid only affects delivery when the campaign uses Manual CPC; the result says so when it does not. Find criterion ids with google_list_keywords.
Set the search themes of a Performance Max asset group — the phrases that tell Google which demand this asset group is meant to capture, which is one of the few direct controls a Performance Max campaign has. The list you pass REPLACES the whole set: send every theme you want the asset group to have, including the ones already there. A theme that drops out of the list is deleted and this tool cannot bring it back. At most 25 themes of 80 characters each. Audience signals on the same asset group are never touched. Read the current themes first with google_list_asset_groups and include_search_themes.
Rewrite an existing Google Ads sitelink: its link text, its two description lines or the page it sends people to. Editing keeps the sitelink's id and its performance history, which is why this is the right way to fix a dead landing page or reword a link rather than removing it and creating a replacement. A sitelink is one shared asset: if it is linked to several campaigns or ad groups, this changes it in all of them, and the result lists everywhere it is used — tell the user before calling. Get asset ids from google_list_sitelinks. Pass only the fields you are changing.
Report how many LoomaScale tasks the user has left this month: used, limit, remaining, and when the counter resets. A task is one request in this chat — all the tool calls made to answer a single message count as one. The allowance comes from the user's plan (free, plus, pro or max); legacy plans are unlimited. Calling this is free — it never consumes a task and keeps working after the quota runs out. This is the LoomaScale task allowance only, not ad spend, ad account balance, or campaign budget.
Activate a PAUSED Meta campaign so it starts spending. Only works on campaigns created by LoomaScale, and re-checks the budget against your daily cap first. For Google campaigns, use google_activate_campaign.
Check today's ad spend and delivery health for a Meta ad account: pacing against daily budgets, zero-delivery active campaigns, and delivery problems.
Add a new ad, with a new creative, to an ad set that already exists — use this instead of meta_create_campaign when the campaign and ad set are already set up. The ad is created PAUSED even if the ad set is active, so it does not spend until you run meta_set_status on the returned adId. Any image is uploaded to the ad account rather than hotlinked. Use meta_list_campaigns to find the ad set id.
Create a Meta (Facebook/Instagram) ad campaign for traffic, awareness, engagement, or sales. The campaign, ad set, and ad are all created PAUSED — nothing spends until you run meta_activate_campaign. A sales campaign optimizes for website conversions and needs a Meta Pixel on the ad account; its conversion event is locked in at creation.
Look up Meta Ads locations by name and get the key each one is targeted by, with its type and the country it sits in. Use this before changing where an ad set delivers with meta_update_adset_targeting whenever you have a place name rather than a key. Countries are targeted by two-letter ISO code and need no lookup; regions, cities and zips are opaque keys that only this tool can resolve.
Get performance metrics for a Meta ad account at account, campaign, ad set, or individual ad level: impressions, clicks, spend, reach, CTR, CPC, CPM, frequency, plus conversions (purchases, purchase value, cost per purchase, ROAS) when the account reports them. Supports breakdowns by placement, device, age, gender, and country. Each row carries the id of the campaign, ad set, or ad it covers, usable directly with meta_set_status.
List the Meta (Facebook/Instagram) ad accounts connected to this account, including which of them this user can actually change (as opposed to only read) and, when the connection allows it, which Business owns each one.
List individual ads in a Meta ad account with their id, name, and delivery status. Filter by campaign, ad set, or a name fragment. Use this to find the ad id for meta_set_status or for meta_get_insights at ad level.
List campaigns for a Meta ad account, including each campaign's status and daily budget. Optionally includes ad sets, and with include_targeting each ad set's locations, age range and gender — read that before changing anything with meta_update_adset_targeting. For individual ads, use meta_list_ads.
List unpublished Meta Ads Manager drafts (the Review & Publish queue) for an ad account, or for one campaign, ad set, or ad. Read-only — drafts cannot be created, edited, or published through this API. Existing paused or inactive ads are not drafts; use meta_list_ads for those.
List the Facebook Pages this Meta connection can advertise from — both the Pages the user has a role on and the Pages linked to the ad account. Every ad creative is published by a Page, so pass one of these ids as page_id to meta_create_campaign. The Page marked default is the one meta_create_campaign uses when page_id is omitted. If a Page is missing, it is an access problem in Meta, not a limit of this tool.
How do I improve a ChatGPT Plugin's 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 LoomaScale alternatives on ChatGPT?
As of 2026-09-14, LoomaScale competes with AdKit - Ads Manager, AdPage, adplane, Adspirer, Adszy, Channel99, DashThis, Data Bloo, Delivra, Dynamoi, Flyweel, HYPD AI - Paid Ads & Analytics, Jepto, Kreel, Lead Recorder, Lily Apple Ads, Markifact - Ads & Analytics, Masha, Nexoya, PaidSync, Reportei, StoreAdOps, Supermetrics, Triple Whale, Voluum, Whatagraph, Windsor.ai FB Ads, Windsor.ai Google Ads, Windsor.ai TikTok Ads 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.