The call explains how Attributor tracks lead source data, why UTMs are essential, and why traffic without UTMs often shows as “Direct” (especially from social apps).
Attributor relies on only two things to determine source:
- UTM parameters
- Referring domain
If neither is reliable (e.g. clicks from mobile apps like Instagram/Facebook without UTMs), attribution will fail or default to Direct. This is not a bug—it’s a known industry limitation (“dark social”).
The solution is consistent UTM usage, ideally automated via social media management tools.
How Attributor Works (Core Logic) #
1. What Attributor Captures #
- Data is written into hidden form fields on WordPress forms (Elementor / Contact Form 7).
- Fields include:
- Channel
- Drill Down 1
- Drill Down 2
- Drill Down 3 (optional Drill Down 4)
- Landing Page
- Landing Page Group
This data is then sent to the CRM (e.g. Salesforce) for reporting.
2. Attribution Decision Process #
Attributor determines source using this order:
- UTM parameters (if present)
- Referring domain (if no UTMs)
These are the only two signals available to any analytics tool.
Channels & Classification Rules #
Paid Channels #
- Require UTMs
- Examples:
- Paid Search
- Paid Social
- Without UTMs → Attributor cannot know it’s paid
- Google Ads without UTMs will often appear as:
- Organic Search
- Direct
Organic Channels (No UTMs) #
- Determined by recognized referring domains
- Examples:
- Google domains → Organic Search
- Facebook.com → Organic Social
- Works only if the click happens in a browser
The “Dark Social” Problem (Key Issue) #
Why Social Traffic Shows as Direct #
- If someone clicks a link inside:
- Instagram app
- Facebook app
- LinkedIn app
- There is no referring domain
- Result → Traffic is labeled Direct
This affects all analytics tools, not just Attributor.
FBCLID / GCLID Clarification #
- These are URL parameters, not referrers
- FBCLID is:
- Undocumented by Meta
- Not reliable for classification
- Attributor cannot safely use FBCLID to identify social traffic
The Only Real Fix: UTMs Everywhere #
Best Practice #
- Add UTMs to every paid and social link
- Especially critical for:
- Social posts
- Google Ads
Easy Automation #
- Use social management tools (e.g. Buffer, Hootsuite, Brandwatch)
- Most have:
- “Automatically append UTMs” settings
- Set once → applied to all links
Channel / Drill Down Mapping (Very Important) #
Attributor fields follow a hierarchy:
| Attributor Field | Rough UTM Equivalent |
|---|---|
| Channel | UTM Medium |
| Drill Down 1 | UTM Source |
| Drill Down 2 | UTM Campaign |
| Drill Down 3 | UTM Term |
| Drill Down 4 (optional) | UTM Content |
- Channel is always the highest-level category
- Drill downs vary depending on channel type
- Fields stay consistent in Salesforce → makes reporting easy
What You Can and Can’t Change #
You Cannot: #
- Edit attribution rules inside Attributor
You Can: #
- Control what data is captured by:
- Changing UTM values
- Adding additional hidden fields (e.g. Drill Down 4)
All customization happens via UTMs and form setup, not the Attributor UI.
Testing Gotchas (Very Important) #
- Attributor uses first-party cookies
- It is first-touch attribution
- Common testing mistake:
- Multiple incognito windows open → cookies persist
- Proper testing:
- Close all incognito windows between tests
Why Paid Search Was Inconsistent #
Root causes identified:
- Google Ads running without UTMs
- Google auto-tagging ≠ UTM tagging
- First-touch attribution remembering earlier visits
- Inconsistent campaign setup by previous agency
Once UTMs are consistently applied → issue should resolve.
Final Takeaways (TL;DR) #
- UTMs = non-negotiable
- Without UTMs:
- Paid ≠ identifiable
- Social apps = Direct traffic
- FBCLID cannot be used reliably
- Automate UTMs via social tools
- Channel ≈ UTM Medium
- Drill downs follow UTM hierarchy
- Testing must account for cookies & first-touch logic