Question

How do you track outbound links for your web site, since the request is logged on the destination server, not yours?

Was it helpful?

Solution

You can add a quick JQuery script to the page that will track external links and can either redirect them to a file on your server that will track the link and then forward to it, or add an ajax request that will submit on click for external links, and track them that way.

See here: http://www.prodevtips.com/2008/08/19/tracking-clicks-with-jquery-and-google-analytics/

and here: http://www.justskins.com/development/how-to-track-clicks-on-outgoing-links/132

OTHER TIPS

Add an onclick or onmousedown handler to the anchor tag. You can see many sites doing this, such as Google.

I don't like the redirect as described by Eric Tuttleman, as you unfortunately lose the 'search engine friendliness' of the link.

I handle this on a site I own by adding an onClick to my outgoing links, which fires a function which sends the link URL and a timestamp to my database. I then wrote a backend which retrieves the data, and lets me view it by such categories as 'Most clicked / 24h', 'Most clicked / 1w' etc.

I hope this helps.

Method #1: target="_blank", onclick and Google Analytics Events

Format your outgoing links with the following attributes:

<a href="http://www.example.com" target="_blank" onclick="trackOutgoing(this);">outgoing</a>

Define a javascript tracking function (requires google analytics to be loaded already):

function trackOutgoing(el) {
  ga('send', 'event', {eventCategory: 'outbound',
                       eventAction: 'send',
                       eventLabel: el.getAttribute('href'),
                       eventValue: 1});
};

Pros:

  1. Does NOT interfere with normal link behavior
  2. Does NOT require redirecting to another url

Cons:

  1. The onclick is not guaranteed to execute (user or browser could terminate the main window)

Method #2: Redirecting with Javascript and Google Analytics Callbacks

Format your outgoing links with the following attributes:

<a href="http://www.example.com" onclick="trackOutgoingAndRedirect(this); return false;">outgoing</a>

Define a javascript tracking function (requires google analytics to be loaded already):

function trackOutgoingAndRedirect(el) {
  var url = el.getAttribute('href');
  ga('send', 'event', {eventCategory: 'outbound',
                       eventAction: 'send',
                       eventLabel: url,
                       eventValue: 1,
                       hitCallback: function() { document.location = url; }});
}

Pros:

  1. Does not require target="_blank"
  2. Higher chance of your event being registered with Google Analytics (compared to Method #1)

Cons:

  1. Overrides the default behavior of links with return false;
  2. Cannot open outgoing links in a new window

Method #3: Using a Redirect URL

Format your outgoing links with the following attributes:

<a href="/redirect?url=http://www.example.com">outgoing</a>

On your site you will need to implement a redirect script which is beyond the scope of this answer.

Your redirect script would most likely track the outgoing link and then redirect to the provided url.

Pros:

  1. No Javascript required
  2. Does NOT require Google Analytics
  3. Does NOT interfere with the normal link behavior

Cons:

  1. Harder to trigger Google Analytics Events
  2. Links do not link to their original URL. Which may have negative SEO implications.

On one system I've worked on, we ended up storing redirects in a database table and creating a redirect page that takes an id as an input. On our content pages, we link to the redirect page with an unique id from this table. Once the redirect page looks up the url via the id from the table, it then sends the client a redirect response, sending them to the ending page.

This does give us logging of external links, and as an added bonus, it makes mass changes to external urls a bit easier in some cases.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top