Google Ads Tracking
OK lets take this client https://daviessprings.com/compression-springs/ there google ads just use the URL https://daviessprings.com/compression-springs/ suppose we used something with the UTM code in it could we discover more information about the visitor or perhaps which keyword they used to visit the page?
Yes, you can track exact Google Ads keywords and traffic data using URL parameters. However, instead of manually adding standard UTM codes, the recommended and far more powerful approach for Google Ads is to use ValueTrack parameters combined with Google’s auto-tagging.
1. The Best Approach: Google Ads Auto-Tagging + ValueTrack
Google Ads provides dynamic tokens (ValueTrack parameters) that automatically pass the exact keyword, search query, campaign, and device into your URL when a user clicks an ad.
Instead of writing out static UTMs, you add a tracking template to your Google Ads campaign:
{lpurl}?utm_source=google&utm_medium=cpc&utm_campaign={campaignid}&utm_term={keyword}
When a user searches for “heavy duty compression springs” and clicks your ad, Google automatically expands {keyword} to the exact matching keyword from your account and populates your Analytics and server logs.
2. Information You Can Track Using ValueTrack
By updating your ad URL template, you can capture:
{keyword}: The specific target keyword in your ad group that triggered the ad.{matchtype}: Whether it was Exact (e), Phrase (p), or Broad (b).{device}: Mobile (m), Desktop (d), or Tablet (t).{network}: Google Search (g) vs. Search Partners (s).{creative}: The specific ad variation/headline ID that drove the click.
3. Key Dos and Don’ts for Davies Springs
Dos
- Enable Auto-Tagging in Google Ads: Ensure
gclid(Google Click Identifier) is enabled in your Google Ads settings. This feeds complete cost, keyword, and conversion data directly into Google Analytics 4 (GA4). - Use Campaign Tracking Templates: Set the tracking template at the Google Ads Account or Campaign level once, rather than manually updating every individual landing page link (
[https://daviessprings.com/compression-springs/](https://daviessprings.com/compression-springs/)). - Test on WordPress/GeneratePress: Ensure your linux server and site configuration do not strip query parameters (URL parameters beginning with
?) or force redirects that drop the parameter before GA4 fires.
Don’ts
- Don’t Hardcode Static Keywords: Avoid typing static terms like
utm_term=compression-springsmanually for every ad. It is tedious and misses the dynamic variation of what the user actually searched. - Don’t Use UTMs for Search Query Mining: Note that
{keyword}records your targeted keyword, not always the raw search string typed by the user. To see exact search queries, view the Search Terms Report directly inside Google Ads or GA4 linked reports. - Don’t Break Page Caching: Ensure any server-level or plugin caching on the GeneratePress site treats URLs with
?utm_or?gclid=as cacheable or bypassed smoothly without stripping the tags.
SME Web & Marketing Advisor
Custom Gem
To safely test dynamic campaign tracking on the extension springs page without risking your existing traffic or ad approvals, use Google Ads’ built-in Tracking Template system.
This method keeps the core URL clean while automatically appending the campaign parameters in the background when a user clicks the ad.
Step-by-Step Test Setup (Campaign Level)
Instead of editing the final URL on your individual ads, apply the tracking template directly to the Extension Springs campaign:
- Log into your Google Ads account.
- Click Campaigns in the left sidebar and select the Extension Springs campaign.
- Go to Settings > Campaign Settings > URL Options.
- Under Tracking Template, paste the following template:
{lpurl}?utm_source=google&utm_medium=cpc&utm_campaign=extension-springs-test&utm_term={keyword}&device={device} - Click the Test button next to the field. Google Ads will test loading
[https://daviessprings.com/extension-springs/](https://daviessprings.com/extension-springs/)with the appended parameters to ensure your Linux/GeneratePress site loads smoothly without errors. - Click Save.
What Each Token Captures
{lpurl}: Automatically pulls your ad’s landing page URL ([https://daviessprings.com/extension-springs/](https://daviessprings.com/extension-springs/)).utm_campaign=extension-springs-test: Labels this trial send clearly in Google Analytics 4 (GA4).utm_term={keyword}: Replaces{keyword}with the exact keyword in your account that triggered the ad (e.g. “industrial extension springs”).device={device}: Records whether the click came from mobile (m), desktop (d), or tablet (t).
Why This is the Safest Approach for Charles
- No Risk of Breaking Ads: Changing a tracking template at the campaign level does not send your ads back through Google’s re-review process, so ads continue running without interruption.
- Site Compatibility: Because GeneratePress and WordPress handle query parameters cleanly, GA4 will log the traffic source, medium, campaign name, and keyword automatically in your Acquisition reports.
- Easy Rollout: Once verified on this campaign, you can roll the exact same template across the remaining two campaigns—just update the
utm_campaignvalue for each.
This is what I have installed with your help. How does this look?
SME Web & Marketing Advisor
Custom Gem
This test tracking setup looks spot on and is working as intended.
Here is a quick breakdown of what the test screenshot confirms:
- Landing Page Validated: Google successfully loaded
[https://daviessprings.com/extension-springs/](https://daviessprings.com/extension-springs/)without returning any 404 or page redirect errors. - Dynamic Tagging Works: Notice how Google converted
{device}intoc(Desktop/Computer) in the generated sample click URL. - Parameter Placeholders:
{keyword}displays as empty (utm_term=) in this preview because it only populates when a real search triggers a live ad click, which is completely normal.
1
Save and Apply
1 min
Click the Close button in the bottom right, then click Save at the bottom of your campaign settings to push this live.
2
Verify Live Clicks in GA4
Ongoing
Check your Google Analytics 4 dashboard under Reports > Acquisition > Traffic Acquisition over the coming days to ensure clicks are registering under google / cpc with campaign name extension-springs-test.
To verify the setup is working once live, check your GA4 acquisition reports after receiving a few ad clicks—you will see visitors tagged with the source google, medium cpc, and campaign extension-springs-test.
OK that is three Google Ads accounts setup. Two switch off the ads at 5pm as they are totally aimed at corporate buyers. the last one tends to be smaller businesses and that runs 24/7. Will there be anything to see tomorrow in the Google Analytics?
SME Web & Marketing Advisor
Custom Gem
Yes, you will begin seeing data in Google Analytics 4 (GA4) tomorrow, but how quickly it appears depends on the specific report you check:
- Realtime Report (Immediate): If ads are running, you can open Reports > Realtime in GA4 while ads are active to see clicks happening live, tagged with your campaign parameters.
- Standard Acquisition Reports (24 to 48 Hours): Full campaign reports take up to 24 hours to populate processing data completely. Tomorrow morning, you should see initial data, but the full 24-hour cycle will be settled by Friday.
Where to Find the Campaign Data in GA4
- Log into Google Analytics 4.
- Go to Reports > Acquisition > Traffic Acquisition.
- Change the primary dimension from Session primary channel group to Session campaign.
- You will see your campaign names listed (
extension-springs-test,vernier-compression-springs,springmakers, etc.) alongside metrics like sessions, engaged sessions, and conversion events.
Key Verification Checks
- Check the Traffic Channel: Ensure the traffic shows under the Paid Search channel group. If it shows under Unassigned, check that
utm_source=googleandutm_medium=cpcwere spelled correctly in lowercase. - Verify Search Term Tracking: Click the blue + icon next to the primary dimension column in GA4 and add Session manual ad query (or Session keyword) to see the exact target keyword passed by the
{keyword}parameter.
https://ga-dev-tools.google/ga4/query-explorer/
Takes you to the Google suggested URL builder, however you can create your own codes.
What you need to ensure is that the URL is unique and can be expanded to cope with being used for years to come.
newsletter – if you send one out every weeks is not very helpful as one might perform fantastic and another very poor but
newsletter-2026-10-07 and next week
newsletter-2026-10-14 would be a much better system.
Flipping back to the UTM if you assigned a code such as newsletter-2026-10-07 the next week
newsletter-2026-10-14 are there any limits to how many parameters Google Analytics can track
SME Web & Marketing Advisor
Custom Gem
There are no practical limits to how many unique campaign names or dynamic parameters Google Analytics 4 (GA4) can track over time.
Changing the parameter value each week—such as newsletter-2026-10-07 followed by newsletter-2026-10-14—will work properly without hitting property limits or breaking reports.
GA4 Capacity & Technical Limits
- Unlimited Parameter Values: GA4 does not limit the number of unique campaign values or dates you pass through standard UTM tags (
utm_campaign,utm_source,utm_medium,utm_term,utm_content). - Standard UTM Character Count: Individual parameter values can be up to 100 characters long (which is plenty for
newsletter-2026-10-07). - Overall Page Location Length: The total URL string sent to GA4 can be up to 1,000 characters long.
- Event Limits vs. Parameter Values: GA4 restricts how many custom dimension fields you can configure (up to 50 event-scoped fields), but standard campaign tags populate GA4’s built-in Session campaign dimension automatically, which has no threshold on total values.
Best Practices for Weekly Email Tracking
- Use Date Formats Consistently: Formatting campaign tags with ISO dates (
YYYY-MM-DD, e.g.,2026-10-07) ensures GA4 sorts weekly sends chronologically in reports. - Keep Source & Medium Constant: Always keep
utm_source=newsletterandutm_medium=emailidentical across every broadcast so all email activity groups cleanly under the default Email channel in GA4. - Avoid Non-Standard Parameters: Stick strictly to the standard UTM fields (
utm_source,utm_medium,utm_campaign,utm_content,utm_term) to ensure automatic tracking without requiring manual custom dimension setup in GA4.
Can you give me a template for tagging all links inside my GeneratePress email broadcasts?
SME Web & Marketing Advisor
Custom Gem
Here is a simple, reusable UTM link template for your weekly email broadcasts, designed specifically for non-technical SME clients.
Email Link Tagging Template
[https://yourdomain.co.uk/target-page/?utm_source=newsletter&utm_medium=email&utm_campaign=newsletter-YYYY-MM-DD](https://yourdomain.co.uk/target-page/?utm_source=newsletter&utm_medium=email&utm_campaign=newsletter-YYYY-MM-DD)
Working Examples for Weekly Sends
- Broadcast sent 7th October 2026:
[https://yourdomain.co.uk/services/?utm_source=newsletter&utm_medium=email&utm_campaign=newsletter-2026-10-07](https://yourdomain.co.uk/services/?utm_source=newsletter&utm_medium=email&utm_campaign=newsletter-2026-10-07) - Broadcast sent 14th October 2026:
[https://yourdomain.co.uk/services/?utm_source=newsletter&utm_medium=email&utm_campaign=newsletter-2026-10-14](https://yourdomain.co.uk/services/?utm_source=newsletter&utm_medium=email&utm_campaign=newsletter-2026-10-14)
Simple Rules for Client Management
- Keep Source and Medium Identical: Always keep
utm_source=newsletterandutm_medium=emailunchanged in lower-case. This ensures GA4 automatically channels all traffic into the Email category. - Update the Date Segment Only: Change only the
YYYY-MM-DDdate at the end ofutm_campaignfor each weekly broadcast. - Use Hyphens, Not Spaces: Never use spaces or special characters in parameter tags.
- Tag All Buttons and Text Links: Use the exact same tagged URL for both text links and call-to-action buttons inside the email layout.
- Zero Plugin Setup Needed: WordPress, GeneratePress, and your Linux server handle these tracking parameters natively without requiring additional plugins.
