Skip to main content

Group-by options in Analytics reports

What's the difference between group by "Ad name" and "Creative asset"? What do the "Group by" options mean?

Written by Support

Group by is the most important setting in an Analytics report, and the one people skip past fastest. It decides what one row is.

Group by Ad name and each row is one ad. Group by Creative asset and each row is one image or video — so a video running as four ads across three ad sets stops being four half-truths and becomes one honest line. Judging delivery? Group by ad. Judging creative? Group by asset. Almost every "why don't these numbers match Ads Manager?" question traces back to that distinction.

You'll find it in the toolbar at the top of any report, system or custom — with one catch: on a system report the grouping is fixed and the control shows greyed out.

, because the grouping is part of what that report is. If you can't change it, that's why, and the fix is to build the same view as a custom report instead.

"Group by" in Meta ad accounts

Group by

What it does

Campaign name

Ads with identical campaign names grouped together

Ad set name

Ads with identical ad set names grouped together

Ad name

Ads with identical ad names or post IDs grouped together

Ad format

Ads with identical formats grouped together (image, video, carousel, collection, mixed media)

Creative asset

Identical images or videos grouped together; dynamic creative results split by asset

Copy

Identical copy grouped together; dynamic creative results split by copy

Headline

Identical headlines grouped together; dynamic creative results split by headline

Landing page

Identical landing pages grouped together; dynamic creative results split by landing page

Custom tag

Identical custom tags grouped together (tags are added to creative assets)

"Group by" in TikTok ad accounts

Group by

What it does

Campaign name

Ads with identical campaign names grouped together

Ad group name

Ads with identical ad group names grouped together

Ad name

Ads with identical ad names grouped together

Ad format

Ads with identical formats grouped together (image, video, carousel)

Creative asset

Identical images or videos grouped together; dynamic creative results split by asset

Copy

Identical copy grouped together; dynamic creative results split by copy

Landing page

Identical landing pages grouped together; dynamic creative results split by landing page

Custom tag

Identical custom tags grouped together (tags are added to creative assets)

TikTok has no Headline option — headlines aren't a separate object there.

If you use a structured ad naming format, your naming convention positions appear here as dimensions too — so you can group by funnel stage or product straight away. See Turn your ad naming conventions into insights.

Grouping tells you what a row is. Filters decide which rows exist.

The two work as a pair, and this is where most of the value sits. Two filters live next to Group by:

  • Dimension filter — things about the ad: launch time, campaign name, ad set (or ad group) name, ad name, ad format, ad status, campaign objective, performance goal on Meta or optimisation goal on TikTok, dynamic creative, and custom tags. It opens a modal headed Dimension filter records, and a rule reads Where → Launch time → is → your value.

Text conditions also give you is not, contains and does not contain; on everything else the operator sits at is. Dynamic creative is a plain true/false — Where → Dynamic creative → is → True — which is how you isolate, or exclude, your dynamic-creative ads.

  • Metric filter — the numbers. Spend, ROAS, CPA, anything in your columns. It opens a modal headed Metric filter records, and a rule reads Where → Spend → \> → the number you type, with a small box for the unit. The operator dropdown is symbols rather than words — >, , <, , =, .

— so there is nothing to hunt for under is at least. Custom metrics count here too: anything you've built as a formula is available as a filter condition alongside the standard metrics, and it updates if you later edit the formula.

Advanced filters: mixing And with Or

This is the part worth learning properly. A filter used to be all-or-nothing — every condition had to match, or any condition had to match, never a mix. So "two campaigns, but only the video and carousel ads inside them" meant two or three separate views, reconciled by hand.

Not any more. Both modals give you + Add filter rule for a single condition and Add filter group — the button with the small panel icon — for a nested one. A group lands as an indented, orange-bordered box with its own Where row and its own + Add filter rule, joined to the rules above it by an And dropdown, and each group carries its own And / Or logic. Groups then combine with And, so each one narrows the result further:

(Summer Sale Or Back to School) And (Video Or Carousel)

One filter, one report, one answer. Groups nest one level deep, and every filter you've already built keeps working exactly as it did.

The combination we'd steer you to first: group by Creative asset, then use a filter group to isolate the two or three campaigns you're comparing. That's the view that tells you which creative earns its keep regardless of the campaign it happened to run in — and it was genuinely fiddly to build before.

Or skip the clicking: describe the segment to Raya in plain English — "show me ads in the Summer Sale or Back to School campaigns that are video or carousel, build an Analytics report" — and she'll build the grouped filter and save it into your report.

When a filter isn't enough

Filters give you one narrowed view. If you want three or four segments side by side, compared against each other — UGC vs studio vs static — that's a different job, and it's what custom groups are for. See Define custom groups in Analytics reports, and Custom tags in Analytics reports for hand-labelling creative assets to group and filter by.

As always, tell us the question you're trying to answer and we'll tell you the group-by and filter combination that gets you there — just shout.

<empty-block/>

Did this answer your question?