This article covers how Keap™ automatically captures UTM parameters from links to Public Forms, Checkout Forms, and Landing Pages, how UTM parameters are recorded on contact records, and how to use Keap Lead Attribution to analyze marketing channel performance and return on ad spend. This article does not cover how to create Public Forms or Landing Pages. For help with forms, see how to create a public web form in Keap.
Why Tracking UTM Parameters in Keap Reveals Your True Marketing ROI
Standard analytics tools like Google Analytics show anonymous website traffic — impressions, click rates, and visits. What they cannot show is which specific contacts became leads, which leads became customers, and which advertising channels generated the most revenue. Without that connection, marketing spend decisions are based on incomplete data.
When UTM parameters are added to links pointing to Keap Public Forms, Checkout Forms, or Landing Pages, Keap automatically captures those parameters and records them on the contact record when a visitor submits a form. This connects the anonymous traffic data from advertising platforms to real contact records in the CRM — revealing the full funnel from ad click to customer and making it possible to calculate actual return on ad spend (ROAS) by channel.
What Are UTM Parameters?
UTM parameters are tags added to the end of a URL that identify the source of the traffic that clicked the link. When a visitor clicks a link with UTM parameters attached, those parameters are passed to the destination page and tracked by analytics tools like Google Analytics and — when the link points to a Keap form or landing page — recorded on the contact record in Keap.
The Most Commonly Used UTM Parameters
utm_source — Identifies the specific source of the traffic, such as a website, search engine, or social media platform.
utm_medium — Indicates the marketing channel, such as email, CPC (cost-per-click), or organic search.
utm_campaign — Tracks the specific campaign or promotion associated with the link.
utm_term — Used for paid search campaigns to track the keywords or search terms associated with the ad.
utm_content — Tracks different versions or elements within a campaign, such as ad variations or different calls to action. Useful for A/B testing.
Example — Using UTM Parameters to Track a Marketing Campaign
The following example illustrates how UTM parameters are applied to campaign links and how the resulting data can inform marketing spend decisions.
Scenario: Leafy Green Landscaping Service is running a spring campaign on Facebook, Instagram, and Google Ads to generate bid requests for a $165 per month landscaping service. Each platform has a separate link with UTM parameters so that form submissions can be traced back to the originating channel.
Facebook (Meta):
Base URL: https://www.leafygreenlandscaping.com/bid-request
UTM Parameters: utm_source=facebook | utm_medium=social | utm_campaign=spring-campaign
Final Link: https://www.leafygreenlandscaping.com/bid-request?utm_source=facebook&utm_medium=social&utm_campaign=spring-campaign
Instagram:
Base URL: https://www.leafygreenlandscaping.com/bid-request
UTM Parameters: utm_source=instagram | utm_medium=social | utm_campaign=spring-campaign
Final Link: https://www.leafygreenlandscaping.com/bid-request?utm_source=instagram&utm_medium=social&utm_campaign=spring-campaign
Google Ads:
Base URL: https://www.leafygreenlandscaping.com/bid-request
UTM Parameters: utm_source=google-ads | utm_medium=cpc | utm_campaign=spring-campaign | utm_term=spring+cleaning
Final Link: https://www.leafygreenlandscaping.com/bid-request?utm_source=google-ads&utm_medium=cpc&utm_campaign=spring-campaign&utm_term=spring+cleaning
After running these ads at $1,000 per channel, anonymous analytics tools show the following traffic data:
Note: The data below is a hypothetical illustration for educational purposes only. It is not indicative of the actual performance of any advertising channel and does not represent the results of a real marketing campaign.
The screenshot above shows a hypothetical marketing funnel comparison table. At this stage — using only anonymous traffic data — Google Ads appears to have the highest click-through rate. However, anonymous analytics tools do not show which visitors became leads or which leads became customers.
| Channel | Spend | Impressions | Click Rate (CTR) | Visits | Leads / Opt-ins | Customers | |||
|---|---|---|---|---|---|---|---|---|---|
| Facebook (Meta) | $1,000 | 100,000 | 0.9% | 900 | $0.90 | 15 | $66 | 1 | $1,000 |
| $1,000 | 25,000 | 2% | 1,150 | $0.87 | 20 | $50 | 4 | $250 | |
| Google Ads | $1,000 | 2,000 | 5% | 100 | $20 | 8 | $125 | 6 | $166 |
Using Keap Lead Attribution to Complete the Picture
Because UTM parameters were added to the campaign links, every contact who submits the bid request form in Keap automatically has lead source information recorded on their contact record. No changes to the form are required — the UTM data is captured automatically.
The screenshot above shows a Keap contact record with UTM parameter data automatically recorded in the lead attribution section. The utm_source, utm_medium, and utm_campaign values identify which advertising channel brought this contact to the form.
From the contact search, a group can be created for each lead source to count how many leads came from each channel.
The screenshot above shows the Keap contact search with a group created for a specific utm_source value. Groups like this can be created for each advertising channel to count leads by source.
Adding utm_source and utm_campaign filters to the contact search allows groups to be created for each specific campaign and channel combination.
After creating groups for Facebook, Instagram, and Google Ads, the leads column of the marketing funnel table can be filled in with actual contact counts from the CRM.
To determine how many leads from each channel became customers, a new contact search is created for each channel with an additional filter for Person Type = Client.
The screenshot above shows the Keap contact search with both a utm_source filter and a Person Type = Client filter applied. This returns only contacts from a specific channel who converted to customers.
After creating customer groups for all three channels, the full funnel data is visible.
The screenshot above shows the complete marketing funnel table with customer counts from Keap. At this stage, Google Ads shows the lowest cost per customer. However, one more step — revenue — is needed to calculate the true return on ad spend.
With the $165 per month service, the 12-month revenue and ROAS by channel are:
| Channel | Spend | Cost Per Customer | Revenue Over 12 Months | Return on Ad Spend (ROAS) | ||
|---|---|---|---|---|---|---|
| Facebook (Meta) | $1,000 | 1 | $1,000 | $1,980 | $0.98 | 1X |
| $1,000 | 4 | $250 | $7,920 | $6.92 | 7X | |
| Google Ads | $1,000 | 6 | $166 | $11,880 | $10.88 | 11X |
With this complete picture — only possible by combining anonymous traffic data with the lead attribution data recorded in Keap — it is clear that Google Ads is generating the highest return on ad spend at 11X, while Facebook is returning less than $1 for every dollar spent. Reallocating the Facebook budget to Instagram and Google Ads would have a significant positive impact on total revenue.
Key Takeaways
Standard analytics tools show anonymous visitor data only — they do not connect traffic to individual contacts, leads, or customers in the CRM.
Keap Lead Attribution connects UTM parameter data to contact records automatically when a visitor submits a Public Form, Checkout Form, or Landing Page with UTM parameters in the link.
By creating contact groups filtered by lead source in Keap, the full marketing funnel — from ad click to revenue — can be measured and compared by channel to make data-driven advertising decisions.
Comments
0 comments