De un vistazo: Este artículo es para los clientes de AppsFlyer, a menudo denominados anunciantes, o propietarios de aplicaciones, que usan la plataforma para registrar la atribución y el uso de aplicaciones. Los propietarios de aplicaciones implementan la API OpenGDPR para cumplir con las leyes de protección de datos pertinentes, como la CCPA (California), el RGPD (Europa) y la LGPD (Brasil).
Notas de nuestros abogados: Nada de lo que se dice aquí es asesoramiento legal. Se proporciona solo para tu información y conveniencia. Debes trabajar en estrecha colaboración con asesores legales y otros asesores profesionales para determinar exactamente cómo el RGPD, CCPA o cualquier otra ley pueden aplicarse a ti o no. La relación de privacidad entre tú y AppsFlyer se rige por la Política de privacidad de los servicios de AppsFlyer. Para cualquier pregunta relacionada con esta Política de privacidad de los servicios o para comunicarte con el encargado oficial de la protección de datos, envíanos un correo electrónico a: privacy@appsflyer.com. A los efectos del artículo 27 del Reglamento general de protección de datos, el representante dentro de la UE de AppsFlyer es AppsFlyer Germany GmbH Kurfürstendamm 11, c/o WeWork, 10719 Berlín, Alemania (contacto privacy@appsflyer.com ; +49-30-3119 -9129)
Regulaciones de privacidad
En este artículo, las referencias a las normas de privacidad incluyen las normas enumeradas en la tabla que figura a continuación.
Norma | Logotipo | Descripción |
---|---|---|
GDPR | ![]() |
El Reglamento General de Protección de Datos es el conjunto de normas de la UE en materia de protección de datos y privacidad de los ciudadanos de la Unión Europea. |
CCPA | ![]() |
Ley de Privacidad del Consumidor de California |
LGPD | ![]() |
Lei Geral de Proteção de Dados |
La iniciativa OpenGDPR
A fin de abordar y gestionar las solicitudes de los sujetos de datos enviadas de acuerdo con las regulaciones de privacidad, AppsFlyer, junto con mParticle, Amplitude y Braze, inició el protocolo OpenGDPR.
OpenGDPR es un marco de código abierto y unificado que facilita la cooperación entre empresas de tecnología para el uso justo y transparente de los datos de consumidores. Les permite a los proveedores tomar medidas relativas a la privacidad de los datos en varios sistemas para procesar y almacenar datos de clientes.
Puede leer más sobre la iniciativa aquí.
Definiciones
Término del RGPD | Término de AppsFlyer | Descripción |
---|---|---|
Sujeto de datos | Usuario de la aplicación o usuario final | El usuario de la aplicación sobre el que se recopilan los datos |
Controlador de datos | Propietario de la aplicación o anunciante | El propietario de la aplicación determina el propósito y los medios por los cuales se procesan los datos personales. |
Procesador de datos | AppsFlyer y sus partners | AppsFlyer y sus socios procesan datos personales en nombre del controlador de datos. |
Requisitos del GDPR
En el RGPD se detallan los derechos obligatorios del sujeto de datos, que el controlador de datos debe cumplir. Para fines de API, estos derechos se traducen en tipos de solicitud. A continuación se detalla cómo AppsFlyer procesa los diferentes tipos de solicitud.
Tipo de solicitud (Derecho) |
Definición según el GDPR |
Procesamiento de la solicitud por parte de AppsFlyer |
---|---|---|
Acceso |
|
Los propietarios de la aplicación reciben una copia de los datos personales procesados de los usuarios de la aplicación. |
Portabilidad |
El usuario de la aplicación debe recibir todos sus datos personales en un formato estructurado, comúnmente utilizado y legible por máquina, como un archivo CSV. |
El propietario de la aplicación recibe una copia de los datos personales procesados del usuario de la aplicación. |
Rectificación |
Permite a los usuarios de la aplicación corregir sus datos si ven que son inexactos o falsos. Los propietarios de aplicaciones deben eliminar o corregir los datos inexactos o incompletos. |
|
Supresión |
El derecho de supresión obliga a los propietarios de aplicaciones a eliminar los datos personales dentro del mes siguiente a la recepción de la solicitud. |
Los datos se eliminan |
API de solicitudes GDPR de AppsFlyer
Usa la API de solicitudes de RGPD tal como se describe en esta sección para implementar el cumplimiento normativo del RGPD.
- Solicitud de RGPD: Realizar uno de los tipos de solicitud anteriores: acceso, portabilidad, supresión, rectificación.
- Solicitud de estado: Consultar el estado actual de una solicitud GDPR.
- Solicitud de descubrimiento: Preguntar por la versión de la API compatible y el formato de datos.
- Cancelación: Cancelar una solicitud GDPR durante la fase pendiente.
Los propietarios de aplicaciones deben implementar cambios en la interfaz de usuario de su aplicación, de modo que los usuarios de la aplicación puedan enviar solicitudes. Debe tenerse en cuenta que las solicitudes de RGPD se envían de a un usuario por vez.
1. Solicitud GDPR
Flujo de solicitudes GDPR
Los tipos de solicitud de RGPD, de acceso, portabilidad, supresión y rectificación, tienen el mismo flujo:
- El usuario de la aplicación envía una solicitud.
- El propietario de la aplicación genera la solicitud de RGPD (ver más abajo) y la envía a AppsFlyer.
- AppsFlyer recibe la solicitud y responde con un "201 OK" para las solicitudes válidas.
- Durante las siguientes 48 horas, la solicitud se pone en cola y su estado es pending (pendiente). El usuario de la aplicación puede cancelar la solicitud.
- Después de 48 horas, el estado de la solicitud cambia a in_progress (en curso). AppsFlyer envía un postback ‘status change’ (cambio de estado). La solicitud no se puede cancelar.
- a) Dentro de un período de 28 días, AppsFlyer completa la solicitud.
En el caso de una solicitud de supresión o rectificación, los datos del usuario de la aplicación se eliminan.
En el caso de una solicitud de portabilidad o acceso, se puede acceder a los datos del usuario de la aplicación en el panel de control de AppsFlyer bajo RGPD, o mediante la API de solicitud (ver más abajo).
b) El estado de la solicitud se actualiza a completed (completada). AppsFlyer envía un postback status change (cambio de estado).
Formato de solicitudes GDPR
Se puede presentar una API de solicitudes GDPR por medio de HTTP POST al punto de conexión
https://hq1.appsflyer.com/gdpr/opengdpr_requests?api_token=[api token]
El token de la API es el mismo token de la API que se utiliza para Pull API. El administrador recupera el token de la Pull API de la página del token de la API en el panel de control.
Nombre de la propiedad | Obligatorio | Descripción |
---|---|---|
subject_request_id | Sí | Secuencia UUID v4. Generada por el controlador al momento del envío de la solicitud al procesador. Luego puede utilizarse para controlar el estado de la solicitud, actualizarla o cancelarla. |
subject_request_type | Sí |
Valor de la secuencia que representa el tipo de solicitud de RGPD. Valores admitidos:
|
subject_identities | Sí |
|
submitted_time | Sí |
|
property_id | Sí |
Cadena que representa la aplicación móvil con la cual está relacionada esta solicitud. Ejemplos:
|
api_version | No | Secuencia de versión que representa la versión deseada de la API de solicitudes GDPR. |
status_callback_urls | Sí |
|
Tipo de objeto | Obligatorio | Descripción |
---|---|---|
identity_type | Sí |
|
identity_value | Sí |
|
identity_format | Sí |
|
Ejemplo de solicitud de supresión de RGPD
curl --location --request POST 'https://hq1.appsflyer.com/gdpr/opengdpr_requests?api_token=[api_token]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
"subject_request_id":"f4e5a271-f25e-4107-b681-************",
"subject_request_type":"erasure",
"submitted_time":"2020-07-05T10:00:00Z",
"subject_identities":[
{
"identity_type":"android_advertising_id",
"identity_value":"55*****-****-****-************",
"identity_format":"raw"
}
],
"api_version":"0.1",
"property_id":"com.*********.*******.********",
"status_callback_urls":[
"https://examplecontroller.com/opengdpr_callbacks"
]
}'
Ejemplo de código de solicitud de borrado GDPR
/*
using the okhttp package install from maven
https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp
*/
import okhttp3.*;
import java.io.IOException;
public class GdprSendRequest {
public static void main(String[] args){
OkHttpClient client = new OkHttpClient();
RequestBody body = RequestBody.create(null, "" +
"{\r\n\"subject_request_id\": \"<SUBJECT_ID>\"," +
"\r\n\"subject_request_type\": \"erasure\"," +
"\r\n\"submitted_time\": \"2018-11-02T15:00:00Z\"," +
"\r\n\"subject_identities\": [\r\n" +
"{\r\n\"identity_type\": \"android_advertising_id\"," +
"\r\n\"identity_value\": \"<ADVERTISING_ID>\"," +
"\r\n\"identity_format\": \"raw\"\r\n}" +
"\r\n]," +
"\r\n\"property_id\": \"com.example.application\"}");
Request request = new Request.Builder()
.url("https://hq1.appsflyer.com/gdpr/opengdpr_requests?api_token=<API_TOKEN>")
.post(body)
.addHeader("Content-Type", "application/json")
.addHeader("Accept", "application/json")
.build();
try {
Response response = client.newCall(request).execute();
System.out.println(response.code());
System.out.println(response.body().string());
System.exit(0);
} catch (IOException e) {
e.printStackTrace();
System.exit(1);
}
}
}
""" using the requests python package,
install using pip install requests """
import requests
import json
headers = {
"Content-Type": "application/json",
"Accept": "application/json"
}
params = {
"api_token": ""
}
body = {
"subject_request_id": "",
"subject_request_type": "erasure",
"submitted_time": "2018-10-02T15:00:00Z",
"subject_identities": [
{ "identity_type": "android_advertising_id",
"identity_value": "",
"identity_format": "raw" }
],
"property_id": "com.example.application"
}
body = json.dumps(body)
res = requests.request("POST",
"https://hq1.appsflyer.com/gdpr/opengdpr_requests",
headers=headers, data=body, params=params)
print(res.text)
/* using the request npm package,
install using npm install request */
var request = require("request");
var options = { method: 'POST',
url: 'https://hq1.appsflyer.com/gdpr/opengdpr_requests',
qs: { api_token: '' },
headers:
{ Accept: 'application/json',
'Content-Type': 'application/json' },
body:
{ subject_request_id: '<SUBJECT_ID>',
subject_request_type: 'erasure',
submitted_time: '2018-10-02T15:00:00Z',
subject_identities:
[ { identity_type: 'android_advertising_id',
identity_value: '<ADVERTISING_ID>',
identity_format: 'raw' } ],
property_id: 'com.example.application'
},
json: true };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
using System;
using RestSharp;
namespace CS
{
class Gdpr
{
static void Main(string[] args)
{
var url = "https://hq1.appsflyer.com/gdpr/opengdpr_requests";
var apiToken = "?api_token=<API_TOKEN>";
var client = new RestClient(url + apiToken);
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
Request.AddHeader("Accept", "application/json");
var body = "{\r\n\"subject_request_id\": \"<SUBJECT_ID>\"," +
"\r\n \"subject_request_type\": \"erasure\"," +
"\r\n \"submitted_time\": \"2018-11-02T15:00:00Z\"," +
"\r\n \"subject_identities\": [\r\n" +
"{ \r\n \"identity_type\": \"android_advertising_id\"," +
"\r\n \"identity_value\": \"<ADVERTISING_ID>\"," +
"\r\n \"identity_format\": \"raw\"\r\n }" +
"\r\n ]," +
"\r\n \"property_id\": \"com.example.application\"}";
request.AddParameter("undefined", body,ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
// handle response by reading response.StatusCode
Console.WriteLine(response.Content);
}
}
}
2. Solicitud de estado
Cada solicitud GDPR que se presente puede consultarse posteriormente para saber su estado. Para esto, se debe especificar el subject_request_id
. Existen cuatro tipos de estado admitidos:
- pending (Pendiente): Se recibió una solicitud correcta y en este momento se encuentra en la cola.
- in_progress (En curso): En este momento se está procesando una solicitud.
- completed (Finalizada): Se cumplió con una solicitud.
- canceled (Cancelada): Se canceló una solicitud.
Formato de solicitud de estado
Se puede presentar una solicitud de estado por medio de HTTP GET al punto de conexión
https://hq1.appsflyer.com/gdpr/opengdpr_requests/[subject_request_id]?api_token=[api token]
Ejemplo de respuesta de estado
HTTP/1.1 200 OK
Content-Type: application/json
X-OpenGDPR-Processor Domain: example processor.com
X-OpenGDPR-Signature:
kiGlog3PdQx+FQmB8wYwFC1fekbJG7Dm9WdqgmXc9uKkFRSM4uPzylLi7j083461xLZ+mUloo3tpsmyIZpt5eMfgo7ejXPh6lqB4ZgCnN6+1b6Q3NoNcn/+11UOrvmDj772wvg6uIAFzsSVSjMQxRs8LAmHqFO4cF2pbuoPuK2diHOixxLj6+t97q0nZM7u3wmgkwF9EHIo3C6G1SI04/odvyY/VdMZgj3H1fLnz+X5rc42/wU4974u3iBrKgUnv0fcB4YB+L6Q3GsMbmYzuAbe0HpVA17ud/bVoyQZAkrW2yoSy1x4Ts6XKba6pLifIHf446Bubsf5r7x1kg6Eo7B8zur666NyWOYrglkOzU4IYO8ifJFRZZXazOgk7ggn9obEd78GBc3kjKKZdwaCrLx7WV5y9TMDCf+2FILOJM/MwTUy1dLZiaFHhGdzld2AjbjK1CfVzyPssch0iQYYtbR49GhumvkYl11S4oDfu0c3t/xUCZWg0hoR3XL3B7NjcrlrQinB1KbyTNZccKR0F4Lk9fDgwTVkrAg152UqPyzXxpdzXjfkDkSEgAevXQwVJWBNf18bMIEgdH2usF/XauQoyrne7rcMIWBISPgtBPj3mhcrwscjGVsxqJva8KCVCKD/4Axmo9DISib5/7A6uczJxQG2Bcrdj++vQqK2succ=
{
"controller_id":"example_controller_id",
"expected_completion_time":"2018-11-01T15:00:01Z",
"subject_request_id":"a7551968-d5d6-44b2-9831-815ac9017798",
"request_status":"pending",
"api_version":"0.1"
}
Postbacks de estado
Tal como se describiera anteriormente en la sección Flujo de solicitudes GDPR, cuando cambia el estado de una solicitud GDPR, de pending (pendiente) a in_progress (en curso) y a completed (finalizada), AppsFlyer envía un postback GDPR a los puntos de conexión de la solicitud, especificados con la propiedad status_callback_urls.
Ejemplo de postback de estado:
POST /opengdpr_callbacks HTTP/1.1
Host: examplecontroller.com
Content-Type: application/json
X-OpenGDPR-Processor Domain: appsflyer.com
X-OpenGDPR-Signature: kiGlog3PdQx+FQmB8wYwFC1fekbJG7Dm9WdqgmXc9uKkFRSM4uPzylLi7j083461xLZ+mUloo3tpsmyIZpt5eMfgo7ejXPh6lqB4ZgCnN6+1b6Q3NoNcn/+11UOrvmDj772wvg6uIAFzsSVSjMQxRs8LAmHqFO4cF2pbuoPuK2diHOixxLj6+t97q0nZM7u3wmgkwF9EHIo3C6G1SI04/odvyY/VdMZgj3H1fLnz+X5rc42/wU4974u3iBrKgUnv0fcB4YB+L6Q3GsMbmYzuAbe0HpVA17ud/bVoyQZAkrW2yoSy1x4Ts6XKba6pLifIHf446Bubsf5r7x1kg6Eo7B8zur666NyWOYrglkOzU4IYO8ifJFRZZXazOgk7ggn9obEd78GBc3kjKKZdwaCrLx7WV5y9TMDCf+2FILOJM/MwTUy1dLZiaFHhGdzld2AjbjK1CfVzyPssch0iQYYtbR49GhumvkYl11S4oDfu0c3t/xUCZWg0hoR3XL3B7NjcrlrQinB1KbyTNZccKR0F4Lk9fDgwTVkrAg152UqPyzXxpdzXjfkDkSEgAevXQwVJWBNf18bMIEgdH2usF/XauQoyrne7rcMIWBISPgtBPj3mhcrwscjGVsxqJva8KCVCKD/4Axmo9DISib5/7A6uczJxQG2Bcrdj++vQqK2succ=
{
"controller_id":"example controller id at the processor",
"expected_completion_time":"2018-11-01T15:00:01Z",
"status_callback_url":"https://examplecontroller.com/opengdpr_callbacks",
"Subject_request_id":"a7551968-d5d6-44b2-9831-815ac9017798",
"Request_status":"pending"
}
3. Solicitud de reporte
Una vez finalizada una solicitud de acceso o portabilidad, puede descargar el reporte por medio de HTTP GET al punto de conexión
https://hq1.appsflyer.com/gdpr/download/[REQUEST_ID]?api_token=[TOKEN]
El reporte generado estará disponible durante 14 días a partir de la finalización.
4. Solicitud de descubrimiento
Para conocer los formatos admitidos por AppsFlyer, se puede enviar una solicitud de descubrimiento por medio de HTTP GET al punto de conexión
https://hq1.appsflyer.com/gdpr/discovery?api_token=[api token]
Ejemplo de respuesta de descubrimiento
HTTP/1.1 200 OK
Content-Type: application/json
{
"api_version": "0.1",
"supported_identities": [
{
"identity_type": "android_advertising_id",
"identity_format": "raw"
},
],
"supported_subject_request_types": [
"erasure", "access", "portability", "rectification"
],
"processor_certificate": "https://exampleprocessor.com/cert.pem"
}
5. Solicitud de cancelación
Es posible cancelar una solicitud GDPR, según su subject_request_id
, pero solo durante la fase pending (pendiente).
Para esto, se debe enviar un HTTP DELETE con el subject_request_id
a
https://hq1.appsflyer.com/gdpr/opengdpr_requests/[subject_request_id]?api_token=[api token]
Respuesta de cancelación
Cuando se recibe una solicitud de cancelación GDPR, AppsFlyer devuelve una respuesta de HTTP con código de estado 202 y varios parámetros más.
Una vez que se cancela la solicitud, AppsFlyer envía un postback con el estado cancelled (cancelada).
6. API de prueba de solicitudes GDPR
Se trata de una API de prueba de AppsFlyer correspondiente a la API de solicitudes GDPR de AppsFlyer.
¿Cómo Funciona?
La API de prueba funciona de la siguiente manera:
1. Una vez presentada una solicitud GDPR, inmediatamente se le asigna el estado "Pending" (pendiente). A los fines de la prueba, el estado cambia cada 30 segundos.
2. Si se insertó un punto de conexión para un postback de estado en la solicitud GDPR, se envía un primer postback inmediatamente después de la solicitud, y dos postbacks de estado más con intervalos de 30 segundos.
Punto de conexión de prueba de solicitud GDPR:
https://hq1.appsflyer.com/gdpr/stub?api_token=[api token]
Punto de conexión de prueba de solicitud de estado:
https://hq1.appsflyer.com/gdpr/stub/[request id]?api_token=[api token]
Punto de conexión de prueba de solicitud de descubrimiento:
https://hq1.appsflyer.com/gdpr/stub/discovery?api_token=[api token]
Punto de conexión de prueba de solicitud de cancelación:
https://hq1.appsflyer.com/gdpr/stub/[request id]?api_token=[api token]
Notas
- Se debe insertar un token de API válido con la solicitud.
- En la propiedad "property_id", el ID de la aplicación debe corresponder al propietario de la cuenta (de acuerdo con el token de la API).
7. Registros de solicitudes
El administrador de la cuenta puede acceder a las solicitudes de RGPD enviadas en el Panel de control de registros.
En el caso de las solicitudes de acceso y portabilidad finalizadas, también es posible descargar el reporte desde este panel de control.
Para acceder al panel de control de registros:
- Accede al panel de control principal y haz clic en tu nombre de usuario.
- Haz clic en Registros, y se abrirá la siguiente ventana:
8. Mensajes de error y códigos de retorno de la API de RGPD
Los mensajes de error y códigos de retorno HTTP de la API de RGPD se detallan en esta sección.
Código de respuesta | Descripción |
---|---|
201 | Creada |
202 | Solicitud de cancelación recibida |
400 |
Solicitud incorrecta. El cuerpo contiene el mensaje y código de error tal como se enumeran en la tabla a continuación. |
Código de retorno HTTP 400: solicitud incorrecta
Los mensajes que tienen el código de retorno 400 contienen un JSON con el mensaje y código de error.
{ "error":
{ "Code":400, "af_gdpr_code": "%AF error code%", "message":"%error message text%"
}
}
Código del error |
Descripción del error (mensaje) |
---|---|
e111 | Excede el límite de velocidad |
e211 | No se puede cancelar la solicitud con un estado inválido |
e212 | Solicitud no permitida. La eliminación está en curso para el identificador. |
e213 | La solicitud ya existe |
e214 | No se encontró la solicitud |
e311 | Tipo de contenido de solicitud inválido |
e312 | Versión de API inválida |
e313 | subject_request_id inválido |
e314 | Formato de submitted_time inválido |
e315 | Longitud de status_callback_url inválida |
e316 | Formato de status_callback_url inválido |
e317 | Formato de app_id inválido |
e318 | identity_type inválido |
e319 | La plataforma de aplicación no coincide con los tipos de identidad |
e320 | identity_type inválido |
e321 | Los usuarios de LAT no son compatibles a través de la API |
e322 | subject_request_type inválido |
e323 | Formato de subject_identities inválido |
e324 | Longitud de subject_identities inválida |
e325 | Valor subject_identities inválido |
e411 | AppID es incorrecto o no pertenece a tu cuenta |
e412 | No hay permisos para cancelar la solicitud de eliminación |
e413 | No hay permisos para ver la solicitud |
e511 | Problema interno, espera 60 minutos e intenta nuevamente. Si el problema persiste, comunícate con el soporte técnico de AppsFlyer. support@appsflyer.com |
Limitaciones
- Limitación de velocidad: 80 solicitudes de RGPD cada 2 minutos a nivel de cuenta.
Optar por la exclusión
Este artículo está destinado para los clientes de AppsFlyer y no para los usuarios de aplicaciones. Los usuarios de aplicaciones que deseen aplicar la exclusión opcional, deben comunicarse con el publisher de la aplicación (propietario).
Todos los sujetos de datos tienen derecho a la restricción de procesamiento de sus datos. Cuando los sujetos de datos ejercen este derecho, los controladores de datos deben dejar de procesar los datos personales de los sujetos sin excepción, lo que incluye retirar a los usuarios de todas las campañas de marketing directo.
Para desactivar todas las funciones del SDK en un dispositivo móvil, usa la API isStopTracking. Una vez invocada esta API, el SDK de AppsFlyer deja de funcionar y ya no envía información a los servidores de AppsFlyer.
Código de desarrolladores
A continuación se muestran los detalles para desarrolladores.
Disponible con el SDK de Android v. 4.8.7 o superior.
AppsFlyerLib.getInstance().stopTracking(true, context);
En cualquier evento, se puede reactivar el SDK llamando a la misma API, pero para pasar un valor falso.
Advertencia
Solo usa esta API en casos en los que quieras bloquear por completo un usuario de todas las funciones del SDK de AppsFlyer. Usar esta API afecta GRAVEMENTE tus reportes y atribución.
Disponible con el SDK de iOS v. 4.8.3 o superior.
AppsFlyerTracker.shared().isStopTracking = true
[AppsFlyerTracker sharedTracker].isStopTracking = true;
Disponible con el SDK de iOS v. 4.8.3 o superior.
AppsFlyerLib.shared().isStopped = true
[AppsFlyerLib shared].isStopped = true;
Utilice esta API durante la inicialización del SDK para optar por la exclusión de manera explícita:
public void setDeviceTrackingDisabled(boolean isDisabled);
Ejemplo de uso:
AppsFlyer.setDeviceTrackingDisabled(true);
Las funciones del SDK se pueden reiniciar llamando a deviceTrackingDisabled
nuevamente configurado como falso.
Advertencia
Optar por la exclusión de usuarios afecta SEVERAMENTE su información de atribución.Utilice esta opción SOLO para regiones en las que esté legalmente prohibido recolectar información de usuarios.
Utilice esta API durante la inicialización del SDK para optar por la exclusión de manera explícita:
void anonymizeUser(bool shouldAnonymizeUser)
Ejemplo de uso:
AppsFlyer.anonymizeUser(true);
Las funciones del SDK se pueden reiniciar llamando a anonymizeUser
nuevamente configurado como falso.
Advertencia
Optar por la exclusión de usuarios afecta SEVERAMENTE su información de atribución.Utilice esta opción SOLO para regiones en las que esté legalmente prohibido recolectar información de usuarios.
Aprender sobre las diferentes situaciones de exclusión opcional y la forma para implementarlas.
Para obtener más información sobre la implementación de SDK, haga clic en las opciones Android, iOS o Unity.