How to use UTM parameters to grow your audience(smashnotes.com) |
How to use UTM parameters to grow your audience(smashnotes.com) |
If you want to go a step further and see which traffic sources lead to form completions (like newsletter or app signups), I made a utility that captures UTM parameters and then inserts them into any form submitted during that session: https://github.com/gkogan/sup-save-url-parameters
Kind of related, I saw a webinar by Ontraport recently and they were going a step further by saving google analytics IDs against contacts for deep funnel conversion tracking. The idea is they don't really care about who signs up for a free trial, they want to know who upgrades to paid within the trial period and usually the attribution is all messed up by then or they don't know who is who. So saving details and manually calling google will help to track this.
It seems there are still a lot of little tricks out there that aren't standard practice.
(Disclosure: I created this to help my customers at https://www.terminusapp.com)
If I were to do localStorage I would only do it if the first touch and last touch tags (even if empty) were saved as separate values. That just means slightly more coding which I haven’t gotten around to. Pull requests welcome :)
In the last five years it hasn't come up at all as everyone is doing it and people seem to dig through their analytics less than ever before, but if it helps you track links to your own content, as being shown in the article, it's certainly worth a go.
Another amusing point is that HN didn't used to strip these parameters, so sometimes I could see when people had reposted things from our newsletters on to HN (and kept the utm params in) which was always a buzz :-)
I have never observed a “utm” query param actually improve the quality of the response.
We all know why this obviously positive functionality isn’t built into the browser: because browser vendors rely on hostile business practices to survive. Still no technology to transact with the site you’re visiting for their content....
You have it backwards. It's more tracking for the webmaster/marketer to know what was popular and what wasn't.
Might even be good, as a way to calculate how well your internal links are working in keeping the users within the property.
For example, put a link at the end of the blog post, and then track how many users clicked it, vs. how many exited on that page.
In any case, I agree and these workarounds are never worth the data doubt they introduce. There are ways to track internal flows without utm tags.
https://chrome.google.com/webstore/detail/neat-url/jchobbjgi...
This garbage breaks the UX of the internet.
Mailchimp adds their own trackers on top of the links you insert into the newsletter, which they use for tracking open/click rates, but that's almost less interesting than the source.
Why does it matter that I have a 36% click rate on the last issue, is it good? What if instead I have 10% click rate, but 1 of those people shared it with 10k more?
I understand why in general people don't like tracking, especially here on Hacker News, but I think some of it could lead to much better outcomes for all parties involved. I wonder what other solutions there are to help piece together your audience, and their interests.
First, we had some issues with certain sites not working at all if we added them and since our link forwarder was doing it automatically, it made life difficult. We came up with a way to turn them off on an adhoc basis but it was annoying.
Second, I didn't feel they were really moving the needle in any useful way. I don't think people are looking at their stats every day like they used to.
Third, it just felt like more litter/junk for tracking purposes. While there's no privacy aspect to it, I just felt like going a little cleaner in this regard. But.. I can't say they won't ever come back :-)
You just rarely ever see it because marketing execution is already an operational nightmare at most places (even more so at scale), and the centralized coordination required to leverage the campaign key method introduces a lot of friction, overhead, and potential bottlenecks into processes with little perceived gain. The decentralized model (i.e. entire dataset in the url) is far easier to enforce compliance with between all parties, as you can providing tooling (i.e. a link builder spreadsheet) that allows each party to integrate the usage into their workflows with minimal overhead or ongoing coordination required.
[1] https://support.google.com/analytics/answer/6066741?hl=en
Right now I can add whatever UTM parameters to any links I send without keying it into a database system, submitting a CR to the IT team, submitting it to Google, or any other nonsense. Details will be collected immediately whether through web logs, google analytics, or something else.
If one email that I send has links to multiple domains (some of which I don't control due to SaaS eating the web) then we'd either have to track and manage multiple IDs which change for each link or use a scary looking GUID generated by a centralised system (no thanks). That sounds like a real headache.
Hiding it behind an ID would make it prettier but it also reduces transparency to the end user of what is being collected. I think if it's going to be there anyway, I'd rather see it.
The url is not the UX anymore.
This is why building "the obvious next steps" [1] is such an important concept. This is also why apps like Facebook or Pinterest have been so successful. Within this new UX, users are not looking to leave, they just want to find more information that is relevant to them.
[1] https://www.gkogan.co/blog/ridiculously-obvious-next-step/
- If you use utm_source=mysite.com by itself it likely would, as the medium would default to referrer and the data sent to GA would be the same as if no explicit parameters were defined.
- If you use utm_medium and set it to anything but referrer, it wouldn't be suppressed. I.e. mysite.com / referrer would get suppressed by the exclusion list and processed as a direct hit, but mysite.com / email would not trigger the exclusion list.
- If you use utm_source=mysite.com, don't use utm_medium (so it defaults to referrer), but leverage other parameters such as utm_campaign, I have no idea how it'd handle that state. I could see it either overriding the exclusion filter due to the explicitly stated campaign, or working like the normal exclusion filter and silently eating the additional utm parameters in the process.
Now I'm curious though - will have to test it out on a dummy property and see what happens!
1) they make it easier for the marketer to setup campaigns with a paid competitor, and then drop the subscription for that software and monitor them with GA only
2) they make GA top-of-mind for marketers every time they look at a link with UTM in it, even in somebody else's marketing dashboard (free advertising for GA)
3) GA gets to collect campaign data, freeriding on the analytics competitor
- The primary attribution model in Google Analytics is last non-direct visit prior to <conversion/goal/significant event>. Leveraging the source tracking parameters (utm_*) on internal links obliterates the usefulness of much of the built in attribution-related reporting. Relatively recent enhancements do provide visibility into multi-channel funnel flows, but the capability is compartmentalized into a few purpose-built views and don't filter back to most of the core reporting.
- It also drastically skews engagement-related reporting, overall and at a source level. A new session in GA constitutes a completely new visit. So metrics like visits per user, new vs existing users, average visit duration, pages per visit, etc all get whacked in the process. And understanding user behavior and conversion paths from any given channel becomes somewhere between torturous and impossible, as the actions performed in the "new" session aren't visible when looking at the user flow of the original session.
What you're describing is possible and commonly done, you just can't do it with the utm parameters intended for source tracking without having disastrous side effects. Custom dimensions/metrics[1] or event hits[2] are the intended ways of doing that. For developers, Google's autotrack[3] library is useful for implementing that with fairly minimal dev overhead (mainly, seeding your markup with relevant data- attributes so event hits can be auto-populated and sent). There are also a lot of third party libraries for framework-specific integrations. And for non-developers, Google Tag Manager (or any other tag manager) makes event tracking pretty straightforward to implement without dev coordination.
[1] https://support.google.com/analytics/answer/2709828?hl=en
[2] https://support.google.com/analytics/answer/1033068?hl=en
That said, all of the browsers are becoming so aggressive about cookie management that relying on the Google-set clientID is asking for pain at this point, unless you've implemented something like this[1] cookie setting service/proxy/relay. Creating your own first-party identifier (even if it's just randomly generated the same as the GA clientID) and leveraging the user-id field is far more stable.
> It seems there are still a lot of little tricks out there that aren't standard practice.
Simo Ahava's blog (linked to in [1]) is a wealth of nifty web analytics tricks (primarily focused around Google Tag Manager, Google Analytics, and a sprinkling of Snowplow[2] for the self-hosted crowd). The blog is geared at a less technical audience, but the vast majority of content is around technical nuances of analytics implementations and fairly minor coding adjustments that can be made to significantly enhance a standard implementation.
[1] https://www.simoahava.com/google-cloud/create-cookie-rewrite...
Edit: I had a look through that first link, nice hack, but definitely out of reach of most small businesses. That's kind of how these things go, big players have the resources to jump a hurdle without slowing down, everyone else is left behind.
And many of them offer a hybrid approach called CNAME cloaking[1], where you CNAME a subdomain on your host to the analytics/marketing system. That way you still leverage their infrastructure but they gain access to the first-party context. Here[2] is an example of that for Adobe Analytics.
Google Analytics doesn't officially support a CNAME implementation, so the above doesn't apply. The cookie service I referenced in the parent comment is a workaround for that. The GA code is still all third-party, but you create an internally hosted microservice that will set cookies when called out to. You hit that service (even via a third party tool like Google Tag Manager), it sets an appropriately named first party cookie in it's response, and you suppress GA from triggering it's usual cookie-setting properties (which would overwrite the first party cookie and get hit with ITP restrictions).
That said, ad networks are a different beast entirely. Some of them offer a CNAME cloaking implementation option, but it's less common than you'd expect. And few if any of them allow internal proxying of the tracking data. There's simply too much potential for fraud and too little trust between parties. "Offline" conversion tracking is pretty commonly supported though, which involves having a site capture a click identifier that an ad network appends to an ad click, then in an out-of-band process, upload conversion activity to the ad network using that click id as a key. Precludes the super invasive browser-side tracking, while still allowing for attribution and media effectiveness analysis.
[1] https://dev.to/dnsadblock/cname-cloaking-or-how-are-we-being...
[2] https://docs.adobe.com/content/help/en/id-service/using/refe...
Then on the receiving end, you use lookup tables or functions to decode the various aspects of the key, and explicitly define the relevant utm parameters in the call to Google Analytics (which it natively supports as an alternative to implicitly sniffing them from the URL string). Or if your encoding scheme is simple enough, you can send the key directly to GA and use Advanced custom filters[1] to decode the utm parameters there.
[1] https://support.google.com/analytics/answer/1033162?hl=en
At least with this approach, the PITA becomes more explicit and easier to justify the tooling needs, allowing for it to be addressed and tackled at the outset by the upstream implementation team, rather than cascading to downstream consumers.
I have evidence that Google follows these links though, because if you link to a "bad" site even through a redirector, Google notices and will throw you into spam or say you're phishing, etc :-)
For ad networks: the solve seems to be more disclosure from advertisers of customer PII[1]. All of the recent tracking prevention and cookie restriction measures are disruptive to last-mile analytics, but are far less disruptive to the overall strengths of device and identity graphs. Offline/out-of-band data feeds for click-through tracking don't require passing any identity data, since the click id acts as a key to connect the result to the associated click action. You don't have that for view-through, so instead you pass identity data and that's used to associate the result with the network's device/identity graph and attribute it to any relevant view through action that occurred. But because the advertiser is blind to which conversions/results may be relevant, they have to disclose all results and associated identity data in the process.
Caveat emptor: The above is based on my observations working in digital analytics in general, but my primary focus is in a different area. So there may be nuances or aspects that I'm not cognizant of.
For advertisers: The three main options tend to be either blissfully ignoring (or consciously accepting) the visibility gap, move towards the greater data disclosure of the above solution if you (and your lawyer) are comfortable doing so (which maintains the status quo for visibility while disclosing significantly more data to ad networks), or invest internally in the tech and resources to perform the tracking themselves (which gives the advertiser visibility, but keeps the ad network blind). For option three, you can self-host something like Snowplow[2] and abuse it as a poor-man's ad server for tracking purposes. The Cloudfront implementation model gives you the throughput and latency to allow you to use it as a view-through pixel, and you can then put it on any placements/networks that allow you to use an advertiser-provided tracking pixel.
[1] In hashed form, for what it's worth. The liability of disclosing raw PII is too black and white for comfort, but the security theater of obfuscated PII via hashing hasn't been tested in court well enough to put a dent in that practice.
I've seen what happens with the consciously accepting route--not pretty. Furthers distrust of a channel many already have inherent concerns and varying degrees of understanding, which is a dangerous combo.
Giving the data is what I suspect many will do unless they have sufficient resources for said legal team and technology, or care a great deal about leaking data.
The last option is interesting. So I've used Snowplow (was actually an early user that sponsored them adding UTM remapping). I'm curious how you approached using it as a poor-man's ad server with Cloudfront which I'm less familiar with. Are there any technical write-ups you could point me to?