Corporate blog cat fight: Google Code spells out in excessive detail why Facebook is lying about their justification for blocking Google Friend Connect on Facebook.
Background:
In short Google shows that it's not doing anything to justify Facebook's holier-than-thou attitude. (Ever see how Facebook collects you Gmail contacts if you let it, or perhaps you recall Facebook Beacon on initial launch?).
Upshot: Google is revealing Facebook's hypocrisy, and doing it with the panache of Dan Akroyd finishing a faux-debate with Jane Curtain: "Jane, you ignorant slut."
Now that's proper use of a corporate blog in my book!
Why are all the apps on Facebook trivial, crappy or spammy?
Facebook originally launched the app platform with a lot of talk about how to create value out of the social graph.
Why hasn't that happened, with all the energy being spent on developing Facebook apps? Ben Rattray has a good answer - mainly because the structural incentives are all on creating virality.
The reason there are few and little use of utility-based applications is not because users don't want to use them or because app developers don't want to develop them, or even because Facebook doesn't want to encourage them (which they clearly do). It's because the means of distribution inside Facebook are structurally biased against them....
[I]t is very difficult to achieve a viral coefficient of over 1 through word of mouth. Ironically, this difficulty is compounded inside Facebook because the proliferation of viral action apps inundates users with invitations and makes them less and less likely to accept anything – including invitations to utility-based applications. So the barrier for going viral increases even further
Ben also categorizes the kinds of apps that could be useful, and which ones make sense on a social platform. It's very useful to look at - if you are thinking of how the web will be shaped by increasing adoption of "social" techniques into websites.
Of course there are more types of apps, and the list of examples is thin, but it's useful to think about if you plan to adapt to the ever-increasing "socialness" of the web.
Labels: facebook
Today's the day that Facebook unveils their new ad platform. During the past 2 weeks the hype has been huge, with everyone jumping on the idea that Facebook has revolutionary data for doing targeted advertising. Google and Yahoo are paying attention.
Om Malik sums up "Why Google is a Afraid of Facebook":
Facebook, on the other hand, knows a lot more about us [than Google]— who our friends are, what we like, what groups we belong to, and even when we like to use its service. So what can Facebook do with all that information?
Google actually knows all of that, and at least 10X more data about users than Facebook, but hasn't seen the need to really mine the data yet, since search intent has proven to be worth about 100X more than that kind of data so far.
Adsense cookies, myspace profile extracts, toolbar data, google accounts and search engine history are more valuable and far more voluminous than Facebook's data. Google essentially already has the data that the new generation of ISP sniffers hope to get.
Facebook is not very different from MySpace, which Google has been attempting to monetize for the past 12 months. Google has all the data from MySpace profiles that Facebook is talking about exploiting. It hasn't really helped so far.
One of Facebook's beliefs is that they can ask users what they want to see, what products they like, etc. And that this will somehow improve ad perfomance. But the history of consumer polling & research has taught marketers that simply asking customers what they want doesn't necessarily improve ad performance.
Maybe Facebook will find an incremental way to increase eCPM on social networking page views from 15cents to 20cents, but I don't think the pundits and media are correct when they believe the hype about Facebook's new advertising technology.
Labels: advertising, facebook, google
This from the only friend I've ever had to block on Facebook - cause he constantly sent out his own promotional crap to his friend list. He knows advertising won't work on Facebook, but he sure believes in spamming his friend list.
Social networking is second only to chat rooms as the worst place to advertise. The content there from your friends and your family is more compelling than any advertisement. Google has the greatest advertising in media history -- search advertising. When you type a word into the box, we know what you're looking for. When you're on Facebook, we know you're looking to meet a girl or talk to your friends. It's a terrible platform for advertising. The holy grail of e-commerce forever has been that people are going to buy something online because their friends did, or that everybody here is into skiing so we're going to sell a bunch of skiing stuff. It hasn't happened. Plus, e-commerce is a low-margin business. It's nowhere near search inventory.Jason Calacanis at the Graphing Social conference
He's right about Google and search intent. But his spam ju-jitsu shows he also intuitively knows how marketing will eventually work on social networks.
"The content there from your friends and your family is more compelling than any advertisement."
Logically, when the content from your family and friends is the advertising, social network monetization will start to work.
Labels: facebook
Inside Facebook has a good live blog transcription of AppDevCon (a Facebook developer conference hosted by social media) in San Francisco today. There's a lot of meat on how advertisers / publishers will move into the Facebook system.
Random factoid: James Hong of HotOrNot says one of his team's Facebook apps (Pets,Moods,HotOrNot) is doing $1,000 / day with AdSense. He wasn't sure which one it was.
Labels: facebook
So you want to build a facebook app? The easiest thing to do is find someone else's code and modify it for your purposes. Especially since the facebook API documentation isn't really that good yet.
Unfortunately, Facebook Apps aren't automatically open, like say HTML or Javascript pages are. So you can't just look at the code of a working application. That's too bad. It would help a lot.
As it stands, the Facebook docs have a dearth of sample code for the Facebook API.
However, in the process of writing my first Facebook App, I spent a lot of time Googling (try looking for 'facebook.php' and other common include files on google.com/codesearch), reading forums, the facebook developer wiki and blogs.
So here's an omnibus post on where to find example code for Facebook
apps, and also a bunch of good links to posts that explain how to
write a Facebook app.
After you've looked thru Facebook "Hello World", you should download their simple, but instructive, Tutorial application called footprints. It's in PHP, and it comes as part of the client library that you need to use in PHP.
The biggest app out there which has released it's sample code is NewsCloud. It's open-source, and worth perusing, though it'd be a big job to try and get running.
In a application where you need to push data to facebook, for updating fb:ref handles, you may want to run your update code from a cron job. You still need to get a facebook api client, which means you have to login. You use your own infinite session key and user id in your code to do this. Here's a page on the facebook wiki which has some sample code for getting your infinite session key and using it in a cron job.
Here's a blog post on updating profiles with a code example using profile_setFBML.
Sample code in PHP connecting facebook to a social network "pledge" system
People Aggregator meta social network, with code in PHP
Code (PHP) from Facebook, which has a FQL call in it.
For those doing push updates with <fb:ref />, here's a re-written Facebook Rest Client class that uses curl_multi to parellize the refreshing of calls from fb:ref
A Perl / CGI example Facebook app - with an example of how to integrate login to a separate into a Facebook app
WWW::Facebook::API is good for Perl programmers, but also useful to just read through the code and docs and get an idea how they adapted the API for Perl.
A few bloggers have created posts which do a good job explaining how facebook apps work from a programming point of view. These are useful to read as you get started.
Here's a sample of their blogging about the architecture:
Facebook user's data in a generic fashion. The real advantage of this
approach is that with just the UID of a Facebook user, I can load
related data in a Facebook page or on the user's profile without
having to do any processing on my end.
For example, this --
{% for friend in friends %}
<fb:profile-pic uid="{{ friend }}" />
<fb:userlink uid="{{ friend }}">
<fb:name uid="{{ friend }}" useyou="false" />
</fb:userlink>
{% endfor %}
is an example in Django template syntax using FBML that would produce
a list of friends with pictures.
Here are more tips and tricks to understanding the facebook platform from the devurandom guys. Some example code in Python in this post.
Excerpt:
Notice there is a "Callback URL" and a "Canvas Page URL". The callback URL is the base URL on the developer's server (washingtonpost.com in our case); the canvas page URL is the base URL on Facebook's server. When you install our app on Facebook, you are redirected to the canvas page URL, which in turn fetches content from the callback. You can have any number of callback pages extending off the base. If you went to apps.facebook.com/thecompass/foo/, then that page would fetch content from specials.washingtonpost.com/politicompass/foo/.Now you can't go directly to specials.washingtonpost.com/politicompass/ because without the POST data Facebook submits to the callback URL, the application won't work. If you hit our server directly without coming through Facebook, we redirect to the Facebook URL for our app. In fact, every time Facebook hits our callback URL there is a little setup that has to be done for each request
Sample FBML code and description of application architecture.
How to make a good social app so it fits in Facebook
Gotchas when using the platform. Part I. Part II.
Sample Hint on updating users' profiles:
To do a more periodic update, you can just iterate over all your users, get their uids, and call profile_setFBML() on each. Remember, from above, you don't need to call set_user for each, just use your own session_key.
- Spend time on your icons and screenshots - This is the first interaction your potential users will have with your app, so it had better be impressive, especially if you have competitor apps already out in the wild. There are three pieces to worry about: an application icon (16 x 16 pixels), an application logo (75 x 75 pixels) and a screenshot of any size you choose (which will be resized to the width of your About page). Make sure you have all of these ready to go before taking your app live.
Let me know if you find other examples and sample code, and I'll add it to this post.
Labels: facebook
What's Jerry Yang gonna do to revitalize a slumping Yahoo? Andrew Goodman has a very good list of action items for Yahoo!
The biggest thing I'd suggest is: "Be the Next Facebook".
Yahoo has all the pieces to build a next-gen homepage portal, and they should copy most of Facebook.
Facebook's weaknesses are:
That's it. Those are really the same things. It's not clear how useful Facebook is in organizing your life if you are not mainly into hooking up with hotties. And Facebook is run by a bunch of 24yr-olds who are trying to figure out how to make it more appealing. That's a limitation.
Yahoo already has the platform. They have, what, about 10X more profiles than Facebook. Yahoo has properties like Yahoo! Groups which are incredibly useful for soccer-moms. Yahoo is good at APIs. They have the Flickr braintrust.
Also, Yahoo already shows MUCH BETTER ads than Facebook does. And they do have a great ad salesforce.
Yahoo needs to re-invent My Yahoo, copying the best of Facebook's social features (like friends 'confirming' where they met you), opening the the social graph, integrating useful features like Groups, Flickr, Finance, Answers, Sports, etc.
They need to copy some of the design minimalism that Facebook is good at. They don't need to keep adding slow-loading graphics everywhere - like they've done with sports.yahoo.com - ruining the experience for someone who just wants to check the damn scores.
Anyways, I think Yahoo has the kernel of this idea already. Semel talked about it endlessly.
To do this, MASSIVE FOCUS is needed. That's what Facebook has that Yahoo does not! Either Jerry Yang turns the battleship around fast (like BillG did back in '95), or he'll watch Mark Zuckerberg take over Yahoo's last bastion of hope.
I admit that I've been caught up in the Facebook hype. Marc Andressen's post on their API has caught a lot of attention, and for anyone building web stuff, a ready audience of 25 million active users is hard to ignore.
So I went to Amazon and bought the only book I could find about Facebook - Inside Facebook. It's written by an engineer who worked there for all of 1 year. He was a bit of an outsider being the only guy over 30 for a long time and not being part of founder Zuckerberg's Harvard mafia.
The book really doesn't have a great deal of info in it, it's short, full of links, and better consumed as a PDF. It's more like a series of blog entries.
About 20% of the book is actually about Facebook, covering the names / titles of the early employees, a bit of the vision, and some anecdotes / factoids. For example, Zuckerberg has two business cards, one with the title: CEO and another that says I'm the CEO... bitch. Zuck also doesn't like coffee much.
If you want to know who the braintrust is at Facebook, you'll at least learn their names: Dustin Moskovitz, DeAngelo, Jeff Rothschild, Matt Cohler, etc.
Overall, the book is underwhelming, but if you are thinking of interviewing at Facebook, or partnering with them, it's definitely worth the $10 bucks and 40 minutes it takes to read.
Labels: facebook