コミュニティのスコアとバッジ

概要

AEM Communities のスコアおよびバッジ機能を使用すると、コミュニティメンバーを分類して報奨を与えることができます。

スコアとバッジの主な要素を以下に示します。

バッジの付与はデフォルトで は有効になっていません

注意

CRXDE Lite で表示される実装の構造は、UI が使用可能になると変化する場合があります。

バッジ

バッジはコミュニティ内でのメンバーの役割または地位を表すためのもので、メンバーの名前の下に配置されます。バッジは、画像または名前で表示できます。 画像として表示される場合、アクセシビリティ用の代替テキストとして名前が含まれます。

デフォルトでは、バッジはリポジトリの次の場所にあります。

  • /etc/community/badging/images

別の場所に格納する場合は、バッジに誰でもアクセスできるようにする必要があります。

UGC 内では、割り当てられたバッジと、ルールに従って獲得されたバッジが区別されます。現在、割り当てられたバッジがテキストとして表示され、獲得したバッジが画像として表示されます。

バッジ管理 UI

コミュニティバッジコンソールは、獲得(落札)時やコミュニティで特定の役割を担う(割り当てられた)時に、メンバーに対して表示できるカスタムバッジを追加する機能を提供します。

割り当てられたバッジ

役割ベースのバッジは、管理者がコミュニティメンバーに対し、各メンバーのコミュニティ内での役割に基づいて割り当てるものです。

割り当てられた(および待ち受けた)バッジは、選択したSRPに保存され、直接アクセスできません。 GUIが使用可能になるまで、ロールベースのバッジを割り当てる唯一の方法は、コードまたはcURLを使用して割り当てることです。 cURLの説明については、バッジの割り当てと取り消しというセクションを参照してください。

このリリースには、以下の 3 つの役割ベースのバッジが含まれています。

  • モデレーター

    /etc/community/badging/images/moderator/jcr:content/moderator.png

  • グループマネージャ

    /etc/community/badging/images/group-manager/jcr:content/group-manager.png

  • 特権メンバー

    /etc/community/badging/images/privileged-member/jcr:content/privileged-member.png

chlimage_1-366

授与されたバッジ

報奨ベースのバッジは、スコアサービスがコミュニティ内でのメンバーのアクティビティを一定のルールで評価し、その結果としてメンバーに付与されるものです。

アクティビティに対する報奨としてバッジを表示するには、以下の 2 つの設定をする必要があります。

  • フィーチャコンポーネントのバッジは有効にする必要があります
  • スコアリングルールとバッジルールは、コンポーネントが配置されているページ(または上位)に適用する必要があります

このリリースには、以下の 3 つの報奨ベースのバッジが含まれています。

  • ゴールド

    /etc/community/badging/images/gold-badge/jcr:content/gold.png

  • シルバー

    /etc/community/badging/images/silver-badge/jcr:content/silver.png

  • ブロンズ

    /etc/community/badging/images/bronze-badge/jcr:content/bronze.png

chlimage_1-367

メモ

不適切な投稿としてフラグが付けられた場合に、その投稿にマイナスのポイントを割り当て、スコアの値に反映させるようなスコアルールを設定できます。ただし、一度獲得したバッジは、スコアリングポイントの減少またはスコアリングルールの変更により、自動的に削除されません。

授与されたバッジは、割り当てられたバッジと同じ方法で取り消すことができます。バッジの割り当てと取り消しの節を参照してください。 今後の改善には、メンバーのバッジを管理するUIが含まれます。

カスタムバッジ

カスタムバッジは、バッジコンソールを使用してインストールし、バッジルールに割り当てるか、指定することができます。

バッジコンソールからインストールすると、カスタムバッジは自動的にパブリッシュ環境にレプリケートされます。

スコアの有効化

スコアはデフォルトで有効になっていません。スコアリングを設定し、有効にしてバッジを付与する基本的な手順は次のとおりです。

フォーラムおよびコメントのデフォルトのスコアおよびバッジルールを使用してコミュニティサイトのスコアリングを有効にするには、クイックテストのセクションを参照してください。

Apply Rules to Content

スコアリングとバッジを有効にするには、サイトのコンテンツツリーの任意のノードにscoringRulesプロパティとbadgingRulesプロパティを追加します。

サイトが公開済みの場合は、すべてのルールを適用してコンポーネントを有効にした後に、サイトを再公開します。

バッジを有効にしたコンポーネントには、現在のノードまたはその上位ノードのルールが適用されます。

ノードのタイプがcq:Page(推奨)の場合は、CRXDE|Liteを使用して、そのノードのjcr:contentノードにプロパティを追加します。

プロパティ タイプ 説明
badgingRules String[] バッジルールの配列リスト
scoringRules 文字列[] スコアルールの配列リスト
メモ

スコアルールがバッジ授与に影響を与えていないように見える場合は、スコアルールがバッジルールの scoringRules でブロックされていないかを確認してください。「バッジルール」と題されたセクションを参照してください。

Enable Badges for Component

スコアルールとバッジルールは、オーサリングモードでコンポーネント設定を編集してバッジを有効にしたコンポーネントのインスタンスに対してのみ有効です。

コンポーネントインスタンスでバッジを表示するかどうかは、ブール型プロパティの allowBadges で指定できます。フォーラム、QnAのコンポーネント編集ダイアログで設定でき、「バッジを表示」というチェックボックスを使用してコメントコンポーネントを指定できます。

例:フォーラムコンポーネントインスタンスの allowBadges

chlimage_1-368

メモ

フォーラム、Q&A およびコメントで見つかった HBS コードを例として使用すると、どのコンポーネントもバッジを表示するようにオーバーレイすることができます。

スコアルール

スコアルールは、バッジを授与するためのスコア計算の基礎となるものです。

ごく簡単に言うと、スコアルールは、1 つ以上のサブルールから成るリストです。スコアリングルールは、コミュニティサイトのコンテンツに適用され、バッジが有効な場合に適用するルールを識別します。

スコアルールは継承されますが、付加的ではありません。次に例を示します。

  • page2にスコアリングルール2が含まれ、その上位のpage1にスコアリングルール1が含まれる場合

  • page2コンポーネント上のアクションは、rule1とrule2の両方を呼び出します。

  • 同じtopic/verbに対して、両方のルールに適用可能なサブルールが含まれる場合:

    • rule2のサブルールのみがスコアに影響を与えます
    • 両方のサブルールのスコアが一緒に追加されるわけではありません

1 つ以上のスコアルールが存在するときは、ルールごとに分けてスコアが管理されます。

スコアリングルールは、cq:Pageタイプのノードで、そのノードを定義するサブルールのリストを指定するjcr:contentノードのプロパティを持ちます。

スコアは SRP に格納されます。

メモ

ベストプラクティスは、各スコアルールに一意の名前を付けることです。

スコアルールの名前はグローバルレベルで一意にする必要があり、末尾を同じ名前にしてはなりません。

not​の処理の例を次に示します。
/etc/community/scoring/rules/site1/forums-scoring
/etc/community/scoring/rules/site2/forums-scoring

Scoring Sub-Rules

スコアサブルールには、コミュニティへの参加状況を表す値を詳細に設定するプロパティが含まれています。

それぞれのスコアサブルールでは、以下を指定します。

  • 追跡するアクティビティ
  • 関与する特定のコミュニティ機能
  • 落札点数

デフォルトではアクションを実行したメンバーにポイントが付与されますが、サブルールでコンテンツの所有者にポイントを付与するよう設定することも可能です(forOwner)。

各サブルールには、1 つ以上のスコアルールを含めることができます。

サブルールの名前は、通常、件名、オブジェクト動詞​を使用するパターンに従います。 次に例を示します。

  • member-comment-create
  • member-receive-vote

サブルールはタイプcq:Pageのノードで、動詞とトピックを指定するプロパティがjcr:contentノードにあります。

プロパティ 値 説明
VERB Long
  • 必須です。動詞はイベントアクションに対応します。
  • 少なくとも 1 つの動詞プロパティが必要です。
  • 動詞はすべて大文字で入力する必要があります。
  • 複数の動詞プロパティを設定できますが、重複はできません。
  • 値はこのイベントに適用するスコアです。
  • 値は正でも負でも構いません。
  • このリリースでサポートされる動詞のリストは、トピックと動詞セクションにあります
topics String[]
  • オプションです。サブルールを、イベントトピックで識別されるコミュニティコンポーネントのみに制限します。
  • 指定する場合は、イベントトピックの複数値文字列を指定します。
  • このリリースのトピックのリストは、トピックと動詞セクションにあります
  • デフォルトでは、動詞に関連するすべてのトピックに適用されます。
forOwner Boolean
  • オプションです。メンバーが自分の所有するコンテンツを操作している場合は関係ありません。
  • true の場合は、操作されたコンテンツの所有者にスコアが適用されます。
  • false の場合は、操作をおこなうメンバーにスコアが適用されます。
  • デフォルトは false です。
scoringType String
  • オプションです。スコアエンジンを指定します。
  • 「basic」の場合は、量に基づくスコアエンジンが使用されます。
    • このリリースに含まれています。
  • 「advanced」の場合は、質と量に基づくスコアエンジンが使用されます。
  • デフォルトは「basic」です。

このリリースに含まれているスコアルールとサブルール

このリリースには、フォーラム関数の2つのスコアリングルールが含まれています(フォーラム機能の「フォーラム」コンポーネントと「コメント」コンポーネントそれぞれに1つずつ)。

  1. /etc/community/scoring/rules/comments-scoring

    • subRules[] =

      /etc/community/scoring/rules/subrules/member-comment-create

      /etc/community/scoring/rules/subrules/member-receive-vote

      /etc/community/scoring/rules/subrules/member-give-vote

      /etc/community/scoring/rules/subrules/member-is-moderated

  2. /etc/community/scoring/rules/forums-scoring

    • subRules[] =

      /etc/community/scoring/rules/sub rules/member-forum-create

      /etc/community/scoring/rules/subrules/member-receive-vote

      /etc/community/scoring/rules/subrules/member-give-vote

      /etc/community/scoring/rules/subrules/member-is-moderated

備考:

  • rulesノードとsub-rulesノードの両方がcq:Pageタイプです

  • subRulesは、ルールの[] ノードの jcr:content String型の属性です

  • sub-rules は、複数のスコアルール間で共有できます。

  • rules は、リポジトリ内の誰でも読み取れる場所に配置する必要があります。

    • ルール名は、場所に関係なく一意である必要があります

カスタムスコアルールのアクティベート

作成者環境でスコアリングルールまたはサブルールに対して行われた変更や追加は、発行時にインストールする必要があります。

Badging Rules

バッジルールでは、以下を指定することで、スコアルールをバッジにリンクします。

  • どのスコアリングルールか
  • 特定のバッジを待つために必要なスコア

バッジルールは cq:Page タイプのノードであり、その jcr:content ノードのプロパティで、スコアルールをスコアおよびバッジと関連付けます。

バッジルールは必須の thresholds プロパティから成り、このプロパティには、バッジに対応付けるスコアの順序付きリストを指定します。スコアは小さい値から順に並べる必要があります。次に例を示します。

  • 1|/etc/community/badging/images/bronze-badge/jcr:content/bronze.png

    • 1点を稼ぐためにブロンズのバッジが待っています
  • 60|/etc/community/badging/images/silver-badge/jcr:content/silver.png

    • 60点が積み重なると銀のバッジが贈られる
  • 80|/etc/community/badging/images/gold-badge/jcr:content/gold.png

    • 80点が積み重なると金印が待たれる

バッジルールは、ポイントの累積方法を決定するスコアルールと組み合わせて使用されます。「コンテンツにルールを適用」というタイトルの節を参照してください。

バッジルールの scoringRules プロパティは、そのバッジルールに組み合わせ可能なスコアルールを制限します。

メモ

ベストプラクティスは、各 AEM サイトに固有のバッジ画像を作成することです。

chlimage_1-369

プロパティ 値 説明
thresholds String[] (必須)「number|path」という形式の複数値文字列
  • number = スコア
  • | = 縦線の文字(U+007C)
  • path = バッジ画像リソースへのフルパス
値が増え、数値とパスの間に空白のペースが表示されないように、文字列を並べ替える必要があります。
入力例:
80|/etc/community/badging/images/gold-badge/jcr:content/gold.png
badgingType 文字列 (オプション) スコアリングエンジンを「基本」または「詳細」として識別します。高度なスコアリングエンジンが必要な場合は、高度なスコアリングとバッジを参照してください。 デフォルト値は「basic」です。
scoringRules String[] オプション)スコアリングルールで識別されるスコアリングイベントにバッジルールを制限する複数値の文字列

このリリースに含まれるバッジルール

このリリースには、フォーラムとコメントのスコアルールに対応する 2 つのバッジルールが含まれています。

  • /etc/community/badging/rules/comments-badging
  • /etc/community/badging/rules/forums-badging

備考:

  • rules のノードは、cq:Page タイプです。

  • rules は、リポジトリ内の誰でも読み取れる場所に配置する必要があります。

    • ルール名は、場所に関係なく一意である必要があります

カスタムバッジルールのアクティベート

オーサー環境でバッジルールまたはバッジ画像の変更や追加をおこなった場合は、それをパブリッシュ環境でインストールする必要があります。

バッジの割り当てと取り消し

メンバーへのバッジの割り当ては、メンバーコンソールを使用するか、プログラムで cURL コマンドを使用して、おこなうことができます。

以下の cURL コマンドは、バッジの割り当てと取り消しの HTTP リクエストで必要とされる要素を示しています。基本的な形式は以下のとおりです。

cURL -i -XPOST-H header -u *signin * -F *operation * -F *badge * member-プロファイル-url

header = "Accept:application/json"
サーバーに渡すカスタムヘッダー(必須)

signin = administrator-id:password
例:admin:admin

operation = ":operation=social:assignBadge" OR ":operation=social:deleteBadge"

badge = "badgeContentPath=badge-image-file"

badge-image-file =リポジトリ内のバッジ画像ファイルの場所
例:/etc/community/badging/images/moderator/jcr:content/moderator.png

member-プロファイル-url =会員の公開時のプロファイルのエンドポイント
例:https://<サーバー>:<ポート>/home/users/community/riley/profile.social.json

メモ

member-profile-url は、

例:

モデレーターバッジの割り当て

curl -i -X POST -H "Accept:application/json" -u admin:admin -F ":operation=social:assignBadge" -F "badgeContentPath=/etc/community/badging/images/moderator/jcr:content/moderator.png" /home/users/community/updcs9DndLEI74DB9zsB/profile.social.json

割り当て済みのシルバーバッジの取り消し

curl -i -X POST -H "Accept:application/json" -u admin:admin -F ":operation=social:deleteBadge" -F "badgeContentPath=/etc/community/badging/images/silver/jcr:content/silver.png" /home/users/community/updcs9DndLEI74DB9zsB/profile.social.json
メモ

cURL を使用したバッジの割り当てと取り消しは、どのバッジ画像でも機能します。ただし、獲得されたバッジではなく割り当てられたバッジの場合は、割り当てられたバッジとしてマークされ、相応に処理されます。

カスタムコンポーネント用のスコアとバッジ

カスタムコンポーネント用に作成されたイベントトピックを動詞と関連付けることで、カスタムコンポーネント用のスコアルールとバッジルールを作成できます。

トピックと動詞

メンバーがコミュニティ機能を操作すると、通知やスコアなどの非同期リスナーを呼び出すイベントが送信されます。

コンポーネントのSocialEventインスタンスは、topicに対して発生するactionsとしてイベントを記録します。 SocialEventには、アクションに関連付けられたverbを返すメソッドが含まれます。 actionsverbsの間に​n-1​の関係がある。

提供されるコミュニティコンポーネントに関して、次の表は、スコアリングサブルールで使用可能な各topicに対して定義されたverbsについて説明します。

メモ

コンポーネントインスタンスでバッジを表示するかどうかは、新しいブール型プロパティの allowBadges で指定できます。表示バッジ​というチェックボックスを使用して、更新されたコンポーネント編集ダイアログで設定できます。

カレンダーコンポーネント SocialEvent topic= = com/adobe/cq/social/calendar

動詞 説明
POST メンバーがカレンダーイベントを作成する
ADD メンバーがカレンダーイベントについてコメントする
UPDATE メンバーのカレンダーイベントまたはコメントが編集される
DELETE メンバーのカレンダーイベントまたはコメントが削除される

コメントコンポーネント SocialEvent topic= = com/adobe/cq/social/comment

動詞 説明
POST メンバーがコメントを作成する
追加 メンバーがコメントに返信する
UPDATE メンバーのコメントが編集される
DELETE メンバーのコメントが削除される

ファイルライブラリコンポーネント SocialEvent topic= = com/adobe/cq/social/fileLibrary

動詞 説明
POST メンバーがフォルダーを作成する
ATTACH メンバーがファイルをアップロードする
UPDATE メンバーがフォルダーまたはファイルを更新する
DELETE メンバーがフォルダーまたはファイルを削除する

フォーラムコンポーネント SocialEvent topic= = com/adobe/cq/social/forum

動詞 説明
POST メンバーがフォーラムトピックを作成する
追加 メンバーがフォーラムトピックに返信する
UPDATE メンバーのフォーラムトピックまたは返信が編集される
DELETE メンバーのフォーラムトピックまたは返信が削除される

ジャーナルコンポーネント SocialEvent topic= = com/adobe/cq/social/journal

動詞 説明
POST メンバーがブログ記事を作成する
追加 メンバーがブログ記事にコメントする
UPDATE メンバーのブログ記事またはコメントが編集される
DELETE メンバーのブログ記事またはコメントが削除される

Q&A コンポーネント SocialEvent topic = com/adobe/cq/social/qna

動詞 説明
POST メンバーが Q&A の質問を作成する
追加 メンバーが Q&A の回答を作成する
UPDATE メンバーの Q&A の質問または回答が編集される
SELECT メンバーの回答が選択される
UNSELECT メンバーの回答の選択が解除される
DELETE メンバーの Q&A の質問または回答が削除される

レビューコンポーネント SocialEvent topic= = com/adobe/cq/social/review

動詞 説明
POST メンバーがレビューを作成する
UPDATE メンバーのレビューが編集される
DELETE メンバーのレビューが削除される

Rating
ComponentSocialEvent topic= com/adobe/cq/social/tally/rating

動詞 説明
ADD RATING メンバーのコンテンツの評価が上がった
REMOVE RATING メンバーのコンテンツの評価が下がった

Voting
ComponentSocialEvent topic= com/adobe/cq/social/tally/voting

動詞 説明
ADD VOTING メンバーのコンテンツに賛成票が投じられた
REMOVE VOTING メンバーのコンテンツに反対票が投じられた

モデレート対応コンポーネント SocialEvent topic= = com/adobe/cq/social/moderation

動詞 説明
DENY メンバーのコンテンツが拒否される
FLAG-AS-INAPPROPRIATE メンバーのコンテンツにフラグが付けられる
UNFLAG-AS-INAPPROPRIATE メンバーのコンテンツのフラグが解除される
ACCEPT メンバーのコンテンツがモデレーターにより承認される
CLOSE メンバーがコメントの編集と返信を閉じる
OPEN メンバーがコメントを再度開く

カスタムコンポーネントイベント

カスタムコンポーネントの場合、SocialEventがインスタンス化され、topicに対して発生するactionsとしてコンポーネントのイベントが記録されます。

スコアリングをサポートするには、SocialEventがメソッドgetVerb()をオーバーライドして、各actionに対して適切なverbが返されるようにする必要があります。 アクションに対して返されるverbは、一般的に使用されるもの(POSTなど)か、コンポーネントに特化したもの(ADD RATINGなど)です。 actionsverbsの間に​n-1​の関係がある。

トラブルシューティング

バッジが表示されない

スコアリングおよびバッジルールがWebサイトのコンテンツに適用されているが、どのアクティビティに対してもバッジが検出されない場合は、そのコンポーネントのインスタンスに対してバッジが有効になっていることを確認します。

コンポーネントのバッジを有効にする」を参照してください。

スコアルールが反映されない

スコアルールとバッジルールを Web サイトのコンテンツに適用したのに、バッジが一部のアクションにしか授与されない場合は、バッジルールの適用先のスコアルールが制限されていないかを確認してください。

バッジングルールscoringRulesプロパティを参照してください。

大文字と小文字のタイプミス

ほとんどのプロパティや値(特に動詞)では、大文字と小文字が区別されます。スコアリングサブルールで使用する場合、動詞はすべて大文字にする必要があります。

この機能が予想どおり動作しない場合は、データが正しく入力されているかを確認してください。

クイックテスト

Getting Started Tutorial(engage)サイトを使用すると、スコアとバッジを簡単に試すことができます。

  • 作成者のアクセスCRXDE Lite

  • ベースページを参照します。

    • /content/sites/engage/en/jcr:content
  • badgingRules追加プロパティ:

    • 名前badgingRules
    • String
    • マルチ​を選択
    • 追加​を選択
    • Enter /etc/community/badging/rules/forums-badging
    • +
    • /etc/community/badging/rules/comments-badgingを入力
    • OK」を選択します。
  • scoringRules追加プロパティ:

    • 名前scoringRules
    • String
    • マルチ​を選択
    • 追加​を選択
    • /etc/community/scoring/rules/forums-scoringを入力
    • +
    • /etc/community/scoring/rules/comments-scoringを入力
    • OK」を選択します。
  • すべて保存」を選択します。

chlimage_1-370

次に、フォーラムおよびコメントコンポーネントでバッジを表示できるようにします。

  • 再びCRXDE Liteを使用

  • フォーラムコンポーネントを参照します。

    • /content/sites/engage/en/forum/jcr:content/content/primary/forum
  • 必要に応じて、allowBadgesブール追加プロパティ(true)

    • 名前allowBadges
    • Boolean
    • : true

chlimage_1-371

次に、コミュニティサイトを再公開します。

最後に、

  • 発行インスタンス上のコンポーネントを参照します

  • コミュニティのメンバーとしてサインインする(例:weston.mccall@dodgit.com)

  • 新しいフォーラムトピックの投稿

  • バッジを表示するには、ページを更新する必要があります

    • 別のコミュニティメンバーとしてログアウトし、ログインする(例:aaron.mcdonald@mailinator.com)
  • フォーラムの選択

フォーラムトピックを投稿したコミュニティメンバーを見ると、ブロンズバッジが表示されているはずです。これは、最初のフォーラムバッジルールの最初のしきい値のスコアが 1 であるからです。

気管支バッジ

追加情報

詳しくは、開発者向けのスコアリングとバッジのEssentialsページを参照してください。

高度なスコアリングエンジンについて詳しくは、高度なスコアリングとバッジを参照してください。

構成可能なリーダーボードコンポーネント関数はコミュニティサイトでのメンバーとそのスコアの表示を簡素化する。

このページ