> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# PlayFab GDPR - プレイヤー データの削除とエクスポート

> PlayFab Admin API を使用してプレイヤーのデータをエクスポートまたは削除し、一般データ保護規則 (GDPR) に準拠する方法。

PlayFab は一般データ保護規則 (GDPR) への準拠に取り組んでおり、皆さまのサービス プロバイダーとして、プレイヤーが自分に関して保存されているデータを閲覧または削除できるようにするために必要なフックを提供しています。

法的助言を提供することはできませんが、*皆さまが GDPR への準拠を確保するために弁護士に相談されることをお勧めします*。GDPR に基づく義務の遂行を支援するためにここにおります。

PlayFab には、プレイヤー データ リクエストに応答するのに役立つ 3 つの API があります:

* [GetPlayedTitleList](xref:titleid.playfabapi.com.admin.accountmanagement.getplayedtitlelist) - この API を呼び出して、指定されたプレイヤーに関連するデータを持つ TitleId のリストを取得します。このリストは PublisherID によってスコープされ、このプレイヤーのデータを削除またはエクスポートした場合に影響を受けるタイトルのセットを表します。
* [DeleteMasterPlayerAccount](xref:titleid.playfabapi.com.admin.accountmanagement.deletemasterplayeraccount) - この API を呼び出して、指定されたプレイヤーのレコードを削除します。
* [ExportMasterPlayerData](xref:titleid.playfabapi.com.admin.accountmanagement.exportmasterplayerdata) - この API を呼び出して、指定されたプレイヤーの関連するすべてのデータとレコードをエクスポートします。

## すべてのデータを必ず見つけてください

`DeleteMasterPlayerAccount` または `ExportMasterPlayerData` API を使用する前に、プレイヤーがスタジオで複数の Master Player アカウントを作成している可能性があることを念頭に置いておくことが重要です。

このような状況は、プレイヤーが異なるデバイスや異なる資格情報を使用してタイトルをプレイした場合に発生する可能性があります。プレイヤーが異なる、関連しない資格情報 (たとえば、別のメール アドレスやソーシャル メディア アカウント) を提供しているため、それらを一意のプレイヤーとして解釈します。

プレイヤーが複数の Master Player アカウントを持つ可能性のあるもう 1 つの方法は、スタジオが複数の Publisher ID を使用するように構成されている場合です。ただし、複数の Publisher ID を持つことは一般的ではありません。

PlayFab Game Manager で、各タイトルの設定メニューの **\[API Features]** タブでタイトルの Publisher ID を確認できます。

<img src="https://mintcdn.com/microsoft-4404708b/N3T1ucKV7zIMBudj/images/playfab/player-progression/player-data/tutorials/playfab-settings-api-tab.png?fit=max&auto=format&n=N3T1ucKV7zIMBudj&q=85&s=b26ea6fe4188ebef5fb76a58b4ae1b07" alt="PlayFab - 設定 - API タブ" width="2560" height="1184" data-path="images/playfab/player-progression/player-data/tutorials/playfab-settings-api-tab.png" />

自分のタイトルとそのタイトルがどのようにプレイヤーを認証しているかは、皆さまが最もよくご存じです。`DeleteMasterPlayerAccount` または `ExportMasterPlayerData` を呼び出す前に、プレイヤーから正しいデバイス ID や資格情報のセットを必ず収集してください。

これらの資格情報を使用して、*各* Master Player アカウントの PlayFabId を特定できます。

次の API は、資格情報から `PlayFabId` への変換に役立ちます:

* [GetUserAccountInfo](xref:titleid.playfabapi.com.admin.accountmanagement.getuseraccountinfo) - この API は、メール、`TitleDisplayName`、`PlayFabId`、または `PlayFabUsername` でプレイヤーを検索するのに役立ちます。
* [GetPlayerIdFromAuthToken](xref:titleid.playfabapi.com.admin.accountmanagement.getplayeridfromauthtoken) - この API を使用すると、プレイヤーがログインしたときに付与される特定の `AuthToken` からプレイヤーを見つけることができます。
* [GetPlayFabIDsFromFacebookIDs](xref:titleid.playfabapi.com.server.accountmanagement.getplayfabidsfromfacebookids) - この API は、1 つ以上の `FacebookId` からプレイヤーの `PlayFabId` を導出します。
* [GetPlayFabIDsFromSteamIDs](xref:titleid.playfabapi.com.server.accountmanagement.getplayfabidsfromsteamids) - この API は、1 つ以上の `SteamIds` からプレイヤーの `PlayFabId` を導出します。

<Note>
  これらの API はすべてタイトル固有です。最初の 2 つは Admin API で、最後の 2 つは Server API です。
</Note>

プレイヤーが 1 つの PlayFabId しか持っていなくても、その ID で複数のタイトルをプレイしている可能性があります。つまり、データ リクエストは複数のタイトルに及ぶ可能性があります。

このタイトルのリストを取得するには、各 PlayFabId に対して `GetPlayedTitleList` を呼び出します。プレイヤーには、そのリクエストが返されるタイトル リストに影響することを通知してもよい *でしょう*。

さらに、`GetPlayedTitleList` は `TitleIds` を返し、`Title Names` は *返しません*。確認ページに表示する前に、これらの ID を `Title Names` に変換することを検討してください。

意味を明確にするために、少しの疑似コードを示します...

```csharp theme={null}
//Here you would iterate through a request of known Ids, Emails, linked accounts  
//or other PlayFab searchable info on the player that you have.
//and store it in user credentials for that player.
user {
  credentials: (email/ids/linked accounts)
}

//create a variable to hold a list of all the PlayFabIds you want to remove.
PlayFabIdList

//create a list of affected titles
AffectedTitles

//Keep track of all your titles, this is important
//and should include all titles across all your namespaces.
foreach(title in <all my titles>){

    //each user record you have for the player, you should have a list of credentials for that player
    //so you can find them in PlayFab
    foreach(cred in user.credentials){
      //There are a few helper Admin and Server API's that help you do this part.
      //See below this pseudo code block for some tips!
      pfid = <find PlayFabId in Title using the credential>
      PlayFabIdList.add(pfid)
    }

    //go through the list of PlayFabIds that you have and fine all titles that
    //performing the action would affect
    foreach(pfid in PlayFabIdList){
      AffectedTitles = title.GetPlayedTitleList(pfid)
    }
}
```

以下は、**GetPlayedTitleList** の使用方法の簡単な例です。

```csharp theme={null}
public static async void StartFindTitlesExample(Action<PlayFabError> callback)
{

    var task = await PlayFabAdminAPI.GetPlayedTitleListAsync(new GetPlayedTitleListRequest() {
        PlayFabId = PlayFabId
    });

    if(task.Error != null)
    {
        callback(task.Error);
        return;
    }

    var TitleList = task.Result.TitleIds;
    foreach (var title in TitleList)
    {
        Console.WriteLine(string.Format("Title Found: {0}", title));
    }
    callback(null);
}
```

これで、このプレイヤーの `PlayFabIds` のリスト (共有された資格情報に基づく) と、各 `PlayFabId` のタイトルのリストが得られました。次に何をしますか?

これで、削除またはエクスポートの準備が整いました!

## その他の考慮事項

これらの API では簡単に害を及ぼす可能性があります。間違ったプレイヤーのデータをエクスポートしたり削除したりすると、非常に有害であり、**永続的** です!

資格情報が、プレイヤー データのエクスポートまたは削除を要求しているプレイヤーと一致することを検証するのは、ゲーム開発者としての皆さまの責任です。PlayFab では、これらの API を使用する際に、いかなる種類の検証も提供していません。

ただし、PlayFab は [メール検証機能](/services/playfab/live-service-management/game-configuration/title-communications/emails/using-a-rule-to-verify-a-contact-email-address) を提供しています。ただし、当社のソリューションが検証の唯一の選択肢ではありません。独自のプロセスを作成することもできます。

どのテクノロジを使用するかに関わらず、これらのアクションのいずれかを実行する前に、何らかの検証を行うことをお勧めします。


## Related topics

- [PlayFab GDPR - プレイヤー データのエクスポート](/ja-jp/services/playfab/data-analytics/privacy-compliance/gdpr-exporting-player-data.md)
- [PlayFab GDPR - プレイヤー データの削除](/ja-jp/services/playfab/data-analytics/privacy-compliance/gdpr-deleting-player-data.md)
- [PlayFab プレイヤー進行ドキュメント](/ja-jp/services/playfab/player-progression/index.md)
- [PlayFab データと分析のドキュメント](/ja-jp/services/playfab/data-analytics/index.md)
- [Insights エクスポート](/ja-jp/services/playfab/data-analytics/legacy/insights/export.md)
