Skip to Content
How It WorksPaid Traffic Detection

Paid Traffic Detection

AttributionHub automatically detects paid traffic by looking for advertising signals in the URL. When a paid signal is found, the visit is routed to the corresponding paid channel group instead of its organic equivalent.

What Counts as a Paid Signal

A visit is marked as paid when any of the following are present:

Click IDs

Ad platforms append unique click identifiers to destination URLs. AttributionHub recognises these automatically:

Click IDPlatform
gclidGoogle Ads
gbraid, wbraidGoogle Ads (privacy-safe)
msclkidMicrosoft Ads (Bing)
fbclidMeta (Facebook/Instagram)
ttclidTikTok Ads
li_fat_idLinkedIn Ads
twclidX Ads
snapclidSnapchat Ads

Medium Keywords

If utm_medium matches one of these values, the visit is classified as paid:

cpc, cpm, cpv, cpa, ppc, retargeting, sem, boosted, influencer, display, banner, native

Any utm_medium that starts with paid also qualifies (e.g., paid-social, paid_search, paid-video).

The gad_source URL parameter (set by Google Ads auto-tagging) is treated as a paid signal even when no click ID is present.

How Paid Signals Affect Classification

When a paid signal is detected, channel classification shifts to the paid variant. The script still uses the source (UTM or referrer) to determine which paid channel applies:

Source TypeWithout Paid SignalWith Paid Signal
Search engineOrganic SearchPaid Search
Social networkOrganic SocialPaid Social
Video platformOrganic VideoPaid Video
Shopping platformOrganic ShoppingPaid Shopping
Display/bannerDisplay
Other / unknownReferralPaid Other

Click ID Inference

When a click ID is present but no UTM parameters are set, AttributionHub infers the source from the click ID. The source value uses the lowercase platform identifier. For example:

  • ?gclid=abc123 (no UTMs) -> source = google, channel = Paid Search
  • ?fbclid=xyz789 (no UTMs) -> source = facebook, channel = Paid Social
  • ?msclkid=def456 (no UTMs) -> source = bing, channel = Paid Search

When UTM parameters are present, the source is resolved from the source database and displayed in title case (e.g., utm_source=google -> Google).

This means paid traffic from major platforms is classified correctly even without UTM tagging.

Priority Between UTMs and Click IDs

When both UTM parameters and click IDs are present, UTM parameters take precedence for source and medium values. The click ID still contributes the paid signal, but the explicit UTM values determine how the visit is classified.

For example, ?utm_source=google&utm_medium=cpc&gclid=abc uses google as the source and cpc as the medium. The gclid confirms it is paid but does not override the UTM values.

Examples

URL / ScenarioChannelSourceMedium
?utm_source=google&utm_medium=cpc&utm_campaign=summer_salePaid SearchGooglecpc
?gclid=abc123 (no UTMs)Paid Searchgooglepaid
?utm_source=facebook&utm_medium=paid-socialPaid SocialFacebookpaid-social
?fbclid=xyz789 (no UTMs)Paid Socialfacebookpaid
?utm_source=tiktok&utm_medium=cpcPaid SocialTikTokcpc
?utm_source=google&utm_medium=display&utm_campaign=retargetingDisplayGoogledisplay
?utm_source=partner_site&utm_medium=cpmDisplayPartner Sitecpm
?li_fat_id=abc (no UTMs)Paid Sociallinkedinpaid
?gad_source=1 (no click ID, no UTMs)Paid Searchgooglepaid

Best Practices for Paid Campaigns

  • Always add UTMs to your ad URLs. Click IDs provide a safety net, but explicit UTMs give you control over source, medium, and campaign naming.
  • Use consistent medium values. Stick to cpc for search ads and paid-social or cpc for social ads. Avoid custom medium values that might not be recognised as paid signals.
  • Include utm_campaign. This is the main way to differentiate between campaigns in your attribution data.
  • Don’t disable auto-tagging. Platforms like Google Ads append click IDs automatically. These serve as a fallback when UTMs are missing or misconfigured.