All documentation

Visibility

Answer features

Which engines put shopping, local businesses, ads, video, images or tables inside their answers, and which answers used web search.

The Answer features card on a prompt's page: per engine, the share of its answers with web search, shopping, local businesses, ads, video, images and tables, with Google AI Mode reading "Reports no features we can count". The numbers are demo data.

The numbers in this screenshot are demo data: fixed fictional responses run through the product's own collection and detection code.

Answer features are the structured parts an engine puts inside its answer (shopping, local businesses, ads, video, images and tables) and whether the answer used web search. Each is a rate over the answers we checked, per engine, on every plan.

The card's footer reads: "Shopping, local businesses, ads, video, images and tables are counted from DataForSEO's copy of the Google AI Overviews, ChatGPT (app) or Gemini (app) response, fetched for a signed-out visitor in the target's country (for AI Overviews and Gemini (app), at the city's coordinates when the target has a city with coordinates; ChatGPT (app) is country-level only). Web search is what each engine's own response recorded: its recorded searches or returned sources for the API engines and ChatGPT (app), whether the answer showed sources for Gemini (app). Product links, images or cards written into answer text are not counted, except Google's product-viewer links (in AI Overviews and among Gemini (app)'s sources), Google Maps place links among Gemini (app)'s sources, and the YouTube videos an AI Overview links." (frontend/src/lib/answer-features.js#FOOTER_TEXT)

How a feature is counted

Every completed answer is checked when it is saved, and answers saved before this existed are checked by a one-off command the operator runs (api/services/execution.py#_store_response_features, api/cli.py#cmd_backfill_response_features). The check reads only the structured parts of the engine's response, never the answer text (api/services/response_features.py#detect):

  • Google AI Overviews. A table counts when Google sends it as its own part of the Overview. Ads count per ad in an ad block. Shopping counts the products in a shopping block, or the products behind Google's product-viewer links inside the Overview, whichever is larger, because both can describe the same products. A product-viewer link is a Google Search link (a plain http or https /search address, with no port or sign-in part, on a Google domain such as google.com or google.co.uk, with or without www.) that opens Google's product panel; the same product linked twice, even through two different links, counts once when the links carry Google's product id, as every one we have seen does (api/services/response_features.py#_product_viewer_key).
  • Video on Google AI Overviews. An Overview counts as having video when it holds a video Google sends as its own part of the Overview, or links a YouTube video in its sources or links. The count is the video parts or the distinct YouTube videos it links, whichever is larger, because both can describe the same videos. A YouTube video link is a plain http or https address, with no port or sign-in part, on youtube.com, www.youtube.com, m.youtube.com or youtu.be that opens one video (a watch, Shorts, embed or live address); the same video linked twice, even at two different moments, counts once, and a playlist, channel or search page is not a video (api/services/response_features.py#_youtube_video_id).
  • ChatGPT (app). Tables count per table; shopping counts the products in a product list, local businesses the businesses in a local list, images the images in an image block; ads count per ad that was shown.
  • Gemini (app). Tables count per table Gemini (app) sends as its own part of the answer, and images per image in an image part. Shopping counts the distinct Google product-viewer links among the answer's sources, and local businesses the distinct Google Maps places among them (a place is its Maps place id). Neither kind of link is a citation (see How Gemini (app) is collected). When an answer's product links, or place links, are listed for another country than the target's, that answer is left out of the shopping rate, or the local businesses rate, rather than counted as 0 or as the other country's products (api/services/gemini_app.py#listed_country_mismatch).
  • Every engine that reports web search records 1 when it searched and 0 when it did not (see Web search).

An AI Overview made only of product cards, ads or videos is stored as no AI answer shown (see When Google shows no AI answer), so it is in no answer-feature rate.

Which engine reports what

A feature an engine does not report has no value for that engine. It is never shown as 0% (api/services/response_features.py#SUPPORTED_FEATURES).

Engine Web search Shopping Local businesses Ads Video Images Tables
Google AI Overviews Blank Counted Blank Counted Counted Blank Counted
Google AI Mode Blank Blank Blank Blank Blank Blank Blank
ChatGPT (app) Counted Counted Counted Counted Blank Counted Counted
Gemini (app) Counted Counted Counted Blank Blank Counted Counted
Gemini (API) Counted Blank Blank Blank Blank Blank Blank
Perplexity Counted Blank Blank Blank Blank Blank Blank
Grok Counted Blank Blank Blank Blank Blank Blank
Claude Counted Blank Blank Blank Blank Blank Blank

Why the blanks:

  • Google AI Mode reports no feature we can count. Every AI Mode answer we have checked arrived as plain answer parts, with its images and product cards drawn inside the answer text, which we do not read.
  • AI Overview images are not reported. The Overview parts carry an images field, but it was empty in every Overview we have checked, so a count could not tell "no images" from "not reported".
  • Web search is blank for Google AI Overviews and AI Mode. Google's AI answers are part of Google Search.
  • Gemini (app) reports no ads and no video. Its responses have no ad or video part, and Gemini (app) reads a dash for both, titled "Gemini (app) does not report ads" for ads.
  • Perplexity answers collected before Sonar have no web search value; Perplexity's Sonar answers do. On a prompt's page both share one Perplexity row, so the earlier answers are in none of its counts; the web search cell's title names them, as in "300 answers from before this engine reported it" (frontend/src/lib/answer-features.js#featureCell).

For Gemini (API), Perplexity, Grok and Claude, web search comes from the searches the engine's response recorded: the same record the Fan-out panel reads (api/services/response_features.py#web_search_seen, api/services/fan_out.py#derive_fan_out_state). An answer searched when the engine recorded a search query, or returned a source without one; it did not search when capture ran and found neither. For Gemini (app), which does not report its searches, an answer searched when it showed at least one source. ChatGPT (app) searched when it showed a source, reported a search or listed a page found, even with no source shown. On Gemini (app) a Google product or Google Maps place link counts as a source here, so a local answer whose only sources are places reads as searched, although it cites no web page.

What this means for a few engines:

  • Grok: a search of X counts as a search.
  • Gemini (app), and ChatGPT (app) answers collected before 2026-09-29: an answer that searched but showed no source reads as did not search.
  • Perplexity (Sonar): an answer with a search count but no returned source reads as did not search.

Blank, Not recorded, Not checked and 0%

  • Blank (a dash): the engine does not report the feature (the table above).
  • Not recorded: the answer was checked, but the engine's searches were not recorded, because it was collected before search capture began. This applies to web search on the API engines only.
  • Not checked: the answer has not been checked yet, for example an answer saved before answer features existed that the operator's one-off check has not reached, or one whose stored response could not be read.
  • Left out (Gemini (app) only): the answer's product links, or place links, were listed for another country, so it has no shopping, or local businesses, value. The cell's title counts them, as in "2 answers left out: product links listed for another country" or "1 answer left out: place links listed for another country"; when every answer in the window was left out, the cell reads Not recorded with that title (frontend/src/lib/answer-features.js#featureCell).
  • 0%: answers were checked and none held the feature.

Answers that are not recorded, not checked or left out are left out of every rate, so a rate is always over the answers with a value. The Explorer unit for these metrics is checked answers.

For the API engines, the count under a web search rate, as in "56 of 56", covers only the answers whose searches were recorded; answers collected before search capture are counted separately, and the cell's title names them, as in "112 answers not recorded". When none of an engine's answers in the window were recorded, the cell reads Not recorded, titled "This engine's searches were not recorded for these answers" (api/services/response_feature_reads.py#answer_features_by_engine, frontend/src/lib/answer-features.js#featureCell).

Where answer features show

  • Prompt detail has an Answer features card: one row per engine, one column per feature, each cell the rate with "2 of 5" beneath, over the same window and filters as the rest of the page. An engine that reports nothing we count, such as Google AI Mode, reads "Reports no features we can count" (api/services/response_feature_reads.py#answer_features_by_engine, frontend/src/lib/answer-features.js#featureCell). The run history gains an In the answer column with a chip per feature present, such as "Shopping 4", "Local businesses 16" or "Tables 2" (frontend/src/lib/answer-features.js#featureChips). See Prompts.
  • Explorer has seven metrics grouped as Answer features: Answers using web search, with shopping, with local businesses, with ads, with video, with images and with tables (api/services/explorer/metrics.py#METRICS, #_statement). They reach the customer API and MCP through the same query, and Analyst can use them. See Explorer.
  • Exports have an Answer features dataset, one row per collected answer (api/services/exports/response_features.py#COLUMNS). See Exports.

Pooled over every engine, a period comparison includes an engine that started answering during the window on one side only; break the result down by engine, or filter to one, to compare like for like.

What is not counted

  • Anything written into the answer text: product links, images or cards in the text are not counted, except Google's product-viewer links (in AI Overviews and among Gemini (app)'s sources), Google Maps place links among Gemini (app)'s sources, and the YouTube videos an AI Overview links.
  • Features of Google's results page around the Overview: People also ask, the knowledge panel, forums, the local pack and search ads.
  • ChatGPT navigation lists.
  • Brands, prices and merchants inside product cards, and who placed an ad.

What our live checks showed

In live checks on 2026-09-27 and 2026-09-28 we saw tables, products and local businesses in ChatGPT (app) answers, product-viewer links in one AI Overview, and links to YouTube videos in three of the four AI Overviews we checked. We have not seen ads or images in either engine's answers, nor a shopping, table or video part from Google. AI Overview ads, tables and video parts, and ChatGPT (app) ads and images, are counted from the data provider's documentation of its responses.

In live checks of Gemini (app) on 2026-09-28 we saw tables, local businesses (Google Maps place links among the sources) and answers with and without sources. Shopping was seen only once, in an answer for the United States whose product links were all listed for Malaysia, priced in ringgit, so that answer is left out of the shopping rate and no counted live answer has shown shopping yet. We have never seen images in a Gemini (app) answer: they are counted from the data provider's documentation.

Last verified 2026-09-29

Start monitoring your AI visibility.

See how AI search engines talk about your brand.

Free to start. No credit card required.