bing-performance
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
-
Resolve the property. If the user's request or the conversation names a property, use it. Site URLs use GSC formats:
sc-domain:example.comorhttps://www.example.com/. Otherwise calllist_sitesand pick the obvious match. If several plausible properties exist, ask the user which one before continuing. Every property-scoped Bing tool takes that same GSCsiteUrland maps it to Bing's form itself (sc-domain:example.combecomeshttps://example.com/), echoing the result asbingSiteUrl. -
Confirm the Bing side. Call
list_bing_sites(no arguments). AnotConfigured: trueanswer 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 insiteDetailsand readisVerified: 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 fromsiteshas to be added there first. -
Set the windows. Use the last 28 days compared with the previous 28 unless the user specifies dates, and pass the same
startDateandendDateto 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 anemptyBecauseexplanation; widen the window rather than retrying. Bing reports on its own calendar and carries nosettledThroughorpartialDays; if the newest days of a daily series read low, say they may not be fully reported yet instead of calling them a drop. -
Anchor on Google. Call
get_site_summarywithsiteUrlanddays: 28, or withstartDateandendDatewhen 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 fromget_bing_traffic_statsandget_site_summary, and call it approximate because the two engines count on their own calendars. -
Bing totals and trend. Call
get_bing_traffic_statsonce withstartDateset to the start of the prior window andendDateto the end of the current one.totalscovers that whole span, so sum thedailyrows (oldest first, each withclicksandimpressions) 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. -
Top queries and pages. Call
get_bing_query_statswithlimit: 50;queries[]rows carryquery,clicks,impressions,ctrandposition, sorted by clicks then impressions, andtotalRowscounts the distinct queries Bing reported before the cut. Callget_bing_page_statsthe same way forpages[]rows keyed bypage. Bing reports only its top queries, so these rows never sum to theget_bing_traffic_statstotals; never present them as a complete picture. -
Pairs and drill-downs. When the focus is a page, call
get_bing_page_querieswithpagecopied verbatim from apages[].pagevalue (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, callget_bing_query_page_statswithqueryset to that term. For the general picture callget_bing_query_page_statswith the defaultseedLimitof 25 (max 100): each seed page is a separate Bing request, so raise it only when the user wants wider coverage, and readpairedBy,seedCountandtruncated(truemeans Bing had more pairs than the seeds reached). A pairctrabove 100 is Bing logging more clicks than impressions, so report it as such rather than correcting it.