- “Which Google searches bring people to our pricing page?”
- “Which pages get Google clicks?”
- “Is there Google search demand around this tracked question?”
Read tools
get_search_console
Returns Google search demand from the brand’s connected Google Search Console: the Google search queries the brand’s pages showed for, and the pages themselves, with googleImpre…
Returns Google search demand from the brand’s connected Google Search Console: the Google search queries the brand’s pages showed for, and the pages themselves, with googleImpressions (times shown in Google results), googleClicks and googlePosition (average rank, 1 = top). Read from the daily Search Console import, which covers a fixed window (usually the last 90 days, ending on the import day). The response gives that window as windowStart / windowEnd. Google’s last 2–3 days are incomplete, so when checking against the Search Console UI, use exactly that window. This tool cannot pick another date range.
This is Google search data only. It does not show what anyone asked ChatGPT, Gemini, Perplexity or any other AI assistant. Never present a row as an AI question or as AI demand.
view “queries” (default) returns one row per Google search query with Google’s own total for it (the Search Console UI’s Performance → Queries). view “query_pages” returns one row per query and page; a query’s query_pages rows do not add up to its “queries” total, so never sum them. Passing pageContains on “queries” returns “query_pages” rows, because per-query totals carry no page. Query rows may carry matchedTrackedQuestionId / matchedTrackedQuestionText with matchMethod “inferred_word_overlap”: that is our inference, from shared words, that the Google search relates to one of the brand’s tracked questions (its question bank). It is not evidence that the tracked question was asked of an AI assistant. When you mention a match, say it is inferred. matchStatus says whether matching ran: “ok” (a null match is a real no-match), “unavailable” (the question bank could not be read, so rows are unmatched because we could not check; say so), “skipped” (not attempted).
view “pages” returns one row per page with its Google totals (Performance → Pages). A page row sums its URL variants (trailing slash, tracking parameters) and lists them in urls, so it can read above any single row in Search Console.
If the brand has no Search Console connection, status is “not_connected” (say Search Console is not connected; point to /connectors). “no_data_yet” means connected but the first import has not run. “unavailable” means the stored data could not be read right now; never report that as zero. “ok” with no rows means the import ran and nothing matched.
Use this when the user asks: