Opt-in/opt-out del usuario en el SDK de AppsFlyer

En resumen: Limita o detén el intercambio de datos con AppsFlyer para cumplir con las regulaciones de privacidad como el GDPR y CCPA.

OptInOptOut_us-en.png

Preguntas sobre la privacidad de AppsFlyer: La relación de privacidad entre tú y AppsFlyer se rige por la Política de Privacidad de los Servicios de AppsFlyer. Para preguntas relacionadas con esta Política de Privacidad de Servicios o para contactar con nuestro responsable de protección de datos, envía un correo a: privacy@appsflyer.com. Para 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, Schönhauser Allee 180, 10119 Berlín, Alemania (contacto privacy@appsflyer.com; +49-30-166373500).

Escenarios de opt-in y opt-out

  • El SDK de AppsFlyer integrado en la aplicación se puede configurar para:
    • Opt-out: detener o limitar la recopilación de datos.
    • Opt-in: después del opt-out, reanuda la recopilación de datos.
  • El desarrollador de la aplicación y el marketer, después de considerar los requisitos regulatorios y comerciales, implementan el opt-in/opt-out como se detalla en este artículo.
  • Utiliza el opt-out para:
    • Cumplir con regulaciones como el GDPR y CCPA, que prohíben o restringen la recopilación de datos.
    • Opt-out completo: deja de recoger datos de atribución.
    • Opt-out parcial: envía algunos datos o anonimiza los datos enviados.
    • Opt-out selectivo: basado en regulaciones específicas o en la edad del usuario de la aplicación.
  • Utiliza el opt-in para: cambiar del opt-out al opt-in. 

Opt-out de usuarios

El opt-out puede tener lugar en varios niveles diferentes dependiendo de los requisitos regulatorios y de los usuarios. Sigue el flujo apropiado usando un escenario de opt-out como se detalla. Haz esto para garantizar el cumplimiento de las solicitudes de opt-out y para continuar recogiendo datos de atribución cuando corresponda.

En los escenarios en los que el opt-out está habilitado, el ID de AppsFlyer se registra. 

Escenarios

Opt-out en la instalación

coppa_compliant_appsflyer.png

Cuándo: En la primera apertura (por ejemplo, cumplimiento normativo con COPPA)

Qué es: La aplicación requiere el acuerdo del usuario para realizar el registro de eventos durante todas las sesiones. Si el usuario consiente la grabación (por ejemplo, un usuario mayor de cierta edad), la aplicación llama al método start del SDK. De lo contrario, no se debe llamar al método start.

 Atención

No uses stop si nunca se llamó al método start.

Cómo: El método start siempre debe llamarse al inicio de la sesión de los usuarios con opt-in, pero no debe llamarse para usuarios con opt-out. Además, los eventos in-app no se pueden enviar a usuarios que nunca han sido de opt-in, ya que se considera que provienen de usuarios desconocidos y van a orgánicos.

Por lo tanto, para las aplicaciones, recomendamos que habilites el opt-out de instalación, ya que tiene un parámetro de marcador permanente que muestra si start se llamó de antemano o no. Este marcador SIEMPRE se debe verificar antes de llamar a los métodos start o logEvent.

Datos enviados a AppsFlyer: No se envían datos. Si el usuario posteriormente opta por el opt-in, los datos de atribución y de sesión se envían desde el momento en que se llama el método start

 Ejemplo

com.carefulapp requiere que los usuarios se registren al momento de la instalación. El formulario incluye una casilla de verificación: "Soy mayor de 13 años". El desarrollador agregó un marcador llamado is_tracking, que se vuelve true solo para los registros que tienen esta casilla marcada, y luego activa start.

Ejemplo de código aquí.

Evitar el intercambio de datos con terceros

CuándoCada vez que se inicializa el SDK. 

Qué es: Un usuario puede solicitar el opt-out para no compartir sus datos con terceros. Al activar esta opción en el SDK de AppsFlyer ANTES de la primera llamada de start, se aplica lo siguiente a toda la sesión:

  • Los usuarios de SRNs se atribuyen como orgánicos, y sus datos no se comparten con tus socios integrados.
  • Los usuarios que hacen clic en las redes publicitarias (no SRNs) se atribuyen correctamente en AppsFlyer, pero no se comparten con las redes publicitarias a través de postbacks, APIs, reportes de raw data o por cualquier otro método.

Cómo:

Para evitar el intercambio de datos de eventos a través de:

  • SDK (Android, iOS, a partir del SDK V6.4+):
    • Evita que una o más fuentes de medios especificadas (o todas las fuentes de medios) reciban el evento: usa el método de SDK setSharingFilterForPartners .
  • API S2S:

Datos enviados a AppsFlyer: Los datos se envían y almacenan en AppsFlyer, pero nunca se comparten con los socios integrados de AppsFlyer.

 Ejemplo

com.to.california es una aplicación de viajes para parques temáticos de California. Para ser compatible con la CCPA, si un residente de California envía una solicitud de opt-out, la aplicación notifica a AppsFlyer que no comparta los datos del evento del usuario con third-parties. 

Opt-out de la sesión

Cuándo: En cada inicio de la aplicación.

Qué: Todas las sesiones de la aplicación requieren el acuerdo del usuario para realizar el registro de eventos y datos durante una sesión.

Cómo: Para el escenario de opt-out de sesión, la primera llamada al SDK se produce después de que el usuario acepta o rechaza que los datos se envíen desde su dispositivo:

  • Si el usuario acepta enviar datos, se debe llamar al método start.
  • Si el usuario rechaza que se envíen datos, no llames el método start.

Los datos enviados a AppsFlyer dependen del estado de opt-out de cada sesión de la siguiente manera: 

  • Opt-out de sesión: No se envían datos. 
  • Opt-out de sesión: Se envían todos los datos de la sesión. Nota: Los datos de atribución se envían la primera vez que el usuario opta por el opt-in. 

 Ejemplo

com.adultsplay es una aplicación de juegos casual para adultos mayores de 18 años. No requiere que los usuarios se registren, pero sí requiere su confirmación de edad con cada nuevo inicio. Las sesiones, donde los usuarios confirman que tienen más de 18 años, obtienen la experiencia de juego completa y se registran, mientras que de lo contrario no se realiza ningún registro.

El desarrollador agregó un marcador llamado is_tracking, que se vuelve true solo para las sesiones que confirman la edad de 18 años. Si este marcador es true, se llama al método start. De lo contrario, no se llama al start.

Opt-out de una sola vez

OpenGDPR-logo-BLK.png

Cuándo: En cualquier momento (GDPR)

Qué: El propietario de la aplicación recopila datos de atribución y post-instalación. El usuario solicita detener una mayor recopilación de datos, por ejemplo, de conformidad con una solicitud RGPD.

Cómo: ¡No llames a start y luego llames directamente a stop!

En su lugar, en el primer inicio usa el método start con el requestListener. Al finalizar con éxito, en la función callback, llama a stop.

En todas las siguientes sesiones no llames a start.

Datos enviados a AppsFlyer: Los datos de instalación y sesión se envían a AppsFlyer. No se envían datos a AppsFlyer después de llamar al método stop

 Ejemplo

com.watchmegrow es una aplicación de visualización de crecimiento de plantas, donde los usuarios ven plantas en crecimiento y anuncios móviles. El propietario de la aplicación quiere mantener en secreto todos los datos de las actividades in-app.

En el primer inicio, el desarrollador llama al método start con el requestListener. Al recibir una finalización exitosa, se llama a stop desde la función de callbacks y se establece un parámetro persistente is_first_launch en false. En los siguientes inicios, el desarrollador comprueba si is_first_launch está en false y luego omite start.

 

Ejemplo de código aquí

Registro de instalación y anonimización

Cuándo: Tras la primera apertura

Qué: El propietario de la aplicación quiere recoger todos los datos de atribución, y luego quiere recoger toda la información posterior, como eventos in-app o datos de sesiones, como datos orgánicos no atribuidos. Post-instalación, todos los ID de dispositivo se anonimizan cuando se envían a AppsFlyer desde el SDK.

Cómo: ¡No llames a start y luego llames directamente a stop!

En su lugar, la primera apertura usa el método start con el requestListener. Al finalizar con éxito, en la función de callback, llama a anonymizeUser(true).

Datos enviados a AppsFlyer:

  • Al instalar: Los datos de atribución completos se envían a AppsFlyer.
  • Después de la instalación: Los datos de eventos in-app y los datos de sesión se envían a AppsFlyer sin datos de atribución. Al recibirlos, el identificador de usuario se anonimiza y se codifica el ID de AppsFlyer y la dirección IP. En la siguiente imagen se muestra un ejemplo de datos anonimizados y codificados. DataSample_anonymized.png 

 Ejemplo

El propietario de la aplicación com.munistic cree que todos los usuarios nacen iguales y prefiere ver todas sus acciones post-instalación como solo orgánicas.

En la primera apertura, el desarrollador llama al método start con el requestListener. Al recibir una finalización exitosa, llama a anonymizeUser(true) desde la función de callback.

Opt-out de campañas de retargeting

Considera excluir a los usuarios con opt-out de las campañas de retargeting. Es probable que estos usuarios se quejen de haber tenido retargeting al haber optado por el opt-out.

Cuando ejecutes campañas de retargeting manualmente, dirigidas a usuarios activos, asegúrate de eliminar a los usuarios con opt-out de las listas enviadas a las listas de fuentes de medios.

De manera alternativa, si estás usando AppsFlyer Audiences, para crear tus listas de audiencia y enviarlas a fuentes de medios, los usuarios excluidos de las listas enviadas a fuentes de medios se excluyen de las listas enviadas a fuentes de medios.

stop API y deep linking

El uso de la API stop detiene toda la comunicación externa por parte del SDK de AppsFlyer incrustado en la aplicación.

Por lo tanto, después de llamar a stop, los enlaces acortados ya no son decodificados por el SDK de AppsFlyer. Esto significa que cualquier enlace abreviado no genera la llamada a onAppOpenAttribution, y el deep linking no se realiza correctamente.

Si tu app tiene un porcentaje relativamente alto de usuarios con exclusión opcional y planeas algunas campañas de retargeting para tus usuarios, usa enlaces largos y evita el uso de enlaces acortados.

Reiniciar la función del SDK

Cuando un usuario con exclusión opcional acepta la inclusión opcional, llama al método start para reiniciar el SDK y comenzar a registrar datos de atribución.

SDK de modo estricto (solo iOS)

A veces los desarrolladores prefieren enviar sus aplicaciones sin ninguna referencia al marco de AdSupport y a la recopilación del IDFA en su código. En tales casos, utiliza el SDK de modo estricto.