ETL de costos: costo de campaña granular en un bucket

Premium

En resumen: La ETL de costos, parte de AppsFlyer ROI360, proporciona a los anunciantes datos de costos de campaña con la mejor granularidad disponible por fuente de medios. Los datos, actualizados 4 veces al día, se entregan a tu bucket de AWS S3 o GCS, listos para cargarlos en los sistemas de BI del anunciante.

5896_CostETL_graphic__2_.png

Principios de la ETL de costos

Los datos de costos de la campaña se registran:

  • En tu bucket, para ver, transferir y cargar datos de costos en tus sistemas.
  • En el bucket cuatro veces al día (actualización de los datos: intradía).
  • Para el día actual y los 6 días anteriores (denominados 7 días en este artículo), así como los días 14, 29 y 88. Los datos retroactivos permiten actualizaciones y correcciones en los reportes de datos de costos.
  • Para obtener un costo que coincida con la atribución, el clic o la impresión.
    Nota:
    • Los datos de los últimos 7 días provienen nuevamente de las fuentes de medios. Se reprocesan los datos de los días 14, 29 y 88.
    • Solo los datos de costos se actualizan retroactivamente; los datos de atribución no.

Los datos se proporcionan con dimensiones primarias garantizadas:

  • Geolocalización: desglose por país
  • Canal: canal de fuente de medios, por ejemplo, en el caso de Google: YouTube

Puedes personalizar otras dimensiones y las métricas incluidas en los reportes según tus necesidades.

Ver archivo de muestra. Nota: La muestra proporcionada es un archivo Excel con el desglose de datos por canal; los archivos de ETL de costos se envían a tu bucket como archivos parquet. 

Implementación

Dimensiones de los reportes

  • Los reportes son para todas las aplicaciones incluidas en la ETL de costos, por día, por lote. 
  • Cada vez que se escriben datos en el bucket, es decir, 4 veces al día, se escriben todos los datos disponibles, incluido el historial, las actualizaciones y las correcciones de los 6 días anteriores y los días 14, 29 y 88. Ten esto en cuenta en tu proceso de carga de datos. 
  • Las estructuras de los reportes se detallan en la tabla de campos del archivo. Las estructuras son:
    • Reporte resumido: es menos granular (detallado) para permitir un consumo más fácil y rápido.
    • Reportes de dimensiones: tienen una dimensión primaria garantizada. Esto significa que la dimensión está disponible para todas las fuentes de medios incluidas en ese reporte. Por el contrario, si una fuente de medios no proporciona los datos de la dimensión principal, esos datos no se incluyen en el reporte de la dimensión específica. Las dimensiones secundarias se incluyen cuando están disponibles. No están garantizadas.
    • Las dimensiones principales (garantizadas) disponibles son:
      • Geolocalización: datos agrupados por país
      • Canal: canal de la fuente de medios, por ejemplo, YouTube en el caso de Google e Instagram en el caso de Anuncios de Meta.
    • Debes utilizar las dimensiones y métricas que mejor se adapten a las necesidades de tu negocio. Esto puede variar según la fuente de medios.
    • [Beta cerrada] Reporte de todos los costos: basado en la dimensión de geolocalización. Incluye datos de costos para toda la actividad de marketing en todas las plataformas, incluidas las aplicaciones/plataformas no agregadas en AppsFlyer (en estos casos, el ID de aplicación se marca como desconocido).

Estructura de directorios y nombres de archivos

  • Los datos escritos en el bucket tienen el directorio y la estructura de archivos descritos. Ver archivo de muestraNota: La muestra proporcionada es un archivo Excel con el desglose de datos por canal; los archivos de ETL de costos se envían a tu bucket como archivos parquet. 
  • Cuando la ETL de costos completa la escritura en un directorio, se establece un indicador creando un archivo success. Esta es siempre la marca de tiempo más reciente en el directorio. 
  • Cada vez que se escriben datos, se incluyen datos del día actual y de los 6 días anteriores (denominados 7 días en este artículo), así como los días 14, 29 y 88.
  • El número de carpetas/archivos es el siguiente:
    • Resumen: 4 carpetas por lotes por día.
      • Cada carpeta por lotes contiene archivos parquet con 7 días de datos.
    • Dimensiones: cada dimensión garantizada contiene 4 carpetas por lotes por día.
      • Cada carpeta por lotes contiene archivos parquet con datos con numeración desde 1.
    • [Beta cerrada] Todos los costos: según la dimensión de geolocalización, contiene 4 carpetas por lotes por día.

Ejemplo de estructura de directorios

cost_etl_structure_4.jpg

Estructura de directorios

/<advertiser bucket name>/cost_etl/version/dt=<yyyy-mm-dd>/b=<n>/
<dimension>/<file name>

Estructura de directorios

Variable

Contenido

advertiser_bucket_name

Como se define en la configuración de la ETL de costos: af-xpend-cost-etl-<af-account-id>-[sufijo del nombre de bucket]

cost_etl Siempre cost_etl 
version Versión de ETL de costos
date

Fecha del costo

Formato: aaaa-mm-dd

batch Número: 1-4
dimension

Dimensión de datos:

  • Geolocalización
  • Canal
file_name
  • Resumen
  • Todos los costos
Número de archivo parquet
  • Numerados a partir de 00000
  • Ejemplo: part-

Estructura del nombre del archivo 

part-<number>

Ejemplo

Para la primera extracción de datos del 23 de junio de 2020, la estructura de directorios y nombre de archivo es la siguiente:

/bucket-name/cost_etl/v1/dt=2020-06-23/b=1/geo/part-00001

Campos de archivo

Campos/dimensiones

Campo

Observaciones

Siempre completado

Formato

Incluido en archivo de resumen

date

Fecha del costo incurrido reportada por la fuente de medios

Cadena aaaa-mm-dd

app_id

ID de aplicación en la plataforma AppsFlyer

Cadena

media_source

Fuente de medios responsable de mostrar el anuncio

Cadena

os

Sistema operativo del dispositivo. Valores posibles:

  • android
  • windowsphone
  • ios

Cadena

-

agency

Agencia responsable de colocar el anuncio

No

Cadena

-

campaign

Componente de la jerarquía de publicidad

No

Cadena

-

campaign_id

Componente de la jerarquía de publicidad

No

Cadena

-

adset

Componente de la jerarquía de publicidad

No

Cadena

-

adset_id

Componente de la jerarquía de publicidad

No

Cadena

-

ad

Componente de la jerarquía de publicidad

No

Cadena

-

ad_id

Componente de la jerarquía de publicidad

No

Cadena

ad_account

  • Cuenta publicitaria de la que se extrajeron los datos de costos
  • Relevante para redes donde la conexión se realiza mediante oAuth (inicio de sesión con tus credenciales), por ejemplo en Google o Anuncios de Meta

No

Cadena

-

currency

Moneda del gasto del anunciante según lo definido para la aplicación en AppsFlyer

Cadena de 3 caracteres conforme a ISO-4217

original_currency

Moneda del costo según lo reportado por la red antes de cualquier conversión

Cadena de 3 caracteres conforme a ISO-4217

-

timezone

  • Zona horaria de los datos tal como se almacenan en AppsFlyer
  • A veces, las redes reportan datos en una zona horaria diferente a la definida en AppsFlyer. Este dato ayuda a explicar las discrepancias de costos entre AppsFlyer y las redes.

Cadena 

-

geo

Dimensión en la jerarquía de publicidad

No

Cadena de 2 caracteres conforme a ISO 3166

channel

Dimensión en la jerarquía de publicidad

No

Cadena

- 

keyword_term

Palabra(s) utilizadas por el usuario para la búsqueda en línea

Cadena 

-

keyword_id

ID de los términos de palabras clave de ASA

Cadena

-

site_id

ID de anunciante

No

Cadena 

-

campaign_objective

Componente de propiedades de campaña. Saber más

No

Cadena 

-

cost_model

Componente de propiedades de campaña. Saber más

No

Cadena 

-

af_cost_model

Modelo de costos mapeado y normalizado por AppsFlyer. Componente de propiedades de campaña. Saber más

No

Cadena 

-

bid_strategy

Componente de propiedades de campaña. Saber más

No

Cadena 

-

af_bid_strategy

Estrategia de oferta mapeada y normalizada por AppsFlyer. Componente de propiedades de campaña. Saber más

No

Cadena 

-

bid_amount

Componente de propiedades de campaña. Saber más

No

Entero

-

original_bid_amount

Componente de propiedades de campaña. Saber más

No

Entero

-

Métricas

Campo

Observaciones

Siempre completado

Formato

Incluido en archivo de resumen

impressions

  • Contado por AppsFlyer.
  • Incluye tanto UA como retargeting.

Sí.

Si no hay ningún valor disponible para una métrica en particular, se completa con 0.

Entero

clicks

  • Contado por AppsFlyer.
  • Incluye tanto UA como retargeting.

Entero

reported_impressions

Contado por la fuente de medios

Entero

reported_clicks

Contado por la fuente de medios

Entero

installs

Contado por AppsFlyer

Entero

reported_conversions

Contado por la fuente de medios

Entero

 

re_engagements

Contado por AppsFlyer

Entero

re_attributions

Contado por AppsFlyer

Entero

cost

Monto del gasto (incluidos los honorarios de la agencia cuando corresponda)

Valor

original_cost

Costo reportado por la red, en la moneda reportada por la red antes de cualquier conversión de moneda (con los honorarios de la agencia calculados por AppsFlyer agregados cuando corresponda)

Valor 

-

impressions_discrepancy

  • Diferencia entre el recuento de la red de publicidad y de AppsFlyer
  • Ignora esta métrica si:
Entero

-

clicks_discrepancy

  • Diferencia entre el recuento de la red de publicidad y de AppsFlyer
  • Ignora esta métrica si:
    • No hay coincidencia entre costo y atribución.
    • La red de publicidad no admite clics reportados.
Entero

-

installs_discrepancy

  • Diferencia entre el recuento de la red de publicidad y de AppsFlyer
  • Ignora esta métrica si:
Entero

-

fees

Honorarios que cobra una agencia además del costo publicitario habitual. Contado por AppsFlyer

Entero

-

cost_without_fees

Costo menos los honorarios de la agencia. Contado por AppsFlyer

Entero

-

original_cost_without_fees

Costo original según lo reportado por la red de publicidad, sin los honorarios de la agencia

Entero

-

ctr

  • Tasa de clics. Contado por AppsFlyer
  • Fórmula: Clic / impresiones

 

 

 

 

No

Entero

-

cvr

  • Tasa de conversión. Contado por AppsFlyer
  • Fórmula: Instalación / clics
Entero

-

ecpm

  • Contado por AppsFlyer
  • Fórmula: (Costo / impresiones) * 1000 
Entero

cpi

  • Contado por AppsFlyer
  • Fórmula: Costo / instalaciones
Entero

ccvr

  • Costo por conversión
  • Fórmula: Costo / (instalaciones + reatribuciones + reengagements)

Entero

cvvr

  • Tasa de visualización de video finalizada. Contado por AppsFlyer
  • Fórmula: Finalizaciones de videos / impresiones
Entero

-

reported_cvr

  • Tasa de conversión reportada
  • Fórmula: Conversiones reportadas / clics reportados
Entero

ecpc

  • Contado por AppsFlyer
  • Fórmula: Costo / clics
Entero

-

video_25p_views

Video reproducido al 25 %. Reportado por la red de publicidad

Entero

video_50p_views

Video reproducido al 50 %. Reportado por la red de publicidad

Entero

video_75p_views

Video reproducido al 75 %. Reportado por la red de publicidad

Entero

video_completions

Reportado por la red de publicidad

Entero

Configurar la ETL de costos para AWS S3

Este procedimiento de configuración debe ser realizado por un usuario administrador.

Antes de empezar:

  • La configuración de la ETL de costos consiste en configurar tu bucket de AWS (y otorgar permiso a AppsFlyer para escribir datos en él) y configurar la ETL de costos en AppsFlyer.
  • Necesitarás privilegios de administrador de AWS y acceso a la interfaz de usuario de AppsFlyer para completar la configuración de la ETL de costos.
  • Mantén abiertas las pestañas de AWS y AppsFlyer durante la configuración. 
  • Nota: El soporte del cifrado de buckets KMS se encuentra actualmente en versión Beta.

AppsFlyerAdmin_us-en.png Para configurar tu bucket de AWS y la ETL de costos:

  1. Inicia sesión en la consola de AWS.
  2. Ve al servicio S3.
  3. Crea el bucket:
    1. Haz clic en Create bucket (Crear bucket).
    2. Completa el Bucket name (Nombre del bucket) de la siguiente manera: Comienza con el prefijo obligatorio af-xpend-cost-etl-acc-- y luego agrega un sufijo como texto libre.
    3. Haz clic en Create bucket (Crear bucket).
  4. En AppsFlyer, en el menú lateral, selecciona Exportar > ETL de costos.
  5. Activa ETL de costos.
  6. En Programación de reportes, selecciona cuándo deseas recibir el primer reporte. Los reportes posteriores llegan aproximadamente a intervalos de 6 horas.
  7. Ve a la configuración de Amazon S3.

  8. Selecciona la región de tu bucket S3 en el menú desplegable.
    Si tu región no aparece, comunícate con tu CSM. 
  9. Introduce el nombre de tu bucket de Amazon S3.
  10. Haz clic en Next (Siguiente).
    Se muestra el fragmento de código de la política del bucket.

  11. Copia el fragmento de código de la política del bucket y pégalo en tu configuración de AWS.
    1. En AWS, selecciona el bucket que creaste para la ETL de costos. 
    2. Ve a la pestaña Permissions (Permisos).
    3. En la sección Bucket policy (Política del bucket), haz clic en Edit (Editar).
    4. Se abre la ventana de Bucket policy (Política del bucket).
    5. Pega el fragmento de código de la política del bucket en la ventana.
  12. En la configuración de la ETL de costos de AppsFlyer, haz clic en Siguiente.
    Se muestra el paso Validar bucket
  13. Haz clic en Validar.
    Verifica que se muestre Validación exitosa
  14. Haz clic en Siguiente.
  15. Selecciona una, más o todas las aplicaciones.  Selecciona todas para incluir automáticamente las aplicaciones que agregues en el futuro.
  16. Haz clic en Aplicar
  17. Selecciona al menos una dimensión garantizada: canal y/o geolocalización.
  18. Selecciona al menos una dimensión adicional.

  19. Selecciona al menos una métrica para incluirla en los reportes. 

  20. Haz clic en Aplicar.

Configuración de la ETL de costos para GCS

Este procedimiento de configuración debe ser realizado por un usuario administrador.

Antes de empezar:

  • La configuración de la ETL de costos consiste en configurar tu bucket de GCS (y otorgar permiso a AppsFlyer para escribir datos en él) y configurar la ETL de costos en AppsFlyer.
  • Necesitarás privilegios de administrador de GCS y acceso a la interfaz de usuario de AppsFlyer para completar la configuración de la ETL de costos.
  • Mantén abiertas las pestañas de GCS y AppsFlyer durante la configuración. 

AppsFlyerAdmin_us-en.png Para configurar tu bucket de GCS y la ETL de costos:

  1. Inicia sesión en la consola de GCS.
  2. Crea un bucket.
    Nombra el bucket de la siguiente manera:
    • Comienza con el prefijo obligatorio af-xpend-cost-etl-acc-- y luego agrega un sufijo como texto libre.
    • Tu af-account-id se puede encontrar en la interfaz de usuario de AppsFlyer como se indica en los siguientes pasos 6-8. 
    • Consulta las reglas de nomenclatura de buckets de GCS.
  3. En AppsFlyer, en el menú lateral, selecciona Exportar > ETL de costos.
  4. Activa ETL de costos
  5. En Programación de reportes, selecciona cuándo deseas recibir el primer reporte. Los reportes posteriores llegan aproximadamente a intervalos de 6 horas.
  6. Ve a Destino de datos y selecciona .
  7. Introduce el nombre de tu bucket de GCS.
  8. Haz clic en Siguiente.
    Se muestra la cuenta de servicio de AppsFlyer, que se utilizará para configurar los permisos de GCS.
  9. En tu consola GCS, configura los permisos de IAM para el bucket:
    1. Agrega la cuenta de servicio de AppsFlyer como principal para el bucket de la ETL de costos.

    2. Asigna el rol Administrador de objetos de almacenamiento.
  10. En la configuración de la ETL de costos de AppsFlyer, haz clic en Siguiente.
    Se muestra el paso Validar bucket
  11. Haz clic en Validar.
    Verifica que se muestre Validación exitosa
  12. Haz clic en Siguiente.
  13. Selecciona una, más o todas las aplicaciones.  Selecciona todas para incluir automáticamente las aplicaciones que agregues en el futuro.
  14. Haz clic en Aplicar
  15. Selecciona al menos una dimensión garantizada: canal y/o geolocalización.
  16. Selecciona al menos una dimensión adicional.

  17. Selecciona al menos una métrica para incluirla en los reportes. 

  18. Haz clic en Aplicar.

Propiedad de objetos de AWS

En AWS, de forma predeterminada, cuando AppsFlyer escribe objetos en tu bucket, el propietario del objeto es AppsFlyer. Dependiendo de tu proceso de carga de datos, es posible que debas cambiar la propiedad predeterminada a tuya, como propietario del bucket.  

Para cambiar la propiedad de los objetos en tu bucket:

  1. Inicia sesión en la consola de administración de AWS y abre la consola de Amazon S3 en https://console.aws.amazon.com/s3/.

  2. En la lista Buckets, elige el nombre del bucket para el que deseas habilitar la propiedad de objetos S3.

  3. Ve a la pestaña Permissions (Permisos).

  4. En Object Ownership (Propiedad del objeto), haz clic en Edit (Editar). 

  5. Selecciona Bucket owner preferred (Propietario del bucket preferido).

  6. Haz clic en Save (Guardar).

Mejores prácticas

Reemplazo de datos

Al extraer y analizar tus datos, se recomienda extraer los datos de una fecha y lote específicos, o reemplazar todos los datos anteriores para los días que proporciona el lote actual. De lo contrario, es posible que veas los mismos datos repetidos.

Por ejemplo, el lote 1 del 20 de febrero contiene datos del 14 al 20 de febrero. Pero los lotes escritos el 19 de febrero también contenían datos del 14 al 19 de febrero. Reemplaza los datos de los días anteriores recibidos el 19 de febrero con los datos recibidos en el lote más reciente del 20 de febrero.

Geolocalización versus canal

No todas las redes proporcionan datos para todas las dimensiones juntas. Los datos de geolocalización y de canal en Anuncios de Meta son los ejemplos más comunes. Es por eso que se proporcionan dos conjuntos de datos separados. Se garantiza que el conjunto de datos de geolocalización tendrá datos de geolocalización y se garantiza que el conjunto de datos del canal tendrá datos de canal.

En muchos casos y para muchas fuentes de medios, los datos en los conjuntos de geolocalización y de canal serán idénticos. Así, consume uno de los conjuntos de datos (geolocalización o canal), según lo que mejor se adapte a tus necesidades.

Si el acuerdo de integración con una fuente de medios determinada no incluye el canal, por lo que ese canal está en blanco, tratamos esos datos como si contuvieran el canal. 

Datos agregados

La ETL de costos proporciona datos flexibles y granulares tan profundos como se pueden extraer de la red de publicidad. Para extraer información útil a partir de cantidades potencialmente enormes de datos, se recomienda agregar los datos de la forma que mejor se adapte a las necesidades de tu negocio. Por ejemplo, si necesitas comprender los datos de costos a nivel de campaña y de país, utiliza esas dimensiones.

Estandarización entre redes

No todas las redes proporcionan datos con la misma granularidad. Por ejemplo, Anuncios de Meta no proporciona datos de costos de ID del sitio, mientras que los X Ads no brinda datos de costos por geolocalización. Ten en cuenta estos casos al agregar datos de la ETL de costos y asegúrate de observar datos similares al comparar redes.

Comparación de datos

La ETL de costos proporciona información sobre todos tus datos de costos. Algunas campañas proporcionadas en la ETL de costos no aparecen en algunos paneles de control de AppsFlyer, por ejemplo, los datos de campañas inactivas, es decir, campañas sin instalaciones registradas. Para comparar los datos, busca un ID de campaña específico en el panel de control general y compáralo con sus datos de costos en la ETL de costos. Obtén más información sobre la disponibilidad de datos de costos

Información adicional

Características y limitaciones

Característica Observaciones
Zona horaria

Si se cambia la zona horaria, los datos de costos se duplican ese día y el día siguiente al cambio. Saber más

Actualización de los datos

Intradía. Durante la configuración de la ETL de costos, debes establecer el cronograma para los reportes, es decir, cuándo deseas que estos lleguen. Nota: Una vez que los datos de costos llegan a tu bucket, la transferencia adicional de datos a tus sistemas de BI puede variar mucho, según el reporte y el tamaño del archivo parquet, que puede ser desde unos pocos KB hasta muchas GB.