Two optional parameters, two jobs
utm_term and utm_content are the two optional UTM parameters, and they get confused because both add "extra detail". The split is clean: utm_term answers which keyword triggered the click; utm_content answers which creative or link variant got clicked.
Side by side
| utm_term | utm_content | |
|---|---|---|
| Answers | Which paid-search keyword? | Which ad/link variant? |
| Used for | PPC keyword tracking | A/B tests, placements, creatives |
| Example | utm_term=running+shoes | utm_content=hero-banner-v2 |
| Typical channel | Paid search | Any (email, social, display) |
When they combine
They stack. A paid search ad can carry both: the term records the keyword, the content records which ad variation won the click.
https://example.com/landing?utm_source=google&utm_medium=cpc&utm_campaign=search-generic&utm_term=running+shoes&utm_content=responsive-ad-v2
Now the report answers two questions at once: which keyword drove the visit, and which creative closed the click.
Common mix-ups
- Putting keywords in utm_content. Content is for variants, not keywords — keyword data belongs in term so it lands in the right GA4 dimension (Session manual term).
- Putting creative names in utm_term. Term values that are not keywords pollute keyword reports and confuse anyone doing search-term analysis.
- Using both where one suffices. An email with two CTA buttons needs utm_content (which button), not utm_term — there is no keyword involved.
Generate keyword values with the utm_term generator and keep creative labels in your content parameter where they belong.