> ## 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.

# RGPD de PlayFab: eliminación y exportación de datos de jugador

> Cómo usar las API de administración de PlayFab para exportar o eliminar los datos de un jugador de modo que pueda cumplir el Reglamento General de Protección de Datos (RGPD).

PlayFab está comprometido con el cumplimiento del Reglamento General de Protección de Datos (RGPD) y, como su proveedor de servicios, con garantizar que le proporcionamos los enlaces que necesita para permitir a los jugadores ver o eliminar los datos almacenados sobre ellos.

Aunque no podemos ofrecerle asesoramiento jurídico (*y le animamos a buscar asesoramiento legal para garantizar su cumplimiento del RGPD*), estamos aquí para ayudarle a cumplir sus obligaciones en virtud del RGPD.

PlayFab dispone de tres API para ayudarle a responder a las solicitudes de datos de jugadores:

* [GetPlayedTitleList](xref:titleid.playfabapi.com.admin.accountmanagement.getplayedtitlelist): llame a esta API para obtener una lista de TitleId que tienen datos asociados al jugador indicado. Esta lista está delimitada por PublisherID y representa el conjunto de títulos que se verían afectados si eliminara o exportara los datos de este jugador.
* [DeleteMasterPlayerAccount](xref:titleid.playfabapi.com.admin.accountmanagement.deletemasterplayeraccount): llame a esta API para eliminar los registros de un jugador determinado.
* [ExportMasterPlayerData](xref:titleid.playfabapi.com.admin.accountmanagement.exportmasterplayerdata): llame a esta API para exportar todos los datos y registros asociados de un jugador determinado.

## Asegúrese de encontrar todos los datos

Antes de usar las API `DeleteMasterPlayerAccount` o `ExportMasterPlayerData`, es importante tener en cuenta que sus jugadores podrían haber creado varias cuentas de Master Player con su estudio.

Esta situación puede producirse cuando un jugador usa diferentes dispositivos o diferentes credenciales para jugar a sus títulos. Dado que proporcionan credenciales diferentes y no relacionadas (por ejemplo, una dirección de correo electrónico o una cuenta de redes sociales diferente), los interpretamos como un jugador único.

Otra forma en que un jugador puede tener varias cuentas de Master Player es si ha configurado su estudio para usar varios Publisher ID; sin embargo, tener varios Publisher ID no es habitual.

Puede comprobar los Publisher ID de su título en PlayFab Game Manager, en la pestaña **API Features** del menú de configuración de cada título.

<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: Settings, pestaña API" width="2560" height="1184" data-path="images/playfab/player-progression/player-data/tutorials/playfab-settings-api-tab.png" />

Usted conoce sus títulos y cómo autentican a sus jugadores. Antes de llamar a `DeleteMasterPlayerAccount` o `ExportMasterPlayerData`, asegúrese de recopilar el conjunto correcto de identificadores de dispositivo y/o credenciales de sus jugadores.

Con estas credenciales, podemos identificar los PlayFabId de *cada* cuenta de Master Player.

Las siguientes API le ayudan a traducir credenciales a `PlayFabId`:

* [GetUserAccountInfo](xref:titleid.playfabapi.com.admin.accountmanagement.getuseraccountinfo): esta API le ayuda a encontrar jugadores por correo electrónico, `TitleDisplayName`, `PlayFabId` o un `PlayFabUsername`.
* [GetPlayerIdFromAuthToken](xref:titleid.playfabapi.com.admin.accountmanagement.getplayeridfromauthtoken): esta API le permite encontrar a un jugador a partir de un `AuthToken` específico que se concede al jugador cuando inicia sesión.
* [GetPlayFabIDsFromFacebookIDs](xref:titleid.playfabapi.com.server.accountmanagement.getplayfabidsfromfacebookids): esta API deriva el `PlayFabId` del jugador a partir de uno o varios `FacebookId`.
* [GetPlayFabIDsFromSteamIDs](xref:titleid.playfabapi.com.server.accountmanagement.getplayfabidsfromsteamids): esta API deriva el `PlayFabId` del jugador a partir de uno o varios `SteamIds`.

<Note>
  Todas estas API son específicas de cada título. Las dos primeras son API de administración y las dos últimas son API de servidor.
</Note>

Incluso si su jugador solo tiene un PlayFabId, puede haber jugado a más de uno de sus títulos con ese identificador. Lo que significa que su solicitud de datos puede abarcar varios títulos.

Para obtener esta lista de títulos, llame a `GetPlayedTitleList` para cada PlayFabId. *Puede* que desee informar al jugador de que su solicitud afectará a la lista de títulos devuelta.

Además, `GetPlayedTitleList` devuelve `TitleIds`, *no* `Title Names`; considere la posibilidad de convertir estos identificadores en `Title Names` antes de mostrarlos en una página de confirmación.

Aquí tiene un poco de pseudocódigo para ilustrar mejor lo que queremos decir...

```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)
    }
}
```

Aquí tiene un ejemplo rápido de cómo usar **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);
}
```

En este punto, tiene una lista de `PlayFabIds` para este jugador (basada en las credenciales que ha compartido) y una lista de títulos para cada `PlayFabId`. ¿Y ahora qué?

¡Ahora está listo para eliminar o exportar!

## Otras consideraciones

Es fácil causar daños con estas API. Exportar datos del jugador equivocado o eliminar al jugador equivocado podría ser muy perjudicial ¡y es **permanente**!

Es su responsabilidad como desarrollador del juego verificar que las credenciales coinciden con las del jugador que solicita la exportación o eliminación de sus datos de jugador. PlayFab no proporciona ningún tipo de verificación al usar estas API.

No obstante, PlayFab ofrece una [característica de verificación de correo electrónico](/services/playfab/live-service-management/game-configuration/title-communications/emails/using-a-rule-to-verify-a-contact-email-address). Pero nuestra solución no es la única opción de verificación. También puede crear su propio proceso.

Independientemente de la tecnología que use, le sugerimos que realice algún tipo de verificación antes de llevar a cabo cualquiera de estas acciones.


## Related topics

- [Documentación de progresión del jugador de PlayFab](/es/services/playfab/player-progression/index.md)
- [RGPD de PlayFab: exportar datos de jugador](/es/services/playfab/data-analytics/privacy-compliance/gdpr-exporting-player-data.md)
- [Documentación de datos y análisis de PlayFab](/es/services/playfab/data-analytics/index.md)
- [RGPD de PlayFab: eliminar datos de jugador](/es/services/playfab/data-analytics/privacy-compliance/gdpr-deleting-player-data.md)
- [Aspectos básicos de PlayFab](/es/services/playfab/get-started/index.md)
