← Back to Frugle

Glossary

What every column and value in a Frugle export means.

A Frugle export normally has one row per campaign per month. Performance Max campaigns have one row per serving channel per month. The numbers come straight from the Google Ads API with no reprocessing beyond converting cost out of micros, so the vocabulary below is Google's, not ours. If a figure here disagrees with the Google Ads UI, the cause is almost always one of the caveats in reading the numbers safely.

The columns §

month
The month the activity happened, as YYYY-MM. Frugle reports monthly because Google keeps monthly data for roughly eleven years but discards daily and weekly detail after 37 months — monthly is the only granularity that covers a full account history.
campaign_id
Google's numeric ID for the campaign. Stable forever, including after the campaign is renamed or removed, so this is the column to join on. It is long enough that spreadsheets may show it in scientific notation — import it as text.
campaign_name
The campaign's current name, not its name during that month. Renaming a campaign rewrites its whole history in this column.
status
The campaign's status right now, not during that month — see campaign statuses. A paused or removed campaign with spend in an earlier month is entirely normal.
channel_type
The campaign type, except for Performance Max where it identifies the serving channel — see campaign types. It is not a placement-level breakdown.
cost
Money spent that month, in the account's own currency (the currency column). Google reports cost in "micros" — millionths of a currency unit — which is why the value carries six decimal places. No currency conversion is applied.
impressions
Times an ad from the campaign was shown.
clicks
Clicks Google billed for. Not the same as sessions or visitors in your analytics tool, and it will not match them.
conversions
Conversions Google attributed to the campaign. Often fractional, because attribution models split credit for one conversion across several campaigns. Counts against the date Google attributes the conversion to, which can differ from the click date.
conversions_value
The total value of those conversions — but only if the account sends values with its conversions. Accounts that don't are often configured to report a value of 1 per conversion, which makes this column mirror conversions instead of representing revenue.
currency
The account's billing currency, repeated on every row so a file is readable on its own. See the warning about mixed currencies under reading the numbers safely.

Campaign types (channel_type) §

Google calls this the advertising channel type. It is a fixed list, so the table below is every value the column can hold. The "how often you'll see it" column is a rough guide for a typical advertiser, not anything Google publishes.

Value in CSV Shown as What it means How often you'll see it
SEARCH Search Text ads on Google search results. Includes campaigns with Display expansion bundled in, so some of this spend can land on Display inventory. Very common
PERFORMANCE_MAX Performance Max Google's fully automated type. This aggregate label is documented for completeness but is replaced in new exports by the additive pmax-* serving-channel rows below. Very common
DISPLAY Display Image and responsive ads on the Google Display Network only. Common
VIDEO Video Video ads, overwhelmingly on YouTube. Common
SHOPPING Shopping Product listings on the Shopping tab and in search results, fed by a Merchant Center product feed. Common for retail
DEMAND_GEN Demand Gen Visual, social-style ads across YouTube, Discover and Gmail. The successor to Discovery campaigns, so older history may show spend under a different type. Increasingly common
LOCAL_SERVICES Local Services Local Services Ads — the "Google Guaranteed" listings for trades and professional services, billed per lead rather than per click. Common in services
MULTI_CHANNEL App App install and app engagement campaigns, which promote an app across Search, Play, YouTube and Display at once. App advertisers
SMART Smart Smart campaigns — the simplified self-serve product for small businesses. Largely superseded, but existing ones still run. Occasional
HOTEL Hotel Hotel Ads, priced from room rates and availability feeds. Travel only
TRAVEL Travel Travel campaigns, including Things to do / travel activities. Travel only
LOCAL Local (legacy) The old standalone Local campaign type for driving store visits. Folded into Performance Max; appears only in historical rows. Historical
UNKNOWN Other A real, expected value: Google introduced a campaign type newer than the API version Frugle reads. The spend figure is still correct — only the label is missing. Rare but expected
UNSPECIFIED Not set Google returned no channel type at all for the campaign. Very rare
Performance Max is split by serving channel. pmax-search, pmax-search-partners, pmax-display, pmax-youtube, pmax-google-tv, pmax-google-owned-channels, pmax-gmail, pmax-discover, and pmax-maps are additive children of the campaign-month total. Google network value CONTENT is labelled pmax-display. pmax-mixed, pmax-unknown, and pmax-unspecified preserve rows Google does not assign to one named channel. This is channel-level spend, not placement-level spend.

Campaign statuses (status) §

Value in CSV What it means
ENABLED Active and able to serve today.
PAUSED Not serving, but intact and resumable.
REMOVED Deleted. Its historical spend still reports — which is why a deleted campaign appears in your export.
UNKNOWN A status newer than the API version Frugle reads.
UNSPECIFIED Google returned no status for the campaign.

Reading the numbers safely §

Frugle reads your Google Ads data on a strictly read-only basis and never changes anything in your account. What it accesses and how it is handled is set out in the Privacy Policy.

← Back to Frugle