Filtering & Segmentation
Narrow down your analytics data to answer specific questions. Filters apply across all dashboard widgets simultaneously.
Date Range
Every dashboard view is scoped to a date range. Use the date selector in the header to choose:
- Presets: Today, Last 7 Days, Last 30 Days, Last 90 Days, Last 12 Months.
- Custom Range: Pick an exact start and end date using the calendar picker.
All widgets, exports, and API responses respect the selected range.
Available Filters
Click on any data point in a widget to apply it as a filter, or add filters manually. The following filter dimensions are supported:
| Filter | Description | Example |
|---|---|---|
| Page | Filter to a specific URL path. Supports wildcards (/blog/*). | /pricing |
| Referrer | Filter by referring domain. | google.com |
| Country | Filter by visitor country (ISO code). | US |
| Browser | Filter by browser name. | Chrome |
| Device | Filter by device type. | mobile |
| OS | Filter by operating system. | Windows |
Active filters appear as chips below the header. Click the × on any chip to remove it, or use Clear All to reset.
UTM Campaign Filters
The Campaign Performance widget supports filtering by UTM parameters:
-
utm_source: the traffic source (e.g.,google,newsletter) -
utm_medium: the marketing medium (e.g.,cpc,email) utm_campaign: the campaign name (e.g.,spring_sale)utm_term: the paid search keywordutm_content: used for A/B testing or distinguishing ad creatives
Paid ad click IDs are detected and mapped to a source even when UTM parameters are absent:
gclid, gbraid and wbraid (Google Ads, the last two sent instead
of gclid on iOS), msclkid (Microsoft), twclid
(X), yclid (Yandex) and li_fat_id (LinkedIn). A tag you set yourself always
wins: a click ID fills in a source or medium you left blank, it never replaces one.
The medium needs the referrer to agree. A click ID is only recorded as
cpc when the visit also arrived from that network, because a
gclid stays on the URL when somebody copies the link into an email, a chat or a bookmark,
and every later click on it would otherwise be counted as ad traffic you paid for. When nothing
corroborates the click, the medium records the parameter itself: (gclid),
(msclkid), and so on. Those visits keep their source, so they still appear under
Google or Microsoft in Campaigns, but they are not counted as paid on the Ads Breakdown card.
fbclid is the exception to the paid part. Facebook and Instagram add it to every outbound
link, organic posts included, so a corroborated fbclid records
medium=social rather than counting the visit as paid.
Tagging internal links
A campaign tag records a touch. VeritaMetrics reads utm_source, or its aliases
source, ref and src, from every page of a visit, and it
also remembers the tag the visit started on. A tag you put on a link between two
of your own pages is therefore kept on that later page, and the visit still carries the source it
arrived with.
What that does to your numbers depends on the attribution model. First Touch, the default, credits the campaign the visit started on, so a visitor who arrived from your newsletter and then clicked a pricing button is still counted as arriving from the newsletter. Last Touch and Last Non-Direct Click read the tag on the later page, so an internal link tagged this way can appear in those two models as a source of its own. If you tag internal links, check which model you are reading.
To measure which internal link or CTA someone clicked, send a custom event instead. Events are stored per interaction, so first-touch attribution never rewrites them:
window.verita('trackEvent', 'cta_click', { cta: 'pricing_footer' }); The event appears in your event reports and can be turned into a goal. See Custom Events & Definitions.
A third option needs no event code at all. A parameter that is not one of the aliases above
and not on the list of parameters we always remove from a stored URL survives there instead,
so you can read it back out of Top Pages. Our own landing page tags its buttons this way:
?cta=hero and ?cta=closing-banner show up unchanged in that report. The
trade-off against a custom event: the tag lives on one pageview and carries a single value, while
an event carries whatever properties you pass and is not tied to a particular page load.
Custom Dimensions (Segmentation)
Custom dimensions let you segment analytics data by properties you define. For example, you might segment by pricing plan, user role, or A/B test variant.
-
Navigate to Site Settings and create a custom definition with a parameter name
(e.g.,
plan_tier). -
Pass the property in your tracking events:
window.verita('trackEvent', 'signup', { plan_tier: 'pro' }); - Use the segmentBy parameter in the dashboard or API to group data by your custom dimension.
Segmentation is available for a single site at a time and groups event data (not pageviews) by the custom property values.
Attribution Models
The Campaign Performance widget offers three attribution models in a dropdown. All three work inside a single visit, which ends after 30 minutes of inactivity. Visitors are counted with a salt that rotates daily, so no model here can follow somebody from one day to the next.
- First Touch credits the campaign the visit started on. This is the default.
- Last Touch credits the most recent tagged campaign in the visit.
- Last Non-Direct Click credits the last tagged campaign in the visit that arrived from somewhere: a search engine, a social network, an email, or any other site. It skips touches that arrived with no referrer, so a visitor who clicks your ad, leaves, and later types your address in is still credited to the ad. A visit whose every touch arrived directly gets no row under this model.
Switching model changes which touch inside the visit gets the credit. It does not tell you whether the campaign caused the conversion: each model divides credit among the touches we observed, and only a holdout test can answer what would have happened without the campaign.
Explore the documentation
Jump to another guide.