HubSpot showed the wrong traffic sources. The real problem was four layers deep.
A B2B team asked why HubSpot showed the wrong traffic sources. The answer led to a broken offline conversion feed, cross-domain breaks and a custom integration that had to be rewritten.
By Vladimir Cvetkoski · Last updated
The situation
The client is a B2B company that runs paid campaigns and uses HubSpot as its CRM. Marketing and sales both report out of HubSpot.
Visitors move between a marketing site and the product, which run on separate domains. A custom integration feeds data into HubSpot.
The team came to me with one question: why is HubSpot showing the wrong traffic sources?
What the team saw
- →Contacts in HubSpot carried traffic sources that did not match the campaigns that brought them in.
- →Google Ads was not getting reliable conversion data back from the CRM, so bidding could not learn which clicks became pipeline.
- →Visits that crossed from the marketing site to the product lost their original source along the way.
- →Reports on paid channels could not be tied to pipeline, so budget conversations ran on opinion.
What was actually broken
Source data lost before it reached HubSpot
The traffic source HubSpot recorded was not the one the visitor arrived with. The wrong-source report was a symptom, not the root problem.
Broken offline conversion feed to Google Ads
The feed that should send CRM outcomes back to Google Ads was not working, so Google Ads optimized without knowing which leads mattered.
Cross-domain tracking failures
Tracking did not carry the visitor across the marketing site and the product domain, so sessions split and the first touch was lost.
A custom integration with faulty code
The issue was not a setting. The code inside a custom integration was wrong and had to be rewritten, not reconfigured.
What changed
The immediate problem first
I fixed what was causing the wrong traffic sources first, so new contacts started arriving in HubSpot with the right source data.
Offline conversions back to Google Ads
I repaired the offline conversion feed so Google Ads receives the CRM outcomes it needs to optimize on real pipeline.
Cross-domain tracking
I fixed tracking between the marketing site and the product so a visitor keeps one journey and one source across both domains.
The integration, rebuilt
Once the urgent leaks were closed, I rewrote the custom integration so it passes the right data into HubSpot and keeps doing so.
Afterwards
- →Every paid touchpoint is now connected to pipeline in HubSpot.
- →Google Ads receives offline conversions from the CRM again.
- →Budget decisions are made on data the team trusts.
Tools involved
- →HubSpot
- →Google Ads offline conversions
- →Custom HubSpot integration
Services used
Attribution Audit
A fixed-scope audit of how your ad clicks, forms and CRM connect. You get a written report of every leak, ranked by cost, and a fix plan.
Read more →ServiceThe Fix
A one-time engagement to fix specific attribution problems, scoped and priced before any work starts. You get a working fix and written notes on what changed.
Read more →ServiceOffline Conversions
Feed real lead and customer outcomes from HubSpot back to Google Ads, Meta and LinkedIn, so they stop optimizing on form fills.
Read more →ServiceAttribution Monitoring
Tracking breaks get flagged before they hit your reports. Alerts, hands-on hours for fixes and changes, and a quarterly review. Try it free for 2 weeks.
Read more →Describe what you are seeing
Send a few lines about what looks wrong. I reply within 1 business day and tell you whether it needs an audit, a fix, or nothing at all.