Skip to main content
The Campaigns report attributes conversions to your marketing channels using UTM parameters captured from landing page URLs. For the report to be useful, two things must be true: your ad links must include UTM parameters, and your conversion events must include revenue data.

How it works

When a visitor arrives via a tagged URL (e.g. ?utm_source=meta&utm_medium=cpc&utm_campaign=summer25), Hardal captures those values and stores them with the session. Every conversion event fired during that session is then attributed to that source, medium, and campaign.

What your conversion event needs

At minimum, your purchase (or other conversion) event needs value and currency for revenue attribution to appear in the report.
hardal.track("purchase", {
  transaction_id: "ORDER-001",  // prevents duplicate counting on page reload
  value: 99.99,
  currency: "USD"
});
Without transaction_id, the same purchase can be counted multiple times if the confirmation page is refreshed.

UTM parameters

Hardal reads these from the landing page URL automatically — no extra tracking code needed.
ParameterExamplePurpose
utm_sourcemeta, google, newsletterWhere the traffic came from
utm_mediumcpc, email, socialThe marketing channel type
utm_campaignsummer25, retargetingThe specific campaign name
If your ad links don’t include UTM parameters, all traffic from those campaigns will appear as “direct” in the Campaigns report. Always tag your paid links.

Common setup issues

SymptomLikely causeFix
Revenue shows as $0value missing from eventAdd value and currency to your conversion event
All traffic shows as “direct”UTMs not on landing URLsTag all campaign links with UTM parameters
Duplicate conversionsNo transaction_idAdd a unique order/lead ID to every conversion event
Conversion not attributedUser clicked ad but UTMs were strippedCheck your redirect chain — some URL shorteners strip UTMs

View Campaigns report

See your live campaign performance in the analytics dashboard