Tracking UTM Parameters and Campaigns in WordPress
Applies to SlimStat 6.0.0 and SlimStat Pro 3.0.0 · checked
SlimStat Free 6 includes Channels and UTM Campaigns on the Traffic Sources screen. They show where recorded pageviews came from and which tagged campaigns brought them in. Free shows the two largest channels and campaigns in each report and names the rest in a locked row. Pro 3 lists every channel and campaign with paging, links each row to its sales in Ecommerce when WooCommerce reporting is set up, and adds CSV exports and scheduled emails.
Enable the reports on an existing site
Fresh installations use the new schema. When upgrading, back up your database, open SlimStat → Migration, and run Enable UTM and channel reports. Complete the migration for each participating site’s analytics tables on Multisite.
The migration adds fields to both the live and archive pageview tables. A large-table change can rebuild a table or pause tracking writes, so use a suitable maintenance window. Ordinary tracking continues while acquisition setup is pending. Older rows remain unattributed (shown as Unassigned in Channels); SlimStat does not reconstruct historical campaign tags. See the v6 upgrade guide.
This guide describes the reviewed v6 preview source, including the acquisition reports. Confirm your installed package includes this migration and both reports before following these steps.
Tag incoming campaign links
Use a consistent link format:
https://example.com/offer/?utm_source=newsletter&utm_medium=email&utm_campaign=autumn
| Parameter | Use |
|---|---|
utm_source | Publisher or source, such as newsletter |
utm_medium | Marketing medium, such as email |
utm_campaign | Campaign name |
utm_content | Distinguish creatives or links |
utm_term | Your campaign keyword or term |
utm_id | Campaign identifier |
Tag incoming links, not internal navigation. Tags retain their case: Autumn and autumn are distinct. Keep each value within 191 characters and never include personal data. Invalid, duplicate or array-valued tags are rejected; overlong values are truncated. A literal 0 is a valid tag value.
Build and copy a campaign URL
Select Build campaign link on the Channels or UTM Campaigns card. Enter the destination URL, campaign source, medium, and a campaign name or ID. The local builder validates the required tags and preserves existing URL parameters and fragments. Copy the result and test it before publishing. It builds links in your browser; it does not shorten them or turn clicks into orders.
Read Channels and UTM Campaigns
- Follow a tagged link with an eligible test visit that your consent and exclusion settings permit.
- Open SlimStat → Traffic Sources and select a date range containing that visit.
- Read channel and campaign totals, then expand a row for its source breakdown. Without Pro, only the top two channels or campaigns are listed, with a count of the rest, and source breakdowns need Pro. More tags reveals content, term and campaign ID when present.
- Select a value to filter the reports. Clear other filters if the expected row is missing.
What the counts mean
Counts are recorded pageviews, not sessions, unique visitors, conversions or revenue. UTM Campaigns excludes detected bots; Channels includes bots only if your tracking settings collected them. Missing tags and historical channel rows display Unassigned. This is distinct from Direct / unknown, where a new pageview had no usable incoming source. Shares include matching pageviews beyond the displayed result limit. Expandable breakdowns keep their totals consistent under result caps and adapt to narrow widgets.
Traffic Summary’s Direct Pageviews can exceed Direct in Channels because the summary also includes older pageviews without a referrer, while Channels lists that historical data as Unassigned. The reports answer different questions. Direct JavaScript visits retain their empty browser referrer; the tracking request’s HTTP referrer is not treated as internal navigation.
How sources are classified
Classification uses each pageview’s tags, referrer and user agent. Same-site navigation without overriding tags is Internal Navigation; the campaign is not carried forward as session attribution. Unknown sources can be Direct / unknown, and an unrecognized explicit medium can be Unassigned. Referrers stripped by browsers, email apps or private messages cannot reliably be recovered.
AI assistant referrals, recognized AI fetchers and recognized crawlers are separate signals. A claimed user agent is not proof of a bot’s identity or of a human visit. Ordinary search referrals do not reliably reveal whether an AI answer generated the click.
With Pro, users with store reporting permission can select View sales in Ecommerce to open Ecommerce with the same dates and traffic filters. It shows associated orders only; campaign traffic shares remain pageview shares, not revenue or conversion shares. This store-specific link is not offered in a network-merged report. WooCommerce sales attribution explains how an order is credited to a campaign.
Filter or publish a campaign summary
Use the campaign dimensions directly rather than searching the page URL for utm_campaign=. For example, this shortcode lists the leading recorded campaign names within its date range:
[slimstat f="top" w="utm_campaign"]limit_results equals 10[/slimstat]
Campaign filters preserve case. Check the date range and whether the schema migration has completed if results are empty. A shortcode publishes its output to everyone who can access the page, so review campaign names before exposing them. See shortcode options.
Campaign fields are stored separately from the page URL. Removing UTM text from resource alone does not erase the acquisition fields. Apply your collection and retention policy to both; the database reference lists them.