Sign in
MTK Attribution

Multi-touch marketing attribution, solved

Every lead arrives in your client's CRM with its whole journey attached — the ad that created it, the search that closed it, and every paid touch in between. Proof of what your campaigns actually did, on the contact record.

43attribution data points on every lead
form_submit → CRM
mtk_first_channelPaid Social
mtk_first_sourceFacebook
mtk_first_campaignspring-promo
mtk_last_channelOrganic Search
mtk_last_sourceGoogle
mtk_journey_stringPaid Social/Facebook > Organic Search/Google
mtk_last_paid_touchPaid Social/Facebook
mtk_time_since_last_paid_touch2d 6h
Delivered to HubSpot · 240ms
Why agencies pick MTK

Attribution your clients can actually see

Full journey path, made visible

Every session is a recorded touchpoint, and the whole path rides with the lead: “Paid Social/Facebook > Organic Search/Google > Direct.” Multi-touch attribution you can read in the CRM.

Ad influence, surfaced

Touchpoint counts across channels — and paid individually. The last paid touch, how long before conversion it happened, and how many ad touches the journey took.

Optional query normalization

Consistent reporting by default: paid search reads Google Ads, Meta's fb/ig arrive as Facebook and Instagram — one platform, one spelling, across paid and organic. Or flip the per-client verbatim toggle.

Ad-platform cookies for server-side tracking

Captures _fbc, _fbp, and every click ID — the match keys Meta Conversions API and Google offline import want — ready to pass into server-side tracking.

Works with any on-page form

Webflow, Wix, Squarespace, Elementor (popups included), Gravity Forms, GoHighLevel, Framer, plain HTML — even forms injected after page load. If it renders on the page, it fills.

Feeds any CRM

Values land in hidden fields under names you choose, plus the dataLayer — HubSpot, Salesforce, GoHighLevel, or a spreadsheet. No integration to wait on.

First touch to closed deal

The whole journey, stitched together

01
Visitor clicks an ad

The tag freezes the first touch — channel, source, campaign, keyword, creative, click ID, landing page — the moment they arrive.

02
Returns across sessions

Every return visit is its own recorded touchpoint. An organic search three days later doesn't overwrite the ad — it joins the journey.

03
Submits any form

Hidden fields fill automatically — including forms inside popups, multi-step flows, and content injected after page load.

04
The CRM tells the story

The lead lands with the full journey attached: what created it, what closed it, and every paid touch along the way.

Made for agencies

Prove your ads touched the journey — even when they didn't close it

Most leads don't convert on the ad click. They click, think, come back through search or type the URL straight in — days later — and convert “Direct.” Last-click reporting hands your work to another channel, and the client asks what they're paying you for.

MTK keeps a sticky record of every paid touch in the journey. A lead that converts direct, two days after your Facebook ad, arrives saying exactly that — and even a touch outside the platform's attribution window is still in your data, still yours to claim.

mtk_last_paid_touch
The ad that influenced the lead

The most recent paid touchpoint — channel, source, campaign — no matter how long the journey ran. Empty only when no ad was ever involved, which makes “ad-influenced leads” a one-filter report.

mtk_time_since_last_paid_touch
How long the ad worked on them

“2d 6h” from ad click to conversion. Line it up against the platform's attribution window to show value the platform stopped counting.

mtk_paid_touch_count
The frequency picture

How many ad touches it took to convert — the real answer to the frequency debate, per lead, in the CRM.

47 attribution data points

One tag, the whole picture

Forty-three values ride along with every lead — first and last touch as separate field sets, so nothing ever overwrites the origin story.

First & last touch— each captured twice: frozen at first visit, refreshed at the converting session
channelsourcemediumcampaigntermcontentad_placementlanding_pagelanding_page_groupqueryreferrer
Click IDs & match keys— for offline import & Conversions API. ttclid is captured to classify TikTok traffic and can be mapped too.
gclidgbraidwbraidmsclkidfbclid_fbc_fbp
Journey & ad influence— the multi-touch story, computed for you
journey_stringjourney_jsonlast_paid_touchtime_since_last_paid_touchpaid_touch_countsession_countpageview_counttime_to_conversionconversion_datetimeconversion_unixcustom_conversion_timepage_pathpage_urlattribution_summary

Full plain-language reference: what MTK Attribution captures · exactly how it categorizes

Attribution that survives reality

Built for the sites clients actually have

Real sites have content blockers, popup forms, consent banners that eat click IDs, and referrers that lie. MTK is engineered for all of it — and when it can't run at all, nothing breaks.

No tracking beacon to strip

Attribution is worked out in the browser and written into the site’s own form. There is no third-party analytics call for a blocker to intercept — so when a pixel’s conversion event is blocked, the lead still arrives with its full journey.

Fail-open by design

Served from Cloudflare’s edge. If the tag can’t load, the form still submits exactly as it did before — it can never stand between a visitor and a lead.

Recovers clicks other tools lose

Consent redirects and URL rewrites strip click IDs in transit. MTK detects the platform's own fresh cookie, restores the classification and the click ID — and never mistakes a returning visitor for a new ad click.

No phantom channels

Referrers are matched on exact hostnames — microsoft.com is not “Twitter,” your own site is not a “referral,” and a lost query string doesn't become “Direct.”

Timestamps in the client's timezone

Datetimes render in the account's GA4 / ad-platform timezone, in any format the CRM wants — plus purpose-built payloads for Meta CAPI event_time and Google Ads offline import.

Nothing is a black box

Every classification rule — every utm_medium value, every referrer domain, every click ID — is published in the docs. When a client asks why a lead says what it says, you have the exact answer.

MTK sets no third-party cookies and does no cross-site tracking — it reads first-party cookies the site's own ad tags already set. Disclosing attribution tracking and collecting the visitor consent your region requires stays the site operator's responsibility; see our privacy policy and terms.

Install in minutes
One GTM tag per client site

Paste one Custom HTML tag with the client's license key. No build step, no npm, no site rebuild.

<!-- GTM · Custom HTML -->
<script
src="//attr.boggsmtk.com/t.js"
data-key="acme-dental">
</script>
Served from Cloudflare's edge · fail-open by design
Per-client licenses

One tag per client site, one license key each. Add a client in the dashboard, paste the GTM tag, done.

Config without touching GTM

Field maps, source formatting, timezone, session rules — all managed per license in the dashboard. Change them any time; the served tag updates itself.

Guides for the sites clients actually have

Step-by-step installs for Webflow, Wix, Squarespace, Elementor (popups included), Gravity Forms, GoHighLevel, Framer, and plain HTML.

Show clients what their ads actually did