Hacker News new | ask | show | jobs
by calvinlai 5120 days ago
Hey idoh,

I'm one of the developers at mixy.tv -- we are indeed asking for publish_actions and using open graph to publish video watches and likes. However, we use publish_stream for adding a video because we found that it shows up more often in the news feed as opposed to being shown in the ticker on the right of the FB home page.

I think you have a good point though about publish_stream being in the extended permission screen, however. I know you mentioned working for a competitor, so you don't have to answer this if you don't want to, but -- have you guys seen better conversion rates for signups or better share rates by using Open Graph actions explicitly as opposed to a combination of publish_stream and publish_actions?

2 comments

Here's a couple observations:

I've tried the app with a couple test users, I don't see the publish_actions permission come up. I'll assume you are correct though, but you might want to make sure that this is the case. For answering I'll assume that you are correct. Asking for only publish_actions is the way to go, I have metrics on it, but I can prove it mathematically / logically, so I don't have to use stats for it....

- publish_stream always gets asked on the extended permissions page

- publish_actions will get asked on the first page, except if you ask for publish_stream too, in which case both show up in extended permissions

- when you make a story post, you don't get to decide under which permission to do it, Facebook just check to make sure that you've the proper permissions.

- if a user has given publish_stream, then the stories are visible to the posting user in their newsfeed.

- if a user has publish_actions, then that story is NOT visible to the posting user in their newsfeed, but their friends can see it, and they can see it on their timeline.

- if you have both perms for a user, then when you make a post on behalf of that user, Facebook will make it in the style of a publish_action story, so the posting user won't see it. So to a practical effect, it is not really useful to have publish_stream if you already have publish_actions.

So, given the above observations about Facebook and applying it to your case, because you are asking for both perms then they both are on the extended permissions page. Because you have both perms, when you post a story it is going out in the publish_actions style.

If you look at the funnel, it is:

Current: sign in with FB > regular perms > extended perms > signed in.

Proposed: sign in with FB > regular perms > signed in.

The proposed solution is better because:

- it removes a step in the funnel. You probably have double digit drop off from one step to the next, so that helps dramatically with virality.

- publish_actions moves from extended to regular permissions, so you get that earlier

- you don't lose anything by not having publish_stream, because if you have publish_actions then your story posts are done like publish_actions and not publish_stream, so it is a perm that you aren't really using or need.

The con of the proposal is that publish actions requires a token, and the token expires after 60 days if the user doesn't come back. Internally I've found that stale users like that aren't that useful as a viral channel anyway. So it isn't really much of a con.

To clarify, publish_stream is a superset permission that includes publish_actions. That's why you're not seeing it.

While I agree with you that it removes a step in the funnel, we still need read_stream to provide our advertised service, that is pulling videos that your friends post on Facebook. read_stream is also an extended permission so we can't get around that additional screen anyway.

However, I've read that less permissions means a higher conversion rate so we may experiment with removing publish_stream and only asking for read_stream + publish_actions and we'll see what happens.

Thanks for all your input!

Just want to add that, despite its name, you can do the same things with publish_actions as you can with publish_stream. It is poorly documented though. The only caveat is as described in my other post.