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

概要

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が含まれます。

カスタムバッジ

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

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

スコアの有効化

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

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

コンテンツに対するルールの適用

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

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

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

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

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

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

コンポーネントに対するバッジの有効化

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

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

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

chlimage_1-368

メモ

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

スコアルール

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

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

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

  • ページ2にスコアルール2が含まれ、その上位ページ1にスコアルール1が含まれる場合

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

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

    • ルール2のサブルールのみがスコアに影響します
    • 両方のサブルールのスコアは、一緒には追加されません

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

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

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

メモ

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

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

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

スコアサブルール

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

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

  • 追跡されているアクティビティ
  • 関連する特定のコミュニティ機能
  • 授与されるポイント数

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

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

サブルールの名前は、通常、subject、object​および​verb​を使用するパターンに従います。 次に例を示します。

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

サブルールはcq:Page型のノードで、 jcr:contentノードのプロパティで動詞とトピックを指定します。

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

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

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

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

    • subRules[] =

      /etc/community/scoring/rules/sub-rules/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/subrules/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は、ルールのノード[] のString型の属性で jcr:content

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

  • 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」または「advanced」として識別します。高度なスコアエンジンが必要な場合は、高度なスコアとバッジを参照してください。 デフォルトは「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-profile-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-profile-url =パブリッシュ時のメンバーのプロファイルのエンドポイント
例:https://<server>:<port>/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 メンバーがコメントを作成する
追加 メンバーがコメントに返信する
更新 メンバーのコメントが編集される
DELETE メンバーのコメントが削除される

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

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

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

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

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

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

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

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

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

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


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

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

投票
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
    • マルチ​を選択します。
    • 追加​を選択します。
    • /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 であるからです。

気管支バッジ

追加情報

詳しくは、開発者向けのスコアとバッジの基本事項ページを参照してください。

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

設定可能なリーダーボードコンポーネント機能を使用すると、コミュニティサイト上でメンバーとメンバーのスコアを簡単に表示できます。

このページ