cogny clipaid searchfirst 15 calls free
bing ads from your shell.
Pull Microsoft Advertising performance (impressions, clicks, CTR, avg CPC, spend, conversions, revenue, impression share, Quality Score) at campaign, ad group, keyword, search-term, ad or geographic level, list campaigns and keywords, and push negatives, bids, budgets and status changes — all from Bash over the Bing Ads MCP. No SOAP client, no developer token of your own.
- 1. sign up, free for the first calls (uses your git email)
npx @cogny/cli init --agent claude-code - 2. see every Bing Ads tool
cogny tools list - 3. call any tool from bash, no MCP wiring
cogny tools call mcp__Bing_Ads__tool_get_report --input '{…}'
The Microsoft Advertising UI is a report builder with a queue, and the API is SOAP-first with a developer-token application. The CLI returns any report as JSON rows in one call — daily or summary, scoped to campaigns — ready to pipe, diff or schedule. Connect Bing Ads once in Cogny Solo and let your coding agent, or a scheduled loop, do the querying for you.
Start SoloSign yourself up with one command. The CLI issues a key, wires nothing, and exposes every Bing Ads tool over JSON-RPC. The first 15 calls are free.
npx @cogny/cli init --agent claude-code
real Bing Ads tools.
Tool names as the Bing Ads MCP serves them. Send --input JSON, get JSON back. The payloads are illustrative.
- mcp__Bing_Ads__tool_get_report
Campaign performance for a date range, one row per campaign.
cogny tools call mcp__Bing_Ads__tool_get_report \ --input '{"account_id":"150123456","report_type":"campaign","start_date":"2026-08-01","end_date":"2026-08-31","aggregation":"Summary"}'
example response
{ "columns": [ "TimePeriod", "CampaignId", "CampaignName", "Impressions", "Clicks", "Ctr", "AverageCpc", "Spend", "Conversions", "ImpressionSharePercent" ], "rows": [ { "TimePeriod": "2026-08-01 - 2026-08-31", "CampaignId": 512345678, "CampaignName": "SE - Brand", "Impressions": 18422, "Clicks": 1093, "Ctr": 5.93, "AverageCpc": 2.14, "Spend": 2339.02, "Conversions": 87, "ImpressionSharePercent": 91.2 } ], "row_count": 1, "currency": "SEK" } - mcp__Bing_Ads__tool_get_report
Search terms that spent without converting — the negative-keyword shortlist.
cogny tools call mcp__Bing_Ads__tool_get_report \ --input '{"account_id":"150123456","report_type":"search_query","start_date":"2026-08-04","end_date":"2026-08-31","campaign_ids":["512345678"]}'
example response
{ "rows": [ { "SearchQuery": "free crm template", "Keyword": "crm", "BidMatchType": "Broad", "Clicks": 41, "Spend": 96.5, "Conversions": 0 } ], "row_count": 1 } - mcp__Bing_Ads__tool_add_negative_keywords
Add phrase negatives to a campaign.
cogny tools call mcp__Bing_Ads__tool_add_negative_keywords \ --input '{"account_id":"150123456","entity_type":"Campaign","entity_id":"512345678","keywords":[{"text":"free","match_type":"Phrase"},{"text":"template","match_type":"Phrase"}]}'
example response
{ "ids": [ [ 9911, 9912 ] ], "partial_errors": [], "status": "success", "entity_type": "Campaign", "entity_id": "512345678" }
the rest of the surface.
A sample of the other Bing Ads tools. Run cogny tools list --json for every tool and its input schema.
- mcp__Bing_Ads__tool_list_accounts
- mcp__Bing_Ads__tool_get_campaigns
- mcp__Bing_Ads__tool_get_ad_groups
- mcp__Bing_Ads__tool_get_ads
- mcp__Bing_Ads__tool_get_keywords
- mcp__Bing_Ads__tool_get_negative_keywords
- mcp__Bing_Ads__tool_update_campaign
- mcp__Bing_Ads__tool_update_ad_group
- mcp__Bing_Ads__tool_update_keywords
- mcp__Bing_Ads__tool_update_ad_status
- mcp__Bing_Ads__tool_create_campaign
- mcp__Bing_Ads__tool_create_ad_group
- mcp__Bing_Ads__tool_add_keywords
- mcp__Bing_Ads__tool_create_responsive_search_ad
- mcp__Bing_Ads__tool_remove_negative_keywords
- mcp__Bing_Ads__tool_get_negative_keyword_lists
- mcp__Bing_Ads__tool_create_negative_keyword_list
- mcp__Bing_Ads__tool_add_keywords_to_negative_keyword_list
- mcp__Bing_Ads__tool_add_negative_keyword_list_to_campaigns
calls from a script. verdicts from cogny.
Every write is logged with who authorised it. Launches your agent makes (a new campaign, a new ad) become measured tickets automatically; for other changes, your agent offers to register them. Cogny measures each in your own data, three days later for ads and seven for content and SEO, and closes it as worked, partial, didn't work or inconclusive.
- worked
Moved the number. Every measured win has a share card.
- partial
Some of it did.
- didn't work
On the record anyway, so it isn't proposed again.
- inconclusive
Not enough data to call.
questions.
- Is this an official Microsoft Advertising CLI?
- No — it is the Cogny CLI calling the Bing Ads MCP over the cogny-mcp-proxy. You sign in with Microsoft once in Cogny, pick the ad accounts the workspace may use, and then call every tool from Bash. Cogny supplies the developer token, so you never apply for one.
- Which account id do I pass?
- The numeric `id` from tool_list_accounts — not the alphanumeric account number shown in the Microsoft Advertising UI. The proxy resolves the manager (customer) id for you.
- What units do bids, spend and CTR use?
- Plain account-currency units (a 1.25 bid is 1.25 SEK or USD), the same for report Spend, AverageCpc and Revenue. Ctr and the impression-share columns are already percentages — 5.93 means 5.93 %.
Building an agent? The full tool map for every server is one fetch: /cli/llms.txt