Block Reddit from tracking outbound links
Reddit announced a week ago that it decided to start tracking outbound links on the site which effectively means that they know on which outbound links Reddit users clicked.
According to Reddit, doing so will open up new possibilities for the site, for instance to better combat spam or better stats such as clicks to votes.
Reddit tracks what each individual user clicks on but does not share the data with third-parties.
You can verify the tracking using the Developer Tools of your web browser. While on Reddit hit F12 to open the developer tools, and use the inspector tool to select an outbound link on the Reddit page you are own.
You should see the attributes data-href-url and data-outbound-url associated with the link.
Update: Reddit turned the feature off for the time being until they add privacy controls that let users control it on the site directly.
Block outbound tracking on Reddit
The attributes have the following values:
- data-href-url is the direct target url.
- data-outbound-url is the tracking link that is activated when you click on the outbound link. Reddit records the click and redirects your request to the data-href-url URL afterwards.
If you don't want to be tracked on Reddit, you have two options to deal with the issue. First, instead of left or middle-clicking on a link, right-click on it and select to copy it instead. Open a new browser tab and load the link this way.
While this may work for light use, it is not overly comfortable if you open links regularly on the site.
A Reddit user has created a userscript that you can add to your browser instead. Chrome users need to install Tampermonkey and Firefox users Greasemonkey first before they can make use of it.
Here is the script:
// ==UserScript==
// @name Don't track my clicks, reddit
// @namespace http://reddit.com/u/OperaSona
// @author OperaSona
// @match *://*.reddit.com/*
// @grant none
// ==/UserScript==var a_col = document.getElementsByTagName('a');
var a, actual_fucking_url;
for(var i = 0; i < a_col.length; i++) {
a = a_col[i];
actual_fucking_url = a.getAttribute('data-href-url');
if(actual_fucking_url) a.setAttribute('data-outbound-url', actual_fucking_url);
}
Adding it to Tampermonkey
To add the Reddit click tracking blocking script using Tampermonkey, do the following:
- Click on the Tampermonkey icon in the browser's address bar and select "add a new script" from the selection menu.
- Copy and paste the script listed above into the editor. Make sure you replace all information that Tampermonkey adds on its own in the process.
- Click on the save button at the top.
Adding it to Greasemonkey
Greasemonkey is supported as well. To add the script to the extension, do the following:
- Click on the down arrow icon next to the Greasemonkey button in the browser and select New User Script.
- Fill out the name only and click on okay. This opens the main editor where you paste the full userscript in.
- Click on the save button in the end.
The result is the same: The data tracking attribute is replaced by the original link so that Reddit cannot track the click anymore.
It is unclear right now whether Reddit will implement an option to opt-out of the outbound link tracking on the site in the future. It seems likely however that third-party extensions such as RES will add the functionality eventually.
Thanks for the heads-up.
We all know how this work by now. “For a better user experience” usually mean “We want to be part of the Big Data market where we can sell your *anonymous* information so that we can *anonymously* target you with products, ads, and services.
The only buyer will be our corrupt government.
Thanks for keeping us alerted to things like this, Martin.
Google Bookmarks does something similar. When you mouse over a bookmark and look with the developer tools inspector, instead of href=”http://example.com” you’ll see href=”https://www.google.com/url?q=http://example.com&usd=2&usg=SOME_ALPHANUMERIC_STRING”…
I imagine Google does this everywhere, but I search in a private window by using add-ons Autoprivate and Private Tab. Alas, one must be logged in to use services like Bookmarks and Gmail.
Martin, FYI, I’m not finding that “data-outbound-url” attribute present when I visit, for example
htt ps ://w w w .reddit.com/r/firefox/comments/4amxfx/any_abp_ghostery_or_other_way_to_suppress_the/
maybe it’s only partially implemented (A/B testing?) or might only be applied for LOGGED IN visitors?
Ah, I’m running requestPolicy, maybe that’s why that bit isn’t being injected?
Glancing at the RP rules currently in effect:
allow reddit.com => redditstatic.com
allow reddit.com => redditmedia.com
RP indicates that something (retrieved from redditmedia.com) embedded in the page wants to load
something from redditstatic.com, but I haven’t created an allow rule for that.
Rechecked, after adding a temp rule allowing redditmedia.com => redditstatic.com
I’m STILL not seeing anything embedded into the outbound links other than the href and nofollow attribute.
Clicking links and monitoring (outside the browser) the outbound network requests, I find no unexpected/unwanted requests.
I read that they are rolling this out gradually to all members of the community. May take a while before yours start to be tracked.