Skip to content

processed_device_distribution

SQL type: SimpleAggregateFunction(anyLast, Nullable(String)) — JSON {desktop, mobile, tablet} Table: keywords.keywords_data_local Last validated: 2026-05-21

What it is

The fractional split of web-search impressions across desktop / mobile / tablet devices. JSON dict, values sum to 1.0 (normalised). Image / news / video impressions are excluded — this is web-only by design.

How it's computed

Same function as processed_search_type_distribution: compute_distributions() in processing.py:L838. Uses the same latest-month-with-enough-volume strategy.

{"desktop": 0.34, "mobile": 0.62, "tablet": 0.04}

Gate

processing.py:KB-ANCHOR:device-distribution-threshold: total_web >= 1000. Total web impressions (the sum of desktop + mobile + tablet) must hit 1000 for either distribution to be emitted — the gate is on the web subset specifically, not on total impressions across all search types. A keyword that's dominated by image-search traffic might have plenty of total impressions but still fail this gate.

Edge cases

  • Mobile-heavy keywords (most consumer queries) — typically {"mobile": ≥0.6, "desktop": <0.3, "tablet": <0.05}.
  • Desktop-heavy keywords (B2B, developer queries) — flip side.
  • Tablet share is usually a rounding-error trickle (1–4%). Not enough volume to be meaningful for most use cases.
  • Image / news / video-dominant keywords — if web traffic is below 1000, this field is empty even though the keyword has plenty of other-type impressions.

Downstream

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

See also