Search Console

Search Console branded vs non-branded split (Growth+)

Changed on

Splits the property's impressions and clicks into branded queries, which contain one of the project's brand terms as a whole word, case-insensitively (brand_terms: its brand name, matching names, app names and domain, each also matched with its accents folded and with either apostrophe, so Nestlé also matches nestle and L’Oréal matches l'oreal), and non-branded ones, next to the unfiltered totals. Google applies the split itself as a regular-expression query filter, so it covers every query Google counts, not only the 25,000 rows one read lists. Use it to see how much search traffic comes from people who already know the brand and how much from discovery searches, and how each side evolves across date ranges. Google leaves anonymized queries out of any query filter, so unclassified holds the impressions and clicks neither side counts. Returns ERR_INVALID_PARAM when the brand terms are too long for one Google filter (4,096 characters, Google's documented limit), and ERR_SEARCH_CONSOLE_UPSTREAM (503) if Google refuses the filter built from them; our team is alerted in that case. Requires a connected Search Console property (Growth+). Live reads only: under stored reads it returns ERR_INVALID_PARAM. Live reads return ERR_SEARCH_CONSOLE_ACCESS_REVOKED (403) for revoked Google access; reconnect the property in Preferences > Project Settings > Data Connections. They return ERR_SEARCH_CONSOLE_UPSTREAM (503) when Google Search Console is unavailable or over quota; wait for the number of seconds in Retry-After before retrying.

get/search_console/brand_split

Request

  • Base URL
    https://api.llmpulse.ai/api/v1
  • URL
    https://api.llmpulse.ai/api/v1/search_console/brand_split
  • Auth
    API key in header Authorization

Query parameters

project_idinteger required

Project ID

propertystring

Which Search Console properties to read; /search_console/properties lists them. Omit it for the primary property, or pass one property id (e.g. sc-domain:example.com) to read that one; both answer with property. A comma-separated list of ids, or all, combines several and answers with properties, excluded_properties and property_errors instead: excluded_properties are left out because another selected property already counts them (a URL-prefix property under a domain property), so no click is counted twice; property_errors are properties Google refused, left out of the figures and also named in the X-Search-Console-Property-Errors header. When Google refuses every property, the request fails as a single-property read would.

rangeinteger

Number of days to look back, today included (alternative to from/to). At most 487, Google's retention.

fromstring date

Start date (YYYY-MM-DD). Defaults to 30 days ago.

tostring date

End date (YYYY-MM-DD), inclusive. Defaults to today. Google publishes data with a 2-3 day lag, so data_through in the response says how far it reaches.

search_type'web' | 'image' | 'video' | 'news' | 'discover' | 'googleNews'

Which search surface to measure. Defaults to web. discover and googleNews carry no query dimension, so Google rejects /search_console/queries for them.

filtersstring

Narrow the query; every entry must match (AND). Send the whole list as one JSON value: filters=[{"dimension":"page","operator":"contains","expression":"/blog/"}] (URL-encoded). An array of objects has no query-parameter form a generated client can produce, so the string is what the official SDKs send; see the SearchConsoleFilters schema for the shape it encodes. includingRegex and excludingRegex take RE2 syntax. At most 10 entries, expression at most 500 characters. The bracket form filters[][dimension]=page&filters[][operator]=contains&filters[][expression]=/blog/ is also accepted.

data_state'final' | 'all'

final (default) counts only rows Google has finalized. all also counts the most recent days, which are still being filled in and will change.

aggregation_type'auto' | 'byPage' | 'byProperty'

How Google counts impressions. auto (default) is what Search Console shows (by page when page is grouped or filtered, else by property). Google rejects byProperty with a page dimension or filter.

Response

Branded and non-branded totals

project_idinteger
fromstring date
tostring date
data_throughstring date nullable

Latest date Google has published for the property, or for every combined property (it lags 2-3 days). Later days are missing, not zero.

brand_termsstring[]

The project's brand name, matching names, app names and domain, lowercased, each matched as a whole word

request_idstring

Changes