En resumen: Cost ETL, parte de ROI360 de AppsFlyer, proporciona a los anunciantes datos de costos de campaña con la mejor granularidad disponible por fuente de medios. Los datos, actualizados hasta 4 veces al día, se entregan a tu servicio en la nube listos para ser cargados en los sistemas BI de los anunciantes.
Cost ETL, parte de ROI360 de AppsFlyer, proporciona a los anunciantes datos de costos de campaña con la mejor granularidad disponible por fuente de medios. Hasta cuatro veces al día, los datos se actualizan y se entregan a su servicio en la nube Data Locker, listos para ser cargados en los sistemas BI de los anunciantes.
Los anunciantes pueden enviar reportes a múltiples destinos en la nube a la vez sin esfuerzo. Esto empodera a los equipos al hacer la transición de un servicio en la nube a otro, ya que los datos son accesibles en múltiples servicios simultáneamente.
Los reportes de Cost ETL incluyen datos de costo vinculados a la atribución de AppsFlyer, incluidas métricas de atribución como instalaciones, re-attributions y re-engagements.
Sobre Cost ETL
AppsFlyer ofrece cuatro tipos de reportes de Cost ETL para cubrir distintas necesidades de análisis.
- Resumen: Reporte general que proporciona datos de alto nivel para un consumo más fácil y rápido. Habilitado por defecto. Recomendado para analizar métricas de costo y rendimiento a un nivel general.
- Reporte de geolocalización: (opcional) Datos de costo desglosados por país (códigos de 2 letras), como US, CA o FR. Recomendado para el análisis de rendimiento y costo a nivel de geolocalización.
-
Canal: Datos desglosados por canal para todas las fuentes de medios contenidas en dicho reporte. Por ejemplo, en el caso de Google Ads, los datos se desglosan por YouTube, Shopping, SERP y Gmail. Ideal para el análisis de rendimiento y costo a nivel de canal.
Ver archivo de muestra -
Reporte All Cost: una vista completa de los datos de costo móvil y no móvil, obtenidos directamente de las ad network, sin datos de atribución. Actualmente cubre Google Ads, Meta Ads y TikTok.
Ver archivo de muestraNota:
Para empezar a recibir datos de Google Ads y Meta Ads en el reporte All Cost, ponte en contacto con tu representante de AppsFlyer.
Tabla con el resumen de los tipos de reporte de Cost ETL
| Característica | Geografía | Ejemplo | Reporte All Cost | |
|---|---|---|---|---|
| Cómo obtener el reporte | Activa Costo ETL. El reporte Summary está seleccionado por defecto. | Activa Costo ETL y selecciona el reporte de geolocalización. | Activa Costo ETL y selecciona el reporte de canal. | Activa Costo ETL y selecciona el reporte de geolocalización. (El reporte All Cost no tiene un selector específico en la página de Costo ETL) |
| Dónde encontrar el reporte | Depende del servicio de conector en la nube que elijas. Puede ser una carpeta (Summary) o una tabla específica. | Depende del servicio de conector en la nube que elijas. Puede ser una carpeta (geolocalización) o una tabla específica. | Depende del servicio de conector en la nube que elijas. Puede ser una carpeta (canal) o una tabla específica. | Depende del servicio de conector en la nube que elijas. Puede ser una carpeta (Costo total) o una tabla específica. |
| Cobertura del tipo de costo |
Costo móvil: sin limitaciones.
|
Igual que en Resumen. | Igual que en Resumen. | Costo de móvil, web, CTV, PC y consola de Google Ads, Meta Ads y TikTok. |
| Cadena | Ninguna limitación | Ninguna limitación | Ninguna limitación |
|
| Granularidad del esquema | Se basa en la configuración del cliente en los ajustes de Cost ETL. |
Se basa en la configuración del cliente en los ajustes de Cost ETL.
|
Se basa en la configuración del cliente en los ajustes de Cost ETL.
|
Se basa en la configuración del cliente en los ajustes de Cost ETL. En Meta, la dimensión de canal no es compatible. |
| Datos de atribución | Compatible | Compatible | Compatible |
No está soportado.
|
| Entero | Si la ad network no es compatible con la granularidad de ID de aplicación, el ID de aplicación se extrae de los Datos de atribución. | Igual que en el resumen. | Igual que en el resumen. |
Monto de la oferta original
|
| Fuente de costos | Integración de API (Costo + InCost), importación de costos, CPI | Igual que en el resumen. | Igual que en el resumen. | Solo integración de API. |
| CNC | Compatible | Compatible | Compatible | No está soportado. |
| Datos de la agencia | Compatible | Compatible | Compatible |
|
| Tarifa de la agencia | Compatible | Compatible | Compatible | No está soportado. El valor siempre es 0. |
| Actualización | Los datos se recopilan de la ad network 6 veces al día. Los reportes se pueden entregar hasta 4 veces al día (según la configuración del cliente). |
|||
Detalles del reporte
Actualización de datos
Los datos de costos de la campaña se registran:
- En tu servicio en la nube o bucket para ver, transferir y cargar datos de costos en tus sistemas.
- Para todas las aplicaciones que elijas incluir en Cost ETL, por día, por versión.
- Hasta 4 veces al día (frescura de datos: a lo largo del dí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. Ten esto en cuenta en tu proceso de carga de datos.
- Ejemplo: Para la fecha 14 de octubre de 2024, el archivo contiene datos del 14 de octubre (el día actual), 13 de octubre (1 día atrás), 12 de octubre (2 días atrás), 11 de octubre (3 días atrás), 10 de octubre (4 días atrás), 9 de octubre (5 días atrás), 8 de octubre (6 días atrás), 30 de septiembre (14 días atrás), 15 de septiembre (29 días atrás) y 18 de julio (88 días atrás).
- 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.
Estructura de directorios y nombres de archivos
Los datos escritos en el servicio en la nube o bucket tienen la estructura de directorio y archivo descrita:
- Cuando la Cost ETL 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.
- El número de carpetas/archivos es el siguiente:
- Resumen: Hasta 4 carpetas de versión por día.
- Cada carpeta por lotes contiene archivos parquet con 7 días de datos.
- Cadena
- Cada carpeta por lotes contiene archivos parquet con datos con numeración desde 1.
- [Beta cerrada] Todos los costos: Basado en la dimensión geográfica, contiene hasta 4 archivos por día.
- Resumen: Hasta 4 carpetas de versión por día.
Estructura de directorio de conexión de Data Locker
| Variable | Contenido |
|---|---|
| client-bucket | Nombre del bucket según lo configurado en el servicio en la nube |
| DL-generated-partition | Partición generada, única por cliente |
| connection-name | Nombre de la conexión según se definió durante la configuración de Data Locker |
| t |
El nombre del reporte específico. Elige entre:
|
| dt |
|
| v |
|
| Número de archivo parquet |
|
Estructura del directorio de conexión Cost ETL
<advertiser bucket name>/cost_etl/version/dt=<yyyy-mm-dd>/b=<n>/<dimension>/<file name/<parquet file number>
| Variable | Contenido |
|---|---|
| advertiser_bucket_name | Como se define en la configuración de la Cost ETL: af-xpend-cost-etl-<af-account-id>-[sufijo del nombre de bucket] |
| cost_etl | Siempre cost_etl |
| version | Versión de la Cost ETL |
| fecha |
Fecha del costo Formato: aaaa-mm-dd |
| batch | Número: 1-4 |
| dimension |
Dimensión de datos:
|
| file_name |
|
| Número de archivo parquet |
|
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:
Campos de archivo
Campos/dimensiones
| Campo | Observaciones | Siempre completado | Formato | Incluido en archivo de resumen |
|---|---|---|---|---|
| anuncio | Componente de la jerarquía de publicidad | No | Cadena | - |
| ad_account |
|
No | Cadena | - |
| id_adset | Componente de la jerarquía de publicidad | No | Cadena | - |
| conjunto de anuncios | Componente de la jerarquía de publicidad | No | Cadena | - |
| id_anuncio | Componente de la jerarquía de publicidad | No | Cadena | - |
| af_bid_strategy | Estrategia de oferta mapeada y normalizada por AppsFlyer. Componente de propiedades de campaña. Saber más | No | Cadena | - |
| af_modelo_de_coste | Modelo de costos mapeado y normalizado por AppsFlyer. Componente de propiedades de campaña. Saber más | No | Cadena | - |
| agencia | Agencia responsable de colocar el anuncio | No | Cadena | - |
| id_aplicación | ID de aplicación en la plataforma AppsFlyer | Sí | Cadena | ✓ |
| bid_amount | Componente de propiedades de campaña. Saber más | No | Entero | - |
| bid_strategy | Componente de propiedades de campaña. Saber más | No | Cadena | - |
| campaña única | Componente de la jerarquía de publicidad | No | Cadena | - |
| id_campaña | Componente de la jerarquía de publicidad | No | Cadena | - |
| campaign_objective | Componente de propiedades de campaña. Saber más | No | Cadena | - |
| channel | Dimensión en la jerarquía de publicidad | No | Cadena | - |
| cost_model | Componente de propiedades de campaña. Saber más | No | Cadena | - |
| moneda | Moneda del gasto del anunciante según lo definido para la aplicación en AppsFlyer | Sí | Cadena de 3 caracteres compatible con ISO-4217 | ✓ |
| fecha | Fecha del costo incurrido reportada por la fuente de medios | Sí | Cadena aaaa-mm-dd | ✓ |
| geolocalización | Dimensión en la jerarquía de publicidad | No | Cadena de 2 caracteres compatible con ISO-3166 | ✓ |
| keyword_id | ID de los términos de palabras clave de ASA | Sí | Cadena | - |
| keyword_term | Palabra(s) utilizadas por el usuario para la búsqueda online | Sí | Cadena | - |
| fuente_de_medios | Fuente de medios responsable de mostrar el anuncio | Sí | Cadena | ✓ |
| Monto de la oferta original | Componente de propiedades de campaña. Saber más | No | Entero | - |
| original_currency | Moneda del costo según lo reportado por la red antes de cualquier conversión | No | Cadena de 3 caracteres compatible con ISO-4217 | - |
| os |
Sistema operativo del dispositivo. Posibles valores:
|
Sí | Cadena | - |
| Identificador de origen | La plataforma utilizada para ejecutar la campaña (móvil, tablet, escritorio y CTV) | Solo en el reporte de costos completo | Cadena | - |
| id_sitio | ID del publisher | No | Cadena | - |
| Zona horaria |
|
Sí | Cadena | - |
Métricas
| Campo | Observaciones | Siempre completado | Formato | Incluido en archivo de resumen |
|---|---|---|---|---|
| ccvr |
|
Entero | - | |
| Cadena |
|
Entero | ✓ | |
| clicks_discrepancy |
|
Entero | - | |
| Cadena | Monto del gasto (incluidos los honorarios de la agencia cuando corresponda) | Valor | ✓ | |
| cost_without_fees | Costo menos los honorarios de la agencia. Contado por AppsFlyer | Sí | Entero | - |
| cpi |
|
Entero | - | |
| Cadena |
|
No | Entero | - |
| CVR |
|
Entero | - | |
| cvvr |
|
Entero | - | |
| ecpc |
|
Entero | - | |
| ecpm |
|
Entero | - | |
| fees | Honorarios que cobra una agencia además del costo publicitario habitual. Contado por AppsFlyer | Sí | Entero | - |
| Validación de compra de AppsFlyer |
|
Sí. Si no hay ningún valor disponible para una métrica en particular, se completa con 0. |
Entero | ✓ |
| impressions_discrepancy |
|
Entero | - | |
| Cadena | Contado por AppsFlyer | Entero | ✓ | |
| installs_discrepancy |
|
Entero | - | |
| 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 | - | |
| original_cost_without_fees | Costo original según lo reportado por la ad network, sin los honorarios de la agencia | Sí | Entero | - |
| re_attributions | Contado por AppsFlyer | Entero | ✓ | |
| re_engagements | Contado por AppsFlyer | Entero | ✓ | |
| reported_clicks | Contado por la fuente de medios | Entero | ✓ | |
| reported_conversions | Contado por la fuente de medios | Entero | ||
| reported_cvr |
|
Entero | - | |
| reported_impressions | Contado por la fuente de medios | Entero | ✓ | |
| video_25p_views | Video reproducido al 25%. Reportado por la ad network | Entero | - | |
| video_50p_views | Video reproducido al 50%. Reportado por la ad network | Entero | - | |
| video_75p_views | Video reproducido al 75%. Reportado por la ad network | Entero | - | |
| video_completions | Reportado por la ad network | Entero | - |
Procedimientos
Configurar Cost ETL
Este procedimiento de configuración debe ser realizado por un usuario administrador.
Antes de empezar:
La configuración de Cost ETL requiere:
- Un servicio en la nube configurado con permiso para que AppsFlyer escriba datos en él. Esto significa que necesitas configurar uno o más de los siguientes servicios en la nube:
- Privilegios de administrador de AppsFlyer y acceso a la interfaz de usuario de AppsFlyer para completar la configuración de Cost ETL.
- En AppsFlyer, desde el menú lateral, ve a Exportar > Cost ETL.
- Selecciona o configura una conexión de datos:
- Si ya tienes conexiones de datos configuradas, en el menú desplegable de Conexión, selecciona las que deseas para Cost ETL.
- Si aún no tienes una conexión de datos, haz clic en + New connection in Data Locker y crea una conexión allí:
- Asigna un nombre a tu conexión.
-
Selecciona un destino de datos de servicio en la nube. Realiza una de las siguientes acciones:
- Entero
- Introduce el nombre de tu bucket AWS S3. El prefijo
af-es obligatorio, y debe introducirse manualmente. - Haz clic en Probar conexión.
- Verifica que no se muestre ningún mensaje de error que indique que la ruta del bucket es inválida.
- Selecciona si deseas hacer que esta conexión sea compatible con Adobe Experience Platform.
- Haz clic en Guardar.
- En la configuración de Cost ETL, en el menú desplegable de Conexión, selecciona el servicio en la nube que has creado.
- Introduce el nombre de tu bucket AWS S3. El prefijo
- Selecciona GCS.
- Introduce el nombre de tu bucket de GCS.
- Haz clic en Probar conexión.
- Verifica que no se muestre ningún mensaje de error que indique que la ruta del bucket es inválida.
- Selecciona si deseas hacer que esta conexión sea compatible con Adobe Experience Platform.
- Haz clic en Guardar.
- En la configuración de Cost ETL, en el menú desplegable de Conexión, selecciona el servicio en la nube que has creado.
- [Beta] Selecciona Azure.
- Ingresa tu nombre de conexión, nombre de cuenta de almacenamiento y clave.
- Verifica que no se muestre ningún mensaje de error que indique que la ruta del bucket es inválida.
- Selecciona si deseas hacer que esta conexión sea compatible con Adobe Experience Platform.
- Haz clic en Guardar.
- En la configuración de Cost ETL, en el menú desplegable de Conexión, selecciona el servicio en la nube que has creado.
- [Beta] Selecciona Yandex.
- Ingresa tu Nombre de bucket, Clave de acceso y Clave secreta.
- Verifica que no se muestre ningún mensaje de error que indique que la ruta del bucket es inválida.
- Selecciona si deseas hacer que esta conexión sea compatible con Adobe Experience Platform.
- Haz clic en Guardar.
- En la configuración de Cost ETL, en el menú desplegable de Conexión, selecciona el servicio en la nube que has creado.
- Selecciona BigQuery.
- Introduce tu ID de proyecto de BigQuery y el nombre del conjunto de datos.
- Haz clic en Probar conexión.
- Verifica que no se muestre ningún mensaje de error que indique que la ruta del bucket es inválida.
- Haz clic en Guardar.
- En la configuración de Cost ETL, en el menú desplegable de Conexión, selecciona el servicio en la nube que has creado.
- Cadena
- Introduce tu región de Snowflake y tu ID de cuenta.
- Haz clic en Probar conexión.
- Verifica que no se muestre ningún mensaje de error que indique que la ruta del bucket es inválida.
- Haz clic en Guardar.
- En la configuración de Cost ETL, en el menú desplegable de Conexión, selecciona el servicio en la nube que has creado.
- Entero
- Asigna un nombre a tu conexión.
- Si ya tienes conexiones de datos configuradas, en el menú desplegable de Conexión, selecciona las que deseas para Cost ETL.
-
Nota:
- Establece el horario de la versión del informe (UTC):
- Selecciona cuántos reportes recibir cada día (1, 2, 3 o 4).
- Selecciona a qué hora recibir los reportes. Saber más
- Haz clic en Siguiente.
- Configura los detalles del reportes:
- Selecciona 1 o más aplicaciones para incluir en los reportes. Selecciona Agregar todas las aplicaciones futuras para incluir automáticamente las aplicaciones que agregues en el futuro.
- Selecciona los reportes que mejor se adapten a tus necesidades de análisis. Consulta las descripciones en la sección Tipos de reporte.
- Selecciona las dimensiones que se incluirán en los reportes. Nota: Si has elegido recibir el reporte geográfico, la dimensión geográfica se incluye por defecto. Si has elegido recibir el reporte de canal, la dimensión de canal se incluye por defecto.
- Selecciona las métricas que se incluirán en los reportes.
- Selecciona 1 o más aplicaciones para incluir en los reportes. Selecciona Agregar todas las aplicaciones futuras para incluir automáticamente las aplicaciones que agregues en el futuro.
- Haz clic en Aplicar.
Editar o cambiar conexión
Puedes editar o cambiar conexiones para enviar datos a diferentes (o adicionales) lugares.
Nota: Después de cambiar a una conexión existente, no podrás volver a la conexión Cost ETL anterior.
Editar conexión
Para editar los detalles de la conexión:
- En AppsFlyer, desde el menú lateral, ve a Exportar > Cost ETL.
- En la sección de conexión de datos, ya sea:
- Sigue las instrucciones en pantalla para editar los detalles de tu conexión.
- Haz clic en Guardar cambios o Aplicar según se te indique.
Cambiar conexión de Data Locker
Para cambiar de una conexión de Data Locker a otra:
- En AppsFlyer, desde el menú lateral, ve a Exportar > Cost ETL.
- En la sección de conexión de datos, ya sea:
- Si ya tienes las conexiones de Data Locker que deseas configuradas, en el menú desplegable de Conexión, selecciona las que deseas para Cost ETL.
- Si aún no tienes configurada la conexión de Data Locker que deseas, haz clic en + Nueva conexión en Data Locker y crea una conexión allí. Luego regresa a la configuración de Cost ETL y selecciónalo en el menú desplegable de Conexión.
- Si ya tienes las conexiones de Data Locker que deseas configuradas, en el menú desplegable de Conexión, selecciona las que deseas para Cost ETL.
- Haz clic en Guardar cambios.
Cambia de la conexión Cost ETL a la conexión Data Locker
Antes de comenzar:
- Ten en cuenta que después de cambiar a una conexión Data Locker, no puedes volver a tu conexión Cost ETL anterior.
-
Ten en cuenta que al cambiar a una conexión Data Locker, la estructura de la ruta de la carpeta cambia al siguiente formato sin afectar los datos del reporte:
/ / /t= /dt= /v=<1/2/3/4>/
Para cambiar de una conexión Cost ETL obsoleta a una conexión Data Locker:
- En AppsFlyer, desde el menú lateral, ve a Exportar > Cost ETL.
- En la sección de conexión de datos, haz clic en conexiones de Data Locker.
- Haz una de las siguientes opciones para configurar la conexión Data Locker:
- Si ya tienes configuradas las conexiones de datos que quieres, en el menú desplegable de Conexión, selecciona las que quieras para Cost ETL.
- Si aún no tienes configurada la conexión de datos que quieres, haz clic en + New connection in Data Locker y crea una conexión allí. Luego regresa a la configuración de Cost ETL y selecciónalo en el menú desplegable de Conexión.
- Si ya tienes configuradas las conexiones de datos que quieres, en el menú desplegable de Conexión, selecciona las que quieras para Cost ETL.
- Haz clic en Guardar cambios.
Cambiar la propiedad del objeto 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 ti 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 Permisos.
- En Propiedad del objeto, haz clic en Editar.
- Selecciona Propietario del bucket preferido.
- Haz clic en Guardar.
Mejores prácticas
Programación de reportes
La configuración del horario del reporte te permite obtener los datos más recientes justo cuando los necesitas.
Al elegir tu horario del reporte:
- Selecciona la hora para obtener el reporte lo más cerca posible de la hora en que comienzas a procesar datos en tu sistema BI.
- Si tienes alguna ad network que proporciona los datos de ayer más tarde que otras, establece un reporte adicional a la hora en que esos datos de la ad network estén listos.
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, Meta Ads no proporciona datos de costos de ID del sitio, mientras que los X Ads no brindan datos de costos por geolocalización. Ten en cuenta estos casos al agregar datos de la Cost ETL y asegúrate de observar datos similares al comparar redes.
Comparación de datos
La Cost ETL proporciona información sobre todos tus datos de costos. Algunas campañas proporcionadas en la Cost ETL no aparecen en algunos dashboards 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 dashboard general y compáralo con sus datos de costos en la Cost ETL. Saber más sobre la disponibilidad de datos de costos
Combina el reporte de geolocalización y el reporte de costo total
Para obtener datos de costo completos vinculados con la atribución de Google, Meta, TikTok (móvil y no móvil) y otras fuentes de medios (solo móvil), usa la siguiente consulta:
with etl as (
select *
from etl
where media_source = 'Facebook Ads'
and date = '2025-07-16'
),
allcost as (
select *
from allcost
where media_source = 'Facebook Ads'
and date = '2025-07-16'
),
main as (
select
case when etl.date is null then 'all cost' else 'cost etl' end as report,
coalesce(etl.date, allcost.date) as date,
coalesce(etl.app_id, allcost.app_id) as app_id,
etl.os,
allcost.platform,
coalesce(etl.media_source, allcost.media_source) as media_source,
coalesce(etl.agency, allcost.agency) as agency,
coalesce(etl.campaign_id, allcost.campaign_id) as campaign_id,
coalesce(etl.campaign, allcost.campaign) as campaign,
coalesce(etl.adset_id, allcost.adset_id) as adset_id,
coalesce(etl.adset, allcost.adset) as adset,
coalesce(etl.ad_id, allcost.ad_id) as ad_id,
coalesce(etl.ad, allcost.ad) as ad,
coalesce(etl.geo, allcost.geo) as geo,
coalesce(etl.channel, allcost.channel) as channel,
coalesce(etl.site_id, allcost.site_id) as site_id,
coalesce(etl.ad_account, allcost.ad_account) as ad_account,
coalesce(etl.keyword_id, allcost.keyword_id) as keyword_id,
coalesce(etl.keywords, allcost.keywords) as keywords,
coalesce(etl.campaign_objective, allcost.campaign_objective) as campaign_objective,
coalesce(etl.af_cost_model, allcost.af_cost_model) as af_cost_model,
coalesce(etl.bid_strategy, allcost.bid_strategy) as bid_strategy,
coalesce(etl.af_bid_strategy, allcost.af_bid_strategy) as af_bid_strategy,
coalesce(etl.currency, allcost.currency) as currency,
coalesce(etl.cost, allcost.cost) as cost,
coalesce(etl.impressions, allcost.impressions) as impressions,
coalesce(etl.clicks, allcost.clicks) as clicks,
coalesce(etl.installs, allcost.installs) as installs,
coalesce(etl.re_attributions, allcost.re_attributions) as re_attributions,
coalesce(etl.re_engagements, allcost.re_engagements) as re_engagements,
coalesce(etl.original_cost, allcost.original_cost) as original_cost,
coalesce(etl.reported_impressions, allcost.reported_impressions) as reported_impressions,
coalesce(etl.reported_clicks, allcost.reported_clicks) as reported_clicks,
coalesce(etl.reported_conversions, allcost.reported_conversions) as reported_conversions,
coalesce(etl.ctr, allcost.ctr) as ctr,
coalesce(etl.cvr, allcost.cvr) as cvr,
coalesce(etl.ecpm, allcost.ecpm) as ecpm,
coalesce(etl.cpi, allcost.cpi) as cpi,
coalesce(etl.ccvr, allcost.ccvr) as ccvr,
coalesce(etl.cvvr, allcost.cvvr) as cvvr,
coalesce(etl.reported_cvr, allcost.reported_cvr) as reported_cvr,
coalesce(etl.install_diff, allcost.install_diff) as install_diff,
coalesce(etl.click_diff, allcost.click_diff) as click_diff,
coalesce(etl.impression_diff, allcost.impression_diff) as impression_diff,
coalesce(etl.ecpc, allcost.ecpc) as ecpc,
coalesce(etl.video_25p_views, allcost.video_25p_views) as video_25p_views,
coalesce(etl.video_50p_views, allcost.video_50p_views) as video_50p_views,
coalesce(etl.video_75p_views, allcost.video_75p_views) as video_75p_views,
coalesce(etl.video_completions, allcost.video_completions) as video_completions
from etl
full join allcost
on etl.date = allcost.date
and etl.app_id = allcost.app_id
and etl.media_source = allcost.media_source
and etl.campaign_id = allcost.campaign_id
and etl.adset_id = allcost.adset_id
and etl.ad_id = allcost.ad_id
and etl.channel = allcost.channel
and etl.geo = allcost.geo
and etl.agency = allcost.agency
and etl.site_id = allcost.site_id
and etl.keyword_id = allcost.keyword_id
),
dedup as (
select *,
row_number() over (
partition by date, media_source, agency, campaign_id, adset_id, ad_id, geo, channel, site_id, keyword_id
order by report desc, cost desc
) as rank_for_dedup
from main
)
select *
from dedup
where rank_for_dedup = 1;
Combinar Cost ETL y reportes de cohorte
Considera combinar reportes de Cost ETL con reportes de cohortes avanzadas agregadas (o reportes de cohortes regulares a través de Data Locker) en tu sistema BI. Juntos, ofrecen la imagen más completa del rendimiento del marketing con datos frescos y precisos, incluidos clics, impresiones, costos, ingresos, eventos in-app, etc.). Y puedes usar estos datos combinados para obtener ROAS, CPA, etc. Saber más
Información adicional
Características y limitaciones
| Caducado | 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 |
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 KBs hasta muchas GBs. |
| Todo reporte de costos |
|
| Datos de costo de campaña de SKAN |
|
| Compatibilidad con aplicaciones de CTV y PC | Las aplicaciones de PC y CTV no son compatibles con los reportes de Cost ETL. |
| Disponibilidad de costos de Google Web y Meta Web |
Para incluir datos de costo de Google Web (pid=googleads_int) y Meta Web (pid=metaweb_int) en el reporte All Cost, debes crear una conexión de costo en la pestaña Costo de tus integraciones activas de Google Ads (pid=googleadwords_int) y Meta Ads (pid=facebook_int). Sin estas conexiones, los datos de costo de Google y Meta Web no aparecerán en el reporte. |
This article was translated automatically and may contain errors. The English version is the most accurate - use the language selector below to switch.