How URL Parsing Works
A URL consists of several components that the parser breaks down individually:
https://example.com/landing-page?utm_source=google&utm_medium=cpc&utm_campaign=sale#section
│ │ │ │ │
│ │ │ └── Query string (parameters) │
│ │ └── Path │
│ └── Host/Domain │
└── Protocol └── Fragment
The parser extracts everything in the query string (after ?) and categorizes each parameter.
Standard vs. Custom Parameters
| Type | Examples | Notes |
|---|---|---|
| Standard UTM | utm_source, utm_medium, utm_campaign, utm_term, utm_content | Read by GA4 / UA automatically |
| GA4 Extended | utm_id, utm_source_platform, utm_creative_format, utm_marketing_tactic | GA4-specific additions |
| Custom | ref, affiliate_id, promo, fbclid, gclid | Platform-specific or custom tracking |
Interpreting GA4 Channel Grouping
The parser predicts the GA4 Default Channel Grouping for a URL based on its utm_source and utm_medium values:
| Channel | utm_medium Matches | utm_source Examples |
|---|---|---|
| Paid Search | cpc, ppc, paid_search | google, bing, yahoo |
| Organic Search | organic | google, bing |
email | newsletter, mailchimp | |
| Paid Social | paid_social | facebook, instagram, tiktok |
| Organic Social | social | facebook, twitter, linkedin |
| Display | display, banner, cpm | any |
| Affiliates | affiliate | any |
| Direct | (none) | (none) |
[!TIP] Use the parser to audit incoming campaign URLs from partners, agencies, or ad platforms to verify they are correctly tagged before traffic starts flowing. Errors caught pre-launch save significant reporting headaches.
Common URL Parsing Issues
- Double encoding:
%2520instead of%20— happens when a URL is encoded twice - Spaces in values:
utm_source=Google Adsbreaks the URL — should beutm_source=google-ads - Hash fragments before query:
example.com#anchor?utm_source=x— parameters after#are not sent to the server - Missing
?: Parameters must start with?, not&—example.com&utm_source=xis invalid