Data Clean Room: almacenamiento en la nube y configuración de archivos de datos

De un vistazo: Configura los buckets de servicios en la nube, las rutas de las carpetas y los archivos para su uso por parte de Data Clean Room AppsFlyer. Los buckets se pueden encontrar en AWS S3, GCS o ambos.

Información general

Data Clean Room (DCR) de AppsFlyer permite a los anunciantes aprovechar el valor de sus datos de nivel de usuario propios, comparándolos y enriqueciéndolos con los datos de atribución de nivel de usuario de AppsFlyer. Los reportes de estadísticas agregadas resultantes mantienen la privacidad del usuario, al tiempo que permiten a los anunciantes obtener insights valiosos que solo estos datos combinados pueden proporcionar.

La preparación para utilizar DCR implica configurar el almacenamiento del servicio en la nube y asegurarse de que los archivos de datos que se van a cargar tengan el formato adecuado y se transmitan a DCR.

Almacenamiento del servicio en la nube

El almacenamiento del servicio en la nube es utilizado por Data Clean Room (DCR) de AppsFlyer para 2 propósitos principales:

  • Entrada: ubicación desde la que AppsFlyer lee los archivos de datos propios producidos por tu sistema de Business Intelligence
  • Salida: destino al que AppsFlyer entrega los reportes después del procesamiento de DCR

Puedes utilizar uno o varios buckets para estos fines (en AWS, GCS o ambos). Sin embargo, en la mayoría de los casos, la estructura más fácil de gestionar incluye:

  • Un único bucket en un único servicio en la nube
  • Una carpeta identificada mediante tu clave DCR directamente debajo del bucket
  • 2 rutas de carpeta separadas debajo de la carpeta de nivel superior: una para la entrada y otra para la salida

Este artículo proporciona las instrucciones para crear esta estructura.

Requisitos de denominación de DCR

Los siguientes requisitos de denominación se aplican a todas las entidades de datos de DCR (buckets, carpetas y archivos):

  • Longitud máxima: 200 caracteres
  • Caracteres válidos:
    • letras (A-Z, a-z)
    • números (0-9), no pueden ser el primer carácter de un nombre
    • guiones (-), no pueden ser el primer carácter de un nombre
  • Caracteres inválidos:
    • espacios
    • todos los demás símbolos o caracteres especiales
  • Caracteres utilizados solo con fines especiales:

 Nota

AWS y GCS agregan automáticamente una barra inclinada (/) al final de cada nombre de carpeta. No incluyas este carácter al nombrar tus buckets o carpetas.

Creación de un bucket

Los buckets se crean utilizando la interfaz del servicio en la nube seleccionado, como se describe en las pestañas siguientes.

Los siguientes requisitos son relevantes para los buckets de ambos servicios en la nube:

  • Nombre del bucket:
    • El nombre del bucket debe empezar por af-dcr-
    • Ejemplo: af-dcr-example-bucket
  • Adicionalmente:
    • El servicio DCR de AppsFlyer debe tener permisos de bucket. Consulta las instrucciones para otorgar estos permisos en las pestañas de cada servicio en la nube a continuación.
    • El bucket debe ser para uso exclusivo de Data Clean Room de AppsFlyer. En otras palabras, ningún otro servicio puede escribir datos en el bucket.

Bucket AWS

Nota: El administrador de AWS debe llevar a cabo el siguiente procedimiento.

Para crear un bucket y otorgar permisos a AppsFlyer: 

  1. Inicia sesión en la consola de AWS.
  2. Ve al servicio S3.
  3. Para crear el bucket:
    1. Haz clic en Crear bucket.
    2. Completa el Nombre del bucket, empezando por af-dcr-, seguido de tu texto (como se ha descrito anteriormente).
    3. Haz clic en Crear bucket.
  4. Para otorgar permisos de bucket a AppsFlyer:
    1. Selecciona el bucket que creaste. 
    2. Ve a la pestaña Permisos
    3. En la sección Política del bucket, haz clic en Editar.
      Se abre la ventana Editar política de bucket.
    4. Pega el siguiente fragmento de código en la ventana.
      {
        "Version": "2012-10-17",
        "Statement": [
          {
            "Sid": "AF-DCR",
            "Effect": "Allow",
            "Principal": {
              "AWS": "arn:aws:iam::195229424603:user/product=dcr-reporter__envtype=prod__ns=default"
            },
            "Action": [
              "s3:GetObject",
              "s3:ListBucket",
              "s3:DeleteObject",
              "s3:PutObject"
            ],
            "Resource": [
              "arn:aws:s3:::af-dcr-mybucket",
              "arn:aws:s3:::af-dcr-mybucket/*"
            ]
          }
        ]
      }
      
  5. En el fragmento, reemplaza af-dcr-mybucket (en las 2 líneas en las que aparece) con el nombre del bucket que creaste.
    Precaución: Cuando sustituyas el nombre del bucket en el fragmento, asegúrate de no sobrescribir /* en la segunda línea en la que aparece el nombre del bucket.

  6. Haz clic en Guardar cambios.

Bucket de GCS

Nota: El siguiente procedimiento debe ser realizado por tu administrador de Google Cloud.

Para crear un bucket y otorgar permisos a AppsFlyer: 

  1. Inicia sesión en tu consola de GCS.
  2. Ve a la página de Cloud Storage Browser.
  3. Para crear el bucket:
    1. Haz clic en Create bucket (Crear bucket).
    2. Introduce la información de tu bucket en la página Create a bucket (Crear un bucket). Incluye el nombre del bucket, empezando por af-dcr- y seguido de tu texto (como se ha descrito anteriormente).
    3. Haz clic en Continue (Continuar).
    4. Haz clic en Create (Crear).
  4. Para otorgar permisos de bucket a AppsFlyer:
    1. Selecciona el bucket que creaste. 
    2. Ve a la pestaña Permisos
    3. En la sección de permisos, haz clic en + Add (Agregar).
      Se abre la ventana Add members (Agregar miembros).
    4. En el cuadro New members (Nuevos miembros), pega el fragmento que sigue.
      appsflyer-dcr@dcr-report.iam.gserviceaccount.com
    5. En la lista Role (Rol), selecciona Cloud Storage (Almacenamiento en la nube) > Storage Admin (Administrador de almacenamiento).

      dcr_gcs_permissions.png

    6. Haz clic en Guardar.

Creación de una carpeta de claves DCR

Para garantizar la máxima seguridad, la carpeta directamente debajo del bucket (la "clave DCR") debe tener el nombre de la clave DCR alfanumérica de 8 caracteres asignada a tu cuenta (por ejemplo, 01bcc5fb). Ten en cuenta que esta es diferente de cualquier otra contraseña o clave asociada a tu cuenta de AppsFlyer.

Por lo general, la carpeta de claves DCR se crea manualmente utilizando la interfaz del servicio en la nube seleccionado.

Para obtener la clave DCR de tu cuenta, haz clic en el botón de clave DCR en la parte superior de la pantalla principal de DCR.

dcr_key_button.png

 Ejemplo

Después de crear la carpeta de clave DCR, tu estructura de bucket/carpetas se verá así:

af-dcr-example-bucket/01bcc5fb/

Creación de una ruta de la carpeta de entrada

Los requisitos detallados para crear cada elemento de la ruta de la carpeta de entrada se describen en las pestañas siguientes.

Carpeta de entrada de nivel superior

Aunque no es obligatorio, la práctica recomendada es crear una carpeta de entrada de nivel superior directamente debajo de la carpeta de claves DCR. Esta carpeta estará dedicada a los archivos que subas a DCR.

Por lo general, la carpeta de entrada de nivel superior se crea manualmente utilizando la interfaz del servicio en la nube seleccionado.

  • Esta práctica es aún más recomendable cuando se utiliza el mismo bucket tanto para cargar archivos de datos (entrada) como para recibir reportes (salida).
  • Puedes nombrar esta carpeta como quieras, siempre y cuando cumpla con los requisitos de denominación de DCR. Para facilitar su identificación, suele denominarse input/.

 Ejemplo

Después de crear la carpeta de entrada de nivel superior, tu estructura de bucket/carpetas se verá así:

af-dcr-example-bucket/01bcc5fb/input/

Carpeta de segundo nivel para cada fuente de datos

Puedes cargar regularmente diferentes archivos de origen de datos en DCR para su procesamiento. A cada una de estas fuentes de datos se le debe asignar una carpeta separada ("carpetas de origen de datos").

Por ejemplo, si planeas cargar 2 archivos a DCR para procesarlos todos los días: BI-data.csv y CRM-data.gzip, asignarías una carpeta a cada una de estas fuentes de datos. Puedes denominar estas carpetas BI-data/ y CRM-data/.

Por lo general, las carpetas de origen de datos se crean manualmente utilizando la interfaz del servicio en la nube seleccionado.

 Ejemplo

Después de crear 2 carpetas de origen de datos, tu estructura de bucket/carpetas se verá así:

af-dcr-example-bucket/01bcc5fb/input/BI-data/
                                     CRM-data/

Subcarpetas anidadas para cada fecha y versión

Finalmente, llegamos a la parte de la estructura de carpetas donde ocurre la acción real: las carpetas en las que AppsFlyer busca continuamente nuevos archivos de datos para leer en DCR.

Cada vez que deseas que AppsFlyer procese un archivo fuente de datos y ejecute un reporte basado en él, subes una nueva versión del archivo a la carpeta de fuentes de datos, dentro de una serie de subcarpetas anidadas que indican la fecha y el número de versión (más una subcarpeta adicional para que AppsFlyer sepa dónde están los datos):

  • Dentro de cada carpeta de fuentes de datos --> 1 subcarpeta para cada fecha ("carpeta de fecha")
    • Formato: dt=aaaa-mm-dd/
    • Ejemplo: dt=2022-03-10/
  • Dentro de cada carpeta de fecha --> 1 subcarpeta para cada versión en esa fecha ("carpeta de versión")
    • Formato: v=n/
    • Ejemplo: v=1/
    • Nota: La carpeta de versión es necesaria aunque solo se cargue el archivo una vez al día.
  • Dentro de cada carpeta de versión --> 1 subcarpeta para indicar la ubicación de los datos ("carpeta de datos")
    • Formato: data/

En la mayoría de los casos, usarías llamadas a la API u otros medios programáticos disponibles para crear las carpetas de fecha/versión/datos automáticamente cada vez que se cargue el archivo fuente de datos. Para obtener más información, consulta las referencias de API para tu servicio en la nube: AWS, GCS.

Dado que la estructura completa de carpetas se crea programáticamente en el momento en que se cargan los archivos, un ejemplo realista incluye tanto carpetas como archivos. Consulta esta ilustración en la pestaña Archivos, a continuación.

Archivos

Archivos de fuentes de datos

Los archivos de fuentes de datos cargados deben cumplir estos requisitos de denominación, formato de archivo y ubicación:

  • Deben cumplir con los requisitos de denominación de DCR
  • Formato CSV o GZIP. El archivo que se encuentra bajo la compresión GZIP debe ser un archivo CSV.
  • Número de archivos de fuentes de datos por carpeta de datos:
    • CSV: máximo 1
    • GZIP: máximo 1 archivo de una sola parte. Los archivos GZIP de varias partes son compatibles cuando se denominan de la siguiente manera: filename_part01.gzip, filename_part02.gzip, etc.

Los datos de los archivos de origen deben cumplir estos requisitos:

  • Fecha y hora:
    • Formato: aaaa-MM-dd hh:mm:ss
    • Zona horaria: UTC
  • Números: máximo 2 dígitos después del punto decimal
  • Longitud de la cadena: máximo 256 caracteres
  • Limitaciones de caracteres: ninguna (todos los caracteres son válidos)

 

Archivos _SUCCESS

Una vez completada la carga de un archivo de fuente de datos en la carpeta de datos, se debe cargar un archivo vacío denominado _SUCCESS en la carpeta de versiones. Esto alerta a AppsFlyer de que hay un nuevo archivo disponible para procesar. En la mayoría de los casos, usarías un script de API para generar y cargar automáticamente este archivo.

¡Importante! El archivo _SUCCESS se carga en la carpeta de versión, fuera de la carpeta de datos.

El nombre del archivo:

  • Debe estar todo en MAYÚSCULAS
  • Debe ir precedido de un guión bajo (_)
  • No debe tener una extensión de archivo

Para archivos de varias partes:

  • Solo debe cargarse un archivo _SUCCESS para todas las partes del archivo.
  • El archivo _SUCCESS debe cargarse solo después de que se haya completado la carga de todas las partes del archivo.

 Ejemplo

Después de cargar los archivos de datos de origen en 2 días (y de crear programáticamente carpetas de fecha/versión/datos y archivos _SUCCESS), tu estructura de bucket/carpetas podría tener este aspecto:

af-dcr-example-bucket/01bcc5fb/input/BI-data/
dt=2022-03-10/
v=1/
_SUCCESS
data/
BI-data.csv
dt=2022-03-11/
v=1/
_SUCCESS
data/
BI-data.csv CRM-data/
dt=2022-03-10/
v=1/
_SUCCESS
data/
CRM-data_part01.gzip
CRM-data_part02.gzip
v=2/
_SUCCESS
data/
CRM-data_part01.gzip
CRM-data_part02.gzip
dt=2022-03-11/
v=1/
_SUCCESS
data/
CRM-data_part01.gzip
CRM-data_part02.gzip
v=2/
_SUCCESS
data/
CRM-data_part01.gzip
CRM-data_part02.gzip

Creación de una ruta de carpeta de salida

Los requisitos detallados para crear cada elemento de la ruta de la carpeta de salida se describen en las pestañas siguientes.

Carpeta de salida de nivel superior

Aunque no es obligatorio, la práctica recomendada es crear una carpeta de salida de nivel superior directamente debajo de la carpeta de claves DCR. Esta carpeta estará dedicada a los reportes proporcionados por DCR.

Por lo general, la carpeta de salida de nivel superior se crea manualmente utilizando la interfaz del servicio en la nube seleccionado.

  • Esta práctica es aún más recomendable cuando se utiliza el mismo bucket tanto para cargar archivos de datos (entrada) como para recibir reportes (salida).
  • Puedes nombrar esta carpeta como quieras, siempre y cuando cumpla con los requisitos de denominación de DCR. Para facilitar su identificación, suele denominarse output/.

 Ejemplo

Después de crear la carpeta de salida de nivel superior, tu estructura de bucket/carpetas se verá así:

af-dcr-example-bucket/01bcc5fb/output/

Carpeta de segundo nivel para cada reporte

Puedes recibir regularmente cualquier número de reportes personalizados diseñados de DCR. A cada uno de estos reportes se les debe asignar una carpeta separada ("carpetas de reportes").

Así, por ejemplo, si vas a recibir 2 reportes de DCR: un reporte de conversiones y un reporte de retargeting, asignarías a cada una de estas fuentes de datos una carpeta. Puedes optar por denominar estas carpetas como conversions/ y retargeting/.

Por lo general, las carpetas de reportes se crean manualmente utilizando la interfaz del servicio en la nube seleccionado.

 Ejemplo

Después de crear 2 carpetas de reportes, tu estructura de bucket/carpetas se verá así:

af-dcr-example-bucket/01bcc5fb/output/conversions/
                                      retargeting/

Subcarpetas anidadas para cada fecha y versión (no creadas por el cliente)

A diferencia de la ruta de la carpeta de entrada, no se crean carpetas de fecha/versión anidadas en la ruta de la carpeta de salida. AppsFlyer creará automáticamente esta estructura de carpetas cada vez que se entregue un reporte.

Formato de archivo de reporte

Los reportes de DCR se entregan en formato CSV.

¿Fue útil este artículo?