facebook like: href url vs. canonical url

for tracking purposes, I want that the URL, which appears on the facebook stream after an "like-action", is slightly different from the URL the user actually liked.

Example: I use <link rel="canonical" href="http://example.com/test.html"> in my head section to tell facebook to which URL a like-action on this website refers to.

Further down on the website I have <fb:like href="http://example.com/test.html?param=144141"> with the same URL, just with an additional parameter.

My intention: If someone clicks on the like button, facebook puts him to the "group who like http://example.com/test.html" in order to appear next the like button. But when another user sees his like-action on the facebook stream and clicks on it, he should be redirected to http://example.com/test.html?param=144141.

The problem is that this doesn't work, because the canonical declaration in the head section kind of overwrites the href attribute of my <fb:like> tag. Anyone knows how to solve this problem or does it simply not work?

Answers


You can't do exactly what you have requested, but you can still add an arbitrary tracking parameter (especially useful for analytics purposes). Facebook recently added a ref parameter to the fb:like element for this purpose. It's up to you to decide how you want to stuff various bits of information into that single parameter and then parse fb_ref whenever it's included in an incoming URLs.

Example

Place the following element on your HTML page:

<fb:like href="http://example.com/test.html" ref="144141"></fb:like>

Users clicking the link from Facebook should be directed to:

http://example.com/test.html?fb_ref=144141&fb_source=home_multiline

Documentation


Need Your Help

How to delete ios simulator safari cache

ios xcode safari ios-simulator browser-cache

I'm trying to test a website on the iphone simulator, I made some javascript changes and my javascript files are being loaded from cache.

16 bit Int vs 32 bit Int vs 64 bit Int

memory 64-bit int 32-bit 16-bit

I've been wondering this for a long time since I've never had "formal" education on computer science (I'm in highschool), so please excuse my ignorance on the subject.