bing-performance

Installation
SKILL.md

Bing Performance

Report how a property performs on Bing (Bing, Yahoo and DuckDuckGo organic, as served by Bing Webmaster Tools) next to its Google numbers, and end with recommendations. The user's request may contain a property name or URL, a date range, a focus hint (a page URL, a query, or "compare with Google"), or a keyword for the demand check; honor it by going deeper on that part while still producing the full report.

Workflow

  1. Resolve the property. If the user's request or the conversation names a property, use it. Site URLs use GSC formats: sc-domain:example.com or https://www.example.com/. Otherwise call list_sites and pick the obvious match. If several plausible properties exist, ask the user which one before continuing. Every property-scoped Bing tool takes that same GSC siteUrl and maps it to Bing's form itself (sc-domain:example.com becomes https://example.com/), echoing the result as bingSiteUrl.

  2. Confirm the Bing side. Call list_bing_sites (no arguments). A notConfigured: true answer means Bing Webmaster Tools is not connected for the property's Google account in the GSC Wizard app; tell the user to add it there, report the Google side from step 4 only, and stop. Otherwise find the property in siteDetails and read isVerified: Bing serves data only for a verified site, an unverified one makes the property-scoped tools answer with a not-verified error that names the fix (a subfolder property has to be verified as its own site in Bing Webmaster Tools), and a property missing from sites has to be added there first.

  3. Set the windows. Use the last 28 days compared with the previous 28 unless the user specifies dates, and pass the same startDate and endDate to the query, page and pair calls so the sections line up. Omitting both dates on a Bing tool returns everything Bing has (about 16 months of search data), not a settled 28-day default. Bing dates its query, page and pair rows by week, so a window selects whole weeks, and a short window that falls between two week dates comes back empty with an emptyBecause explanation; widen the window rather than retrying. Bing reports on its own calendar and carries no settledThrough or partialDays; if the newest days of a daily series read low, say they may not be fully reported yet instead of calling them a drop.

  4. Anchor on Google. Call get_site_summary with siteUrl and days: 28, or with startDate and endDate when the user set a window, for Google clicks, impressions, CTR and position with the prior-period comparison. Later, derive Bing's share of combined clicks as Bing clicks divided by Bing plus Google clicks, say it is derived from get_bing_traffic_stats and get_site_summary, and call it approximate because the two engines count on their own calendars.

  5. Bing totals and trend. Call get_bing_traffic_stats once with startDate set to the start of the prior window and endDate to the end of the current one. totals covers that whole span, so sum the daily rows (oldest first, each with clicks and impressions) per window yourself for the current and prior totals and the change, and say so. Note the peaks, dips and any week-shaped pattern in the series.

  6. Top queries and pages. Call get_bing_query_stats with limit: 50; queries[] rows carry query, clicks, impressions, ctr and position, sorted by clicks then impressions, and totalRows counts the distinct queries Bing reported before the cut. Call get_bing_page_stats the same way for pages[] rows keyed by page. Bing reports only its top queries, so these rows never sum to the get_bing_traffic_stats totals; never present them as a complete picture.

  7. Pairs and drill-downs. When the focus is a page, call get_bing_page_queries with page copied verbatim from a pages[].page value (Bing matches the full URL, including scheme, www and trailing slash) for the queries behind that page; they sum to at most the page's own row. When the focus is a query, or the user asks which pages compete for a term, call get_bing_query_page_stats with query set to that term. For the general picture call get_bing_query_page_stats with the default seedLimit of 25 (max 100): each seed page is a separate Bing request, so raise it only when the user wants wider coverage, and read pairedBy, seedCount and truncated (true means Bing had more pairs than the seeds reached). A pair ctr above 100 is Bing logging more clicks than impressions, so report it as such rather than correcting it.

Installs
2
First Seen
2 days ago