The blogosphere is lit up this week with news of the Facebook Beacon ad program. The program enables Facebook advertising partners to send messages to Facebook when that Facebook user visits the partner site. The idea being that knowledge of where that user surfs, and what he does when he gets there, will help Facebook and its partners sell to that user via ad content placed in the Facebook News Feed. Not to mention Facebook serving as a repository that can be mined for information on where you surf, whether the subject shows up in your News Feed or not.
Some users are fighting back with, e.g., Firefox plugins that block Javascript-based network connections to sites of the user’s choice. NoScript is one such plugin, BlockScript is another.
While these are good tools to have around, I am reminded of how wearisome they become, what a drag they represent on the user experience. Drag like trying to combat spam, phishing, and malware with filters and virus scanners in an world with ever-shifting threat models. Sure, you can install one of these tools to keep an eye on what Javascript does when you visit a site, but since Javascript is so widely used now, you get lots of tripwire notices independent of the intent of the attempted connection. So what do you do when you get a rule violation from one of these tools? Disable all communications via Javascript with that site? Sure, you can do that, but in the process, you break, say, a bunch of Ajax eye candy, which can break the experience and/or functionality of using the site.
Facebook is not the first to use Javascript to report surfing action. Google Anayltics uses the same stuff, and it’s everywhere. Facebook just brought this issue to the fore, made users sit up and think about what their browser is telling the world about where you surf, where you mouse-over on the page. And users, while indignant this week, may find themselves eventually worn down by constant tweaking of their Javascript preferences such that they will give up and allow everything.
What would be forthright of Facebook is if they would publish to its individual users precisely which partner sites reported on that user’s surfing activities. The Facebook Privacy page tells us
We built Facebook to make it easy to share information with your friends and people around you. We understand you may not want everyone in the world to have the information you share on Facebook; that is why we give you control of your information.
So Facebook gives us control over our information. If that is true, then we should know what that information is. I cannot find where in my Facebook profile there exists a summary page that states what information about my surfing habits was transmitted to Facebook on behalf of an advertisting partner. From this I conclude that such information is not my information, otherwise I would be able to control it, per the Privacy Statement. That information, of which I am the subject, must therefore belong to someone else.
So, yes, I will be installing NoScript and will be trying at the very least to learn what Javascript network monitoring feels like from the user perspective. It means using the plain HTML version of Gmail, which I’m fine with. But it also means I just broke Google Calendar. See?
Update: 12/12/2007 After a month of using NoScript to control which sites are accessible via JavaScript calls, I can actually say that the overhead associated with its use is not particularly onerous. What I’d like to see from NoScript is a TTL or expiration on sites that are termporarily allowed. With such a timeout, temporary entries would age out and not remain active for long periods of time.
[tags]gmail,google calendar,facebook,beacon,privacy[/tags]