La mayoría de advertisers en Meta siguen sacando los informes semanales a mano: abren Ads Manager, eligen el rango de fechas, seleccionan columnas, descargan el CSV, pegan en el dashboard semanal, limpian cabeceras. Veinte minutos por cuenta en un día bueno. Las agencias que llevan cinco o más clientes se pueden dejar media mañana antes de que nadie analice un solo número.
Esta guía recorre los tres métodos para conectar Meta Ads con Google Sheets en 2026: la vía gratuita de exportación CSV manual, la vía de Google Apps Script + Meta Marketing API para quienes programan, y Dataslayer para reporting programado sin código. Compara tiempo de setup, opciones de refresco y programación, y elige el que encaja con tu carga de trabajo.
¿Qué método te conviene?
Antes de entrar en cada método, aquí va la matriz de decisión. Elige la fila que encaja con tus restricciones.
Regla práctica: si llevas una o dos cuentas publicitarias y refrescas semanalmente, la vía del CSV manual te sirve. Si gestionas varios clientes, necesitas refresco diario, o combinas Meta con otros canales en una sola vista, un conector programado te quita el trabajo manual recurrente.
Método 1: exportación CSV manual desde Meta Ads Manager
Es la opción gratuita que viene con Meta Ads Manager. Cero setup, cero código, cero herramientas de terceros.
Setup
- Abre Meta Ads Manager en
business.facebook.com. - Elige la cuenta publicitaria, el rango de fechas y el nivel (Cuenta, Campaña, Conjunto de anuncios o Anuncio).
- Personaliza columnas: pulsa en el menú Columns y selecciona las métricas y breakdowns que necesites.
- Pulsa Export → Export table data → CSV (.csv).
- Abre Google Sheets, ve a Archivo → Importar → Subir, selecciona el CSV descargado.
- Elige "Sustituir hoja actual" o "Insertar nueva hoja", según sea un informe nuevo o una actualización.
Lo que hace bien
- Coste cero.
- Sin vincular cuentas ni gestionar tokens de autenticación.
- Perfecto para consultas puntuales.
Dónde se rompe
- No hay programación. Cada informe semanal repite los 6 pasos.
- Una cuenta cada vez. Comparar 4 clientes significa 4 exportaciones y 4 imports.
- Column drift. Si tú o alguien del equipo cambia la personalización de Columns entre exportaciones, tu plantilla de Sheets se rompe en silencio.
- Los breakdowns obligan a exportaciones separadas. Age + Gender y Country no coexisten en una misma exportación.
- Límites de tamaño. Rangos de fechas muy largos combinados con breakdowns granulares tocan el cap de exportación de Meta y cortan filas.
Si alguna de estas limitaciones te molesta, los dos métodos siguientes la resuelven de forma distinta. Uno requiere JavaScript. El otro es un add-on pensado para reporting recurrente multicuenta, lo vemos en el Método 3.
Método 2: Google Apps Script + Meta Marketing API
Si te manejas con JavaScript y la autenticación vía API, Apps Script te da control total. Llamas directamente al endpoint Ads Insights de Meta Marketing API, decides exactamente qué campos extraer, aplicas tus propias transformaciones y programas el script para que corra solo.
Pasos del setup
- Crea una app de Meta en
developers.facebook.comcon el producto Marketing API activado. - En tu Meta Business Manager, crea un system user y genera un token de acceso long-lived con el permiso
ads_read. - En Google Sheets, abre Extensiones → Apps Script.
- Escribe una función que llame a
UrlFetchApp.fetch()contra el endpoint Insights con el ID de tu cuenta publicitaria, campos, rango de fechas y token de acceso. - Parsea la respuesta JSON y escribe filas en la hoja.
- Añade un trigger temporal instalable para correrlo a diario o semanalmente.
Ejemplo mínimo
function pullMetaAds() {
const ACCOUNT_ID = 'YOUR_AD_ACCOUNT_ID'; // formato: act_XXXXXXXXXX
const ACCESS_TOKEN = 'YOUR_LONG_LIVED_TOKEN';
const VERSION = 'v22.0'; // consulta developers.facebook.com para la versión actual
const url = `https://graph.facebook.com/${VERSION}/${ACCOUNT_ID}/insights` +
`?fields=campaign_name,spend,impressions,clicks,ctr,actions` +
`&date_preset=last_30d` +
`&level=campaign` +
`&access_token=${ACCESS_TOKEN}`;
const response = UrlFetchApp.fetch(url);
const data = JSON.parse(response.getContentText()).data;
const sheet = SpreadsheetApp.getActiveSheet();
sheet.clear();
sheet.appendRow(['Campaña', 'Gasto', 'Impresiones', 'Clics', 'CTR', 'Compras']);
data.forEach(row => {
const purchases = (row.actions || [])
.find(a => a.action_type === 'purchase')?.value || 0;
sheet.appendRow([
row.campaign_name,
row.spend,
row.impressions,
row.clicks,
row.ctr,
purchases
]);
});
}
Cuándo tiene sentido
- Necesitas una transformación que ningún add-on cubre, como unir gasto de Meta con una tabla interna de leads de CRM.
- Construyes una herramienta interna y la propiedad del código importa.
- Quieres coste recurrente cero.
El coste oculto
Tú eres dueño del código, así que también eres dueño de las roturas. Meta versiona su API más o menos cada trimestre y deprecia versiones ~2 años después. Los tokens de acceso caducan. Los rate limits saltan con rangos de fechas grandes o frecuencia alta de llamadas. La mayoría de equipos de marketing no tienen tiempo para mantener esto a largo plazo.
Método 3: Dataslayer para Google Sheets
Dataslayer es un add-on de Google Sheets pensado para marketers y agencias que extraen datos de muchas fuentes, no solo de Meta. La idea es reporting programado, multicuenta y multifuente sin escribir código.
Dataslayer lo construimos en parte para resolver este problema para nosotros: llevamos nuestras propias cuentas de Meta Ads a través del add-on, junto a Google Ads, LinkedIn y GA4, en un solo workbook. El setup de abajo es el mismo que documentamos para los usuarios.

Setup
- En Google Sheets, abre Extensiones → Complementos → Descargar complementos.
- Busca Dataslayer e instálalo.
- Abre Extensiones → Dataslayer → Launch sidebar.
- Conecta tu cuenta de Meta Ads (OAuth una sola vez vía Facebook Business).
- Elige la cuenta publicitaria, métricas, dimensiones, breakdowns y rango de fechas en la barra lateral.
- Pulsa Run query. Los datos aterrizan en la hoja.
- (Opcional) Define un horario de refresco para el documento desde la barra lateral: cada hora, diario, semanal o cada X horas, según tu plan. El horario se aplica a nivel de documento, así que todas las consultas del sheet se actualizan juntas. Puedes saltarte este paso y relanzar manualmente cuando quieras datos frescos.
Qué cambia frente a los dos métodos anteriores
- Varias cuentas en una sola hoja. Extrae varias cuentas de Meta Ads en el mismo workbook, una consulta por cada una (5, 10 o más, según el límite de consultas de tu plan). Todas se refrescan juntas al horario del documento.
- Uniones entre fuentes. En la misma hoja, combinas el gasto de Meta con el coste de Google Ads, las conversiones de LinkedIn y las sesiones de GA4. Construyes una vista de ROAS combinado sin salir de Sheets.
- Backfill histórico. Recupera datos históricos de Meta Ads hasta el límite de retención actual del API en una sola ejecución (consulta la documentación de Meta para la ventana vigente, porque las reglas de retención cambiaron junto con las actualizaciones de atribución de enero de 2026).
- Errores visibles. Cuando la Marketing API devuelve un error de rate limit, la barra lateral te lo dice en vez de dejarte con celdas vacías.
- Google Sheets es solo el punto de partida. Las mismas consultas funcionan en Excel y Looker Studio si tu flujo se mueve allí.
Cuándo Dataslayer no es la opción adecuada
- Llevas anuncios en una sola cuenta y refrescas una vez a la semana. La exportación CSV manual hace ese trabajo sin coste de add-on.
- Cero tolerancia a herramientas de pago, incluso en el tier gratuito. Usa exportación manual o Apps Script.
Informes habituales de Meta Ads que puedes construir en Google Sheets
Una vez funciona la conexión, la siguiente pregunta es qué extraer. Cinco informes cubren la mayor parte de lo que un equipo de advertising necesita semana tras semana.
Rendimiento semanal de campañas. Campos: campaign_name, spend, impressions, clicks, ctr, cpc, actions (compras o leads). Nivel: campaña. Rango de fechas: últimos 7 días. Primera pestaña de cada deck de cliente.
Rendimiento a nivel de ad. Campos: ad_name, adset_name, campaign_name, spend, impressions, ctr, cpc, actions. Nivel: ad. Filtra a anuncios activos. Aquí viven las señales creativas.
Breakdown de rendimiento por creatividad. Campos: ad_name, creative_name, spend, impressions, ctr, conversions, purchase_roas. Nivel: ad. Compara temas creativos para ver cuáles escalan.
Breakdown de audiencia. Campos: spend, impressions, clicks, actions. Breakdowns: age, gender, country o device_platform. Usa un breakdown cada vez (Meta limita las combinaciones).
Vista de ROAS combinado. Campos: campaign_name, spend, purchase_roas, action_values. Combínalo con el coste de Google Ads y el revenue atribuido por GA4 en otra pestaña para tener una vista de atribución combinada real.
Si prefieres no construirlos desde cero, copia una de las plantillas gratuitas de Meta Ads + Google Sheets → que publicamos y enchúfala a tu propia cuenta publicitaria.
Troubleshooting: los cuatro errores con los que vas a toparte
Rate limits. La Meta Marketing API impone límites de llamadas por app y por cuenta publicitaria. Si extraes informes grandes cada hora en muchas cuentas, vas a tocar techo y verás errores HTTP 613. Solución: reduce la frecuencia de consulta, acota los campos pedidos, o usa los límites del tier Business Manager (más altos que el tier Developer).
Cambios en ventanas de atribución. El 12 de enero de 2026, Meta eliminó las ventanas 7d_view (7 días view-through) y 28d_view (28 días view-through) de la Ads Insights API. Si tu consulta o tu dashboard todavía las referencia, devolverá resultados vacíos o tirará al modelo que queda por defecto. Solución: cambia a 7d_click, 1d_view o el modelo de atribución por defecto. Análisis completo en nuestra guía de la eliminación de las ventanas de atribución de Meta Ads.
Límites de combinación de breakdowns. Meta no permite combinar todos los breakdowns entre sí. Age + Country funciona. Age + Gender + Device Platform no. Solución: divide la consulta por breakdown, o usa la barra lateral de Dataslayer, que valida las combinaciones antes de correr.
Expiración de tokens. Los tokens de system user son long-lived pero no eternos. Business Manager puede revocarlos si cambian los ajustes de seguridad o si el usuario que los creó pierde el acceso. Solución: ponte un recordatorio para regenerar tokens cada 6-12 meses, o usa Dataslayer (la rotación OAuth se gestiona automáticamente).
Meta Ads en Sheets vs Looker Studio: cuándo usar cada uno
Las dos herramientas extraen de la misma Meta Marketing API. Elige según el uso final, no según la fuente de datos.
La respuesta honesta: la mayoría de agencias necesitan las dos. Sheets para análisis y decks de cliente, Looker Studio para dashboards en vivo. Dataslayer soporta las dos sin reescribir consultas.
Si quieres la versión dashboard de lo que acabamos de montar, échale un vistazo a nuestra guía de las 10 plantillas gratuitas de Looker Studio y a la guía de automatización de Google Sheets para fórmulas que transforman exportaciones crudas de Meta en informes limpios.
FAQ
¿Es gratis conectar Meta Ads con Google Sheets?
Sí, dos vías son gratis. La exportación CSV manual desde Ads Manager es gratis para siempre. Google Apps Script es gratis mientras estés dentro de las cuotas diarias de ejecución y los rate limits de la API de Meta. Dataslayer tiene un plan gratuito que cubre equipos pequeños y tiers de pago para mayor volumen y más fuentes.
¿Con qué frecuencia se actualizan los datos?
La exportación CSV manual se actualiza solo cuando la vuelves a ejecutar. Apps Script se actualiza según el horario que programes. Dataslayer soporta cada hora, diario, semanal o cada X horas a nivel de documento, según el plan. El horario es opcional; también puedes relanzar las consultas a mano cuando necesites datos frescos.
¿Puedo conectar varias cuentas de Meta Ads a una misma hoja?
Con la exportación CSV manual no, porque es una cuenta por exportación. Apps Script puede iterar sobre varios IDs de cuenta si programas el loop. Dataslayer soporta varias cuentas de Meta Ads en el mismo workbook de serie, y por eso las agencias lo usan para reporting de clientes.
¿Funciona con cuentas publicitarias en distintas monedas?
Sí. Meta reporta el gasto en la moneda nativa de cada cuenta. Dataslayer incluye métricas en moneda nativa y en monedas convertidas (EUR, USD, GBP, etc.) para que construyas vistas combinadas sin conversión manual.
¿Por qué desapareció la atribución 7-day view-through de mi informe?
Meta eliminó las ventanas de atribución 7d_view y 28d_view de la Ads Insights API el 12 de enero de 2026. Si tu consulta antigua las referenciaba, cambia a 7d_click, 1d_view o el modelo de atribución por defecto. Tus datos históricos previos al 12 de enero de 2026 también se ven afectados por los límites de retención que llegaron con el mismo cambio.
¿Puedo usar esto para reporting de clientes?
Sí, y es uno de los usos más habituales. Las agencias construyen una plantilla maestra en Sheets, conectan la cuenta de Meta Ads de cada cliente y duplican la hoja por cliente. Dataslayer acelera esto porque la misma definición de consulta puede apuntar a cuentas distintas.
Conclusión
Tres métodos, tres casos de uso. La exportación CSV manual cubre a advertisers en solitario con una cuenta y paciencia para exportar cada semana. Apps Script es para analistas que quieren control total y saben escribir JavaScript además de navegar el versioning de la API de Meta. Dataslayer encaja en agencias, equipos y cualquiera que necesite datos de Meta Ads en Google Sheets en un horario recurrente, junto a Google Ads, LinkedIn y el resto del stack.
Lo que importa es qué método encaja con tu carga de trabajo recurrente. Si extraes datos de Meta Ads más de una vez por semana, el tiempo que dedicas a exportaciones manuales tiene un coste fácil de infraestimar.
Lleva Meta Ads, Google Ads y el resto de tu stack a una misma Google Sheet, programada. Prueba Dataslayer gratis 15 días. Sin tarjeta.


.avif)




