SOLVED

Possible to add mkt_tok tracking as anchor instead of query parameter?

Go to solution
Jon_Wu
Level 4

Possible to add mkt_tok tracking as anchor instead of query parameter?

A big issue with email tracking is that is breaks caching. When you click on a tracked link in an email and the user ends up at http://example.com/page.html?mkt_tok=[unique_for_every_user], it makes the page uncacheable, hammers servers, and prevents any CDN from working properly. When sending out a million emails at once, this quickly becomes an issue.

Is there an option to have Marketo add mkt_tok as an anchor / put it in the hash?

For some perspective, Google Univerisal Analytics allows this option https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#allowAnchor.

If that isn't available, is there an option to remove mkt_tok completely? Is the only purpose to instantly associate the lead when the user clicks on the link? If so, I could include the needed info in the anchor of all my links manually and call associateLead myself when the user hits the site.
Tags (1)
1 ACCEPTED SOLUTION

Accepted Solutions
Justin_Cooperm2
Level 10

Re: Possible to add mkt_tok tracking as anchor instead of query parameter?

You can add the "mktNoTok" class to your links and they won't include the mkt_tok query string parameter.

View solution in original post

5 REPLIES 5
Anonymous
Not applicable

Re: Possible to add mkt_tok tracking as anchor instead of query parameter?

Are you sending a million emails at a time?! I would contact Marketo devs about this...I imagine 99% of Marketo users won't feel the effects of this issue, so it's probably low priority for them.
Jon_Wu
Level 4

Re: Possible to add mkt_tok tracking as anchor instead of query parameter?

That was more for example, but the problem is no different for a thousand or a hundred thousand emails. Users are impatient and every hundred ms you add to that makes a big difference. Having a unique query string (read server request) for each page view breaks a CDN, thus adding probably 100-500ms within the US (a lot more overseas), and even more time for the backend to process. For many sites, it might also mean the backend would be taken down from the extreme load, but luckily that's not an issue for us.

CloudFlare and other such CDN services help you accelerate your traffic by caching and serving content closer to users and reducing the load off the backend and faster pages ultimately lead to higher conversion rate. Since the majority of people read email on mobile (at least for us), performance is especially important.

How do I contact the devs?
Justin_Cooperm2
Level 10

Re: Possible to add mkt_tok tracking as anchor instead of query parameter?

You can add the "mktNoTok" class to your links and they won't include the mkt_tok query string parameter.
Jon_Wu
Level 4

Re: Possible to add mkt_tok tracking as anchor instead of query parameter?

Thanks Justin. That's exactly what I was looking for and support told me it couldn't be done.

It would be cool if you supported the option to add it as an anchor too as it would only require a small modification to Munchkin and your redirect page. This is mostly for caching but could be used when people can't use query string parameters also. I'll add this as an idea.

For anybody else seeing this, I also ended up finding this: https://community.marketo.com/MarketoArticle?id=kA050000000KyqCCAS

For now, the best approach to make sure caching isn't affected might be to use mktNoTok so you still have click tracking, then add a hash for associateLead to the anchor of each link and automatically call associateLead with that. You'll end up with one extra request to Marketo, but your page will be fully cacheable and you don't have to hit your backend to generate any hashes during an email send. The best option of course is to have your CDN strip off the mkt_tok param for caching, but that's not possible with CloudFlare.
Anonymous
Not applicable

Re: Possible to add mkt_tok tracking as anchor instead of query parameter?

I also would prefer the "mkt_tok" were not appended to the URL as a GET parameter. 

As previous users have mentioned, this breaks caching and that's doing way more harm than good.

Appending as a hash parameter would be better.