Keyword Performance Tracking: Complete utm_term Guide for GA4

UTMGuard Team
8 min readbest-practices

You're bidding on 100 keywords across Bing, DuckDuckGo, and other search platforms. $10,000/month budget. Some keywords convert at 20%, others at 2%.

Question: Which keywords should get more budget? Which should you pause?

Without utm_term: You're guessing.

With utm_term: GA4 shows exact conversion rate per keyword. Data-driven optimization becomes possible.

This guide shows you how to implement complete keyword tracking with utm_term, from setup to optimization.

🚨 Not sure what's breaking your tracking?

Run a free 60-second audit to check all 40+ ways UTM tracking can fail.

Scan Your Campaigns Free

✓ No credit card ✓ See results instantly

What utm_term Tracks

utm_term captures the specific search keyword that triggered your ad.

Example flow:

  1. User searches: "buy crm software"
  2. Your ad shows
  3. User clicks
  4. URL includes: ?utm_term=buy-crm-software
  5. GA4 records keyword with session
  6. User converts
  7. GA4 attributes conversion to "buy-crm-software"

Result: You know this keyword drives conversions.

Complete Setup Guide

Step 1: Add utm_term to Search Campaigns

Bing Ads:

Campaign → Keywords → Destination URL:

?utm_source=bing&utm_medium=cpc&utm_campaign=product-search&utm_term=`{"{"}{"{"}QueryString{"}"}{"}"}}`

{"{"}{"{"}QueryString{"}"}{"}"}} = Bing's macro for actual search query


DuckDuckGo:

?utm_source=duckduckgo&utm_medium=cpc&utm_campaign=product-search&utm_term=`{"{"}{"{"}keyword{"}"}{"}"}}`

Other platforms: Check documentation for keyword macro:

  • Baidu: {"{"}{"{"}keyword{"}"}{"}"}}
  • Yandex: {"{"}{"{"}keyword{"}"}{"}"}}
  • Yahoo: {"{"}{"{"}keyword{"}"}{"}"}}

Step 2: Verify Tracking

Test clicks:

  1. Search for your ad (use preview tool if available)
  2. Click ad
  3. Check browser URL bar
  4. Confirm you see utm_term=your-keyword

GA4 real-time:

  1. After clicking, open GA4 → Real-time
  2. Find your session
  3. Verify "Manual term" dimension shows keyword

Step 3: Collect Data

Minimum for optimization:

  • ✅ 50+ clicks per keyword
  • ✅ 5+ conversions per keyword (or 2 weeks data)

Don't optimize too early. Small sample sizes = unreliable conclusions.

😰 Is this your only tracking issue?

This is just 1 of 40+ ways UTM tracking breaks. Most marketing teams have 8-12 critical issues they don't know about.

• 94% of sites have UTM errors

• Average: $8,400/month in wasted ad spend

• Fix time: 15 minutes with our report

✓ Connects directly to GA4 (read-only, secure)

✓ Scans 90 days of data in 2 minutes

✓ Prioritizes issues by revenue impact

✓ Shows exact sessions affected

Get Your Free Audit Report

GA4 Analysis: 5 Essential Reports

Report 1: Keyword Performance Overview

GA4 → Explore → Free form

Dimensions: First user manual term

Metrics:

  • Sessions
  • Conversions
  • Conversion rate
  • Revenue (if e-commerce)
  • CPA (if tracking cost)

Sort: Conversion rate descending

What you see: Which keywords have highest conversion rates.

Example:

Term                          Sessions  Conv  CVR
buy-crm-software              100       20    20.0%
best-crm-for-small-business   200       25    12.5%
free-crm-tools                500       25    5.0%
crm-comparison                300       9     3.0%

Insight: "buy-crm-software" has 4x better CVR than "crm-comparison"


Report 2: Campaign + Keyword Breakdown

GA4 → Reports → Acquisition → Traffic acquisition

Primary dimension: Campaign Secondary dimension: First user manual term

What you see: Each campaign broken down by keywords.

Use case: Compare keyword performance across different campaigns.


Report 3: High-Traffic, Low-Converting Keywords

GA4 → Explore → Free form

Dimensions: First user manual term Metrics: Sessions, Conversions, Conversion rate

Filter:

  • Sessions > 100 (high traffic)
  • Conversion rate < 3% (low converting)

What you see: Keywords burning budget without conversions.

Action: Add as negative keywords or pause.


Report 4: High-Converting, Low-Traffic Keywords

GA4 → Explore → Free form

Dimensions: First user manual term Metrics: Sessions, Conversions, Conversion rate

Filter:

  • Sessions < 50 (low traffic)
  • Conversion rate > 10% (high converting)

What you see: Hidden gems - keywords that convert well but need more traffic.

Action: Increase bids to drive more traffic.


Report 5: Keyword Search Query Report

Compare triggered keyword vs actual search query:

GA4 → Explore → Free form

Dimensions:

  • Campaign
  • First user manual term

Metrics: Conversions

Use case: See if broad match keywords are triggering on irrelevant searches.

Example:

Target keyword: "crm software"
Broad match triggers for:
- "free crm" (good)
- "crm jobs" (bad - irrelevant)
- "crm courses" (bad - no purchase intent)

Action: Add negative keywords: "jobs", "courses"

Keyword Optimization Framework

Phase 1: Categorize Keywords (Week 1)

Winners (Top 20%):

  • High conversion rate (>10%)
  • Action: Increase bids +30-50%

Average (Middle 60%):

  • Moderate conversion rate (5-10%)
  • Action: Maintain current bids

Losers (Bottom 20%):

  • Low conversion rate (<3%)
  • Action: Decrease bids -50% or pause

Phase 2: Budget Reallocation (Week 2)

Shift budget from losers to winners:

Before optimization:

50 keywords × $200/month = $10,000 total
All keywords performing at 8% average CVR

After optimization:

15 winner keywords × $500/month = $7,500
15 average keywords × $150/month = $2,250
10 loser keywords × $25/month = $250 (test budget)
10 keywords paused = $0

Total: $10,000 (same budget, better allocation)

Result: Average CVR increases from 8% to 12% (same spend, +50% conversions)


Phase 3: Continuous Testing (Ongoing)

Always keep 10-20% budget testing new keywords:

Sources for new keywords:

  • Google Keyword Planner
  • Competitor analysis tools
  • Customer support questions
  • Sales team feedback
  • Reddit/Quora questions

Test format:

New keyword: "affordable-crm-for-startups"
Budget: $100 test budget
Duration: 2 weeks
Decision: If CVR > 8%, scale. If < 5%, pause.

Advanced Keyword Insights

Insight 1: Match Type Performance

Track performance by match type:

Setup:

Exact match: utm_term=buy-crm-software-exact
Phrase match: utm_term=buy-crm-software-phrase
Broad match: utm_term=buy-crm-software-broad

Analysis: Which match type drives best ROI?

Common finding: Exact match has highest CVR but lowest volume. Phrase match = best balance.


Insight 2: Keyword Intent Analysis

Categorize by intent:

Commercial intent (high conversion):

  • "buy crm software"
  • "crm pricing"
  • "crm demo"

Informational intent (low conversion):

  • "what is crm"
  • "crm tutorial"
  • "crm benefits"

Navigational intent (brand):

  • "yourcompany crm"
  • "yourcompany login"

Analysis: Commercial intent keywords convert 5-10x better than informational.

Action: Allocate 80% budget to commercial, 20% to informational (brand building).


Insight 3: Long-Tail vs Short-Tail

Short-tail (1-2 words):

Term: "crm"
Sessions: 1,000
CVR: 2%
Cost: High (competitive)

Long-tail (4+ words):

Term: "best-crm-for-small-business-with-email-marketing"
Sessions: 50
CVR: 15%
Cost: Low (less competitive)

Finding: Long-tail keywords often have:

  • Lower traffic
  • Higher conversion rates
  • Lower cost per click
  • Better ROI

Strategy: Bid aggressively on long-tail, use for prospecting.


Insight 4: Seasonal Keyword Patterns

Track CVR over time:

GA4 → Explore → Line chart

X-axis: Month Y-axis: Conversion rate Breakdown: First user manual term (top 10 keywords)

Finding: Some keywords perform better in certain months:

"tax crm software" - peaks in Jan-April (tax season)
"back-to-school crm" - peaks in August-September
"holiday crm" - peaks in November-December

Action: Increase bids seasonally for relevant keywords.

Negative Keyword Strategy

Use utm_term data to find negative keyword opportunities:

GA4 Report: Negative Keyword Candidates

GA4 → Explore → Free form

Dimensions: First user manual term Metrics: Sessions, Conversions Filter:

  • Sessions > 100
  • Conversions = 0

What you see: Keywords driving traffic but zero conversions.

Example negative keyword list:

Keywords with 0 conversions:
- "free crm" (100 sessions, 0 conv) → Add negative: "free"
- "crm jobs" (80 sessions, 0 conv) → Add negative: "jobs"
- "crm courses" (60 sessions, 0 conv) → Add negative: "courses"
- "crm definition" (50 sessions, 0 conv) → Add negative: "definition"

Action: Add to campaign negative keyword list.

Result: Reduce wasted spend by 10-20%.

Common Mistakes

Mistake #1: Not Using Dynamic Insertion

Wrong (static):

All keywords: utm_term=search-campaign

Can't differentiate keywords.

Fix (dynamic):

utm_term=`{"{"}{"{"}QueryString{"}"}{"}"}}`

Mistake #2: Mixing Auto-Tagging with utm_term

Wrong:

Google Ads: ?gclid=abc123&utm_term=keyword

Breaks auto-tagging.

Fix: Use EITHER gclid OR manual utm_term, never both.


Mistake #3: Optimizing Too Early

Wrong: Pause keyword after 3 days with 2 conversions.

Problem: Sample size too small.

Fix: Wait for 50+ clicks or 5+ conversions per keyword.


Mistake #4: Only Looking at Conversions

Wrong: "Keyword A has 10 conversions, Keyword B has 15. B wins!"

Problem: Keyword A might have 50 clicks (20% CVR), Keyword B has 300 clicks (5% CVR).

Fix: Compare conversion RATE, not absolute conversions.

Prevention Checklist

✅ Add utm_term to all non-auto-tagged search campaigns ✅ Use dynamic keyword insertion macros ✅ Verify tracking in GA4 real-time ✅ Collect minimum 50 clicks per keyword before optimizing ✅ Analyze keyword performance weekly ✅ Categorize keywords: winners/average/losers ✅ Reallocate budget to high-converting keywords ✅ Build negative keyword list from zero-conversion terms ✅ Test new keywords with 10-20% of budget

✅ Fixed this issue? Great! Now check the other 39...

You just fixed one tracking issue. But are your Google Ads doubling sessions? Is Facebook attribution broken? Are internal links overwriting campaigns?

Connects to GA4 (read-only, OAuth secured)

Scans 90 days of traffic in 2 minutes

Prioritizes by revenue impact

Free forever for monthly audits

Run Complete UTM Audit (Free Forever)

Join 2,847 marketers fixing their tracking daily

FAQ

How many keywords should I track?

No limit. utm_term can track thousands of keywords. The limit is your ability to analyze and act on data.

Recommendation: Start with 20-50 keywords. Scale as you optimize.

What's a good keyword conversion rate?

Varies by industry:

  • B2B SaaS: 5-15%
  • E-commerce: 2-8%
  • Lead gen: 10-25%

Your goal: Beat YOUR baseline. If average is 8%, any keyword with 10%+ is a winner.

Should I pause keywords with zero conversions?

Not immediately.

Check:

  1. Sample size: Has it had 50+ clicks?
  2. Timeframe: Running for 2+ weeks?
  3. Industry: Some B2B keywords take months to convert

If yes to all and still zero conversions → Pause.

Can I track keywords from organic search with utm_term?

No. utm_term is for PAID search only.

Organic keyword tracking:

  • Google Search Console (keyword query report)
  • GA4's organic search queries (limited data)

How often should I review keyword performance?

Weekly: Quick check (top 10 winners/losers) Monthly: Full analysis, budget reallocation Quarterly: Strategic review, test new keywords

What if my platform doesn't support keyword macros?

Manual approach:

  1. Create spreadsheet with all keywords
  2. Generate unique URL for each:
    Keyword 1: ?utm_term=buy-crm-software
    Keyword 2: ?utm_term=free-crm-tools
    ...
    
  3. Upload to platform

Labor-intensive but necessary for tracking.

Conclusion

Keyword performance tracking with utm_term:

  1. Setup: Add utm_term={"{"}{"{"}QueryString{"}"}{"}"}} to search ads
  2. Collect: Minimum 50 clicks per keyword
  3. Analyze: GA4 reports showing CVR by keyword
  4. Categorize: Winners (top 20%), losers (bottom 20%)
  5. Optimize: Reallocate budget from losers to winners
  6. Negative: Add zero-conversion keywords as negatives
  7. Test: Always keep 10-20% budget testing new keywords

Result: Same budget, 50-100% more conversions by focusing on high-converting keywords.

Key insight: Not all keywords are created equal. utm_term reveals which drive ROI.


Related: utm_term vs gclid: When to Use Which