How can we help?

Configurar y utilizar reportes de Cost ETL de ROI360

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.

5896_CostETL_graphic__2_.png

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 muestra

     Nota:

    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.
Costo de CTV y web: limitado a:
 

  1. Campañas con al menos una conversión
  2. La fuente del costo es InCost API, Cost Import o CPI
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
  • TikTok: Los datos se añaden automáticamente.
  • Google y Meta: Ponte en contacto con tu CSM para habilitarlo.
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.


En Meta, la dimensión de canal no tiene valores.

Se basa en la configuración del cliente en los ajustes de Cost ETL.


En Meta, la dimensión de geolocalización no tiene valor.

Se basa en la configuración del cliente en los ajustes de Cost ETL.

En Meta, la dimensión de canal no es compatible.
Plataforma: Una nueva dimensión de la ad network que indica dónde se ejecuta la campaña (p. ej., móvil, escritorio o tablet).

Datos de atribución Compatible Compatible Compatible

No está soportado.


Los valores de las métricas de atribución se muestran como cero (0), si el cliente los configura para que formen parte del esquema de Cost ETL.

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


Si no se reporta el ID de la App, el valor será desconocido.

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
  • Facebook and Meta: No compatible con soporte.
  • TikTok: Compatible solo con campañas con ID de App en AppsFlyer.
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.

Estructura de directorio de conexión de Data Locker

///t=/dt=/v=<1/2/3/4>/

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:

  • cost_etl_summary
  • cost_etl_geo
  • cost_etl_channel
  •  [Beta cerrada] cost_etl_all_cost_geo
dt
  • La fecha del reporte, es decir, la fecha en que se envió el reporte.
  • AAAA-MM-DD
v
  • La versión cronológica del reporte por día (hasta 4 reportes diarios posibles)
  • Número entero entre 1-4
Número de archivo parquet
  • Numerados a partir de 00000
  • Ejemplo: part-

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:

  • geolocalización
  • channel
file_name
  • summary
  • all-cost
Número de archivo parquet
  • Numerados a partir de 00000
  • Ejemplo: part-

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
  • 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 Meta Ads
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 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 Cadena de 3 caracteres compatible con ISO-4217
fecha Fecha del costo incurrido reportada por la fuente de medios 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 Cadena -
keyword_term Palabra(s) utilizadas por el usuario para la búsqueda online Cadena  -
fuente_de_medios Fuente de medios responsable de mostrar el anuncio 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:

  • Android
  • Windows Phone
  • ios
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
  • 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  -

Métricas

Campo Observaciones Siempre completado Formato Incluido en archivo de resumen
ccvr
  • Costo por conversión
  • Fórmula: Costo / (instalaciones + reatribuciones + reengagements)
  Entero
Cadena
  • Contado por AppsFlyer.
  • Incluye tanto UA como retargeting.
  • Los engaged clicks se restan del número total de clics.
  Entero
clicks_discrepancy
  • Diferencia entre el recuento de la ad network y de AppsFlyer
  • Ignora esta métrica si:
    • No hay coincidencia entre costo y atribución.
    • La ad network no admite clics reportados.
  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 Entero -
cpi
  • Contado por AppsFlyer
  • Fórmula: Costo / instalaciones
  Entero
Cadena
  • Tasa de conversión. Contado por AppsFlyer
  • Fórmula: Clic / impresiones
No Entero -
CVR
  • tasa de conversión. Contado por AppsFlyer
  • Fórmula: Instalación / clics
  Entero  -
cvvr
  • Tasa de visualización de video finalizada. Contado por AppsFlyer
  • Fórmula: Visualizaciones del video / impresiones
  Entero -
ecpc
  • Contado por AppsFlyer
  • Fórmula: Costo / Clics
  Entero -
ecpm
  • Contado por AppsFlyer
  • Fórmula: (Costo / Impresiones) * 1000 
  Entero
fees Honorarios que cobra una agencia además del costo publicitario habitual. Contado por AppsFlyer Entero -
Validación de compra de AppsFlyer
  • Contado por AppsFlyer.
  • Incluye tanto UA como retargeting.
  • Las engaged views se restan del número total de impresiones.

Sí.

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

Entero
impressions_discrepancy
  • Diferencia entre el recuento de la ad network y de AppsFlyer
  • Ignora esta métrica si:
  Entero -
Cadena Contado por AppsFlyer   Entero
installs_discrepancy
  • Diferencia entre el recuento de la ad network y de AppsFlyer
  • Ignora esta métrica si:
  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 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
  • Tasa de conversión reportada
  • Fórmula: Conversiones reportadas / clics reportados
  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.

AppsFlyerAdmin_us-en.png Para configurar Cost ETL:

  1. En AppsFlyer, desde el menú lateral, ve a Exportar > Cost ETL.
  2. 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í:
      1. Asigna un nombre a tu conexión.

      2. Selecciona un destino de datos de servicio en la nube. Realiza una de las siguientes acciones:
        • Entero
          1. Introduce el nombre de tu bucket AWS S3. El prefijo af- es obligatorio, y debe introducirse manualmente.
          2. Haz clic en Probar conexión.
          3. Verifica que no se muestre ningún mensaje de error que indique que la ruta del bucket es inválida.
          4. Selecciona si deseas hacer que esta conexión sea compatible con Adobe Experience Platform.
          5. Haz clic en Guardar.
          6. En la configuración de Cost ETL, en el menú desplegable de Conexión, selecciona el servicio en la nube que has creado.
        • Selecciona GCS.

          1. Introduce el nombre de tu bucket de GCS.
          2. Haz clic en Probar conexión.
          3. Verifica que no se muestre ningún mensaje de error que indique que la ruta del bucket es inválida.
          4. Selecciona si deseas hacer que esta conexión sea compatible con Adobe Experience Platform.
          5. Haz clic en Guardar.
          6. 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.

          1. Ingresa tu nombre de conexión, nombre de cuenta de almacenamiento y clave.
          2. Verifica que no se muestre ningún mensaje de error que indique que la ruta del bucket es inválida.
          3. Selecciona si deseas hacer que esta conexión sea compatible con Adobe Experience Platform.
          4. Haz clic en Guardar.
          5. 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.

          1. Ingresa tu Nombre de bucket, Clave de acceso y Clave secreta.
          2. Verifica que no se muestre ningún mensaje de error que indique que la ruta del bucket es inválida.
          3. Selecciona si deseas hacer que esta conexión sea compatible con Adobe Experience Platform.
          4. Haz clic en Guardar.
          5. 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.

          1. Introduce tu ID de proyecto de BigQuery y el nombre del conjunto de datos.
          2. Haz clic en Probar conexión.
          3. Verifica que no se muestre ningún mensaje de error que indique que la ruta del bucket es inválida.
          4. Haz clic en Guardar.
          5. En la configuración de Cost ETL, en el menú desplegable de Conexión, selecciona el servicio en la nube que has creado.
        • Cadena
          1. Introduce tu región de Snowflake y tu ID de cuenta.
          2. Haz clic en Probar conexión.
          3. Verifica que no se muestre ningún mensaje de error que indique que la ruta del bucket es inválida.
          4. Haz clic en Guardar.
          5. En la configuración de Cost ETL, en el menú desplegable de Conexión, selecciona el servicio en la nube que has creado.
  3. Nota:
  4. Establece el horario de la versión del informe (UTC):
     
    1. Selecciona cuántos reportes recibir cada día (1, 2, 3 o 4).
    2. Selecciona a qué hora recibir los reportes. Saber más
    3. Haz clic en Siguiente.
  5. Configura los detalles del reportes:
    1. 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.

    2. Selecciona los reportes que mejor se adapten a tus necesidades de análisis. Consulta las descripciones en la sección Tipos de reporte.
      • El reporte de resumen está seleccionado por defecto.
      • [Beta cerrada] Reporte de todos los costos: Basado en la dimensión de geolocalización.
    3. 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. 
    4. Selecciona las métricas que se incluirán en los reportes.
  6. 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:

  1. En AppsFlyer, desde el menú lateral, ve a Exportar > Cost ETL.
  2. En la sección de conexión de datos, ya sea:
    • Para conexiones de Cost ETL, haz clic en el menú desplegable de detalles de conexión. Se muestran los detalles de la conexión.
       
    • Para las conexiones de Cost ETL, haz clic en el menú desplegable de Detalles de la conexión. Se muestran los detalles de la conexión.
  3. Sigue las instrucciones en pantalla para editar los detalles de tu conexión.
  4. 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:

  1. En AppsFlyer, desde el menú lateral, ve a Exportar > Cost ETL.
  2. 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.

  3. 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:

  1. En AppsFlyer, desde el menú lateral, ve a Exportar > Cost ETL.
  2. En la sección de conexión de datos, haz clic en conexiones de Data Locker.

  3. 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.

  4. 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:

  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 Permisos.
  4. En Propiedad del objeto, haz clic en Editar.
  5. Selecciona Propietario del bucket preferido.
  6. 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
  • A lo largo del día. Durante la configuración de la Cost ETL, debes establecer el cronograma para los reportes, es decir, cuándo deseas que estos lleguen.
  • Los datos generalmente llegan dentro de una hora de la hora que seleccionas. Así que si seleccionas que un reporte debe llegar antes de las 6 AM, llega entre las 5 y las 6 AM.

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
  • Todos los reportes de costos (beta cerrada) actualmente no incluyen datos de costos para las campañas de Google Performance Max.
  • No admite cambios en los nombres de las campañas
Datos de costo de campaña de SKAN
  • Cost ETL proporciona datos de costos para campañas de SKAN solo si la campaña tiene al menos una conversión clásica.
  • Para campañas con conversiones solo de SKAN, los datos de costos están disponibles solo si:
    • La ad network relacionada es Twitter (X) o Meta, o
    • La integración con la ad network relacionada está marcada como campaña inactiva (Columna M= "Sí" en esta lista).
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.