UTM parameters
UTM parameters are the simplest attribution tool there is: a few labeled values in a link. They work well on the web and break at the App Store, which is exactly where app marketers need them most.
Updated
A UTM-tagged link looks like any other URL with a query string appended. When someone opens it, the web page or analytics script reads the values and records where the visit came from. Nothing is stored on the ad platform’s side; the information travels only in the link itself.
The five UTM parameters
| Parameter | What it records | Example value |
|---|---|---|
| utm_source | The site or platform that sent the traffic | |
| utm_medium | The type of traffic | paid_social |
| utm_campaign | The campaign or promotion name | spring_annual_offer |
| utm_term | The keyword, mostly for paid search | meditation app |
| utm_content | The creative or link variant | video_a |
Source, medium and campaign are the ones almost every tool expects. Term and content are optional but useful when you test several creatives or keywords under one campaign. Pick a naming convention, write it down, and keep values lowercase so that “Instagram” and “instagram” do not become two sources.
UTMs in web-to-app funnels and web paywalls
Subscription apps increasingly send paid social traffic to a web page first: a quiz, a landing page or a web paywall where the user can start a trial or pay before installing. Here UTMs are at their best, because the whole journey up to the purchase happens in a browser.
- Read the UTM values when the landing page loads and store them with the visitor’s session.
- Carry them through each funnel step, including checkout, so the purchase record holds the original source and campaign.
- When the user creates an account or pays, save the UTMs against that user or customer ID. That record is what lets you connect the later app login back to the campaign.
- Report revenue by utm_campaign and utm_content, not just visits, so creative decisions are made on subscribers rather than clicks.
Why UTMs do not survive an App Store install
When a link sends someone to the App Store, the query string stays behind. The store does not pass arbitrary URL parameters into the installed app, so on first launch the app has no idea which UTM-tagged link started the journey. This is the core limitation to plan around.
- Account-based matching. If the user signed up or paid on the web first, the app can identify them at login and look up the UTMs saved with their account. This is the most reliable method for web paywall funnels.
- Deferred deep links. A deep-linking or attribution service can try to hand campaign context to the app after install; how well this works depends on the platform and the user’s privacy settings.
- Platform-native attribution. For App Store ads, Apple Ads attribution comes from Apple’s AdServices framework, not from UTMs. Apple Ads is not a web click, so there is nothing for a UTM to tag.
Related terms
Deep linking and mobile attribution are covered in the adapty.io glossary. MMP, SKAdNetwork and AdAttributionKit have their own entries here and describe how installs are attributed once the web trail ends.