Getting Started
Ad Tracking Parameters
InHaus matches sessions and orders to your ad campaigns by reading utm_campaign from the URL the customer lands on. This guide walks through setting that up correctly in Meta Ads, Google Ads, TikTok Ads, and Klaviyo - plus the most common tracking-template mistakes that silently break attribution.
Why this matters
Without UTM parameters, our pixel captures the visit but has no way to link it to a specific campaign. You'll see total channel revenue (e.g. "Meta Ads: $4,200") but not per-campaign breakdowns like "AU Advantage+ Shopping earned $1,800 from 12 orders". Setting up tracking templates takes five minutes per platform and unlocks the entire Website Engagement and Campaign Performance views.
Meta Ads
Meta doesn't add UTM parameters to your ad URLs by default. You add them via the campaign-level URL parameters field.
Open your Meta campaign
Scroll to the ad level
Set the URL parameters field
utm_source=meta&utm_medium=paid&utm_campaign={{campaign.id}}&utm_content={{ad.id}}&utm_term={{adset.id}}{{campaign.id}} with the actual numeric campaign ID at click time. InHaus matches that ID against your synced campaigns automatically.Save and publish
campaign.id instead of campaign.name? Campaign IDs are immutable - if you rename a campaign in Ads Manager, historical reporting still joins correctly. Names can change or contain characters that break URL encoding.Google Ads
Google uses ValueTrack tokens inside a tracking template. Set it once at the account level and every campaign inherits.
Open account-level tracking
Paste the tracking template
{lpurl}?utm_source=google&utm_medium=cpc&utm_campaign={campaignid}&utm_content={creative}&utm_term={keyword}{lpurl} is Google's placeholder for your destination URL. Everything after the ? gets appended when the ad is clicked.Validate the template
{campaignid} appearing as literal text instead of a real ID, the tracking template has a typo.Save
{campaign} - that's not a valid Google ValueTrack token. The correct ones are {campaignname} and {campaignid}. A typo will cause Google to emit the literal text {campaign}into every click URL, completely breaking attribution. We've seen this happen to every second merchant we onboard - double-check your template.TikTok Ads
TikTok's URL parameters work similarly to Meta - set at the ad-group level via dynamic tags.
Open your TikTok ad group
Set URL parameters
?utm_source=tiktok&utm_medium=paid&utm_campaign=__CAMPAIGN_ID__&utm_content=__AID____CAMPAIGN_ID__ and __AID__ at click time with the actual IDs.Save and publish
Klaviyo (Email)
Klaviyo automatically adds utm_source=klaviyo and utm_medium=email to every click - you don't need to configure anything for basic email attribution.
Common mistakes to avoid
- Unsubstituted placeholders -
{campaign},{campaignname},{adgroup}appearing literally in your landing page URLs means your tracking template has a typo. Each ad platform has its own token syntax (Google uses{campaignid}, Meta uses{{campaign.id}}, TikTok uses__CAMPAIGN_ID__) - don't mix them. - Using utm_source=facebook for Meta - this works but makes InHaus treat Facebook and Instagram as the same source. If you want them separated in reports, use
utm_source=metaand let the medium distinguish (utm_medium=facebookvsutm_medium=instagram). - Forgetting the question mark in Google tracking templates - the correct template starts with
{lpurl}?. Without the?, Google appends the params directly to your URL and breaks it. - Setting UTMs at the wrong level- Meta wants them at the ad level, Google wants them at the account level, TikTok wants them at the ad group level. Setting at the wrong level doesn't propagate.
How to verify it's working
- Open an incognito window and click one of your live ads.
- Check the URL you land on. It should include
?utm_source=...&utm_medium=...&utm_campaign=...with real values (not placeholders). - Wait 2–3 minutes, then open InHaus → Campaigns → Columns → Website Engagement. Your campaign should show non-zero Sessions, Avg Duration, and Pageviews.
- If it doesn't, hit
/api/debug/utm-histogram?workspaceId=YOUR_ID&days=1to see what the pixel is actually capturing - thetopCampaignsarray shows the values that came through.
Still not seeing campaign data? Book a free 15-minute onboarding call- we'll screenshare with you and get it sorted.
Contact us