← ALL POSTS
Getting Started

Connect Your Link Data to GA4, HubSpot, and Ad Platforms

How link data reaches Google Analytics, HubSpot and ad platforms, which parts are automatic, and where UTMs and conversions fill the gaps.

aActurity TeamAPR 6, 2026 · 10 MIN READ
Diagram showing link click data flowing into analytics and marketing platforms

Clicks on your short links, sessions in GA4, contacts in HubSpot and conversions in Meta each tell part of the story, and they rarely agree. Say half the traffic in Google Analytics shows up as "direct," your HubSpot contact timeline has gaps, and your Meta reports don't match anything else. The data exists. It's just stuck in the wrong places.

It's easy to treat link tracking integrations as a "set it and forget it" thing. They're not. Getting your link data into GA4, HubSpot and your ad platforms takes deliberate wiring, and getting it wrong means your attribution is basically fiction. The first step is to know which data travels where, because clicks and conversions take different routes.

Your Link Data Is Only as Good as Where It Ends Up

Acturity records every click on your branded short links, including device, location, referrer and timestamp. That's useful on its own. It gets more useful when the same story shows up in the tools where you make decisions: your analytics platform, your CRM, your ad manager.

The goal isn't more data in more places. It's keeping the story consistent. When someone clicks a link in your email campaign, you want GA4 to attribute the visit correctly, your CRM to know who it was, and your ad platform to credit the right ad. Otherwise you're running three different versions of reality.

Here is how the pieces split up.

  • Clicks are recorded by Acturity when the redirect happens. They show in your analytics. To send click events to other tools as they happen, use webhooks, or the Slack, Zapier and Make integrations, which can receive link click events.
  • Conversions are sales or signups that you report to Acturity from your server, together with the click ID and the order value. Connected integrations carry these onward. Acturity forwards them to Meta, sends them to GA4, and adds a note in HubSpot when the conversion includes a customer email address.
  • UTM parameters travel on the destination address, so they reach your website's analytics without any integration at all.

Our platform integrations cover the second item. The third needs only discipline, which is why it gets the most space below.

GA4: Two Paths, Pick the Right One

There are two ways to get your link data into Google Analytics 4. One is passive and one is active. Most teams should do both.

Path 1: UTM parameters. This is the baseline. Every link you create should carry UTM tags, with source, medium and campaign at minimum. When someone clicks your short link and lands on your site, GA4 picks up those parameters from the URL. No extra setup on the GA4 side.

The catch is consistent naming. utm_source=facebook and utm_source=Facebook and utm_source=fb are three different sources in GA4. A team of 15 people creating links can end up with dozens of spellings of the same source. Agree on a UTM naming convention before you do anything else. This one habit saves more headaches than any integration.

Path 2: Measurement Protocol. This is the active route. When a conversion is reported to Acturity, the Google Analytics integration sends it to GA4 from our server, using GA4's Measurement Protocol, with its value and currency. You supply your GA4 measurement ID and an API secret when you connect it. It matters when the conversion happens somewhere your website tag can't see, such as a purchase confirmed by your backend after someone scanned a QR code on a poster.

One limit to know about. GA4 receives these conversions under Acturity's click ID, not the visitor's own Google Analytics ID, so it does not link them to the visit or the campaign the person came from. Treat them as a count of conversions in GA4, and do the per-link and per-campaign attribution in Acturity.

Use it when:

  • You're tracking offline-to-online conversions from QR codes or print materials
  • Your conversions are confirmed on your server and not in the browser
  • You want a second record of conversions that doesn't depend on a browser tag

Skip it if all your conversions already fire correctly in GA4 from your own site. Then UTM data is doing the job.

HubSpot: Contacts, Not Just Pageviews

GA4 cares about sessions. HubSpot cares about people. Different problem.

Here is what reaches HubSpot from Acturity. When someone submits a contact form on one of your link-in-bio pages, the integration creates or updates the contact and adds a note about the submission. When a conversion carries the customer's email address, it adds a note to that contact too. Anonymous link clicks, and conversions without an email, do not reach HubSpot. We'd rather say that plainly than have you hunt for clicks on a timeline that will never show them.

So how do you tie plain clicks to contacts? You give the click something to match on. Create one short link per contact or per send, store the link id or short code on the HubSpot record, and use a webhook to look it up when the click arrives. We walk through the whole chain in our post on automating workflows with webhooks.

HubSpot's own link tracking in emails is decent for opens and clicks within HubSpot-sent emails. It says nothing about links shared on social, in Slack messages or in partner communications. For those, Acturity's click analytics fill the gap, and the match-by-link approach above brings individual clicks back to a contact.

Ad Platforms: Closing the Attribution Loop

This is where things get genuinely tricky, and where most teams give up too early.

Google Ads, Meta and LinkedIn all have their own click tracking. They also all have their own attribution models, their own conversion windows, and their own opinions about what counts as a conversion. Your link data can't make them agree, but it gives you an independent record to check them against.

The raw material is the click ID each platform adds to your link. Acturity captures gclid, gbraid, wbraid, fbclid, msclkid, ttclid and li_fat_id, and it keeps the query string when it redirects. Our guide to click IDs explains what each one does and why they go missing.

Google Ads: Google Ads expects the ad's final URL to be on your own site, so don't paste a short link there. Use auto-tagging with UTMs on the final URL. Short links help with Google traffic you send yourself, such as a link in a YouTube description. For those clicks the gclid is captured and kept through the redirect, so GA4 and Google Ads can still match the visit to the click, as long as no hop in the middle strips the parameter, which some link tools and hosting setups do.

Meta Ads: Meta uses fbclid. The same rule applies, it has to survive the redirect. On top of that, Acturity can forward conversions you report to Meta's Conversions API (it needs the address of the page where the conversion happened), so a purchase confirmed on your server still reaches Meta without any pixel in the browser. Say someone scans a QR code at your booth, buys later, and your backend reports the sale with the click ID. Acturity sends Meta no customer email or phone number with it, so Meta can only match the event loosely, and you should treat it as a signal and not as exact credit for one ad.

LinkedIn Ads: LinkedIn adds li_fat_id to clicks, and Acturity captures it. If you upload conversions to LinkedIn yourself, that ID is the key that lets LinkedIn match them to the ad.

The pattern across all three is that your link is the bridge between the ad click and what happens next. Without consistent tagging and clean parameter passthrough, that bridge has holes in it.

The UTM Tax, and Why It's Worth Paying

Nobody loves UTM parameters. They make URLs ugly, they take discipline, and someone on your team will get the naming wrong. But they're the shared language every one of these platforms understands.

Every link you create should carry UTMs. Our campaign tracking tools let you set the UTM values once per campaign, and Acturity adds them to every link in that campaign as it redirects, so nobody types utm_medium=social fifty times a week. One detail to know. If a link's destination already has a parameter with the same name, the campaign's value replaces it, so keep one source and medium per campaign.

A few rules we recommend to every team.

  • Lowercase everything, always.
  • Use hyphens, not underscores or spaces. spring-sale-2026, not spring_sale_2026.
  • Keep utm_source to the platform name, such as google, meta, linkedin, email or qr.
  • Put the creative variant or audience segment in utm_content. It's the tag most people skip, and the one that tells you which version of a link did better.

If you're running cross-channel campaign tracking, UTMs are the connective tissue. Skip them and your GA4 reports, CRM attribution and ad platform data will never agree on anything.

Server-Side vs. Client-Side: When It Matters

Quick detour, but it matters.

Client-side tracking, meaning JavaScript tags and pixels, fires when someone loads a page in their browser. Server-side tracking fires from a server when an event happens. A link click is a server-side event. The redirect happens on Acturity's servers before the visitor's browser loads your page, so a browser extension that blocks scripts on your site can't stop the click from being counted.

That's an advantage, with one caveat. A server-side count includes every request that reached the link, and some of those are bots, not people. Every click gets a bot-likelihood score and suspected bots show up in the bot traffic report. By default they are still counted. If your link numbers run higher than your analytics tool's, that is one reason, and our guide to bot clicks shows how to read it.

For conversions, the server-side route is why a sale confirmed by your backend can still reach GA4 or Meta when the visitor's browser blocked your pixel. See our guide to cookieless conversion tracking for how that call works.

Debugging When the Numbers Don't Match

They won't match. Not perfectly. Accept that now and save yourself some frustration.

GA4 will show different numbers than HubSpot, which will show different numbers than Meta. That's normal. They all define a click differently, they all use different deduplication logic, and they all have different attribution windows. Our guide on why click counts don't match Google Analytics goes through the reasons one by one.

What you're looking for is directional agreement. Say GA4 reports 500 sessions for a campaign and your Acturity analytics show 480 clicks on those links. You're fine. Say GA4 reports 500 and Acturity reports 2,000. Something's off, probably a UTM mismatch, a stripped parameter, or bot traffic.

When troubleshooting:

  • Check a single link first. Click it yourself and watch the redirect. Check that the UTMs arrive on the landing page, that GA4 logged the session with the right source and medium, and, if relevant, that the conversion arrived where you expected.
  • Look at the raw event data in each platform, not the aggregated reports. Reports apply sampling, attribution logic and filters. Raw events tell you whether the data arrived.
  • Check for parameter stripping. Some hosting platforms or CDNs drop query parameters on redirect. If your UTMs vanish between the link click and the landing page, that's your problem.

Most integration issues come down to a few things, namely inconsistent UTMs, stripped parameters, a conversion that was never reported to Acturity, or wrong API credentials. Boring problems with boring fixes.

FAQ

Can I send link click data to platforms not listed here?

Yes. Acturity has built-in integrations for Google Analytics, Google Ads, Meta, LinkedIn Ads, HubSpot, Salesforce, Mailchimp, SendGrid, Slack, Zapier and Make. For anything else, use webhooks to send click events to any public HTTPS address that accepts a POST request.

Do all integrations receive every click?

No, and it's worth knowing before you build a report on one. Each integration handles its own set of events. Slack, Zapier and Make can receive link click events. The GA4, Meta and HubSpot integrations work on conversions and form submissions, as described above. Check what an integration handles before you rely on it.

How much of this can I automate so I'm not configuring every link by hand?

A fair amount. Set the UTM values at the campaign level and every link in the campaign gets them. Connect your integrations once and they apply to your account, not to each link. Conversions need a one-time call from your server that reports the sale with the click ID. After that it runs without you touching individual links. Our webhook automation post covers the more advanced setups.

Wire It Once, Then Keep Checking

Once the wiring is done, every link you create feeds your reporting without manual exports or CSV uploads. But a connection that worked in March can break in June, when someone rotates an API key or renames a campaign. Put a monthly check in the calendar. Click a test link, report a test conversion, and look at the result in each tool.

That's the point of link tracking integrations. Not just having the data, but having it show up where you need it. If your reporting stack still has blind spots, the integrations page is where to start.

SHAREX / TwitterLinkedIn

Keep reading

One useful email, every couple of weeks.

Marketing tips and product updates. No spam, unsubscribe anytime.