Skip to content

processed_search_type_distribution

SQL type: SimpleAggregateFunction(anyLast, Nullable(String)) — JSON {web, image, news, video} Table: keywords.keywords_data_local Last validated: 2026-05-21

What it is

The fractional split of GSC impressions across Google's four major search-vertical types: web, image, news, video. JSON dict, values sum to 1.0 (normalised after computation).

How it's computed

compute_distributions() in processing.py:L838 (single function, returns both this and the device distribution). The latest month with ≥ 1000 total impressions is used; falls back to a 12-month aggregate if no single month qualifies.

{"web": 0.82, "image": 0.05, "news": 0.10, "video": 0.03}

Computed only when the keyword has enough impression volume in the chosen window — see threshold below.

Gate

processing.py:KB-ANCHOR:device-distribution-threshold: total_web >= 1000. The same threshold gates BOTH this field and processed_device_distribution — they share the function. Below 1000 impressions, both distributions are returned as empty {} to avoid showing noisy splits on low-volume keywords.

Edge cases

  • Single-month gating — uses the most recent month with total_imps >= 1000. For keywords whose volume just crossed that threshold this month, the distribution updates abruptly.
  • No qualifying month — falls back to a 12-month aggregate of impressions; if still below 1000, returns empty.
  • All-web keywords — common for product / how-to queries; returns {"web": 1.0, "image": 0, …}.

Downstream

  • Customer UI renders this as a small pie chart or stacked bar.
  • ES + keywords_metrics_local upload paths.

See also