レポートを表示し対応する
Last updated on February 4, 2026
注釈:本資料はAI技術を用いて翻訳されています。
はじめに
AccelByte Gaming Services (AGS) のレポートとモデレーション機能により、プレイヤーからのレポートを表示し、適切な対応を取ることができます。
レポートとモデレーションの設定は、AGS Admin Portal のゲームネームスペースで利用できます。サイドバーから Social > Reporting and Moderation に移動してメニューにアクセスしてください。
レポートを表示し対応する
-
Admin Portal のサイドバーから Social > Reporting and Moderation > Report List に移動します。Report List ページが表示されます。このページでは、レポートが UGC、Player、Chat のカテゴリ別に分類されています。

-
確認したいレポートを見つけて、View オプションをクリックします。レポートの詳細ページが表示されます。この例では Chat レポートカテゴリを使用しており、報告されたチャットを確認して対応を取ることができます。

-
ユーザーをBANするには、Ban User をクリックします。Chat Ban フォームが表示されます。

-
BANの詳細と条件を設定します:
- Ban Type: ユーザーに適用するBANのタイプを選択します。
- Ban expiration: BANの期間を設定します。
- Reason: BANの理由を選択します。
- Comment: (オプション)コメントを追加します。
- Notify user via email: ユーザーにBANについてメールで通知する場合は、このボックスにチェックを入れます。
-
Ban をクリックします。設定した詳細と条件に基づいて、ユーザーのBANが即座に有効になります。
SDKサンプルコード
チャットレポート
- Unreal Engine
- Unity
- C# Extend SDK
- Go Extend SDK
- Java Extend SDK
- Python Extend SDK
FApiClientPtr UserApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();
FAccelByteModelsReportingSubmitDataChat ReportData;
ReportData.Comment = TEXT("Report comment"); // Details or comments about the report
ReportData.Reason = ReportingReason; // Get value from GetReason, or use a custom string
ReportData.ChatId = ChatId; // Chat ID we want to report
ReportData.UserId = UserId; // User ID we want to report
ReportData.ChatCreatedAt = chat_createdAt; // The chat createdAt field
ReportData.ChatTopicId = topicId; // The chat's topic ID
FAccelByteModelsReportingSubmitResponse ReportResponse;
bool bReportSuccess {false};
THandler<FAccelByteModelsReportingSubmitResponse> OnReportSuccess =
THandler<FAccelByteModelsReportingSubmitResponse>::CreateLambda(
[&](const FAccelByteModelsReportingSubmitResponse& Result)
{
// Do something when report success
});
FErrorHandler ReportingOnError = FErrorHandler::CreateLambda([](int32 Code, const FString& Message)
{
// Do something when error submitting report
});
UserApiClient->Reporting.SubmitChatReport(ReportData, OnReportSuccess, ReportingOnError);
var userApiClient = AccelByteSDK.GetClientRegistry().GetApi();
ReportingSubmitDataChat report = new ReportingSubmitDataChat()
{
category = ReportingCategory.CHAT,
comment = "inappropriate chat", // Comments or details about the report
additionalInfo = new ReportingAdditionalInfoChat()
{
topicId = topicId, // Topic ID the chat is associated with
chatCreatedAt = createdAt // Chat field's createdAt
},
objectId = chatId, // Chat ID we want to report
objectType = "chat",
reason = reasonTitle, // Get value from GetReason's title field
userId = UserId // User we want to report
};
userApiClient.GetReporting().SubmitChatReport(report, result =>
{
if (result.IsError)
{
// Do something when submit report fails
}
else
{
// Do something when submit report succeeds
}
})
string reportComment = "<details or comments about the report>";
string reportReason = "<why this chat is reported>";
string chatId = "<chat id we want to report>";
string userId = "<user id we want to report>";
string topicId = "<the chat's topic id>";
string chatCreatedAt = "<the chat createdAt field>";
RestapiSubmitReportRequest chatReport = new RestapiSubmitReportRequest()
{
Category = RestapiSubmitReportRequestCategory.CHAT,
Comment = reportComment,
Reason = reportReason,
ObjectId = chatId,
ObjectType = "chat",
UserId = userId,
AdditionalInfo = new Dictionary<string, object>()
{
{ "topicId", topicId },
{ "chatCreatedAt", chatCreatedAt }
}
};
var reportResponse = sdk.Reporting.PublicReports.SubmitReportOp
.Execute(chatReport, sdk.Namespace);
Assert.IsNotNull(reportResponse);
if (reportResponse != null)
{
//do something when report success
}
publicReportsService := &reporting.PublicReportsService{
Client: factory.NewReportingClient(&repository.ConfigRepositoryImpl{}),
TokenRepository: &repository.TokenRepositoryImpl{},
}
category := reportingclientmodels.RestapiSubmitReportRequestCategoryCHAT
reason := "myreason"
chatId := "mychatid"
userId := "myuserid"
body := reportingclientmodels.RestapiSubmitReportRequest {
Category: &category,
Comment: "mycomment",
Reason: &reason,
ObjectID: chatId,
ObjectType: "chat",
UserID: &userId,
AdditionalInfo: map[string]interface{}{
"topicId": "mytopicid",
"chatCreatedAt": "mychatCreatedAt",
},
}
namespace := "mygame"
input := &public_reports.SubmitReportParams{
Body: &body,
Namespace: namespace,
}
result, err := publicReportsService.SubmitReportShort(input)
PublicReports publicReportsWrapper = new PublicReports(sdk);
String reportComment = "<details or comments about the report>";
String reportReason = "<why this chat is reported>";
String chatId = "<chat id we want to report>";
String userId = "<user id we want to report>";
String topicId = "<the chat's topic id>";
String chatCreatedAt = "<the chat createdAt field>";
RestapiSubmitReportResponse response;
try {
RestapiSubmitReportRequest reqBody = RestapiSubmitReportRequest.builder()
.categoryFromEnum(RestapiSubmitReportRequest.Category.CHAT)
.comment(reportComment)
.reason(reportReason)
.objectId(chatId)
.objectType("chat")
.userId(userId)
.additionalInfo(Map.of("topicId", topicId,
"chatCreatedAt", chatCreatedAt))
.build();
response = publicReportsWrapper.submitReport(SubmitReport.builder()
.namespace("<namespace>")
.body(reqBody)
.build());
} catch (Exception e) {
// Do something when failed
return;
}
if (response == null) {
// Null response from server
} else {
//do something when report success
}
import accelbyte_py_sdk.api.reporting as reporting_service
import accelbyte_py_sdk.api.reporting.models as reporting_models
result, error = reporting_service.submit_report(
body=reporting_models.RestapiSubmitReportRequest()
.with_category(reporting_models.RestapiSubmitReportRequestCategoryEnum.CHAT)
.with_comment("inappropriate chat")
.with_additional_info({"topicId": topic_id, "chatCreatedAt": created_at})
.with_object_id(chat_id)
.with_object_type("chat")
.with_reason(reason_title)
.with_user_id(user_id),
namespace=namespace, # optional, gets the value from the global instance if unspecified
sdk=sdk, # optional, gets the global instance if unspecified
)
if error:
exit(error)
プレイヤーレポート
- Unreal Engine
- Unity
- C# Extend SDK
- Go Extend SDK
- Java Extend SDK
- Python Extend SDK
備考
近日公開
備考
近日公開
string reportComment = "<details or comments about the report>";
string reportReason = "<why this user is reported>";
string userId = "<user id we want to report>";
RestapiSubmitReportRequest userReport = new RestapiSubmitReportRequest()
{
Category = RestapiSubmitReportRequestCategory.USER, // USER
Comment = reportComment,
Reason = reportReason,
UserId = userId,
AdditionalInfo = new Dictionary<string, object>()
};
var reportResponse = sdk.Reporting.PublicReports.SubmitReportOp
.Execute(userReport, sdk.Namespace);
if (reportResponse != null)
{
//do something when report success
}
publicReportsService := &reporting.PublicReportsService{
Client: factory.NewReportingClient(&repository.ConfigRepositoryImpl{}),
TokenRepository: &repository.TokenRepositoryImpl{},
}
category := reportingclientmodels.RestapiSubmitReportRequestCategoryUSER // USER
reason := "myreason"
userId := "myuserid"
body := reportingclientmodels.RestapiSubmitReportRequest {
Category: &category,
Comment: "mycomment",
Reason: &reason,
UserID: &userId,
AdditionalInfo: map[string]interface{}{},
}
namespace := "mygame"
input := &public_reports.SubmitReportParams{
Body: &body,
Namespace: namespace,
}
result, err := publicReportsService.SubmitReportShort(input)
PublicReports publicReportsWrapper = new PublicReports(sdk);
String reportComment = "<details or comments about the report>";
String reportReason = "<why this user is reported>";
String userId = "<user id we want to report>";
RestapiSubmitReportResponse response;
try {
RestapiSubmitReportRequest reqBody = RestapiSubmitReportRequest.builder()
.categoryFromEnum(RestapiSubmitReportRequest.Category.USER) // USER
.comment(reportComment)
.reason(reportReason)
.userId(userId)
.additionalInfo(Map.of())
.build();
response = publicReportsWrapper.submitReport(SubmitReport.builder()
.namespace("<namespace>")
.body(reqBody)
.build());
} catch (Exception e) {
return;
}
if (response != null) {
//do something when report success
}
import accelbyte_py_sdk.api.reporting as reporting_service
import accelbyte_py_sdk.api.reporting.models as reporting_models
result, error = reporting_service.submit_report(
body=reporting_models.RestapiSubmitReportRequest()
.with_category(reporting_models.RestapiSubmitReportRequestCategoryEnum.USER) // USER
.with_comment("inappropriate behavior")
.with_additional_info({})
.with_reason(reason_title)
.with_user_id(user_id),
namespace=namespace,
sdk=sdk,
)
if error:
exit(error)
UGCレポート
- Unreal Engine
- Unity
- C# Extend SDK
- Go Extend SDK
- Java Extend SDK
- Python Extend SDK
備考
近日公開
備考
近日公開
string reportComment = "<details or comments about the report>";
string reportReason = "<why this UGC is reported>";
string objectId = "<UGC object id we want to report>";
string userId = "<user id we want to report>";
RestapiSubmitReportRequest ugcReport = new RestapiSubmitReportRequest()
{
Category = RestapiSubmitReportRequestCategory.UGC, // UGC
Comment = reportComment,
ObjectId = objectId,
ObjectType = reportReason,
Reason = reportReason,
UserId = userId,
AdditionalInfo = new Dictionary<string, object>()
};
var reportResponse = sdk.Reporting.PublicReports.SubmitReportOp
.Execute(ugcReport, sdk.Namespace);
if (reportResponse != null)
{
//do something when report success
}
publicReportsService := &reporting.PublicReportsService{
Client: factory.NewReportingClient(&repository.ConfigRepositoryImpl{}),
TokenRepository: &repository.TokenRepositoryImpl{},
}
category := reportingclientmodels.RestapiSubmitReportRequestCategoryUGC // UGC
reason := "myreason"
objectId := "myobjectid"
userId := "myuserid"
body := reportingclientmodels.RestapiSubmitReportRequest {
Category: &category,
Comment: "mycomment",
ObjectID: objectId,
ObjectType: reason,
Reason: &reason,
UserID: &userId,
AdditionalInfo: map[string]interface{}{},
}
namespace := "mygame"
input := &public_reports.SubmitReportParams{
Body: &body,
Namespace: namespace,
}
result, err := publicReportsService.SubmitReportShort(input)
PublicReports publicReportsWrapper = new PublicReports(sdk);
String reportComment = "<details or comments about the report>";
String reportReason = "<why this UGC is reported>";
String objectId = "<UGC object id we want to report>";
String userId = "<user id we want to report>";
RestapiSubmitReportResponse response;
try {
RestapiSubmitReportRequest reqBody = RestapiSubmitReportRequest.builder()
.categoryFromEnum(RestapiSubmitReportRequest.Category.UGC) // UGC
.comment(reportComment)
.objectId(objectId)
.objectType(reportReason)
.reason(reportReason)
.userId(userId)
.additionalInfo(Map.of())
.build();
response = publicReportsWrapper.submitReport(SubmitReport.builder()
.namespace("<namespace>")
.body(reqBody)
.build());
} catch (Exception e) {
return;
}
if (response != null) {
//do something when report success
}
import accelbyte_py_sdk.api.reporting as reporting_service
import accelbyte_py_sdk.api.reporting.models as reporting_models
result, error = reporting_service.submit_report(
body=reporting_models.RestapiSubmitReportRequest()
.with_category(reporting_models.RestapiSubmitReportRequestCategoryEnum.UGC) // UGC
.with_comment("inappropriate content")
.with_additional_info({})
.with_object_id(object_id)
.with_object_type(report_reason)
.with_reason(report_reason)
.with_user_id(user_id),
namespace=namespace,
sdk=sdk,
)
if error:
exit(error)