以下のセクションは、素晴らしいOpen Graph体験を実装する上でのベストプラクティスを紹介します。このガイダンスは、過去数ヶ月間、私たちがパートナー企業とのOpen Graph実装を勧める上で作成されたもので、より多くのアプリケーションがOpen Graphを実装するにつれて変化して行きます。


Social Design and Open Graph

Open Graphアプリケーションは、Social Designにフォーカスすることでソーシャル体験を創り出すことができます。

  • Identity - アプリケーションを使うことで、ユーザの自己表現を助け、個人としての価値を得る
  • Conversation - ユーザがアクションを共有し、他者と関われるようにする
  • Community - ユーザが信頼している相手と繋がりやすくする

Social Designの基本以外にも、Open Graphを用いるアプリケーションが念頭に置くべき点があります。

  • ユーザが自分をどう表現したいのか理解する - 人々はタイムラインを通じて自分を表現しますので、彼らが何に価値を見いだし、アプリケーションを通じて何をシェアしたがるのか学んでください。

  • ユーザが最も効率よくストーリー投稿できる語彙を与える - ユーザのアプリケーション上での行動を適正に反映するアクション/オブジェクトを作ってください。

  • ディストリビューションを広めるために素晴らしいユーザ体験を創り出す – ユーザがアプリケーションと関われば関わるほど、より多くのアクションがFacebookのタイムライン、ニュースフィード、リアルタイムフィード、その他に流れますので、より多くの人にリーチできます。


User Experience

Aggregations and Reports

ユーザがアプリケーション上でとったアクションを要約(Aggregation)して表示することによって、彼らのアイデンティティを表現する助けになれます。たとえば、最近読まれた本、お気に入りの料理などです。ユーザがより頻繁にアプリケーションに関わるほど、アプリケーション固有のアクションが彼らのタイムラインに表示されるようになります。

レポート(Report)は要約の集合体で、ユーザがアクティブに活動した期間毎に表示されます。これにより一貫性のある閲覧体験が提供されるとともに、アプリケーション上のデータを「消化」するのが容易になります。Developer AppでAggregated Storiesの設定をすると、優先度によってソートするようにしてください。つまり、もっとも重要な要約が上になるようにです。レポートが生成されるときには、メインとなる要約が丈夫に表示され、生成するのに必要なデータがある場合、他の要約が後に続きます。

Best Practices

  • 関わりを持ち続ける - ユーザのアイデンティティを最も良く表すものを選択し、また、アプリケーション上の行動の中で何を最も共有したくなるかを考慮する。

  • ユーザがアプリケーションを使い始めたら、すぐに要約が埋まるようにする - 最初、アクションがグラフ上に現れるまではユーザが投稿を見ることはありません。タイムラインに投稿してすぐに有益になるようなアプリケーションデザインをしてください。

  • フィードバックを組み込む - ユーザには、要約に対してpin, hide, mark as spamなど直接的なフィードバックを提供する手段が与えられます。これらのフィードバックを用いてアプリケーションを改善してください。

  • 要約のタイトルが、ユーザが実際に行っていること/表現していることと一致するようにする - タイムライン上の要約が"Routes I run most often"を表しているのなら、タイトルは"My favorite routes"というよりも"Most commom routes"であるべきです。"favorite"という語を使うならば、ユーザのアクションが確かに"お気に入り"という感情を示すものであるようにしてください。

  • 人々が何を共有したいか考える - 要約がユーザの日々の行動を正しく反映していて、彼らのアイデンティティに付加価値を与えるものだった場合、ユーザは要約をタイムラインに足すでしょう。アプリケーション上のアクションが、ユーザが誇りを持って友だちと共有できるものであるようにしてください。


Activating Users

Open Graphアプリケーションを活性化/最適化するには、下記のベストプラクティスを参考にしてください。

Encourage engagement and activation with Timeline Aggregations

ユーザのタイムラインがFacebook体験の中心になるにつれ、タイムライン上の要約を通じてユーザを活性化するよう努めてください。ユーザがアプリケーションの要約をタイムラインに足すと、ユーザの活動を促すため、空っぽの要約が1~2週間表示されます。この要約はユーザ本人にしか見えません。この状態の恩恵にあずかるため、アクション共有に最適化された"getting started"などのフローを導入してください。この空っぽの要約は、新しいユーザとの関わりを保つ助けとなるはずです。

最適化された新規ユーザ用のフローを作っておくことで、要約には友だちまで見える"Add to My Timeline"リンクが表示されます。友だちがまだアプリケーションを許可していない場合は、"Add to My Timeline"リンクをクリックするとインラインのパーミッションダイアログが表示され、許可するとアプリケーション指定の"Getting Started" URLへ遷移します。

Analyze with Facebook Insights and promote with Sponsored Stories

Facebook Insights

Insightsを使うことで、Facebookアプリケーションのパフォーマンスを計測/最適化することができます。以下の要素に基づいて、投稿に対するユーザのフィードバックを計測することが可能です。

  • 投稿された全アクション
  • ActionタイプとObjectタイプ
  • タイムライン上の要約

Facebookページもしくはアプリケーションの解析結果を見るには、Insightsダッシュボードをご覧ください。ページ管理者、アプリケーションのオーナー、ドメイン管理者のみがInsightsデータを見ることができます。

詳しくはAnalytics for Open Graphをご覧ください。


Sponsored Stories

誰かがFacebookアプリケーションと関わりを持つと、そのアクティビティの投稿が生成され、友だちのニュースフィードやリアルタイムフィードに流れてアプリケーションが発見されるキッカケとなります。Facebook上で共有される量によって、他のユーザにも表示されるか否かが変わります。より多くのディストリビューションを得て口コミで広めるには、Sponsored Storiesを補助として使うことを考慮してみてください。Sponsored StoriesはFacebookのプロダクトで、あなたのビジネスとユーザ間の有機的なインタラクションを促進するのを、ニュースフィード上での露出を増やすことで助けます。

あなたのアプリケーションは、ページの「いいね!」やページ投稿への「いいね!」、使われたアプリケーションやプレイされたゲームの共有など数えきれない投稿を扱います。Sponsored Stories APIを使うと、任意のストーリー投稿のディストリビューションが保証されます。

Sponsored Storiesの詳細については、Sponsored Stories Centerをご覧ください。


User Controls

可能な限り最良のユーザ体験を創り出すには、投稿とユーザコントロール作成に関して以下のベストプラクティスを考慮してみてください。

User Controls for Publishing

  • いつ、どのようにタイムラインに投稿されるか明確にする - サイト上でアクションが起きた瞬間に投稿してください。また、いつ、どの情報が投稿されるかを明確にしてください。アクションが投稿されてからは、その削除や共有範囲設定をサイト上で管理できるようにするべきです。

  • 繊細/微妙な内容に関しては、共有前に許可を求める - ユーザによっては繊細/微妙だと判断するであろうことが予期できる場合(たとえば、カロリー消費量や体重を含むエクササイズアプリケーションなど)には、投稿する前に許可を求めるようにするか、ユーザ本人のみに見えるようにプライバシーを限定できるようにしてください。

  • 過去のアクションの追加時に適切にコントロールできるようにする - タイムライン上の要約をより興味深く、そして最新の状態に保つには、ユーザが過去のアクティビティをタイムライン上の適切な箇所に投稿できるようにしてください。このフローはオプトインで指定できるべきで、何が起きているのか明確に説明があるべきです。また、どの投稿をインポートするかに関する細かいコントロールを提供し、no_feed_storyパラメータを指定してアクション投稿することで、過去の投稿がフィードに流れないようにすることも考えられます。

  • ユーザに対してタイムライン上の要約の機能を正しく伝える - ユーザがパーミションを与えてからは、アプリケーション上のアクションやそのメタデータが、タイムライン上の要約から共有されるということをユーザに確かに伝えてください。そして、何が共有されるかに関して細かいコントロールを与えてください。

User controls in your app

人々に対してデータをコントロールする手段を提供することを期待しています。自分のアクティビティがいつ共有されるかをユーザが理解することは重要ですが、共有のコントロールをどのように実装するかはウェブサイトの実装やユーザの期待によって変わります。以下がその例です。

  • 共有がユーザ体験のコアの一部であるようなソーシャルアプリケーション - 共有コントロールは必要とされないか、アカウント設定のエリアにあれば十分かもしれません。たとえば、全アクティビティが公開されるということが理解されているサイトです。しかしながら、画像やチェックインなどの公開条件をコントロールできるのならば、アカウントレベルでの共有コントロールが必要かもしれません。

  • Open Graphと連携するようになった既存アプリケーション - これらの場合は、より詳細な共有コントロールが必要となるかもしれません。例えば、ユーザが記事を読んだり動画を見るたびにストーリー投稿を行うようなサイトであれば、共有状態をトグル表示して、Facebookと繋がっているユーザであっても一時的に共有を外せるようにするべきかもしれません。

アプリケーションの種類によっては、ユーザに対して一時的に匿名モードを選択するオプションを与え、タイムラインに投稿されないようにするべきかもしれません。共有コントロールはさまざまな形態が考えられ(たとえば赤/緑のインディケータや、トグル、ラジオボタンなど)、それらはサイトデザインを反映するべきです。Facebookのデザインを反映するべきではありません。

ユーザが共有をオフにした場合、ユーザの目的を慎重に考慮し、最後の投稿を削除して次回から投稿されないようにすべきか決定すべきです。

アプリケーションによっては、投稿されるアクションをすべて見えるようにし、任意の投稿のプライバシー設定を変更できるようにしています。この方法を採る場合には、変更内容が正しくタイムラインに反映されるよう、Facebookを更新すべきです。

アプリケーション上でのユーザの投稿プライバシーを尊重することに関して、開発者には責任があり(たとえば、友だちのみに公開する投稿を友だちのみに見えるようにするなど)、サーチエンジンから個人情報がスクレイピングされないようにも配慮しなくてはなりません。