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.
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 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.
- 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.
- Resumen: 4 carpetas por lotes por día.
Ejemplo de estructura de directorios
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:
|
file_name |
|
Número de archivo parquet |
|
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 |
Sí |
Cadena aaaa-mm-dd |
✓ |
app_id |
ID de aplicación en la plataforma AppsFlyer |
Sí |
Cadena |
✓ |
media_source |
Fuente de medios responsable de mostrar el anuncio |
Sí |
Cadena |
✓ |
os |
Sistema operativo del dispositivo. Valores posibles:
|
Sí |
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 |
|
No |
Cadena |
- |
currency |
Moneda del gasto del anunciante según lo definido para la aplicación en AppsFlyer |
Sí |
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 |
Sí |
Cadena de 3 caracteres conforme a ISO-4217 |
- |
timezone |
|
Sí |
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 |
Sí |
Cadena |
- |
keyword_id |
ID de los términos de palabras clave de ASA |
Sí |
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 |
|
Sí. Si no hay ningún valor disponible para una métrica en particular, se completa con 0. |
Entero |
✓ |
clicks |
|
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 |
|
Entero |
- |
|
clicks_discrepancy |
|
Entero |
- |
|
installs_discrepancy |
|
Entero |
- |
|
fees |
Honorarios que cobra una agencia además del costo publicitario habitual. Contado por AppsFlyer |
Sí |
Entero |
- |
cost_without_fees |
Costo menos los honorarios de la agencia. Contado por AppsFlyer |
Sí |
Entero |
- |
original_cost_without_fees |
Costo original según lo reportado por la red de publicidad, sin los honorarios de la agencia |
Sí |
Entero |
- |
ctr |
|
No |
Entero |
- |
cvr |
|
Entero |
- |
|
ecpm |
|
Entero |
- |
|
cpi |
|
Entero |
- |
|
ccvr |
|
Entero |
- |
|
cvvr |
|
Entero |
- |
|
reported_cvr |
|
Entero |
- |
|
ecpc |
|
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.
Para configurar tu bucket de AWS y la ETL de costos:
- Inicia sesión en la consola de AWS.
- Ve al servicio S3.
- Crea el bucket:
- Haz clic en Create bucket (Crear bucket).
- 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.- - Tu
af-account-id
se puede encontrar en la interfaz de usuario de AppsFlyer como se indica en los siguientes pasos 7-9. - Consulta Reglas de nomenclatura de buckets de Amazon S3.
- Tu
- Haz clic en Create bucket (Crear bucket).
- En AppsFlyer, en el menú lateral, selecciona Exportar > ETL de costos.
- Activa ETL de costos.
- En Programación de reportes, selecciona cuándo deseas recibir el primer reporte. Los reportes posteriores llegan aproximadamente a intervalos de 6 horas.
- Ve a la configuración de Amazon S3.
- Selecciona la región de tu bucket S3 en el menú desplegable.
Si tu región no aparece, comunícate con tu CSM. - Introduce el nombre de tu bucket de Amazon S3.
- Haz clic en Next (Siguiente).
Se muestra el fragmento de código de la política del bucket.
- Copia el fragmento de código de la política del bucket y pégalo en tu configuración de AWS.
- En AWS, selecciona el bucket que creaste para la ETL de costos.
- Ve a la pestaña Permissions (Permisos).
- En la sección Bucket policy (Política del bucket), haz clic en Edit (Editar).
- Se abre la ventana de Bucket policy (Política del bucket).
- Pega el fragmento de código de la política del bucket en la ventana.
- En la configuración de la ETL de costos de AppsFlyer, haz clic en Siguiente.
Se muestra el paso Validar bucket. - Haz clic en Validar.
Verifica que se muestre Validación exitosa. - Haz clic en Siguiente.
- Selecciona una, más o todas las aplicaciones. Selecciona todas para incluir automáticamente las aplicaciones que agregues en el futuro.
- Haz clic en Aplicar.
- Selecciona al menos una dimensión garantizada: canal y/o geolocalización.
- Selecciona al menos una dimensión adicional.
- Selecciona al menos una métrica para incluirla en los reportes.
- 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.
Para configurar tu bucket de GCS y la ETL de costos:
- Inicia sesión en la consola de GCS.
- 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.
- Comienza con el prefijo obligatorio
- En AppsFlyer, en el menú lateral, selecciona Exportar > ETL de costos.
- Activa ETL de costos.
- En Programación de reportes, selecciona cuándo deseas recibir el primer reporte. Los reportes posteriores llegan aproximadamente a intervalos de 6 horas.
- Ve a Destino de datos y selecciona .
- Introduce el nombre de tu bucket de GCS.
- Haz clic en Siguiente.
Se muestra la cuenta de servicio de AppsFlyer, que se utilizará para configurar los permisos de GCS. - En tu consola GCS, configura los permisos de IAM para el bucket:
-
Agrega la cuenta de servicio de AppsFlyer como principal para el bucket de la ETL de costos.
- Asigna el rol Administrador de objetos de almacenamiento.
-
- En la configuración de la ETL de costos de AppsFlyer, haz clic en Siguiente.
Se muestra el paso Validar bucket. - Haz clic en Validar.
Verifica que se muestre Validación exitosa. - Haz clic en Siguiente.
- Selecciona una, más o todas las aplicaciones. Selecciona todas para incluir automáticamente las aplicaciones que agregues en el futuro.
- Haz clic en Aplicar.
- Selecciona al menos una dimensión garantizada: canal y/o geolocalización.
- Selecciona al menos una dimensión adicional.
- Selecciona al menos una métrica para incluirla en los reportes.
- 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:
-
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/.
-
En la lista Buckets, elige el nombre del bucket para el que deseas habilitar la propiedad de objetos S3.
-
Ve a la pestaña Permissions (Permisos).
-
En Object Ownership (Propiedad del objeto), haz clic en Edit (Editar).
-
Selecciona Bucket owner preferred (Propietario del bucket preferido).
-
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. |